initial commit
This commit is contained in:
70
core/apps/contracts/models/contracts.py
Normal file
70
core/apps/contracts/models/contracts.py
Normal file
@@ -0,0 +1,70 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from core.utils.base_model import UUIDPrimaryKeyBaseModel
|
||||
from core.apps.contracts.validators.contracts import (
|
||||
ContractValidator,
|
||||
name_validator
|
||||
)
|
||||
|
||||
|
||||
class ContractModel(UUIDPrimaryKeyBaseModel):
|
||||
|
||||
name = models.CharField(
|
||||
_("name"),
|
||||
validators=[
|
||||
name_validator,
|
||||
],
|
||||
max_length=255
|
||||
)
|
||||
|
||||
identifier = models.CharField(
|
||||
_("Identifier"),
|
||||
null=False,
|
||||
blank=False
|
||||
)
|
||||
|
||||
allow_add_files = models.BooleanField(default=False)
|
||||
allow_delete_files = models.BooleanField(default=False)
|
||||
|
||||
@property
|
||||
def file_permissions(self) -> str:
|
||||
permissions: list[str] = []
|
||||
|
||||
if self.allow_add_files:
|
||||
permissions.append("add")
|
||||
if self.allow_delete_files:
|
||||
permissions.append("delete")
|
||||
|
||||
if len(permissions) == 2:
|
||||
return "All"
|
||||
|
||||
return ", ".join(permission.capitalize() for permission in permissions)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
@classmethod
|
||||
def _create_fake(cls):
|
||||
return cls.objects.create(
|
||||
name="mock",
|
||||
)
|
||||
|
||||
def clean(self) -> None:
|
||||
super().clean()
|
||||
|
||||
validator = ContractValidator(self)
|
||||
validator()
|
||||
|
||||
class Meta: # type: ignore
|
||||
db_table = "contracts"
|
||||
|
||||
verbose_name = _("Contract")
|
||||
verbose_name_plural = _("Contracts")
|
||||
|
||||
indexes = [
|
||||
models.Index(
|
||||
fields=["name"],
|
||||
name="contracts_name_inx"
|
||||
)
|
||||
]
|
||||
Reference in New Issue
Block a user