B
    eb6                 @   s   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 d d	lmZmZ G d
d de
Zeejeddd ZdS )    )models)Q)gettext_lazy)AdminRuntimeWarning)	BaseModel)
Department)signals)receiver)MinValueValidatorMaxValueValidatorc                   s   e Zd ZejeedejdZej	edddZ
ejedededgd	Zejed
ededgd	ZejeddeddZejeddZejeddZd fdd	Zdd Zdd Zede_G dd dZ  ZS ) GPSForDepartmentZ!gpsForDepartment_field_department)verbose_nameZ	on_deleteZgpsForDepartment_field_location   )r   Z
max_lengthZ gpsForDepartment_field_longitudeg     fg     f@)r   Z
validatorsZgpsForDepartment_field_latitudeg     Vg     V@ZgpsForDepartment_field_distance2   Z&gpsForDepartment_field_distanceHelpTxt)r   defaultZ	help_textZ gpsForDepartment_field_startDate)r   ZgpsForDepartment_field_endDateFNc                st   t jj| jdt| jdt| jdB }| jr>|j| jd}|	 rZt
djtddtt | |||| d S )N)
department)Zstart_date__gt)Zend_date__lt)pkz{error}Z"gpsForDepartment_error_dateOverlap)error)r   Zobjectsfilterr   Zexcluder   end_date
start_dater   countr   format_supersave)selfZforce_insertZforce_updateZusingZupdate_fieldsZobjs)	__class__ AG:\easytimepro\master/mysite/mobile\models\model_departmentgps.pyr      s    zGPSForDepartment.savec             C   s   |   S )N)__hash__)r   r   r   r   hash'   s    zGPSForDepartment.hashc             C   s   | j jS )N)r   Z	dept_code)r   r   r   r   get_dept_code*   s    zGPSForDepartment.get_dept_codeZmobile_model_department_codec               @   s    e Zd ZdZedZeZdZdS )zGPSForDepartment.MetamobileZmobile_model_gpsForDepartment)deleteZchangeviewN)__name__
__module____qualname__Z	app_labelr   r   Zverbose_name_pluralZdefault_permissionsr   r   r   r   Meta/   s   r)   )FFNN)r&   r'   r(   r   Z
ForeignKeyr   r   ZCASCADEr   Z	CharFieldlocationZ
FloatFieldr
   r   Z	longitudeZlatitudeZIntegerFieldZdistanceZ	DateFieldr   r   r   r!   r"   Zshort_descriptionr)   __classcell__r   r   )r   r   r      s    

 	
r   )senderc             K   s0   | dd }|r,ddlm} |jj|dd d S )Ninstancer   )tasksT)Zdept)getZmysite.mobiler.   Zdelete_employee_gpsZdelay)signalr,   kwargsr-   r.   r   r   r   delete_singal_receiver6   s    r2   N)Z	django.dbr   Zdjango.db.modelsr   Zdjango.utils.translationr   r   Zmysite.admin.exceptionsr   Zmysite.admin.modelsr   Zmysite.personnel.modelsr   r   Zdjango.dispatch.dispatcherr	   Zdjango.core.validatorsr
   r   r   Zpost_deleter2   r   r   r   r   <module>   s   %