B
    b5
                 @   sx   d dl mZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZ G d	d
 d
eZdS )    )models)ValidationError)gettext_lazy)MinValueValidator)AdminRuntimeWarning)AbstractCloud)db_const)TRAINING_UNITSBOOLEANSc                   s   e Zd ZejedejdZej	edde
dgdZejedded	Zejed
ded	ZejedddZdd Zdd Zd fdd	Z fddZG dd dZ  ZS )TrainingCategoryZtraining_name)Z
max_lengthminimum_unitg      ?r   )defaultZ
validatorsunit   )r   choices	round_offreport_symbol   c             C   s   d | jS )Nz{0})formatcategory_name)self r   AG:\easytimepro\master/mysite/att\models\model_trainingcategory.py__str__   s    zTrainingCategory.__str__c             C   sp   t jj| j| jjd}|r6|d j| jkr6ttdt jj| j	| jjd}|rl|d j| jkrlttdd S )N)Zcategory_name__exact
company_idr   zThe Training Type Already Exist)Zreport_symbol__exactr   z"this_report_symbol_already_exists.)
r   objectsfilterr   companyidZpkr   _r   )r   objr   r   r   clean   s    zTrainingCategory.cleanNFc                sn   d}ddl m} |jj| d}|r*td}|r6t|ddlm} tt	| 
|| t| jj}|| d S )N r   )Training)categoryZ#the_used_category_cannot_be_deleted)CACHE_TRAINING_TYPE)Z mysite.att.models.model_trainingr#   r   r   r   r   mysite.att.global_cacher%   superr   deletestrr   r   refresh)r   ZusingZkeep_parentsmessager#   Z	trainingsr%   r   )	__class__r   r   r(   "   s    zTrainingCategory.deletec                s4   ddl m} tt|   t| jj}|| d S )Nr   )r%   )	r&   r%   r'   r   saver)   r   r   r*   )r   r%   r   )r,   r   r   r-   2   s    zTrainingCategory.savec               @   s(   e Zd ZdgZejZedZeZ	dZ
dS )zTrainingCategory.Metar   Zatt_model_training_categorys))r   r   N)__name__
__module____qualname__Zorderingr   Z	APP_LABELZ	app_labelr   Zverbose_nameZverbose_name_pluralZunique_togetherr   r   r   r   Meta8   s
   r1   )NF)r.   r/   r0   r   Z	CharFieldr   r   ZMAX_TRAINING_ALIASr   Z
FloatFieldr   r   ZSmallIntegerFieldr	   r   r
   r   r   r   r!   r(   r-   r1   __classcell__r   r   )r,   r   r      s   r   N)Z	django.dbr   Zdjango.formsr   Zdjango.utils.translationr   r   Zdjango.core.validatorsr   Zmysite.admin.exceptionsr   Z!mysite.admin.abstract_cloud_modelr   Z
mysite.attr   Zmysite.att.models_choicesr	   r
   r   r   r   r   r   <module>   s   