forked from zhuinfo/Django-ERP
-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathmodels.py
79 lines (66 loc) · 3.11 KB
/
models.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# coding=utf-8
from django.db import models
from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy as _
from common import const
from common import generic
class Site(models.Model):
"""
站点,一个站点下可有多个公司,处于同一个站点下的用户逻辑上位于同一个组织
"""
index_weight = 1
begin = models.DateField(_('begin date'), blank=True,null=True)
end = models.DateField(_('end date'), blank=True,null=True)
name = models.CharField(_('site name'), max_length=const.DB_CHAR_NAME_40)
description = models.TextField(_('site description'),blank=True,null=True)
user = models.ManyToManyField(User,verbose_name=_('administrator'))
def __unicode__(self):
return u'%s'%self.name
class Meta:
verbose_name = _('Site')
verbose_name_plural = _('Site')
class Module(generic.BO):
"""
模块管理
"""
index_weight = 2
code = models.CharField(_("module code"),max_length=const.DB_CHAR_CODE_6,blank=True,null=True)
name = models.CharField(_("module name"),max_length=const.DB_CHAR_NAME_40)
url = models.URLField(_("module url"),blank=True,null=True,max_length=const.DB_CHAR_NAME_80)
weight = models.IntegerField(_("weight"),blank=True,null=True,default=99)
icon = models.CharField(_("style class"),blank=True,null=True,max_length=const.DB_CHAR_NAME_40)
parent = models.ForeignKey('self',blank=True,null=True,verbose_name=_("parent"))
status = models.BooleanField(_("in use"),default=True)
class Meta:
verbose_name = _("module")
verbose_name_plural = _("module")
class Menu(generic.BO):
"""
菜单管理
"""
index_weight = 3
module = models.ForeignKey(Module,verbose_name=_("module"))
code = models.CharField(_("menu code"),max_length=const.DB_CHAR_CODE_6,blank=True,null=True)
name = models.CharField(_("menu name"),max_length=const.DB_CHAR_NAME_40)
url = models.URLField(_("menu url"),blank=True,null=True,max_length=const.DB_CHAR_NAME_80)
weight = models.IntegerField(_("weight"),blank=True,null=True,default=99)
icon = models.CharField(_("style class"),blank=True,null=True,max_length=const.DB_CHAR_NAME_40)
status = models.BooleanField(_("in use"),default=True)
class Meta:
verbose_name = _("menu")
verbose_name_plural = _("menu")
class Role(generic.BO):
"""
角色管理,分配用户所拥有的菜单
"""
index_weight = 4
code = models.CharField(_("role code"),max_length=const.DB_CHAR_CODE_6,blank=True,null=True)
name = models.CharField(_("role name"),max_length=const.DB_CHAR_NAME_40)
description = models.CharField(_("description"),max_length=const.DB_CHAR_NAME_80,blank=True,null=True)
status = models.BooleanField(_("in use"),default=True)
parent = models.ForeignKey('self',blank=True,null=True,verbose_name=_("parent"))
users = models.ManyToManyField(User,verbose_name=_("role users"),blank=True)
menus = models.ManyToManyField(Menu,verbose_name=_("role menus"),blank=True)
class Meta:
verbose_name = _("role")
verbose_name_plural = _("role")