summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHongyuan Ma2018-07-31 17:59:00 +0000
committerHongyuan Ma2018-07-31 17:59:00 +0000
commit44833e6ac55c9fd44d197078802bc72960a0a3ba (patch)
treee3a0e9fcd168b1721872259b105ee459671507b7
parentaf756f50a9e585f4b1351167e38cda8c9b305c13 (diff)
add model for admin
-rw-r--r--web/apps/test_records/admin.py11
-rw-r--r--web/apps/users/admin.py23
-rw-r--r--web/apps/users/models.py12
-rw-r--r--web/pgperffarm/urls.py7
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')),