Ë
    ²esj‚  ã                   óÒ  — d dl Z e j                  j                  d d«       d dlmZ d dlmZmZmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ  eddg¬«      Zej5                  ddd¬«       ee«      fde
fd„«       Zej5                  ddd¬«       ee«      fde
fd„«       Zej5                  ddd¬«       edddd ¬!«       ee«      fd"ede
fd#„«       Zy)$é    Nz/var/www/html/metafoliadorv2)ÚCounter)Ú	APIRouterÚDependsÚQuery)ÚSession)Úfunc)Úget_db)ÚAlfrescoSite)ÚAlfrescoFolder)ÚAlfrescoFile)ÚSyncProgress)Úisoz/api/v1Ústats)ÚprefixÚtagsz/statszDashboard - conteos generalesu¢   EstadÃ­sticas agregadas: total de sitios activos, Series, Subseries y Expedientes, archivos, Series, Subseries y Expedientes con Ã­ndice y trabajos en ejecuciÃ³n.)ÚsummaryÚdescriptionÚdbc              ƒ   ó>  K  — | j                  t        j                  t        j                  «      «      j                  t        j                  dk(  «      j                  «       xs d}| j                  t        j                  t        j                  «      «      j                  «       xs d}| j                  t        j                  t        j                  «      «      j                  «       xs d}| j                  t        j                  t        j                  «      «      j                  t        j                  dk(  «      j                  «       xs d}| j                  t        j                  t        j                  «      «      j                  t        j                  j                  ddg«      «      j                  «       xs d}| j                  t        j                  t        j                  t        j                   «      d«      «      j#                  t        t        j$                  t        j                  k(  «      j                  t        j&                  dk(  t        j&                  dk(  t        j(                  dk7  «      j                  «       xs d}||||||dœS ­w)NTr   ÚpendingÚrunningFz	index.xml)ÚsitesÚfoldersÚfilesÚ
with_indexÚjobs_runningÚ
total_size)Úqueryr   Úcountr
   ÚidÚfilterÚactiveÚscalarr   r   Úhas_index_xmlr   ÚstatusÚin_ÚcoalesceÚsumÚ
size_bytesÚjoinÚ	folder_idÚdeletedÚname)r   Úsites_countÚfolders_countÚfiles_countÚindex_countr   r   s          ú4/var/www/html/metafoliadorv2/app/api/routes/stats.pyÚ	get_statsr3      sÜ  è ø€ à—(‘(œ4Ÿ:™:¤l§o¡oÓ6Ó7×>Ñ>¼|×?RÑ?RÐVZÑ?ZÓ[×bÑbÓdÒiÐhi€KØ—H‘HœTŸZ™Z¬×(9Ñ(9Ó:Ó;×BÑBÓDÒIÈ€MØ—(‘(œ4Ÿ:™:¤l§o¡oÓ6Ó7×>Ñ>Ó@ÒEÀA€KØ—(‘(œ4Ÿ:™:¤n×&7Ñ&7Ó8Ó9×@Ñ@Ä×A]ÑA]ÐaeÑAeÓf×mÑmÓoÒtÐst€KØ—8‘8œDŸJ™J¤|§¡Ó7Ó8×?Ñ?Ä×@SÑ@S×@WÑ@WÐYbÐdmÐXnÓ@oÓp×wÑwÓyÒ~Ð}~€LØ—‘œ$Ÿ-™-¬¯©´×1HÑ1HÓ(IÈ1ÓMÓN×SÑSÜœ×.Ñ.´.×2CÑ2CÑCóç�fÜ×Ñ %Ñ'Ü×Ñ Ñ%Ü×Ñ˜[Ñ(ó÷ �fƒhòð ð ð Ø ØØ!Ø$Ø ñð ùs   ‚JJz/stats/chartsu    Dashboard - datos para grÃ¡ficosu•   Devuelve conteos de Series, Subseries y Expedientes, archivos e Ã­ndices agrupados por sitio para alimentar los grÃ¡ficos interactivos del dashboard.c              ƒ   ó  K  — | j                  t        «      j                  t        j                  dk(  «      j	                  t        j
                  «      j                  «       }t        «       }t        «       }t        «       }|D �]ã  }| j                  t        j                  t        j                  «      «      j                  t        j                  |j                  k(  t        j                  dk(  «      j                  «       xs d}| j                  t        j                  t        j                  «      «      j!                  t        t        j"                  t        j                  k(  «      j                  t        j                  |j                  k(  t        j                  dk(  «      j                  «       xs d}| j                  t        j                  t        j                  «      «      j                  t        j                  |j                  k(  t        j$                  dk(  t        j                  dk(  «      j                  «       xs d}|j                  }	|||	<   |||	<   |||	<   �Œæ d„ }
 |
|«       |
|«       |
|«      dœS ­w)NTFr   c                 ó†   — | j                  d«      }|D �cg c]  }|d   ‘Œ	 c}|D �cg c]  }|d   ‘Œ	 c}dœS c c}w c c}w )Né   r   é   )ÚlabelsÚvalues)Úmost_common)ÚcounterÚitemsÚits      r2   Ú	to_seriesz#get_stats_charts.<locals>.to_seriesI   sF   € Ø×#Ñ# BÓ'ˆà',Ö- �r˜!“uÒ-Ø',Ö- �r˜!“uÒ-ñ
ð 	
ùÚ-ùÚ-s   –9¨>)r   r   Úindices)r   r
   r!   r"   Úorder_byr-   Úallr   r   r   r   r    Úsite_idr,   r#   r   r*   r+   r$   )r   r   Úfolders_by_siteÚfiles_by_siteÚindices_by_siteÚsiteÚfolder_countÚ
