43 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			1.9 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='تاریخ تایید')
 | 
						|
    hologram_code = models.CharField(max_length=50, null=True, blank=True, verbose_name='کد یکتا هولوگرام', unique=True)
 | 
						|
 | 
						|
    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)
 | 
						|
 | 
						|
 |