|
@@ -16,9 +16,10 @@ class PermissionsManager(models.Manager):
|
|
|
|
|
|
def get_by_natural_key(self, permName):
|
|
def get_by_natural_key(self, permName):
|
|
return self.get(
|
|
return self.get(
|
|
- permName = permName
|
|
|
|
|
|
+ permName=permName
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+
|
|
class RoleManager(models.Manager):
|
|
class RoleManager(models.Manager):
|
|
"""
|
|
"""
|
|
The manager for the auth's Role model.
|
|
The manager for the auth's Role model.
|
|
@@ -26,30 +27,30 @@ class RoleManager(models.Manager):
|
|
use_in_migrations = True
|
|
use_in_migrations = True
|
|
|
|
|
|
def get_by_natural_key(self, roleName):
|
|
def get_by_natural_key(self, roleName):
|
|
- return self.get(roleName = roleName)
|
|
|
|
|
|
+ return self.get(roleName=roleName)
|
|
|
|
+
|
|
|
|
|
|
class UserManager(BaseUserManager):
|
|
class UserManager(BaseUserManager):
|
|
|
|
|
|
def create_user(self, username, password, userID, is_active,
|
|
def create_user(self, username, password, userID, is_active,
|
|
user_isValid, **extra_fields):
|
|
user_isValid, **extra_fields):
|
|
-
|
|
|
|
user = self.model(
|
|
user = self.model(
|
|
- username = username,
|
|
|
|
- userID = userID,
|
|
|
|
- is_active = is_active,
|
|
|
|
- user_isValid = user_isValid,
|
|
|
|
|
|
+ username=username,
|
|
|
|
+ userID=userID,
|
|
|
|
+ is_active=is_active,
|
|
|
|
+ user_isValid=user_isValid,
|
|
**extra_fields
|
|
**extra_fields
|
|
)
|
|
)
|
|
user.set_password(password)
|
|
user.set_password(password)
|
|
user.save(using=self._db)
|
|
user.save(using=self._db)
|
|
|
|
|
|
- role = Role.objects.get(rid = 1)
|
|
|
|
|
|
+ role = Role.objects.get(rid=1)
|
|
user.role.add(role)
|
|
user.role.add(role)
|
|
return user
|
|
return user
|
|
|
|
|
|
def create_superuser(self, username, password, userID, is_active,
|
|
def create_superuser(self, username, password, userID, is_active,
|
|
- user_isValid , **extra_fields):
|
|
|
|
- #extra_fields.setdefault('is_superuser', is_superuser)
|
|
|
|
|
|
+ user_isValid, **extra_fields):
|
|
|
|
+ # extra_fields.setdefault('is_superuser', is_superuser)
|
|
is_superuser = extra_fields.get('is_superuser', None)
|
|
is_superuser = extra_fields.get('is_superuser', None)
|
|
if is_superuser != 100 and is_superuser != 1:
|
|
if is_superuser != 100 and is_superuser != 1:
|
|
raise ValueError('Superuser must have is_superuser=1 or 100.')
|
|
raise ValueError('Superuser must have is_superuser=1 or 100.')
|
|
@@ -57,14 +58,17 @@ class UserManager(BaseUserManager):
|
|
return self.create_user(username, password, userID, is_active,
|
|
return self.create_user(username, password, userID, is_active,
|
|
user_isValid, **extra_fields)
|
|
user_isValid, **extra_fields)
|
|
|
|
|
|
|
|
+
|
|
@python_2_unicode_compatible
|
|
@python_2_unicode_compatible
|
|
class Permissions(models.Model):
|
|
class Permissions(models.Model):
|
|
permName = models.CharField(blank=True, null=True, max_length=32, unique=True, verbose_name=u'权限名称')
|
|
permName = models.CharField(blank=True, null=True, max_length=32, unique=True, verbose_name=u'权限名称')
|
|
description = models.CharField(blank=True, null=True, max_length=128, verbose_name=u'描述信息', default='')
|
|
description = models.CharField(blank=True, null=True, max_length=128, verbose_name=u'描述信息', default='')
|
|
objects = PermissionsManager()
|
|
objects = PermissionsManager()
|
|
|
|
+
|
|
def __str__(self):
|
|
def __str__(self):
|
|
return "%s" % (
|
|
return "%s" % (
|
|
six.text_type(self.description))
|
|
six.text_type(self.description))
|
|
|
|
+
|
|
class Meta:
|
|
class Meta:
|
|
ordering = ['permName']
|
|
ordering = ['permName']
|
|
db_table = 'permissions'
|
|
db_table = 'permissions'
|
|
@@ -75,6 +79,7 @@ class Permissions(models.Model):
|
|
def natural_key(self):
|
|
def natural_key(self):
|
|
return (self.permName)
|
|
return (self.permName)
|
|
|
|
|
|
|
|
+
|
|
class Role(models.Model):
|
|
class Role(models.Model):
|
|
ROLE_TYPES = (
|
|
ROLE_TYPES = (
|
|
('Guests', u'Guests'),
|
|
('Guests', u'Guests'),
|
|
@@ -152,21 +157,22 @@ class Role(models.Model):
|
|
permslist.sort()
|
|
permslist.sort()
|
|
return permslist
|
|
return permslist
|
|
|
|
|
|
|
|
+
|
|
class Device_User(AbstractBaseUser):
|
|
class Device_User(AbstractBaseUser):
|
|
userID = models.CharField(blank=True, max_length=32, primary_key=True,
|
|
userID = models.CharField(blank=True, max_length=32, primary_key=True,
|
|
verbose_name=u'用户ID', unique=True, default=CommonService.getUserID(getUser=True))
|
|
verbose_name=u'用户ID', unique=True, default=CommonService.getUserID(getUser=True))
|
|
role = models.ManyToManyField(to='Role', blank=True, verbose_name=u'用户角色', db_table='user_role')
|
|
role = models.ManyToManyField(to='Role', blank=True, verbose_name=u'用户角色', db_table='user_role')
|
|
|
|
|
|
- username = models.CharField(max_length=40, verbose_name=u'用户名', unique = True, null=True,blank=True)
|
|
|
|
|
|
+ username = models.CharField(max_length=40, verbose_name=u'用户名', unique=True, null=True, blank=True)
|
|
password = models.CharField(max_length=128, verbose_name=u'密码')
|
|
password = models.CharField(max_length=128, verbose_name=u'密码')
|
|
- userEmail = models.EmailField(max_length = 64, verbose_name=u'邮箱', unique = True, null=True, blank=True)
|
|
|
|
|
|
+ userEmail = models.EmailField(max_length=64, verbose_name=u'邮箱', unique=True, null=True, blank=True)
|
|
# 实际的路径就是 MEDIA_ROOT/Image/filename,所以可用upload_to来指定文件存放的前缀路径
|
|
# 实际的路径就是 MEDIA_ROOT/Image/filename,所以可用upload_to来指定文件存放的前缀路径
|
|
userIconPath = ProcessedImageField(blank=True, upload_to='User/Images/', default='static/User/default.png',
|
|
userIconPath = ProcessedImageField(blank=True, upload_to='User/Images/', default='static/User/default.png',
|
|
- verbose_name=u'头像',
|
|
|
|
- # 图片将处理成85x85的尺寸
|
|
|
|
- processors=[ResizeToFill(85, 85)],)
|
|
|
|
- userIconUrl = models.URLField(blank = True, max_length = 128, default=SERVER_DOMAIN
|
|
|
|
- + '/account/getAvatar/User/defaultUser.png')
|
|
|
|
|
|
+ verbose_name=u'头像',
|
|
|
|
+ # 图片将处理成85x85的尺寸
|
|
|
|
+ processors=[ResizeToFill(85, 85)], )
|
|
|
|
+ userIconUrl = models.URLField(blank=True, max_length=128, default=SERVER_DOMAIN
|
|
|
|
+ + '/account/getAvatar/User/defaultUser.png')
|
|
NickName = models.CharField(blank=True, max_length=32, default='', verbose_name=u'用户昵称')
|
|
NickName = models.CharField(blank=True, max_length=32, default='', verbose_name=u'用户昵称')
|
|
is_superuser = models.IntegerField(blank=True, default=0, verbose_name=u'用户类型')
|
|
is_superuser = models.IntegerField(blank=True, default=0, verbose_name=u'用户类型')
|
|
is_active = models.BooleanField(blank=True, default=False, verbose_name=u'用户活动状态')
|
|
is_active = models.BooleanField(blank=True, default=False, verbose_name=u'用户活动状态')
|
|
@@ -182,11 +188,11 @@ class Device_User(AbstractBaseUser):
|
|
|
|
|
|
objects = UserManager()
|
|
objects = UserManager()
|
|
|
|
|
|
- USERNAME_FIELD = 'userID' # 必须有一个唯一标识
|
|
|
|
- REQUIRED_FIELDS = ['is_superuser'] # 创建superuser时的必须字段
|
|
|
|
|
|
+ USERNAME_FIELD = 'userID' # 必须有一个唯一标识
|
|
|
|
+ REQUIRED_FIELDS = ['is_superuser'] # 创建superuser时的必须字段
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
- ordering = ('-data_joined', )
|
|
|
|
|
|
+ ordering = ('-data_joined',)
|
|
verbose_name = u'用户信息'
|
|
verbose_name = u'用户信息'
|
|
db_table = 'device_user'
|
|
db_table = 'device_user'
|
|
get_latest_by = 'last_login'
|
|
get_latest_by = 'last_login'
|
|
@@ -279,16 +285,19 @@ class Device_User(AbstractBaseUser):
|
|
permslist = list(permSet)
|
|
permslist = list(permSet)
|
|
permslist.sort()
|
|
permslist.sort()
|
|
return permslist
|
|
return permslist
|
|
|
|
+
|
|
def has_module_perms(self, app_label):
|
|
def has_module_perms(self, app_label):
|
|
return True
|
|
return True
|
|
|
|
+
|
|
@property
|
|
@property
|
|
def is_staff(self):
|
|
def is_staff(self):
|
|
return self.is_superuser
|
|
return self.is_superuser
|
|
|
|
|
|
|
|
+
|
|
class Device_Info(models.Model):
|
|
class Device_Info(models.Model):
|
|
id = models.CharField(blank=True, max_length=32, primary_key=True)
|
|
id = models.CharField(blank=True, max_length=32, primary_key=True)
|
|
userID = models.ForeignKey(Device_User, blank=True, to_field='userID',
|
|
userID = models.ForeignKey(Device_User, blank=True, to_field='userID',
|
|
- on_delete=models.CASCADE)
|
|
|
|
|
|
+ on_delete=models.CASCADE)
|
|
NickName = models.CharField(blank=True, max_length=32, verbose_name=u'设备名称')
|
|
NickName = models.CharField(blank=True, max_length=32, verbose_name=u'设备名称')
|
|
UID = models.CharField(blank=True, max_length=32, verbose_name=u'设备UID')
|
|
UID = models.CharField(blank=True, max_length=32, verbose_name=u'设备UID')
|
|
SID = models.CharField(blank=True, max_length=32, verbose_name=u'服务器ID')
|
|
SID = models.CharField(blank=True, max_length=32, verbose_name=u'服务器ID')
|
|
@@ -309,7 +318,7 @@ class Device_Info(models.Model):
|
|
primaryUserID = models.CharField(blank=True, verbose_name='主用户',
|
|
primaryUserID = models.CharField(blank=True, verbose_name='主用户',
|
|
help_text=u'该设备的主用户', max_length=32, default='')
|
|
help_text=u'该设备的主用户', max_length=32, default='')
|
|
data_joined = models.DateTimeField(blank=True, verbose_name=u'设备添加时间', auto_now_add=True)
|
|
data_joined = models.DateTimeField(blank=True, verbose_name=u'设备添加时间', auto_now_add=True)
|
|
- update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True,null=True)
|
|
|
|
|
|
+ update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True, null=True)
|
|
|
|
|
|
ip = models.CharField(blank=True, max_length=20, null=True, verbose_name=u'设备区域ip')
|
|
ip = models.CharField(blank=True, max_length=20, null=True, verbose_name=u'设备区域ip')
|
|
area = models.CharField(blank=True, max_length=100, null=True, verbose_name=u'设备区域area')
|
|
area = models.CharField(blank=True, max_length=100, null=True, verbose_name=u'设备区域area')
|
|
@@ -320,9 +329,9 @@ class Device_Info(models.Model):
|
|
WIFIName = models.CharField(blank=True, max_length=50, null=True, verbose_name=u'无线名称')
|
|
WIFIName = models.CharField(blank=True, max_length=50, null=True, verbose_name=u'无线名称')
|
|
WIFIIP = models.CharField(blank=True, max_length=20, null=True, verbose_name=u'无线ip')
|
|
WIFIIP = models.CharField(blank=True, max_length=20, null=True, verbose_name=u'无线ip')
|
|
WIFIPwd = models.CharField(blank=True, max_length=50, null=True, verbose_name=u'无线密码')
|
|
WIFIPwd = models.CharField(blank=True, max_length=50, null=True, verbose_name=u'无线密码')
|
|
- isDetector = models.BooleanField(blank=True, verbose_name=u'侦测开关0:关闭,1:开启)',default=False)
|
|
|
|
|
|
+ isDetector = models.BooleanField(blank=True, verbose_name=u'侦测开关0:关闭,1:开启)', default=False)
|
|
DetectorRank = models.IntegerField(blank=True, default=0, verbose_name=u'侦测灵敏度 1:低,2:中,3:高4:最高')
|
|
DetectorRank = models.IntegerField(blank=True, default=0, verbose_name=u'侦测灵敏度 1:低,2:中,3:高4:最高')
|
|
- iSNotification = models.BooleanField(blank=True, verbose_name=u'报警通知 0:关闭,1:开启)',default=False)
|
|
|
|
|
|
+ iSNotification = models.BooleanField(blank=True, verbose_name=u'报警通知 0:关闭,1:开启)', default=False)
|
|
MirrorType = models.IntegerField(blank=True, default=0, verbose_name=u'镜像类型 0:关闭镜像,1:上下镜像,2:左右镜像,3:上下左右镜像')
|
|
MirrorType = models.IntegerField(blank=True, default=0, verbose_name=u'镜像类型 0:关闭镜像,1:上下镜像,2:左右镜像,3:上下左右镜像')
|
|
RecordType = models.IntegerField(blank=True, default=0, verbose_name=u'录像模式(0:关闭,1:全是录像,3:报警录像)')
|
|
RecordType = models.IntegerField(blank=True, default=0, verbose_name=u'录像模式(0:关闭,1:全是录像,3:报警录像)')
|
|
TimeZone = models.CharField(blank=True, max_length=50, null=True, verbose_name=u'时区')
|
|
TimeZone = models.CharField(blank=True, max_length=50, null=True, verbose_name=u'时区')
|
|
@@ -331,6 +340,7 @@ class Device_Info(models.Model):
|
|
|
|
|
|
def __str__(self):
|
|
def __str__(self):
|
|
return self.NickName
|
|
return self.NickName
|
|
|
|
+
|
|
def model_to_dict(self, fields=None, exclude=None):
|
|
def model_to_dict(self, fields=None, exclude=None):
|
|
opts = self._meta
|
|
opts = self._meta
|
|
data = {}
|
|
data = {}
|
|
@@ -348,20 +358,23 @@ class Device_Info(models.Model):
|
|
db_table = 'device_info'
|
|
db_table = 'device_info'
|
|
ordering = ('-data_joined',)
|
|
ordering = ('-data_joined',)
|
|
verbose_name = u'用户设备信息表'
|
|
verbose_name = u'用户设备信息表'
|
|
- verbose_name_plural=verbose_name
|
|
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
|
|
class AuthToken_Token(models.Model):
|
|
class AuthToken_Token(models.Model):
|
|
- tokenID = models.OneToOneField(Device_User, blank=True,on_delete=models.CASCADE,
|
|
|
|
- primary_key=True) #定义一对一关系
|
|
|
|
|
|
+ tokenID = models.OneToOneField(Device_User, blank=True, on_delete=models.CASCADE,
|
|
|
|
+ primary_key=True) # 定义一对一关系
|
|
access_token = models.CharField(blank=True, max_length=256)
|
|
access_token = models.CharField(blank=True, max_length=256)
|
|
refresh_token = models.CharField(blank=True, max_length=256)
|
|
refresh_token = models.CharField(blank=True, max_length=256)
|
|
last_update = models.DateTimeField(blank=True, auto_now=True)
|
|
last_update = models.DateTimeField(blank=True, auto_now=True)
|
|
iCode = models.CharField(blank=True, max_length=12, verbose_name=u'干扰码')
|
|
iCode = models.CharField(blank=True, max_length=12, verbose_name=u'干扰码')
|
|
mCode = models.CharField(blank=True, max_length=64, verbose_name=u'设备码')
|
|
mCode = models.CharField(blank=True, max_length=64, verbose_name=u'设备码')
|
|
|
|
+
|
|
class Meta:
|
|
class Meta:
|
|
verbose_name = u'用户Token'
|
|
verbose_name = u'用户Token'
|
|
db_table = 'authtoken_token'
|
|
db_table = 'authtoken_token'
|
|
- ordering = ('-last_update', )
|
|
|
|
|
|
+ ordering = ('-last_update',)
|
|
|
|
+
|
|
|
|
|
|
class AuthToken_JWT(models.Model):
|
|
class AuthToken_JWT(models.Model):
|
|
jwtID = models.OneToOneField(Device_User, blank=True, on_delete=models.CASCADE,
|
|
jwtID = models.OneToOneField(Device_User, blank=True, on_delete=models.CASCADE,
|
|
@@ -375,12 +388,13 @@ class AuthToken_JWT(models.Model):
|
|
verbose_name = u'用户JWT'
|
|
verbose_name = u'用户JWT'
|
|
verbose_name_plural = verbose_name
|
|
verbose_name_plural = verbose_name
|
|
db_table = 'authtoken_jwt'
|
|
db_table = 'authtoken_jwt'
|
|
- ordering = ('-last_update', )
|
|
|
|
|
|
+ ordering = ('-last_update',)
|
|
|
|
+
|
|
|
|
|
|
class Email_Captcha(models.Model):
|
|
class Email_Captcha(models.Model):
|
|
userCaptcha = models.CharField(max_length=10, verbose_name=u'验证码')
|
|
userCaptcha = models.CharField(max_length=10, verbose_name=u'验证码')
|
|
userEmail = models.EmailField(max_length=50, verbose_name=u'邮箱')
|
|
userEmail = models.EmailField(max_length=50, verbose_name=u'邮箱')
|
|
- sendType = models.CharField(choices=(("register",u"注册"),("forget",u"找回密码")), max_length=15)
|
|
|
|
|
|
+ sendType = models.CharField(choices=(("register", u"注册"), ("forget", u"找回密码")), max_length=15)
|
|
sendTime = models.DateField(auto_now_add=True)
|
|
sendTime = models.DateField(auto_now_add=True)
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
@@ -388,12 +402,13 @@ class Email_Captcha(models.Model):
|
|
ordering = ('-sendTime',)
|
|
ordering = ('-sendTime',)
|
|
|
|
|
|
verbose_name = u'邮箱验证码'
|
|
verbose_name = u'邮箱验证码'
|
|
- verbose_name_plural=verbose_name
|
|
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
|
|
class Auth_Captcha(models.Model):
|
|
class Auth_Captcha(models.Model):
|
|
username = models.CharField(max_length=50, help_text=u'用户名(邮箱或电话号码)')
|
|
username = models.CharField(max_length=50, help_text=u'用户名(邮箱或电话号码)')
|
|
authcaptca = models.CharField(max_length=6, help_text=u'验证码')
|
|
authcaptca = models.CharField(max_length=6, help_text=u'验证码')
|
|
- sendtype = models.CharField(max_length=15, choices=(("register",u"注册"),("forget",u"找回密码")))
|
|
|
|
|
|
+ sendtype = models.CharField(max_length=15, choices=(("register", u"注册"), ("forget", u"找回密码")))
|
|
sendtime = models.DateTimeField(auto_now_add=True)
|
|
sendtime = models.DateTimeField(auto_now_add=True)
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
@@ -401,47 +416,51 @@ class Auth_Captcha(models.Model):
|
|
ordering = ('-sendtime',)
|
|
ordering = ('-sendtime',)
|
|
|
|
|
|
verbose_name = u'邮箱验证码'
|
|
verbose_name = u'邮箱验证码'
|
|
- verbose_name_plural=verbose_name
|
|
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
|
|
class Access_Log(models.Model):
|
|
class Access_Log(models.Model):
|
|
- id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
|
|
|
|
- user = models.CharField(max_length=100,null=True,db_index=True,blank=True,verbose_name=u'用户')
|
|
|
|
- operation = models.CharField(max_length=100,db_index=True,null=True,blank=True,verbose_name=u'操作')
|
|
|
|
- ip = models.CharField(max_length=100,null=True,blank=True,verbose_name=u'访问ip地址')
|
|
|
|
- url = models.CharField(max_length=150,null=True,blank=True,verbose_name=u'访问路径')
|
|
|
|
- status = models.IntegerField(null=True,blank=True,verbose_name=u'状态')
|
|
|
|
- time = models.DateTimeField(null=True,blank=True, db_index=True,verbose_name=u'访问时间')
|
|
|
|
- content = models.TextField(blank=True,null=True, verbose_name=u'参数内容')
|
|
|
|
|
|
+ id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
|
|
|
|
+ user = models.CharField(max_length=100, null=True, db_index=True, blank=True, verbose_name=u'用户')
|
|
|
|
+ operation = models.CharField(max_length=100, db_index=True, null=True, blank=True, verbose_name=u'操作')
|
|
|
|
+ ip = models.CharField(max_length=100, null=True, blank=True, verbose_name=u'访问ip地址')
|
|
|
|
+ url = models.CharField(max_length=150, null=True, blank=True, verbose_name=u'访问路径')
|
|
|
|
+ status = models.IntegerField(null=True, blank=True, verbose_name=u'状态')
|
|
|
|
+ time = models.DateTimeField(null=True, blank=True, db_index=True, verbose_name=u'访问时间')
|
|
|
|
+ content = models.TextField(blank=True, null=True, verbose_name=u'参数内容')
|
|
|
|
+
|
|
class Meta:
|
|
class Meta:
|
|
db_table = 'access_log'
|
|
db_table = 'access_log'
|
|
verbose_name = u'访问日志表'
|
|
verbose_name = u'访问日志表'
|
|
- verbose_name_plural=verbose_name
|
|
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
|
|
class Equipment_Stream(models.Model):
|
|
class Equipment_Stream(models.Model):
|
|
- id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
|
|
|
|
- userID = models.CharField(blank=True, max_length=32,verbose_name=u'用户ID')
|
|
|
|
|
|
+ id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
|
|
|
|
+ userID = models.CharField(blank=True, max_length=32, verbose_name=u'用户ID')
|
|
status = models.IntegerField(null=True, blank=True, verbose_name=u'状态')
|
|
status = models.IntegerField(null=True, blank=True, verbose_name=u'状态')
|
|
- uid = models.CharField(null=True, blank=True,max_length=32, verbose_name=u'设备ID')
|
|
|
|
|
|
+ uid = models.CharField(null=True, blank=True, max_length=32, verbose_name=u'设备ID')
|
|
channel = models.IntegerField(null=True, blank=True, verbose_name=u'设备通道')
|
|
channel = models.IntegerField(null=True, blank=True, verbose_name=u'设备通道')
|
|
- access_token = models.CharField(blank=True, max_length=128,verbose_name=u'设备推流验证令牌')
|
|
|
|
|
|
+ access_token = models.CharField(blank=True, max_length=128, verbose_name=u'设备推流验证令牌')
|
|
total_flow = models.FloatField(null=True, blank=True, verbose_name=u'传输总容量')
|
|
total_flow = models.FloatField(null=True, blank=True, verbose_name=u'传输总容量')
|
|
- add_time = models.DateTimeField(blank=True, null=True,verbose_name=u'加入时间', auto_now_add=True)
|
|
|
|
|
|
+ add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间', auto_now_add=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
rank = models.IntegerField(null=True, blank=True, verbose_name=u'推流套餐类型')
|
|
rank = models.IntegerField(null=True, blank=True, verbose_name=u'推流套餐类型')
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
db_table = 'equipment_stream'
|
|
db_table = 'equipment_stream'
|
|
verbose_name = u'用户设备推流表'
|
|
verbose_name = u'用户设备推流表'
|
|
- verbose_name_plural=verbose_name
|
|
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
|
|
class Equipment_Sensor(models.Model):
|
|
class Equipment_Sensor(models.Model):
|
|
- id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
|
|
|
|
|
|
+ id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
|
|
status = models.IntegerField(null=True, blank=True, verbose_name=u'状态')
|
|
status = models.IntegerField(null=True, blank=True, verbose_name=u'状态')
|
|
type = models.IntegerField(null=True, blank=True, verbose_name=u'类型')
|
|
type = models.IntegerField(null=True, blank=True, verbose_name=u'类型')
|
|
- name = models.CharField(null=True, blank=True,max_length=128, verbose_name=u'传感器名称')
|
|
|
|
- add_time = models.DateTimeField(blank=True,null=True, verbose_name=u'加入时间', auto_now_add=True)
|
|
|
|
|
|
+ name = models.CharField(null=True, blank=True, max_length=128, verbose_name=u'传感器名称')
|
|
|
|
+ add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间', auto_now_add=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
- uid = models.CharField(null=True, blank=True,max_length=32, verbose_name=u'设备ID')
|
|
|
|
|
|
+ uid = models.CharField(null=True, blank=True, max_length=32, verbose_name=u'设备ID')
|
|
|
|
|
|
def __str__(self):
|
|
def __str__(self):
|
|
return self.id
|
|
return self.id
|
|
@@ -449,37 +468,40 @@ class Equipment_Sensor(models.Model):
|
|
class Meta:
|
|
class Meta:
|
|
db_table = 'equipment_sensor'
|
|
db_table = 'equipment_sensor'
|
|
verbose_name = u'设备传感器表'
|
|
verbose_name = u'设备传感器表'
|
|
- verbose_name_plural=verbose_name
|
|
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
ordering = ('id',)
|
|
ordering = ('id',)
|
|
|
|
|
|
|
|
+
|
|
class Equipment_Info(models.Model):
|
|
class Equipment_Info(models.Model):
|
|
- id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
|
|
|
|
- devUid = models.CharField(null=True, blank=True,max_length=32, verbose_name=u'设备ID')
|
|
|
|
- devNickName = models.CharField(blank=True, max_length=32, default='',verbose_name=u'设备昵称')
|
|
|
|
|
|
+ id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
|
|
|
|
+ devUid = models.CharField(null=True, blank=True, max_length=32, verbose_name=u'设备ID')
|
|
|
|
+ devNickName = models.CharField(blank=True, max_length=32, default='', verbose_name=u'设备昵称')
|
|
Channel = models.IntegerField(null=True, blank=True, verbose_name=u'设备通道')
|
|
Channel = models.IntegerField(null=True, blank=True, verbose_name=u'设备通道')
|
|
eventType = models.IntegerField(null=True, blank=True, verbose_name=u'事件类型')
|
|
eventType = models.IntegerField(null=True, blank=True, verbose_name=u'事件类型')
|
|
- viewAccont = models.CharField(blank=True,null=True, max_length=32, verbose_name=u'设备账户')
|
|
|
|
- viewPwd = models.CharField(blank=True, null=True,max_length=32, verbose_name=u'设备密码')
|
|
|
|
|
|
+ viewAccont = models.CharField(blank=True, null=True, max_length=32, verbose_name=u'设备账户')
|
|
|
|
+ viewPwd = models.CharField(blank=True, null=True, max_length=32, verbose_name=u'设备密码')
|
|
status = models.BooleanField(blank=True, default=False, verbose_name=u'事件状态')
|
|
status = models.BooleanField(blank=True, default=False, verbose_name=u'事件状态')
|
|
alarm = models.CharField(blank=True, max_length=256, verbose_name=u'报警信息')
|
|
alarm = models.CharField(blank=True, max_length=256, verbose_name=u'报警信息')
|
|
- eventTime = models.CharField(blank=True,null=True, max_length=16, verbose_name=u'设备报警时间')
|
|
|
|
- receiveTime = models.CharField(blank=True,null=True, max_length=16, verbose_name=u'接收到报警时间')
|
|
|
|
- userID = models.ForeignKey(Device_User, null=True,blank=True, to_field='userID',
|
|
|
|
- on_delete=models.CASCADE)
|
|
|
|
|
|
+ eventTime = models.CharField(blank=True, null=True, max_length=16, verbose_name=u'设备报警时间')
|
|
|
|
+ receiveTime = models.CharField(blank=True, null=True, max_length=16, verbose_name=u'接收到报警时间')
|
|
|
|
+ userID = models.ForeignKey(Device_User, null=True, blank=True, to_field='userID',
|
|
|
|
+ on_delete=models.CASCADE)
|
|
|
|
+
|
|
def __str__(self):
|
|
def __str__(self):
|
|
return self.id
|
|
return self.id
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
db_table = 'equipment_info'
|
|
db_table = 'equipment_info'
|
|
verbose_name = u'设备信息推送表'
|
|
verbose_name = u'设备信息推送表'
|
|
- verbose_name_plural=verbose_name
|
|
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
ordering = ('-id',)
|
|
ordering = ('-id',)
|
|
|
|
|
|
|
|
+
|
|
class Feedback_Info(models.Model):
|
|
class Feedback_Info(models.Model):
|
|
- id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
|
|
|
|
|
|
+ id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
|
|
userID = models.CharField(blank=True, max_length=32, verbose_name=u'用户ID')
|
|
userID = models.CharField(blank=True, max_length=32, verbose_name=u'用户ID')
|
|
status = models.BooleanField(blank=True, default=False, verbose_name=u'状态:0未解决/解决')
|
|
status = models.BooleanField(blank=True, default=False, verbose_name=u'状态:0未解决/解决')
|
|
- content = models.TextField(blank=True,null=True, verbose_name=u'反馈描述')
|
|
|
|
|
|
+ content = models.TextField(blank=True, null=True, verbose_name=u'反馈描述')
|
|
add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间/反馈时间', auto_now_add=True)
|
|
add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间/反馈时间', auto_now_add=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
|
|
|
|
@@ -489,17 +511,17 @@ class Feedback_Info(models.Model):
|
|
class Meta:
|
|
class Meta:
|
|
db_table = 'feedback_info'
|
|
db_table = 'feedback_info'
|
|
verbose_name = u'用户反馈信息表'
|
|
verbose_name = u'用户反馈信息表'
|
|
- verbose_name_plural=verbose_name
|
|
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
ordering = ('id',)
|
|
ordering = ('id',)
|
|
|
|
|
|
|
|
|
|
class Store_Meal(models.Model):
|
|
class Store_Meal(models.Model):
|
|
- id = models.AutoField(primary_key=True,verbose_name=u'自增ID')
|
|
|
|
|
|
+ id = models.AutoField(primary_key=True, verbose_name=u'自增ID')
|
|
title = models.CharField(blank=True, max_length=32, verbose_name=u'标题')
|
|
title = models.CharField(blank=True, max_length=32, verbose_name=u'标题')
|
|
price = models.CharField(blank=True, max_length=32, verbose_name=u'价格')
|
|
price = models.CharField(blank=True, max_length=32, verbose_name=u'价格')
|
|
day = models.IntegerField(null=True, blank=True, verbose_name=u'存储时间')
|
|
day = models.IntegerField(null=True, blank=True, verbose_name=u'存储时间')
|
|
- content = models.TextField(blank=True,null=True, verbose_name=u'描述')
|
|
|
|
- add_time = models.DateTimeField(blank=True,null=True, verbose_name=u'加入时间', auto_now_add=True)
|
|
|
|
|
|
+ content = models.TextField(blank=True, null=True, verbose_name=u'描述')
|
|
|
|
+ add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间', auto_now_add=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
|
|
|
|
def __str__(self):
|
|
def __str__(self):
|
|
@@ -508,37 +530,38 @@ class Store_Meal(models.Model):
|
|
class Meta:
|
|
class Meta:
|
|
db_table = 'store_meal'
|
|
db_table = 'store_meal'
|
|
verbose_name = u'存储套餐'
|
|
verbose_name = u'存储套餐'
|
|
- verbose_name_plural=verbose_name
|
|
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
ordering = ('id',)
|
|
ordering = ('id',)
|
|
|
|
|
|
|
|
|
|
class Device_Meal(models.Model):
|
|
class Device_Meal(models.Model):
|
|
- id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
|
|
|
|
|
|
+ id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
|
|
status = models.IntegerField(null=True, blank=True, verbose_name=u'状态')
|
|
status = models.IntegerField(null=True, blank=True, verbose_name=u'状态')
|
|
- uid = models.CharField(null=True, blank=True,max_length=32,verbose_name=u'设备ID')
|
|
|
|
|
|
+ uid = models.CharField(null=True, blank=True, max_length=32, verbose_name=u'设备ID')
|
|
channel = models.IntegerField(null=True, blank=True, verbose_name=u'设备通道')
|
|
channel = models.IntegerField(null=True, blank=True, verbose_name=u'设备通道')
|
|
- add_time = models.DateTimeField(blank=True, null=True,verbose_name=u'加入时间', auto_now_add=True)
|
|
|
|
|
|
+ add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间', auto_now_add=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
end_time = models.DateTimeField(blank=True, verbose_name=u'最后时间')
|
|
end_time = models.DateTimeField(blank=True, verbose_name=u'最后时间')
|
|
rank = models.ForeignKey(Store_Meal, blank=True, to_field='id',
|
|
rank = models.ForeignKey(Store_Meal, blank=True, to_field='id',
|
|
- on_delete=models.CASCADE,verbose_name='套餐类型')
|
|
|
|
|
|
+ on_delete=models.CASCADE, verbose_name='套餐类型')
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
db_table = 'device_meal'
|
|
db_table = 'device_meal'
|
|
verbose_name = u'设备关联套餐表'
|
|
verbose_name = u'设备关联套餐表'
|
|
- verbose_name_plural=verbose_name
|
|
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
ordering = ('id',)
|
|
ordering = ('id',)
|
|
|
|
|
|
def __str__(self):
|
|
def __str__(self):
|
|
return self.id
|
|
return self.id
|
|
|
|
|
|
|
|
+
|
|
class Equipment_Version(models.Model):
|
|
class Equipment_Version(models.Model):
|
|
eid = models.CharField(blank=True, max_length=32, primary_key=True)
|
|
eid = models.CharField(blank=True, max_length=32, primary_key=True)
|
|
ESN = models.CharField(blank=True, max_length=32, verbose_name=u'设备规格名称')
|
|
ESN = models.CharField(blank=True, max_length=32, verbose_name=u'设备规格名称')
|
|
code = models.CharField(blank=True, max_length=32, verbose_name=u'设备规格代码')
|
|
code = models.CharField(blank=True, max_length=32, verbose_name=u'设备规格代码')
|
|
version = models.CharField(blank=True, max_length=32, verbose_name=u'设备版本')
|
|
version = models.CharField(blank=True, max_length=32, verbose_name=u'设备版本')
|
|
softwareVersion = models.CharField(blank=True, max_length=32, verbose_name=u'软件版本')
|
|
softwareVersion = models.CharField(blank=True, max_length=32, verbose_name=u'软件版本')
|
|
- chipModelList2Code = models.CharField(max_length=32,blank=True, verbose_name=u'主芯片码')
|
|
|
|
|
|
+ chipModelList2Code = models.CharField(max_length=32, blank=True, verbose_name=u'主芯片码')
|
|
channel = models.IntegerField(blank=True, verbose_name=u'通道数')
|
|
channel = models.IntegerField(blank=True, verbose_name=u'通道数')
|
|
resolutionRatio = models.IntegerField(blank=True, verbose_name=u'分辨率')
|
|
resolutionRatio = models.IntegerField(blank=True, verbose_name=u'分辨率')
|
|
type = models.CharField(blank=True, max_length=16, verbose_name=u'设备机型')
|
|
type = models.CharField(blank=True, max_length=16, verbose_name=u'设备机型')
|
|
@@ -547,10 +570,10 @@ class Equipment_Version(models.Model):
|
|
fileSize = models.IntegerField(blank=True, verbose_name=u'文件总大小')
|
|
fileSize = models.IntegerField(blank=True, verbose_name=u'文件总大小')
|
|
filePath = models.CharField(blank=True, max_length=256, verbose_name=u'升级文件路径')
|
|
filePath = models.CharField(blank=True, max_length=256, verbose_name=u'升级文件路径')
|
|
Description = models.TextField(blank=True, default='', verbose_name=u'描述信息')
|
|
Description = models.TextField(blank=True, default='', verbose_name=u'描述信息')
|
|
- fileMd5 = models.CharField(blank=True,max_length=32,null=True,verbose_name=u'上传文件MD5加密')
|
|
|
|
|
|
+ fileMd5 = models.CharField(blank=True, max_length=32, null=True, verbose_name=u'上传文件MD5加密')
|
|
status = models.BooleanField(blank=True, default=True, verbose_name=u'是否开启更新状态')
|
|
status = models.BooleanField(blank=True, default=True, verbose_name=u'是否开启更新状态')
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
- lang = models.CharField(blank=True, null=True,default=0, max_length=32, verbose_name=u'ota包内置语言')
|
|
|
|
|
|
+ lang = models.CharField(blank=True, null=True, default=0, max_length=32, verbose_name=u'ota包内置语言')
|
|
|
|
|
|
def __str__(self):
|
|
def __str__(self):
|
|
return self.eid
|
|
return self.eid
|
|
@@ -560,16 +583,17 @@ class Equipment_Version(models.Model):
|
|
ordering = ('-data_joined',)
|
|
ordering = ('-data_joined',)
|
|
db_table = 'equipment_version'
|
|
db_table = 'equipment_version'
|
|
|
|
|
|
|
|
+
|
|
class App_Info(models.Model):
|
|
class App_Info(models.Model):
|
|
- id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
|
|
|
|
|
|
+ id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
|
|
appBundleId = models.CharField(blank=True, max_length=32, verbose_name=u'appID')
|
|
appBundleId = models.CharField(blank=True, max_length=32, verbose_name=u'appID')
|
|
appName = models.CharField(blank=True, max_length=32, verbose_name=u'app名称')
|
|
appName = models.CharField(blank=True, max_length=32, verbose_name=u'app名称')
|
|
systemLanguage = models.CharField(blank=True, max_length=32, verbose_name=u'系统语言')
|
|
systemLanguage = models.CharField(blank=True, max_length=32, verbose_name=u'系统语言')
|
|
newAppversion = models.CharField(blank=True, max_length=12, verbose_name=u'系统版本')
|
|
newAppversion = models.CharField(blank=True, max_length=12, verbose_name=u'系统版本')
|
|
bundleVersion = models.CharField(blank=True, max_length=12, verbose_name=u'项目版本')
|
|
bundleVersion = models.CharField(blank=True, max_length=12, verbose_name=u'项目版本')
|
|
- content = models.TextField(blank=True,null=True, verbose_name=u'更新内容')
|
|
|
|
|
|
+ content = models.TextField(blank=True, null=True, verbose_name=u'更新内容')
|
|
app_type = models.IntegerField(null=True, blank=True, verbose_name=u'app类型')
|
|
app_type = models.IntegerField(null=True, blank=True, verbose_name=u'app类型')
|
|
- add_time = models.DateTimeField(blank=True,null=True, verbose_name=u'加入时间', auto_now_add=True)
|
|
|
|
|
|
+ add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间', auto_now_add=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
downloadLink = models.TextField(blank=True, null=True, verbose_name='升级')
|
|
downloadLink = models.TextField(blank=True, null=True, verbose_name='升级')
|
|
|
|
|
|
@@ -579,5 +603,5 @@ class App_Info(models.Model):
|
|
class Meta:
|
|
class Meta:
|
|
db_table = 'app_info'
|
|
db_table = 'app_info'
|
|
verbose_name = u'app信息表'
|
|
verbose_name = u'app信息表'
|
|
- verbose_name_plural=verbose_name
|
|
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
ordering = ('id',)
|
|
ordering = ('id',)
|