file_countr1   Úlabelr>   s              r2   Úget_stats_chartsrJ   ,   s   è ø€ à�H‰H”\Ó"×)Ñ)¬,×*=Ñ*=ÀÑ*EÓF×OÑOÔP\×PaÑPaÓb×fÑfÓh€Eä“i€OÜ“I€MÜ“i€Oàó -ˆØ—x‘x¤§
¡
¬>×+<Ñ+<Ó =Ó>×EÑEÜ×"Ñ" d§g¡gÑ-¬~×/EÑ/EÈÑ/Nó
ç
‰&‹(òàð 	ð —X‘XœdŸj™j¬¯©Ó9Ó:×?Ñ?ÜœL×2Ñ2´n×6GÑ6GÑGó
ç
‰&Ü×"Ñ" d§g¡gÑ-Ü× Ñ  EÑ)ó
÷ ‰&‹(òð
 ð 	ð —h‘hœtŸz™z¬.×*;Ñ*;Ó<Ó=×DÑDÜ×"Ñ" d§g¡gÑ-Ü×(Ñ(¨DÑ0Ü×"Ñ" eÑ+ó
÷ ‰&‹(ò	ð ð	 	ð —‘ˆØ!-ˆ˜ÑØ)ˆ�eÑØ!,ˆ˜Óð'-ò*
ñ ˜_Ó-Ù˜=Ó)Ù˜_Ó-ñð ùs   ‚JJz/logs/recentzDashboard - logs recientesuZ   Ãšltimos registros de sincronizaciÃ³n desde SyncProgress, ordenados por fecha descendente.é
   u#   Cantidad mÃ¡xima de logs a retornarr7   éd   )r   ÚgeÚleÚlimitc           
   ƒ   óp  K  — |j                  t        «      j                  t        j                  j	                  «       «      j                  | «      j                  «       }|D �cg c]E  }|j                  |j                  |j                  |j                  t        |j                  «      dœ‘ŒG c}S c c}w ­w)N)r    r%   ÚmessagerB   Ú
created_at)r   r   r@   rR   ÚdescrO   rA   r    r%   rQ   rB   r   )rO   r   ÚlogsÚlogs       r2   Úget_recent_logsrV   W   s‘   è ø€ à�8‰8”LÓ!×*Ñ*¬<×+BÑ+B×+GÑ+GÓ+IÓJ×PÑPÐQVÓW×[Ñ[Ó]€Dð ö	ð ð —&‘&Ø—j‘jØ—{‘{Ø—{‘{Ü˜cŸn™nÓ-ó	
ò	ð 	ùò 	ùs   ‚A"B6Á$A
B1Â.B6)ÚsysÚpathÚinsertÚcollectionsr   Úfastapir   r   r   Úsqlalchemy.ormr   Ú
sqlalchemyr   Úapp.models.databaser	   Úapp.models.alfresco_siter
   Úapp.models.alfresco_folderr   Úapp.models.alfresco_filer   Úapp.models.sync_progressr   Úapp.services.timezoner   ÚrouterÚgetr3   rJ   ÚintrV   © ó    r2   ú<module>ri      s#  ðÛ 
Ø ‡�‡��Ð1Ô 2å ß -Ñ -Ý "Ý å &Ý 1Ý 5Ý 1Ý 1Ý %á	˜)¨7¨)Ô	4€ð ‡�ˆHÐ=ð  Lp€ó  qÙ")¨&£/ñ ˜ò ó qðð0 ‡�ˆOÐ%Gð  Vm€ó  nÙ)0°«ñ '˜wò 'ó nð'ðT ‡�ˆNÐ$@ð  Ok€ó  lÙ',¨RÐ=bÐghÐmpÔ'qñ  BIð  JPó  BQñ  ð Ðw~ò ó lñrh   