From 240be90d30416dc9a6cb8c09c6c2df2d6f2cd437 Mon Sep 17 00:00:00 2001 From: xianfuxing Date: Tue, 9 Oct 2018 18:35:50 +0800 Subject: [PATCH] # up org --- apps/accounts/models.py | 4 +++- apps/counter/api/views.py | 4 ++++ apps/counter/models.py | 9 +++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/apps/accounts/models.py b/apps/accounts/models.py index 400371d..38cb039 100644 --- a/apps/accounts/models.py +++ b/apps/accounts/models.py @@ -5,6 +5,7 @@ from django.contrib.auth.models import AbstractUser from imagekit.models import ImageSpecField from imagekit.processors import ResizeToFill from imagekit.exceptions import MissingSource +from mosquito.models import Org def avatar_path(instance, filename): @@ -22,7 +23,8 @@ class User(AbstractUser): department = models.CharField(max_length=20, null=True, blank=True, default='', verbose_name='部门') position = models.CharField(max_length=50, null=True, blank=True, default='', verbose_name='职位') introduction = models.TextField(null=True, blank=True, verbose_name='简介') - org = models.CharField(max_length=100, null=True, blank=True, verbose_name='组织') + # org = models.CharField(max_length=100, null=True, blank=True, verbose_name='组织') + org = models.ForeignKey(Org, verbose_name='所在组织', on_delete='PROTECT') role = models.CharField(max_length=20, default='admin', choices=ROLES, verbose_name='角色') avatar = models.ImageField(upload_to=avatar_path, default='https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif', null=True, blank=True) diff --git a/apps/counter/api/views.py b/apps/counter/api/views.py index 76ca0b9..4c17c58 100644 --- a/apps/counter/api/views.py +++ b/apps/counter/api/views.py @@ -46,7 +46,11 @@ class DeviceInfoListAPIView(ListAPIView): search_fields = ['device_id', 'online'] def get_queryset(self, *args, **kwargs): + user = self.request.user + user_roles = user.role.split(',') queryset_list = DeviceInfo.objects.get_queryset().order_by('-online') + if 'staff' in user_roles or 'admin' in user_roles: + queryset_list = DeviceInfo.objects.get_queryset(org=user.org).order_by('-online') device_id = self.request.GET.get('device_id') status = self.request.GET.get('status') if device_id: diff --git a/apps/counter/models.py b/apps/counter/models.py index ff1f22e..46fb422 100644 --- a/apps/counter/models.py +++ b/apps/counter/models.py @@ -7,6 +7,7 @@ # * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table # Feel free to rename the models, but don't rename db_table values or field names. from django.db import models +from mosquito.models import DeviceInfo as DeviceInfo2 class DeviceCount(models.Model): @@ -51,5 +52,13 @@ class DeviceInfo(models.Model): verbose_name = '设备信息' verbose_name_plural = verbose_name + @property + def org(self): + try: + device_info2 = DeviceInfo2.objects.get(device_id=self.device_id) + return device_info2.org + except DeviceInfo2.DoesNotExist: + raise + def __str__(self): return self.device_name