Initial commit from ZIP

This commit is contained in:
kusz committed 2024-11-27 13:18:16 +01:00
commit 378d4692a9
454 files changed
+40367

No files matched your search

+47
View File
@@ -0,0 +1,47 @@
from django.utils.translation import gettext_lazy as _
from enum import Enum
from django.db import models
from rules.contrib.models import RulesModel
from outbo.apps.core.fields import EnumCharField
from outbo.apps.core.models import TimestampableDeletableMixin
from outbo.apps.projects import rules
from outbo.apps.projects.models import Project
class MembershipType(Enum):
AGENCY = "agency"
CLIENT = "client"
SUPPLIER = "supplier"
class Member(TimestampableDeletableMixin, RulesModel):
class Meta:
rules_permissions = {
"view": rules.can_read_project_member,
"add": rules.can_create_project_member,
"change": rules.can_update_project_member,
"delete": rules.can_delete_project_member,
}
user = models.ForeignKey(
to="authentication.User",
on_delete=models.CASCADE,
related_name="member",
related_query_name="member",
)
project = models.ForeignKey(
to=Project,
on_delete=models.CASCADE,
related_name="members",
related_query_name="member",
)
role = EnumCharField(
verbose_name=_("membership type"),
max_length=25,
blank=False,
null=False,
default=MembershipType.SUPPLIER,
enum=MembershipType,
)