B
    b                 @   s   d dl Z d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ G d
d deZG dd dejZdS )    N)models)cache)gettext_lazy)MaxValueValidatorMinValueValidator)db_const)models_choices)ActionHandleError)AbstractCloudc                   s  e Zd ZejedejdZej	ede
ddddZejedded	edgd
Zejeddededgd
ZejeddejdZejeddejdZejedded	dZejeddejdZejeddejdZejedddded	edgdZejeddejdZejedded	dZejeddejdZ ejedded	dZ!d$ fdd	Z" fd d!Z#G d"d# d#Z$  Z%S )%	BreakTimeZbreakTime_field_alias)Z
max_lengthZbreakTime_field_startTime   r   )defaultZbreakTime_field_duration<   Ztime_unit_minute)r   	help_text
validatorsZbreakTime_field_endMarginZ breakTime_field_endMarginHelpTxtZbreakTime_field_baseOnPunchType)r   choicesZbreakTime_field_duplicatePunchZ$breakTime_field_duplicatePunchPeriod   )r   r   Z breakTime_field_useMultiplePunchZbreakTime_field_calculateTypeZ breakTime_field_minimumBreakTimeFT)r   ZblankZnullr   r   ZbreakTime_field_earlyInZbreakTime_field_minEarlyInZbreakTime_field_lateInZbreakTime_field_minLateInNc                s   t t| |||| d S )N)superr   save)selfZforce_insertZforce_updateZusingZupdate_fields)	__class__ :G:\easytimepro\master/mysite/att\models\model_breaktime.pyr   *   s    zBreakTime.savec                s<   | j  }| r*td| j}t|tt| 	  d S )Nz/The {0} is used by timetable , can't be deleted)
Ztimeinterval_setallcount_formataliasr	   r   r   delete)r   Zsch_idsres)r   r   r   r   .   s
    
zBreakTime.deletec               @   s$   e Zd ZdgZejZedZeZ	dS )zBreakTime.MetaidZatt_model_breakTimeN)
__name__
__module____qualname__Zorderingr   Z	APP_LABELZ	app_labelr   Zverbose_nameZverbose_name_pluralr   r   r   r   Meta5   s   r$   )FFNN)&r!   r"   r#   r   Z	CharFieldr   r   ZMAX_BREAK_TIME_ALIASr   Z	TimeFielddatetimetimeZperiod_startZIntegerFieldr   ZdurationZ
end_marginZSmallIntegerFieldmcZBOOLEANSZfunc_keyZAVAILABLE_PUNCH_TYPEZavailable_interval_typeZavailable_intervalZmultiple_punchZBREAK_TIME_TYPEZ	calc_typeZminimum_durationZUNSCHEDULED_POLICYZearly_inZmin_early_inZBREAK_TIME_LATE_INZlate_inZmin_late_inr   r   r$   __classcell__r   r   )r   r   r      s0   

 r   c                   s   e Zd Z fddZ  ZS )BreakTimeManyToManyFieldc                s   t t| j|| d S )N)r   r)   __init__)r   argskwargs)r   r   r   r*   >   s    z!BreakTimeManyToManyField.__init__)r!   r"   r#   r*   r(   r   r   )r   r   r)   =   s   r)   )r%   Z	django.dbr   Zdjango.core.cacher   Zdjango.utils.translationr   r   Zdjango.core.validatorsr   r   Z
mysite.attr   r   r'   Zmysite.admin.actionr	   Z!mysite.admin.abstract_cloud_modelr
   r   ZManyToManyFieldr)   r   r   r   r   <module>   s   *