diff options
author | Hongyuan Ma | 2018-07-31 17:59:00 +0000 |
---|---|---|
committer | Hongyuan Ma | 2018-07-31 17:59:00 +0000 |
commit | 44833e6ac55c9fd44d197078802bc72960a0a3ba (patch) | |
tree | e3a0e9fcd168b1721872259b105ee459671507b7 | |
parent | af756f50a9e585f4b1351167e38cda8c9b305c13 (diff) |
add model for admin
-rw-r--r-- | web/apps/test_records/admin.py | 11 | ||||
-rw-r--r-- | web/apps/users/admin.py | 23 | ||||
-rw-r--r-- | web/apps/users/models.py | 12 | ||||
-rw-r--r-- | web/pgperffarm/urls.py | 7 |
4 files changed, 44 insertions, 9 deletions
diff --git a/web/apps/test_records/admin.py b/web/apps/test_records/admin.py index 13be29d..6d695ff 100644 --- a/web/apps/test_records/admin.py +++ b/web/apps/test_records/admin.py @@ -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 diff --git a/web/apps/users/admin.py b/web/apps/users/admin.py index 13be29d..2ade70f 100644 --- a/web/apps/users/admin.py +++ b/web/apps/users/admin.py @@ -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) diff --git a/web/apps/users/models.py b/web/apps/users/models.py index c7c0a6e..95fa3e0 100644 --- a/web/apps/users/models.py +++ b/web/apps/users/models.py @@ -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 + ')' diff --git a/web/pgperffarm/urls.py b/web/pgperffarm/urls.py index fac3b6d..110a62f 100644 --- a/web/pgperffarm/urls.py +++ b/web/pgperffarm/urls.py @@ -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')), |