
    @iD	                         d dl  d dlZd dlZ G d dej                  j
                  j                  j                        Zy)    )*Nc                   .    e Zd Zed        Zedd       Zy)CmfStatc                    |j                   j                  d      s7|j                   j                  d      s|j                   j                  d      sy |j                   j                  d      r|j                  sy |j                   j                  d      r7|j                  j                  d      s|j                  j                  d      sy |j                   j                  d      rd}n|j                  rd}nd}t        j
                  j                   }d }|j                   j                  d      r|j                  }|j                   j                  d      r|j                  j                  }n|j                  }|j                  s%t        j                  |      t        j                  urt        j                  d| d       y |j                   ||t        |j                        ||d	d
}t        j                  j!                  |       y )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   !!.1SVV5F5Fz5RVYV\V\VgVghuVv66]+CJJFFm,mm..~>3==C[C[\fCg66]+FZZFFNN%%	
66^,44J66]+--JJ!8!8!DFL]L]!]GG+J<7cde ff$S]]+"$
 	
(    c                 n   t        j                          }| rg t        _        y t        j                  sy t        j                  dt	        t        j                         d       t        j                  D ]`  }t
        j                         }|j                         D ]
  \  }}|||<    t        j                         5  |j                          d d d        b g t        _        t        j                          |z
  dkD  r.t        j                  dt        j                          |z
          y y # 1 sw Y   xY w)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   s    ))+!A	,S1A1A-B,C6JK)) 	I>>#D ( !Q$$& 		 		 99; 4'GG4TYY[75J4KLM ( s   <D++D4	N)F)__name__
__module____qualname__classmethodr%   staticmethodr3    r&   r$   r   r      s+    *) *)X N Nr&   r   )cmf.includer(   !modules.analytics.fields.cmf_statmodules	analyticsfieldscmf_statr   r9   r&   r$   <module>r@      s4      (?Ng&&//77 ?Nr&   