U
    َeP	                     @   s,   d dl T d dlZG dd dejjjjZdS )    )*Nc                   @   s@   e Zd Zedd Zeedddddd Zedd
dZdS )CmfStatAggregDayc              
   C   s   dd }ddddddd	d
g}t jjd|dgddgd}|D ]}|jj }t jj|j||j	|j
|j|jd
gd}|s|t  }|j|_||j|_|j	|_	||_|j
|_
|j|_|j|_|j|_| jd7  _|j|_|  d|_|  q:d S )Nc                 S   s<   |  drdS |  drdS |  dr*dS |  dr8dS d S )	NzCmfDocument:ZdocumentzCmfTask:ZtaskzCmfAttachment:Z
attachmentzCmfComment:Zcomment)
startswith)id r   1./modules/analytics/models/cmf_stat_aggreg_day.pycalc_obj_type   s    



z3CmfStatAggregDay.calc_aggreg.<locals>.calc_obj_typeobj_idactioncmf_created_at	person_id
project_id	parent_id
history_idnumFr   i  )
aggregatedfieldsZorder_byslice)r	   dayr
   r   r   r   r      T)ZmodelsZCmfStatlistr   valuedater   getr	   r
   r   r   r   Zobj_typer   r   r   Zcmf_modified_atZsaver   )clsr   r   Z	stat_liststatr   Z	stat_aggrr   r   r   calc_aggreg   s2    
  zCmfStatAggregDay.calc_aggregTz	@minutely)Z	only_onceZ
system_jobZschedulec                   C   s   t   d S )N)r   r   r   r   r   r   cron_update_stat-   s    z!CmfStatAggregDay.cron_update_statNcsvc                 C   s$   ddl m} | j}|j||||dS )Nr   )
cmf_export)
class_namefield_namesbqlformat_file)Zcmf.utilr   r    export2file)r   r!   r"   r#   r   r    r   r   r   r$   2   s    zCmfStatAggregDay.export2file)NNr   )	__name__
__module____qualname__classmethodr   staticmethodZcmf_deferred_jobr   r$   r   r   r   r   r      s   
'r   )Zcmf.includeZ,modules.analytics.fields.cmf_stat_aggreg_daymodulesZ	analyticsr   Zcmf_stat_aggreg_dayr   r   r   r   r   <module>   s   