shafafiyat/certificates/models.py

38 lines
1.7 KiB
Python

from django.db import models
from django.contrib.auth import get_user_model
from common.models import BaseModel
User = get_user_model()
class CertificateTemplate(BaseModel):
title = models.CharField(max_length=200, verbose_name='عنوان')
body = models.TextField(verbose_name='متن قالب (با جایگزین‌ها)')
company = models.ForeignKey('accounts.Company', on_delete=models.SET_NULL, null=True, blank=True, verbose_name='شرکت صادر کننده')
is_active = models.BooleanField(default=True, verbose_name='فعال')
class Meta:
verbose_name = 'قالب گواهی'
verbose_name_plural = 'قالب‌های گواهی'
def __str__(self):
return self.title
class CertificateInstance(BaseModel):
process_instance = models.ForeignKey('processes.ProcessInstance', on_delete=models.CASCADE, related_name='certificates', verbose_name='نمونه فرآیند')
template = models.ForeignKey(CertificateTemplate, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='قالب')
rendered_title = models.CharField(max_length=250, verbose_name='عنوان رندر شده')
rendered_body = models.TextField(verbose_name='متن رندر شده')
issued_at = models.DateField(auto_now_add=True, verbose_name='تاریخ صدور')
approved = models.BooleanField(default=False, verbose_name='تایید شده')
approved_at = models.DateTimeField(null=True, blank=True, verbose_name='تاریخ تایید')
class Meta:
verbose_name = 'گواهی'
verbose_name_plural = 'گواهی‌ها'
def __str__(self):
return f"گواهی {self.process_instance.code}"