项目成员#

背景#

描述项目的负责人及其所属的负责组。

  • 负责人 Owner 代表 负责部委。通常是项目管理权限。

  • 复核人 Reviewer 代表 复核部委。通常是汇报链条的上级,或者同级的副手,少部分情况可能是辅助的下级。通常是项目管理权限。

  • 参与者 Member 来自 参与部委。通常是内部维护者。通常拥有读写权限。

  • 关注者 Observer 来自 关注部委。通常是内部用户,比如文档的读者。通常只有读权限。

项目成员关联模型ProjectUserRelation#

项目成员关联模型 ProjectUserRelation 用于描述项目参与者之间的关系。该模型定义了项目成员及其在项目中的角色和权限。

属性#

  • id: 关联模型的唯一标识符。

  • created_at

  • updated_at

  • project_id: 项目的唯一标识符,用于指示该关联属于哪个项目。

  • user_id: 用户的唯一标识符,用于指示该关联属于哪个用户。

  • group_id: 组织用户组的唯一标识符,用来指示该关联用户代表哪个组织用户组。

  • role: 项目成员的角色。可以是固定预定义的角色,也可以根据具体项目的需要进行自定义。

关联关系#

  • project: 外键关联。该关联所属的项目。

  • user: 外键关联。该关联所属的用户。

  • group: 外键关联。该关联所属的组织用户组。

示例代码#

from django.db import models as models
from django_quanttide import models as quanttide_models
# 补充数据模型导入。i.e.
# from <> import Project, User, ProjectUserRole

class ProjectUserRelation(models.Model):
    created_at = quanttide_models.CreatedAt()
    updated_at = quanttide_models.UpdatedAt()
    project = models.ForeignKey(Project, on_delete=models.CASCADE, verbose_name='关联项目')
    user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='关联用户')
    group = models.ForeignKey(OrganizationUserGroup, null=True, on_delete=models.SET_NULL, verbose_name='关联组织用户组')
    role = models.ForeignKey(ProjectUserRole, on_delete=models.SET_NULL, verbose_name='关联角色')

项目成员角色模型ProjectUserRole#

定义项目中可供选择的角色选项。该模型包含了项目成员在项目中可能担任的各种角色,以及每个角色可能具备的权限和责任。

属性#

  • id: 角色模型的唯一标识符。

  • created_at

  • updated_at

  • name: 角色的标识。例如ownerreviewermemberobserver等。

  • verbose_name: 角色的名称。例如”负责人”、”复核人”、”参与者”、”关注者”等。

  • description: 角色的描述,提供关于该角色职责和权限的详细信息。

示例代码#

from django_quanttide import models

class ProjectUserRole(models.Model):
    name = models.NameField()
    created_at = models.CreatedAt()
    updated_at = models.UpdatedAt()
    verbose_name = models.VerboseNameField()
    description = models.DescriptionField()