U
    W"dN                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_task_reportc                       sL   e Zd Zedeed fddZdd Zdd	d
Zde	dddZ
  ZS )CmfTaskReportNF)all_optionsmodels_filtersc           
         sN   |sg }|dkr2|o| dd }	|	r2|dd|	gg}t j|f|||d|S )Nreport_filterZ	parent_idz==)filtermodels_listobject_fields)getsuperfield_options_list)
clsZrelation_field_nameZ	object_idr
   r	   r   r   r   kwargsparent	__class__ "./common/models/cmf_task_report.pyr      s    z CmfTaskReport.field_options_listc                 C   s   |    d S N)Z_check_simple_perm)selfr   r   r   check_simple_perm   s    zCmfTaskReport.check_simple_perm   Уведомлениеc                 O   s   d S r   r   )r   textZnotify_nameargsr   r   r   r   all_place_notify   s    zCmfTaskReport.all_place_notify)returnc           %      C   s&  ddl m}m}m}m}m}m}	 ddlm}
 ddl	m
}m} dd l}ddddd	d
ddg}| ddddg | jj }| jj }ddddd|ggdddd|ggg}dt| jjj|g}tjj||d}|r| j d| j d}tj d}d| }|j|s|| | }|d}| ddd |!d|dd  | dd!d" |!d!|d#d  | dd$d% |!d$|d&d  | dd'd( |!d'|d)d  | dd*d+ |!d*|d,d  | dd-d. |!d-|d&d  | dd/d0 |!d/|d1d  t" }d2}||||d3D ]4}| d||#d4 |!||d,d  |d7 }qd}t$|d!D ].\}}|d5d6d7dd8d9dd:d;d<d
g tj%jd5d=|gdd|gd>d|ggd?d<dgdd
gd@}d}|D ]} | j&j }!|!| j'd2 }"| j(dAkrp|| |" jr$| ||"|| |" j| j)dB   n| ||"| j)dB  || j)dB 7 }|!|krXd||!< ||!  | j)dB 7  < nh| j(dCkr| j*dB }#|| |" jr||| |" j8 }| ||"|# ||#7 }|!|krd||!< |#||!< q| |d|j+j |j,jr| |d!|j,jj |j-r&| |d$|j-j |j.dDkrD| |d'|j n"| |d'|j/j | |d*|j | |d-|j | |d/| ||7 }q^d2}|d7 }| |ddE | |d/| ||||d3D ]8}|!||d,d  | |||0|  |d7 }q| dF| }$|1|$ nt2dG |S )HNr   )WorkbookColorStyleFontFillFormat)date)rruleDAILYcodenamezresponsible.nameZcache_status_typepriorityZcmf_created_atZcmf_modified_atZ
alarm_date
date_startdate_endzreport_filter.bqlreport_typeZANDZtimetracker_historyZEXISTS
start_datez>=z<=)r   fields-z.xlsxz
/files/tmpz/files/tmp/u   Задачи   u   Проект   )size   u   Исполнитель      u   Эпик      u   Задача2      u   Подзадача
      u   Код   u   Часы работы      )ZdtstartZuntilz%Y-%m-%dr   zparent.nameresponsibleepicz	epic.namelogic_prefixzparent_task.nameremaining_estimate=end_date
time_spent)r   r-   Zorder_byZanalysis_time_spent<   Zanalysis_time_plannedztask.subu   Всего:/u)   Нет задач для экспорта)3Zpyexcelerater   r   r   r    r!   r"   Zdatetimer#   Zdateutil.rruler$   r%   osZload_fieldsr)   valuer*   Zjsonloadsr   bqlZmodelsZCmfTasklistr'   r&   ZconfigZPROJECT_DIRpathexistsmkdirZ	new_sheetZset_cell_valueZset_col_styledictstrftime	enumerateZCmfTimeTrackerHistoryr,   Zdaysr+   rD   rA   r   r>   r?   r@   Zparent_taskr   ZsaveZ	cmf_alert)%r   rJ   r-   Zformat_filer   r   r   r    r!   r"   r#   r$   r%   rG   r,   rC   Zdate_restrictZfilter_vZtasks	file_nameZpath_to_tmprL   wbZwsZitogscoldZitogs_total_time_spentZnumZtaskZtthist_listZtotal_time_spentZtthistZ	hist_dateZcol_numZrem_estZpath_to_filer   r   r   export_time   s     



  
$



zCmfTaskReport.export_time)NNNFNN)r   )NNN)__name__
__module____qualname__classmethodboolrO   r   r   r   strrV   __classcell__r   r   r   r   r      s              
r   N)Zcmf.includeZcommon.fieldsr   r   r   r   r   r   <module>   s   