add model for admin
authorHongyuan Ma <CS_MaleicAcid@163.com>
Tue, 31 Jul 2018 17:59:00 +0000 (01:59 +0800)
committerHongyuan Ma <CS_MaleicAcid@163.com>
Tue, 31 Jul 2018 17:59:00 +0000 (01:59 +0800)
web/apps/test_records/admin.py
web/apps/users/admin.py
web/apps/users/models.py
web/pgperffarm/urls.py

index 13be29d96fa090f33674d220cade585cf961ad8f..6d695ffd24faf7afc408c4bec4c0b84470471b0c 100644 (file)
@@ -4,3 +4,14 @@ from __future__ import unicode_literals
 from django.contrib import admin
 
 # Register your models here.
+from django.contrib import admin
+from .models import TestRecord, TestBranch
+
+class TestRecordAdmin(admin.ModelAdmin):
+    list_display = ('id', 'branch', 'uuid', 'test_machine')
+    list_filter = ('branch',)
+    actions = ['approve_machine']
+
+admin.site.register(TestRecord, TestRecordAdmin)
+
+admin.site.register(TestBranch)
\ No newline at end of file
index 13be29d96fa090f33674d220cade585cf961ad8f..2ade70fd3fe4bd5581702976189dfedefa94a04b 100644 (file)
@@ -4,3 +4,26 @@ from __future__ import unicode_literals
 from django.contrib import admin
 
 # Register your models here.
+from serializer import UserMachineSerializer
+from .models import UserMachine,Alias
+
+class UserMachineAdmin(admin.ModelAdmin):
+    list_display = ('alias', 'machine_sn', 'state')
+    list_filter = ('state',)
+    actions = ['approve_machine']
+
+    def approve_machine(self, request, queryset):
+        for machine in queryset:
+            alias = Alias.objects.filter(is_used=False).order_by('?')[:1]
+            #todo
+            serializer = UserMachineSerializer(machine)
+            serializer.save()
+
+        # rows_updated = queryset.update(state=1)
+        # message_bit = "%s machine(s)" % rows_updated
+        # self.message_user(request, "%s have been approved." % message_bit)
+
+    approve_machine.short_description = u'Approve Machine(Modify the state to active, generate machine_sn, machine_secret, and assign an alias)'
+
+
+admin.site.register(UserMachine, UserMachineAdmin)
index c7c0a6e481767641265970d2ff7d230b87380139..95fa3e07ce1c22f599612dbdefa340c738227f7c 100644 (file)
@@ -29,6 +29,8 @@ class Alias(models.Model):
     is_used = models.BooleanField(default=False,verbose_name="is_used")
     add_time = models.DateTimeField(default=timezone.now, verbose_name="add time", help_text="category added time")
 
+    def __str__(self):
+        return self.name
 class UserMachine(models.Model):
     """
     user machine
@@ -36,7 +38,7 @@ class UserMachine(models.Model):
     machine_sn = models.CharField(max_length=16, verbose_name="machine sn")
     machine_secret = models.CharField(max_length=32, verbose_name="machine secret")
     machine_owner = models.ForeignKey(UserProfile)
-    alias = models.ForeignKey(Alias, verbose_name="alias", help_text="alias")
+    alias = models.ForeignKey(Alias,blank=True ,verbose_name="alias", help_text="alias")
     os_name = models.CharField(max_length=32, verbose_name="operation system name")
     os_version = models.CharField(max_length=32, verbose_name="operation system version")
     comp_name = models.CharField(max_length=32, verbose_name="compiler name")
@@ -44,9 +46,9 @@ class UserMachine(models.Model):
     add_time = models.DateTimeField(default=timezone.now, verbose_name="machine added time")
 
     STATE_CHOICE = (
-        ('prohibited', -1),
-        ('pending', 0),
-        ('active', 1),
+        (-1, 'prohibited'),
+        (0, 'pending'),
+        (1, 'active'),
 
     )
     state = models.IntegerField(choices=STATE_CHOICE, default=0,verbose_name="state", help_text="machine state")
@@ -56,4 +58,4 @@ class UserMachine(models.Model):
         verbose_name_plural = "user machines"
 
     def __str__(self):
-        return self.machine_sn
+        return self.alias.__str__() + ' (' + self.os_name + ' ' + self.os_version + '' + self.comp_name + ' ' + self.comp_version + ')'
index fac3b6dc1addfb91cac722a6f970666489ae55ee..110a62f4187e98a7bafe98e1f85d3c5405e1d199 100644 (file)
@@ -13,12 +13,10 @@ Including another URLconf
     1. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
 """
 from django.conf.urls import include, url
+from django.contrib import admin
 from rest_framework_jwt.views import obtain_jwt_token
 
 from rest_framework.authtoken import views
-from django.contrib import admin
-from django.views.generic.base import RedirectView
-
 from rest_framework.documentation import include_docs_urls
 from rest_framework.routers import DefaultRouter
 from test_records.views import TestRecordListViewSet, TestRecordCreate, TestRecordDetailViewSet, \
@@ -50,7 +48,8 @@ router.register(r'my-machine', UserMachineListViewSet, base_name="my-machine")
 router.register(r'portal', UserPortalInfoViewSet, base_name="portal")
 
 urlpatterns = [
-    # url(r'^admin/', admin.site.urls),
+    url(r'^admin/', admin.site.urls),
+
     url(r'^api-auth/', include('rest_framework.urls')),