From 50c6b444e6a71f8663653250c9fcee0e1eb0f838 Mon Sep 17 00:00:00 2001
From: Hongyuan Ma
Date: Tue, 7 Aug 2018 02:25:37 +0800
Subject: [PATCH] online adaptation
---
front-end/src/page/machine/index.jsx | 14 +++----
front-end/src/page/portal/index.jsx | 21 ++++++----
front-end/src/service/machine-service.jsx | 4 +-
front-end/src/service/record-service.jsx | 4 +-
front-end/src/service/user-service.jsx | 14 ++++---
.../src/util/machine-record-table/index.jsx | 4 +-
front-end/src/util/machine-table/index.jsx | 5 ++-
web/apps/user_operation/filters.py | 15 ++++++-
web/apps/user_operation/views.py | 41 +++++++++++++------
web/apps/users/admin.py | 11 ++++-
web/apps/users/views.py | 1 +
web/extra_apps/{auth => pg_auth}/__init__.py | 0
web/extra_apps/{auth => pg_auth}/auth.py | 0
web/pgperffarm/settings.py | 2 +-
web/pgperffarm/urls.py | 14 ++-----
web/templates/admin/login.html | 11 -----
web/templates/admin_bak/login.html | 11 +++++
17 files changed, 106 insertions(+), 66 deletions(-)
rename web/extra_apps/{auth => pg_auth}/__init__.py (100%)
rename web/extra_apps/{auth => pg_auth}/auth.py (100%)
delete mode 100644 web/templates/admin/login.html
create mode 100644 web/templates/admin_bak/login.html
diff --git a/front-end/src/page/machine/index.jsx b/front-end/src/page/machine/index.jsx
index be5914f..6e0edb8 100644
--- a/front-end/src/page/machine/index.jsx
+++ b/front-end/src/page/machine/index.jsx
@@ -17,18 +17,15 @@ class Machine extends React.Component {
total: 3,
machines: [],
},
-
- // this.onPageChange = this.onPageChange.bind(this);
-
- this.loadMachineList = this.loadMachineList.bind(this);
+ this.loadMachineList = this.loadMachineList.bind(this);
}
- componentDidMount(){
+ componentDidMount() {
this.loadMachineList();
}
- loadMachineList(page=1){
- _machine.getMachineList().then(res => {
+ loadMachineList(page = 1) {
+ _machine.getMachineList(page).then(res => {
this.setState({
machines: res.results,
total: res.count,
@@ -50,7 +47,8 @@ class Machine extends React.Component {
Use the farm member link for history of that member on the relevant branch.
-
+
)
diff --git a/front-end/src/page/portal/index.jsx b/front-end/src/page/portal/index.jsx
index e6c968b..b730709 100644
--- a/front-end/src/page/portal/index.jsx
+++ b/front-end/src/page/portal/index.jsx
@@ -16,25 +16,27 @@ class Portal extends React.Component {
super(props);
this.state = {
username: '',
- isLoading: false,
machines:[],
userinfo: {}
}
-
+ this.loadUserMachineManageList = this.loadUserMachineManageList.bind(this);
}
componentDidMount(){
let user = _util.getStorage('userInfo')
this.setState({
username: user.username,
+ },()=>{
+ this.loadUserPortalInfo()
+ this.loadUserMachineManageList();
});
console.log(user.token)
- this.loadUserPortalInfo()
- this.loadUserMachineManageList();
+
}
loadUserPortalInfo(){
- _user.getUserPortalInfo().then(res => {
+ let username = this.state.username
+ _user.getUserPortalInfo(username).then(res => {
this.setState({
userinfo: res.results,
});
@@ -44,11 +46,14 @@ class Portal extends React.Component {
}
loadUserMachineManageList(page=1){
- _user.getUserMachineManageList().then(res => {
+
+ let listParam = {};
+ listParam.page = page;
+ listParam.machine_owner__username = this.state.username;
+ _user.getUserMachineManageList(listParam).then(res => {
this.setState({
machines: res.results,
total: res.count,
- isLoading: false
});
}, errMsg => {
_util.errorTips(errMsg);
@@ -98,7 +103,7 @@ class Portal extends React.Component {
Welcome Back, {this.state.username}
-
+
diff --git a/front-end/src/service/machine-service.jsx b/front-end/src/service/machine-service.jsx
index 9b5188b..7278665 100644
--- a/front-end/src/service/machine-service.jsx
+++ b/front-end/src/service/machine-service.jsx
@@ -4,13 +4,13 @@ import PGConstant from 'util/constant.jsx'
const _util = new PGUtil();
class MachineService{
- getMachineList(pageNum){
+ getMachineList(page){
let url = PGConstant.base_url + '/machines';
return _util.request({
type : 'get',
url : url,
data : {
- pageNum : pageNum
+ page : page
}
});
}
diff --git a/front-end/src/service/record-service.jsx b/front-end/src/service/record-service.jsx
index 3aa81c4..62ff12a 100644
--- a/front-end/src/service/record-service.jsx
+++ b/front-end/src/service/record-service.jsx
@@ -75,8 +75,8 @@ class Record{
let data = {};
data = listParam;
- console.log('final data')
- console.dir(listParam);
+ // console.log('final data')
+ // console.dir(listParam);
return _util.request({
type : 'get',
url : url,
diff --git a/front-end/src/service/user-service.jsx b/front-end/src/service/user-service.jsx
index f12395e..b697142 100644
--- a/front-end/src/service/user-service.jsx
+++ b/front-end/src/service/user-service.jsx
@@ -45,23 +45,25 @@ class User{
return true;
}
- getUserMachineManageList(pageNum){
+ getUserMachineManageList(listParam){
let url = PGConstant.base_url + '/my-machine';
return _util.request({
type : 'get',
url : url,
- data : {
- pageNum : pageNum
- }
+ data : listParam
+ // listParam.page = page;
+ // listParam.username = this.state.username;
});
}
- getUserPortalInfo(){
+ getUserPortalInfo(username=''){
let url = PGConstant.base_url + '/portal/';
return _util.request({
type : 'get',
url : url,
- data : {}
+ data : {
+ username : username
+ }
});
}
diff --git a/front-end/src/util/machine-record-table/index.jsx b/front-end/src/util/machine-record-table/index.jsx
index c8b999a..91ef3d3 100644
--- a/front-end/src/util/machine-record-table/index.jsx
+++ b/front-end/src/util/machine-record-table/index.jsx
@@ -29,12 +29,12 @@ class MachineRecordTable extends React.Component {
}
}
-
onPageNumChange(current) {
+ let _this = this
this.setState({
currentPage: current
}, () => {
- this.props.loadfunc(current);
+ _this.props.loadfunc(current);
});
console.log('current:' + this.state.currentPage)
}
diff --git a/front-end/src/util/machine-table/index.jsx b/front-end/src/util/machine-table/index.jsx
index e18001f..21ec17f 100644
--- a/front-end/src/util/machine-table/index.jsx
+++ b/front-end/src/util/machine-table/index.jsx
@@ -33,10 +33,11 @@ class MachineTable extends React.Component {
onPageNumChange(current) {
+ let _this = this
this.setState({
currentPage: current
}, () => {
- this.props.loadfunc(current);
+ _this.props.loadfunc(current);
});
console.log('current:' + this.state.currentPage)
}
@@ -129,7 +130,7 @@ class MachineTable extends React.Component {
- this.onPageNumChange(current)} pageSize={15}
+ this.onPageNumChange(current)} pageSize={40}
current={this.state.currentPage} total={this.props.total}/>
diff --git a/web/apps/user_operation/filters.py b/web/apps/user_operation/filters.py
index 7208055..d429d96 100644
--- a/web/apps/user_operation/filters.py
+++ b/web/apps/user_operation/filters.py
@@ -3,6 +3,7 @@
import django_filters
from django.db.models import Q
+from models import UserMachine
from test_records.models import TestRecord
@@ -15,4 +16,16 @@ class MachineRecordListFilter(django_filters.rest_framework.FilterSet):
class Meta:
model = TestRecord
- fields = ['branch__id', 'test_machine__machine_sn']
\ No newline at end of file
+ fields = ['branch__id', 'test_machine__machine_sn']
+
+
+class UserMachineListFilter(django_filters.rest_framework.FilterSet):
+ """
+ UserMachineListFilter
+ """
+
+ # machine_owner__username = django_filters.CharFilter()
+
+ class Meta:
+ model = UserMachine
+ fields = ['machine_owner__username', ]
\ No newline at end of file
diff --git a/web/apps/user_operation/views.py b/web/apps/user_operation/views.py
index ab38fc0..c006723 100644
--- a/web/apps/user_operation/views.py
+++ b/web/apps/user_operation/views.py
@@ -2,26 +2,29 @@
from __future__ import unicode_literals
import django_filters
-from django.shortcuts import render
-from rest_framework import mixins, viewsets, permissions, status
+from rest_framework import mixins, viewsets, permissions
from rest_framework import authentication
from rest_framework.pagination import PageNumberPagination
-from rest_framework.response import Response
-from rest_framework.views import APIView
from rest_framework_jwt.authentication import JSONWebTokenAuthentication
-from filters import MachineRecordListFilter
+from filters import MachineRecordListFilter, UserMachineListFilter
from test_records.models import TestRecord
-from util.response import PGJsonResponse
from users.models import UserMachine, UserProfile
-from serializer import UserMachineManageSerializer, UserPortalInfoSerializer, TestRecordListSerializer
+from serializer import UserMachineManageSerializer, UserPortalInfoSerializer, TestRecordListSerializer, \
+ UserMachineSerializer
+
class StandardResultsSetPagination(PageNumberPagination):
page_size = 2
page_size_query_param = 'page_size'
max_page_size = 100
+class MiddleResultsSetPagination(PageNumberPagination):
+ page_size = 40
+ page_size_query_param = 'page_size'
+ max_page_size = 100
+
class UserMachineRecordByBranchListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
"""
@@ -34,8 +37,6 @@ class UserMachineRecordByBranchListViewSet(mixins.ListModelMixin, viewsets.Gener
filter_backends = (django_filters.rest_framework.DjangoFilterBackend,)
filter_class = MachineRecordListFilter
-
-
class UserMachineListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
"""
List test records
@@ -44,7 +45,21 @@ class UserMachineListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
permission_classes = (permissions.IsAuthenticated, )
queryset = UserMachine.objects.all().order_by('add_time')
serializer_class = UserMachineManageSerializer
- # pagination_class = StandardResultsSetPagination
+ pagination_class = MiddleResultsSetPagination
+ filter_backends = (django_filters.rest_framework.DjangoFilterBackend,)
+ filter_class = UserMachineListFilter
+
+ # def perform_create(self, serializer):
+ # shop_cart = serializer.save()
+ # goods = shop_cart.goods
+ # goods.goods_num -= shop_cart.nums
+ # goods.save()
+
+ # def get_serializer_class(self):
+ # if self.action == 'create':
+ # return UserMachineSerializer
+ # else:
+ # return UserMachineManageSerializer
class PublicMachineListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
"""
@@ -52,14 +67,16 @@ class PublicMachineListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
"""
queryset = UserMachine.objects.all().order_by('add_time')
serializer_class = UserMachineManageSerializer
+ pagination_class = MiddleResultsSetPagination
-class UserPortalInfoViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
+class UserPortalInfoViewSet( mixins.RetrieveModelMixin, viewsets.GenericViewSet):
"""
user info
"""
# authentication_classes = (JSONWebTokenAuthentication, authentication.SessionAuthentication )
# permission_classes = (permissions.IsAuthenticated, )
- queryset = UserProfile.objects.all().order_by('date_joined')
+ lookup_field = 'username'
+ queryset = UserProfile.objects.all()
serializer_class = UserPortalInfoSerializer
class UserMachinePermission(permissions.BasePermission):
diff --git a/web/apps/users/admin.py b/web/apps/users/admin.py
index bf81a3e..f9224ff 100644
--- a/web/apps/users/admin.py
+++ b/web/apps/users/admin.py
@@ -6,8 +6,14 @@ from asynchronous_send_mail import send_mail
from django.conf import settings
# Register your models here.
from serializer import UserMachineSerializer
-from .models import UserMachine
+from .models import UserMachine, UserProfile
+class UserProfileAdmin(admin.ModelAdmin):
+ list_display = ('id', 'username', 'email', 'is_active', 'last_login', )
+ list_filter = ('is_active',)
+
+
+admin.site.register(UserProfile, UserProfileAdmin)
class UserMachineAdmin(admin.ModelAdmin):
list_display = ('id', 'alias', 'state', 'machine_sn', 'machine_secret', )
@@ -58,3 +64,6 @@ PG PERF FARM" % (ret['alias'], ret['secret'], ret['system'], ret['compiler'])
admin.site.register(UserMachine, UserMachineAdmin)
+
+
+
diff --git a/web/apps/users/views.py b/web/apps/users/views.py
index 6ba4b36..5a4457f 100644
--- a/web/apps/users/views.py
+++ b/web/apps/users/views.py
@@ -14,6 +14,7 @@ class CustomBackend(ModelBackend):
"""
custom user auth
"""
+ # todo use auth.py
def authenticate(self, username=None, password=None, **kwargs):
try:
user = UserProfile.objects.get(Q(username=username))
diff --git a/web/extra_apps/auth/__init__.py b/web/extra_apps/pg_auth/__init__.py
similarity index 100%
rename from web/extra_apps/auth/__init__.py
rename to web/extra_apps/pg_auth/__init__.py
diff --git a/web/extra_apps/auth/auth.py b/web/extra_apps/pg_auth/auth.py
similarity index 100%
rename from web/extra_apps/auth/auth.py
rename to web/extra_apps/pg_auth/auth.py
diff --git a/web/pgperffarm/settings.py b/web/pgperffarm/settings.py
index 76e7845..f5b3385 100644
--- a/web/pgperffarm/settings.py
+++ b/web/pgperffarm/settings.py
@@ -38,8 +38,8 @@ ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = (
- 'corsheaders',
'django.contrib.admin',
+ 'corsheaders',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
diff --git a/web/pgperffarm/urls.py b/web/pgperffarm/urls.py
index 110a62f..245faec 100644
--- a/web/pgperffarm/urls.py
+++ b/web/pgperffarm/urls.py
@@ -45,11 +45,11 @@ router.register(r'machine-records-by-branch', UserMachineRecordByBranchListViewS
# user's machine manage list
router.register(r'my-machine', UserMachineListViewSet, base_name="my-machine")
# get userinfo on portal page
-router.register(r'portal', UserPortalInfoViewSet, base_name="portal")
+router.register(r'^portal/', UserPortalInfoViewSet, base_name="portal")
urlpatterns = [
- url(r'^admin/', admin.site.urls),
-
+ url(r'^perf_farm_admin/', admin.site.urls),
+ # url(r'^admin/', include(admin.site.urls)),
url(r'^api-auth/', include('rest_framework.urls')),
@@ -60,14 +60,8 @@ urlpatterns = [
url(r'^machine-token-auth/', MachineAuthToken.as_view()),
url(r'^', include(router.urls)),
- # url(r'status/$', test_record_list, name='test-list'),
- # url(r'status/$', TestListView.as_view(), name='test-list'),
- # url(r'detail', TestRecordDetailViewSet ,name="detail"),
- url(r'upload/$', TestRecordCreate, name='test-upload'),
- # url(r'status-records/$', GetStatusRecordList, name='status-records'),
- # url(r'portal/$', UserPortalInfoViewSet, name='portal'),
- # url(r'my-machine/$', UserMachineList.as_view(), name='my-machine'),
+ url(r'upload/$', TestRecordCreate, name='test-upload'),
url(r'docs/', include_docs_urls(title='pgperffarm')),
# Static pages
diff --git a/web/templates/admin/login.html b/web/templates/admin/login.html
deleted file mode 100644
index e9e7257..0000000
--- a/web/templates/admin/login.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-Redirect
-
-Redirect here
-
-
-
\ No newline at end of file
diff --git a/web/templates/admin_bak/login.html b/web/templates/admin_bak/login.html
new file mode 100644
index 0000000..224d856
--- /dev/null
+++ b/web/templates/admin_bak/login.html
@@ -0,0 +1,11 @@
+
+
+
+
+
+Redirect
+
+Redirect here
+
+
+
\ No newline at end of file
--
2.39.5