|
@@ -10,63 +10,58 @@ from utils.exceptions import CustomError
|
|
from django.db import transaction
|
|
from django.db import transaction
|
|
|
|
|
|
class Employee(models.Model):
|
|
class Employee(models.Model):
|
|
- LEAVE_UNUSED = 1
|
|
|
|
- WORKING = 2
|
|
|
|
- DAY_OFF = 3
|
|
|
|
- LEAVE_OFFICE = 4
|
|
|
|
|
|
+ ENABLE = 1
|
|
|
|
+ DISABLE = 2
|
|
STATUS_CHOICES = (
|
|
STATUS_CHOICES = (
|
|
- (LEAVE_UNUSED, u'在职'),
|
|
|
|
- (WORKING, u'工作中'),
|
|
|
|
- (DAY_OFF, u'调休'),
|
|
|
|
- (LEAVE_OFFICE, u'离职'),
|
|
|
|
|
|
+ (ENABLE, u'在用'),
|
|
|
|
+ (DISABLE, u'禁用'),
|
|
)
|
|
)
|
|
- EMPLOYEE = 1
|
|
|
|
- VISITOR = 2
|
|
|
|
|
|
+
|
|
|
|
+ SUPPER = 1
|
|
|
|
+ ADMIN = 2
|
|
|
|
+ EMPLOYEE = 3
|
|
|
|
+ REPAIR = 4
|
|
TYPE_CHOICES = (
|
|
TYPE_CHOICES = (
|
|
- (EMPLOYEE, u'职工'),
|
|
|
|
- (VISITOR, u'游客')
|
|
|
|
|
|
+ (SUPPER, u'平台管理员'),
|
|
|
|
+ (ADMIN, u'管理者'),
|
|
|
|
+ (EMPLOYEE, u'检修人'),
|
|
|
|
+ (REPAIR, u'报修人'),
|
|
)
|
|
)
|
|
name = models.CharField(max_length=100, verbose_name=u"姓名")
|
|
name = models.CharField(max_length=100, verbose_name=u"姓名")
|
|
tel = models.CharField(max_length=50, verbose_name=u'电话')
|
|
tel = models.CharField(max_length=50, verbose_name=u'电话')
|
|
gender = models.PositiveSmallIntegerField(choices=settings.GENDER_CHOICES, verbose_name=u'性别', default=settings.MALE)
|
|
gender = models.PositiveSmallIntegerField(choices=settings.GENDER_CHOICES, verbose_name=u'性别', default=settings.MALE)
|
|
- status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, verbose_name=u'状态',default=LEAVE_UNUSED)
|
|
|
|
|
|
+ status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, verbose_name=u'状态',default=ENABLE)
|
|
user = models.OneToOneField(settings.AUTH_USER_MODEL, editable=False, related_name='employee',
|
|
user = models.OneToOneField(settings.AUTH_USER_MODEL, editable=False, related_name='employee',
|
|
- on_delete=models.PROTECT, verbose_name=u'职工', null=True)
|
|
|
|
|
|
+ on_delete=models.PROTECT, verbose_name=u'账号', null=True)
|
|
position = models.ForeignKey(Option, verbose_name=u'职位', on_delete=models.PROTECT, null=True)
|
|
position = models.ForeignKey(Option, verbose_name=u'职位', on_delete=models.PROTECT, null=True)
|
|
- department = models.ForeignKey(Department, verbose_name=u'部门', on_delete=models.PROTECT, null=True)
|
|
|
|
create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"创建人", on_delete=models.PROTECT,
|
|
create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"创建人", on_delete=models.PROTECT,
|
|
editable=False, related_name='create_user',null=True)
|
|
editable=False, related_name='create_user',null=True)
|
|
face = models.CharField(max_length=200, verbose_name=u'头像', null=True)
|
|
face = models.CharField(max_length=200, verbose_name=u'头像', null=True)
|
|
baoxiu_count = models.IntegerField(verbose_name='报修次数', default=0)
|
|
baoxiu_count = models.IntegerField(verbose_name='报修次数', default=0)
|
|
- forbid_baoxiu = models.BooleanField(verbose_name='是否禁用报修', default=False)
|
|
|
|
tenant = models.ForeignKey(Tenant, verbose_name=u'租户', editable=False, on_delete=models.PROTECT,null=True)
|
|
tenant = models.ForeignKey(Tenant, verbose_name=u'租户', editable=False, on_delete=models.PROTECT,null=True)
|
|
- type = models.PositiveSmallIntegerField(verbose_name=u'人员类型', choices=TYPE_CHOICES, default=VISITOR)
|
|
|
|
|
|
+ type = models.PositiveSmallIntegerField(verbose_name=u'人员类型', choices=TYPE_CHOICES, default=REPAIR)
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
db_table = "employee"
|
|
db_table = "employee"
|
|
- verbose_name = u"员工管理"
|
|
|
|
|
|
+ verbose_name = u"用户管理"
|
|
ordering = ['-id']
|
|
ordering = ['-id']
|
|
index_together = (
|
|
index_together = (
|
|
'name',
|
|
'name',
|
|
'tel',
|
|
'tel',
|
|
)
|
|
)
|
|
default_permissions = ()
|
|
default_permissions = ()
|
|
- permissions = [
|
|
|
|
- ('browse_employee', u'查看'),
|
|
|
|
- ('add_employee', u'添加'),
|
|
|
|
- ('delete_employee', u'删除'),
|
|
|
|
- ]
|
|
|
|
|
|
|
|
@staticmethod
|
|
@staticmethod
|
|
def create_admin(tenant, username, password):
|
|
def create_admin(tenant, username, password):
|
|
- user = User.objects.create_superuser_tenant(username, password)
|
|
|
|
|
|
+ # 租户添加管理者
|
|
|
|
+ user = User.objects.create_tenant(username, password)
|
|
instance = Employee.objects.create(
|
|
instance = Employee.objects.create(
|
|
name=username,
|
|
name=username,
|
|
tel='',
|
|
tel='',
|
|
gender=settings.MALE,
|
|
gender=settings.MALE,
|
|
user=user,
|
|
user=user,
|
|
tenant=tenant,
|
|
tenant=tenant,
|
|
- type=Employee.EMPLOYEE,
|
|
|
|
|
|
+ type=Employee.ADMIN,
|
|
)
|
|
)
|
|
return instance
|
|
return instance
|
|
|
|
|
|
@@ -82,10 +77,11 @@ class Employee(models.Model):
|
|
return instance
|
|
return instance
|
|
|
|
|
|
@staticmethod
|
|
@staticmethod
|
|
- def getOrRegister(tenant, user):
|
|
|
|
- customer = Employee.objects.filter(tenant=tenant, user=user).first()
|
|
|
|
|
|
+ def getOrRegister(user):
|
|
|
|
+ # 小程序登录后,自动注册报修人
|
|
|
|
+ customer = Employee.objects.filter(user=user).first()
|
|
if customer:
|
|
if customer:
|
|
return customer
|
|
return customer
|
|
with transaction.atomic():
|
|
with transaction.atomic():
|
|
- customer = Employee.objects.create(user=user,type=Employee.VISITOR, tel=user.username, name=user.username, tenant=tenant)
|
|
|
|
|
|
+ customer = Employee.objects.create(user=user,type=Employee.REPAIR, tel=user.username, name=user.username)
|
|
return customer
|
|
return customer
|