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