
    hD	                     b    d dl T d dlZd dlZ G d dej        j        j        j                  ZdS )    )*Nc                   <    e Zd Zed             Zedd            ZdS )CmfStatc                    |j                             d          s6|j                             d          s|j                             d          sd S |j                             d          r	|j        sd S |j                             d          r6|j                            d          s|j                            d          sd S |j                             d          rd}n|j        rd}nd}t          j        j         }d }|j                             d          r|j        }|j                             d          r|j        j        }n|j        }|j        s&t          
                    |          t          j        ur t                              d| d           d S |j         ||t          |j                  ||d	d
}t          j                            |           d S )NzCmfDocument:zCmfTask:zCmfComment:commentcreateupdatezinvalid project_id "z+": it is not a CmfProject obj_id, skipping;F)obj_id
project_idaction	parent_id	person_id
history_id
aggregated)id
startswithis_newr   gcurrent_usercur_workflow_version_idparentis_nullcmfutilget_model_by_idmodels
CmfProjectdebugstrdeferred_statsappend)clsobjr   r   r   r   optionss          &./modules/analytics/models/cmf_stat.pydo_calc_statisticszCmfStat.do_calc_statistics   s   !!.11 	SV5F5Fz5R5R 	VYV\VgVghuVvVv 	F6]++ 	CJ 	FFm,, 	m..~>>	CF=C[C[\fCgCg	F6]++ 	FFZ 	FFFN%	
6^,, 	54J6]++ 	'-JJJ 	!8!8!D!DFL]!]!]GGdJdddeeeF f$S]++"$
 
 	
(((((    Fc                    t          j                     }| rg t          _        d S t          j        sd S t                              dt	          t          j                   d           t          j        D ]}t
                                          }|                                D ]
\  }}|||<   t          	                                5  |
                                 d d d            n# 1 swxY w Y   g t          _        t          j                     |z
  dk    r3t                              dt          j                     |z
              d S d S )Nzapply_deferred_stats save z statsg{Gz?zPROF apply_deferred_stats got )timer   r   r   lenr   r   itemsr   disable_aclsave)
only_cleanprof_st	stat_datastatkvs         r$   apply_deferred_statszCmfStat.apply_deferred_stats4   sk   )++ 	!AF 	F	JS1A-B-BJJJKKK) 	 	I>>##D ((  !Q$$&&  		              9;; 4''GGLTY[[75JLLMMMMM ('s   C''C+	.C+	N)F)__name__
__module____qualname__classmethodr%   staticmethodr3    r&   r$   r   r      sT        *) *) [*)X N N N \N N Nr&   r   )cmf.includer(   !modules.analytics.fields.cmf_statmodules	analyticsfieldscmf_statr   r9   r&   r$   <module>r@      sp         ( ( ( (?N ?N ?N ?N ?Ng&/7 ?N ?N ?N ?N ?Nr&   