This commit is contained in:
xianfuxing 2018-10-09 18:35:50 +08:00
parent 1c5efc0baf
commit 240be90d30
3 changed files with 16 additions and 1 deletions

View File

@ -5,6 +5,7 @@ from django.contrib.auth.models import AbstractUser
from imagekit.models import ImageSpecField from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFill from imagekit.processors import ResizeToFill
from imagekit.exceptions import MissingSource from imagekit.exceptions import MissingSource
from mosquito.models import Org
def avatar_path(instance, filename): 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='部门') 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='职位') position = models.CharField(max_length=50, null=True, blank=True, default='', verbose_name='职位')
introduction = models.TextField(null=True, blank=True, 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='角色') role = models.CharField(max_length=20, default='admin', choices=ROLES, verbose_name='角色')
avatar = models.ImageField(upload_to=avatar_path, avatar = models.ImageField(upload_to=avatar_path,
default='https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif', null=True, blank=True) default='https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif', null=True, blank=True)

View File

@ -46,7 +46,11 @@ class DeviceInfoListAPIView(ListAPIView):
search_fields = ['device_id', 'online'] search_fields = ['device_id', 'online']
def get_queryset(self, *args, **kwargs): def get_queryset(self, *args, **kwargs):
user = self.request.user
user_roles = user.role.split(',')
queryset_list = DeviceInfo.objects.get_queryset().order_by('-online') 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') device_id = self.request.GET.get('device_id')
status = self.request.GET.get('status') status = self.request.GET.get('status')
if device_id: if device_id:

View File

@ -7,6 +7,7 @@
# * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table # * 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. # Feel free to rename the models, but don't rename db_table values or field names.
from django.db import models from django.db import models
from mosquito.models import DeviceInfo as DeviceInfo2
class DeviceCount(models.Model): class DeviceCount(models.Model):
@ -51,5 +52,13 @@ class DeviceInfo(models.Model):
verbose_name = '设备信息' verbose_name = '设备信息'
verbose_name_plural = 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): def __str__(self):
return self.device_name return self.device_name