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,
Use the farm member link for history of that member on the relevant branch.
</p>
- <MachineTable list={this.state.machines} total={this.state.total} current={this.state.currentPage} loadfunc={this.loadRecordList}/>
+ <MachineTable list={this.state.machines} total={this.state.total} current={this.state.currentPage}
+ loadfunc={this.loadMachineList}/>
</div>
)
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,
});
}
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);
<h2 >Welcome Back, {this.state.username}</h2>
</div>
- <MachineTable list={this.state.machines} total={this.state.total} current={this.state.currentPage} loadfunc={this.loadRecordList}/>
+ <MachineTable list={this.state.machines} total={this.state.total} current={this.state.currentPage} loadfunc={this.loadUserMachineManageList}/>
</div>
</div>
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
}
});
}
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,
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
+ }
});
}
}
}
-
onPageNumChange(current) {
+ let _this = this
this.setState({
currentPage: current
}, () => {
- this.props.loadfunc(current);
+ _this.props.loadfunc(current);
});
console.log('current:' + this.state.currentPage)
}
onPageNumChange(current) {
+ let _this = this
this.setState({
currentPage: current
}, () => {
- this.props.loadfunc(current);
+ _this.props.loadfunc(current);
});
console.log('current:' + this.state.currentPage)
}
<Table.Row>
<Table.HeaderCell colSpan='10'>
- <Pagination style={style} onChange={(current) => this.onPageNumChange(current)} pageSize={15}
+ <Pagination style={style} onChange={(current) => this.onPageNumChange(current)} pageSize={40}
current={this.state.currentPage} total={this.props.total}/>
</Table.HeaderCell>
import django_filters
from django.db.models import Q
+from models import UserMachine
from test_records.models import TestRecord
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
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):
"""
filter_backends = (django_filters.rest_framework.DjangoFilterBackend,)
filter_class = MachineRecordListFilter
-
-
class UserMachineListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
"""
List test records
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):
"""
"""
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):
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', )
admin.site.register(UserMachine, UserMachineAdmin)
+
+
+
"""
custom user auth
"""
+ # todo use auth.py
def authenticate(self, username=None, password=None, **kwargs):
try:
user = UserProfile.objects.get(Q(username=username))
# Application definition
INSTALLED_APPS = (
- 'corsheaders',
'django.contrib.admin',
+ 'corsheaders',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
# 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')),
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
+++ /dev/null
-<html>
-<head>
-<meta http-equiv="refresh" content="0;url={% url 'pgperffarm.auth.login' %}/?next=/admin/"></meta>
-</head>
-<body>
-<h1>Redirect</h1>
-<p>
-Redirect <a href="{% url 'pgperffarm.auth.login' %}/?next=/admin/">here</a>
-</p>
-</body>
-</html>
\ No newline at end of file
--- /dev/null
+<html>
+<head>
+<meta http-equiv="refresh" content="0;url={% url 'login' %}/?next=/admin/"></meta>
+</head>
+<body>
+<h1>Redirect</h1>
+<p>
+Redirect <a href="{% url login' %}/?next=/admin/">here</a>
+</p>
+</body>
+</html>
\ No newline at end of file