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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM