B
    b              	   @   s   d dl Z d dlmZ d dlmZmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZmZ d dlmZ d dlmZmZ d	Zd
ZdZdZdedfdedfdedfdedfdedfdedfdedffZdd edddD ZG dd  d eZdS )!    N)gettext_lazy)	ModelFormValidationErrorModelMultipleChoiceField)BOOLEANSBOOLEAN_YES)forms)AutoExportTaskSftpSetting)widgets)
DepartmentArea))1z
yyyy-MM-DD)2z
yyyy/MM/DD)3z
yyyy.MM.DD)4z
DD/MM/yyyy)5z
DD-MM-yyyy)6z
MM/DD/yyyy)7z
MM-DD-yyyy)8zYY-MM-DD)9zYY/MM/DD)10zDD/MM/YY)11zYY.MM.MM)12yyyyMMDD)13yyyyDDMM)14MMDDyyyy)15DDMMyyyy)16YYMMDD)17YYDDMM)18MMDDYY)19DDMMYY))r   zHH:mm)r   zh:mm)r   zHH:mm tt)r   zh:mm tt)r   zHH:mm:ss)r   zh:mm:ss)r   zHH:mm:ss tt)r   z
h:mm:ss tt)r   HHmm)r   hmm)r   HHmmss)r   hmmss)) z
----------)r   z
yyyy-MM-DD)r   z
DD-MM-yyyy)r   z
MM/DD/yyyy)r   z
MM-DD-yyyy)r   zYY-MM-DD)r   r   )r   r   )r   r   )r   r    )r!   r"   )r#   r$   )r%   r&   )r'   r(   ))r-   z
----------)r   r)   )r   r*   )r   r+   )r   r,   0Zweekday_option_mondayr   Zweekday_option_tuesdayr   Zweekday_option_wednesdayr   Zweekday_option_thursdayr   Zweekday_option_fridayr   Zweekday_option_saturdayr   Zweekday_option_sundayc             C   s   g | ]}||fqS  r/   ).0xr/   r/   AG:\easytimepro\master/mysite/base\forms\auto_export_task_forms.py
<listcomp>U   s    r3          c                   s`  e Zd ZejedddZejdeddZ	ejde
dZejedd	d
ZejededZejededZejedddeddZejeddddeddZeeddedej ejdZeeddedej ejdZejeddedfd ed!ffdZejed"e e!d#Z"ejed$d%ed&fded'fd ed(ffdZ#ejed)de$d*Z%ejed)de&d*Z'ejed)dd+d*Z(ejed,ded-dd.Z)ejed/d0ed1d2Z*ejed3d4dd5Z+ejed6ddZ,ej-ed7e.j dd8Z/ejed9ddZ0 fd:d;Z1d<d= Z2d>d? Z3d@dA Z4dBdC Z5 fdDdEZ6G dFdG dGZ7  Z8S )HAutoExportTaskCreationFormZautoExport_task_filePrefixT)labelrequiredFr4   )r8   choicesinitial)r8   r9   ZautoExport_task_dataTemplatez{emp_code}\t{first_name}\t{last_name}\t{dept_code}\t{dept_name}\t{date}\t{time}\t{verify_type}\t{punch_state}\t{work_code}\t{card_number}\t{area_name}\t{terminal_alias}\t{terminal_sn}\t{temperature}\t{mask_flag}\r\n)r7   r:   ZautoExport_task_shortDate)r7   r9   ZautoExport_task_shortTimeZautoExport_task_exportFormattxt))ZxlsxZExcel)ZcsvZCsv)r;   ZTxtZautoExport_exportFormat_helpTxt)r7   r:   r9   	help_textZautoExport_task_empCodeLengthr      Z#autoExport_task_empCodeLengthSuffix)r7   r:   Z	max_value	min_valuer<   ZautoExport_task_departmentsZautoExport_departments_helpTxt)r7   r8   r<   querysetZwidgetZautoExport_task_areasZautoExport_areas_helpTxtZautoExport_task_queryFieldr   ZautoExport_queryBy_uploadTimer   ZautoExport_queryBy_punchTimeZautoExport_task_deadline)r7   r9   r:   ZautoExport_task_frequencyr.   Zfrequency_option_dailyZfrequency_option_weeklyZfrequency_option_monthlyZautoExport_task_exportDay)r7   r:   r9   ))r4   r4   ZautoExport_task_intervalZ*timeInterval_field_workTimeDurationHelpTxt)r7   r:   r<   r>   ZautoExport_task_exportTimez00:01zHH:mm)r7   r:   r<   ZautoExport_task_exportPathZ
AutoExport)r7   r:   r8   ZautoExport_task_exportEmailZautoExport_task_ftpServer)r7   r?   r8   ZautoExport_task_ftpPathc                s   t t| j|| t| jdd rt| jj}x| D ]\}}|| j	krLq8|dkrt
d |d}tjj
|d}|| j	| _q8|dkrt
d |d}tjj
|d}|| j	| _q8|| j	| _q8W d S )Nparamsdepartments,)Zpk__inareas)superr6   __init__getattrinstancejsonloadsr@   itemsfieldsfiltersplitr   objectsr:   r   )selfargskwargsr@   kvZpksr?   )	__class__r/   r2   rE   |   s    
z#AutoExportTaskCreationForm.__init__c             C   s0   | j dd }|sdS dtt|jdddS )NrA   r-   rB   idT)flat)cleaned_datagetjoinmapstrvalues_list)rO   qsr/   r/   r2   clean_departments   s    z,AutoExportTaskCreationForm.clean_departmentsc             C   s0   | j dd }|sdS dtt|jdddS )NrC   r-   rB   rU   T)rV   )rW   rX   rY   rZ   r[   r\   )rO   r]   r/   r/   r2   clean_areas   s    z&AutoExportTaskCreationForm.clean_areasc             C   s   | j dd }|sdS |jS )N
ftp_serverr-   )rW   rX   rU   )rO   r]   r/   r/   r2   clean_ftp_server   s    z+AutoExportTaskCreationForm.clean_ftp_serverc             C   sB   i }x2| j  D ]$}|dkrq| j|d}|||< qW t|S )N)	task_code	task_namer@   r-   )rK   keysrW   rX   rH   dumps)rO   r@   fvalr/   r/   r2   clean_params   s    z'AutoExportTaskCreationForm.clean_paramsc                s   t t|  }|S )N)rD   r6   clean)rO   rW   )rT   r/   r2   ri      s    z AutoExportTaskCreationForm.cleanc               @   s   e Zd ZeZdZdS )zAutoExportTaskCreationForm.Meta)rb   rc   	file_date	file_timedata_template
short_date
short_timeexport_format	pin_digitrA   rC   query_fieldend_day	frequency	month_dayweek_daydayexport_intervalexport_timeexport_pathexport_emailr`   ftp_pathfile_prefixr@   N)__name__
__module____qualname__r	   ZmodelrK   r/   r/   r/   r2   Meta   s   r   )9r}   r~   r   r   Z	CharField_r|   ZChoiceFieldFILE_SHORT_DATErj   FILE_SHORT_TIMErk   Z	TextFieldrl   
SHORT_DATErm   
SHORT_TIMErn   ro   ZIntegerFieldrp   r   r   rN   Zget_querysetr   ZDepartmentSelectMultiplerA   r   ZAreaSelectMultiplerC   rq   r   r   rr   rs   MONTHLYrt   WEEKDAYru   rv   rw   rx   ry   rz   ZModelChoiceFieldr
   r`   r{   rE   r^   r_   ra   rh   ri   r   __classcell__r/   r/   )rT   r2   r6   X   sR   


&	r6   )rH   Zdjango.utils.translationr   r   Zdjango.formsr   r   r   Zmysite.base_choicesr   r   Zmysite.adminr   Zmysite.base.modelsr	   r
   Zmysite.personnelr   Zmysite.personnel.modelsr   r   r   r   r   r   r   ranger   r6   r/   r/   r/   r2   <module>   s(   





