42 lines
1.8 KiB
Python
42 lines
1.8 KiB
Python
from django.db import models
|
|
from django.contrib.auth import get_user_model
|
|
from common.models import BaseModel
|
|
from _helpers.utils import jalali_converter2
|
|
|
|
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}"
|
|
|
|
def jissued_at(self):
|
|
return jalali_converter2(self.issued_at)
|
|
|
|
|