Django 审批系统表结构设计

 

 

class FlowEngine(models.Model):
    """审批流引擎"""
    name = models.CharField(max_length=128, verbose_name="审批流名称")

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = "工作流引擎"
        verbose_name_plural = verbose_name


class FlowNode(models.Model):
    """审批流引擎节点"""
    name = models.CharField(max_length=128)
    flow = models.ForeignKey("FlowEngine")
    node_order = models.SmallIntegerField()
    approval_role = models.ForeignKey("Role")

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = "工作流节点"
        verbose_name_plural = verbose_name


class VMTemplate(models.Model):
    name = models.CharField(max_length=128)
    os = models.CharField(max_length=128)


class Service(models.Model):
    """服务目录"""
    name = models.CharField(max_length=128)
    template = models.ForeignKey("VMTemplate")
    flow = models.ForeignKey("FlowEngine")

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = "服务目录"
        verbose_name_plural = verbose_name


class ServiceRequest(models.Model):
    name = models.CharField(max_length=128)
    template = models.ForeignKey("VMTemplate")
    ip = models.GenericIPAddressField()
    cpu = models.SmallIntegerField()
    memory = models.IntegerField()
    disk = models.IntegerField()
    owner = models.ForeignKey("MyUser")
    type_choices = (
        (0, "虚拟机申请"),
        (1, "虚拟机修改"),
        (2, "虚拟机删除"),
    )
    type = models.SmallIntegerField(choices=type_choices, default=0, verbose_name="类型")
    request_status_choices = (
        (0, "审批中"),
        (1, "已审批"),
        (2, "拒绝"),
        (3, "创建中"),
        (4, "已创建"),
    )
    request_status = models.SmallIntegerField(choices=request_status_choices, default=0, verbose_name="状态")


class RequestFlow(models.Model):
    request = models.ForeignKey("ServiceRequest")
    approval_user = models.ForeignKey("MyUser")
    approval_status_choices = (
        (0, "等待"),
        (1, "审批中"),
        (2, "同意"),
        (3, "拒绝"),
    )
    approval_status = models.SmallIntegerField(choices=approval_status_choices, default=0)
    order = models.SmallIntegerField()

class Role(models.Model):
name = models.CharField(max_length=128, verbose_name="角色名称")
permission_level = models.SmallIntegerField()

def __str__(self):
return self.name

class Meta:
verbose_name = "角色"
verbose_name_plural = verbose_name

 

posted @ 2017-11-22 22:54  Vincen_shen  阅读(4208)  评论(0)    收藏  举报