U
    z]fW  ã                   @   s2   d dl T d dlZd dlmZ G dd„ dejƒZdS )é    )Ú*N)Úcmf_kanban_boardc                       s8   e Zd Zd
dd„Z‡ fdd„Zddœ‡ fdd	„
Z‡  ZS )ÚCmfKanbanBoardNFc                 C   sn  di i}|rd g dœ|d< i }|   dddg¡ | jD ]2}|jD ]}|jj||jj< q>ddi|d |j< q4t | jj	j¡}|rŠ|t |¡g}|r¤| jj	j|g|d d	< d
}t
js´t
jr¸d}tjjddg|dD ]œ}	|	jrÌ|	jjsàqÌ|	jjj|krðqÌ|sFtjjd|	jdd|	j|	jd
|	jd
d	}
|
sF|rÌ|d d  |	j|	jjjg¡ qÌ|d ||	jjj  d  d7  < qÌ|S )NÚcolumns)ÚfilterÚdeniedÚdebugz-kanban_board_columns.mapped_status_codes.codezkanban_filter.bqlZ
limit_daysÚtotalr   r   FTz	status.--zstatus.status_code.code)Úfieldsr   ÚreadÚCmfTaskÚname)	Zaccess_levelZinitial_acl_keyZobject_modelZobject_fieldZ	object_idZobject_parent_idÚis_newZperm_security_level_allowed_idsZraise_errorr   é   )Zload_fieldsZkanban_board_columnsÚmapped_status_codesÚidÚvalueÚcodeZjsonÚloadsÚkanban_filterZbqlÚgZdisable_permissionsZacl_admin_modeÚmodelsr   ZslistÚstatusÚstatus_codeZCmfAccessListZcheck_accessZperm_effective_acl_idZ	parent_idZ%perm_security_level_allowed_ids_cacheÚappend)Úselfr   ZdbgÚresZstatus_code_to_columnÚcolZst_codeZlist_filterZskip_perm_checkÚtÚaccess© r    ú,./modules/project/models/cmf_kanban_board.pyÚget_counters	   sX     þþ


   ú$zCmfKanbanBoard.get_countersc                    sÞ   | j rÐtƒ j||Ž | jrD| jsDt ¡ }|j | j¡ | ¡  || _d| _	dddddœ}ddd	d
dœ}tj
jddddddggddgdD ]F}t ¡ }| |_||j |_|j|_|g|_||j |_|j||Ž qˆtƒ j||ŽS )Nz6 nonez#60b1bbz#3f82d8z#e36b51z#23a055)ÚopenÚin_progressÚ	in_reviewÚclosediè  iÐ  i¸  i   r   ÚINr#   r$   r%   r&   r   )r   r
   )r   ÚsuperÚsaveÚparentr   r   ZCmfTaskFilterZft_projectsr   Zswimlane_typeZCmfStatusCodeÚlistZCmfKanbanBoardColumnr   Zordernor   r   Zcolor)r   ÚargsÚkwargsr   ZcolorsZorderno_dictr   Úcolumn©Ú	__class__r    r!   r)   L   s>    üü

ÿþ
zCmfKanbanBoard.save)Únotifyc                   s   t ƒ j|ddi|—ŽS )Nr1   F)r(   Údelete)r   r1   r,   r-   r/   r    r!   r2   r   s    zCmfKanbanBoard.delete)NF)Ú__name__Ú
__module__Ú__qualname__r"   r)   r2   Ú__classcell__r    r    r/   r!   r      s   
C&r   )Zcmf.includeZdatetimeZmodules.project.fieldsr   r   r    r    r    r!   Ú<module>   s   