from django.contrib.auth import get_user_model from django.db import models from tickets.models import Ticket from dbsynce.docs.database.permissions import Permissions as HelpTexts from dbsynce.docs.verbose_names.permissions import Permissions as VerboseName from core.settings_vars import METASERVICE_ID from dbsynce.lib import dicts class Permissions(models.Model): """ Разрешения - (проверки/экзамены). По смыслу это что-то вроде “документа на право что-то делать” - на данном этапе это ограничено метасервисом/платформой, при этом он может быть полностью цифровым (выданным платформой/сервисом). """ # ID METASERVICE id_metaservice = models.PositiveIntegerField( default=METASERVICE_ID, verbose_name = VerboseName.id_metaservice, help_text=HelpTexts.id_metaservice, ) # DATA id_permissions = models.BigIntegerField( verbose_name = VerboseName.id_permissions, help_text=HelpTexts.id_permissions, ) #permission_type = models.BigIntegerField( # help_text=HelpTexts.permission_type #) check_level = models.CharField( max_length=10, verbose_name = VerboseName.check_level, help_text=HelpTexts.check_level, ) status = models.CharField( max_length=1, default="1", choices = list(dicts.activity_status_by_code.items()), verbose_name = VerboseName.status, help_text=HelpTexts.status, ) check_date = models.DateTimeField( null=True, verbose_name = VerboseName.check_date, help_text=HelpTexts.check_date, ) expire_date = models.DateField( null=True, verbose_name = VerboseName.expire_date, help_text=HelpTexts.expire_date, ) # OTHER is_global = models.CharField( max_length=1, default="f", choices = list(dicts.is_global_by_code.items()), verbose_name = VerboseName.is_global, help_text=HelpTexts.is_global, ) is_visible = models.CharField( max_length=1, default="f", choices = list(dicts.is_visible_by_code.items()), verbose_name = VerboseName.is_visible, help_text=HelpTexts.is_visible, ) # FK ticket_status = models.ForeignKey( Ticket, on_delete=models.DO_NOTHING, null=True, verbose_name = VerboseName.ticket_status, help_text=HelpTexts.ticket_status, ) user = models.ForeignKey( get_user_model(), related_name="user_perm", on_delete=models.DO_NOTHING, null=True, verbose_name = VerboseName.user, help_text=HelpTexts.user ) checked_by = models.ForeignKey( get_user_model(), related_name="checked_by_perm", on_delete=models.DO_NOTHING, null=True, verbose_name = VerboseName.checked_by, help_text=HelpTexts.checked_by, ) class Meta: db_table = "permissions" verbose_name = "Разрешение" verbose_name_plural = "Разрешения"