
    hs                        d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	m
Z
mZ d dlmZ d dlmZmZmZmZmZmZ  e	            ZddZddZe                    de           ed          fdd            ZdS )    )annotations)date)AnyDictList)	APIRouterRequestQuery)HTMLResponse)	templatessbCOMPANY_ORDER_norm_company_label_parse_date_parts_parts_to_dateany_sr   returnr   c                    t          | t          |           nd          \  }}}t          |||d          pt          j        S )N T)assume_last)r   strr   r   min)r   ymds       1/var/www/html/bot/app/web/pages/group/timeline.py	_parse_dtr      sB    e.?E


RHHGAq!!Qt444@@    rowDict[str, Any]c                V    |                      d          p|                      d          S )N	posted_at
created_atget)r   s    r   _posted_or_createdr&      s%    77;8377<#8#88r   z/group/timeline)response_classN)defaultrequestr	   company
str | Nonec           	       K   	 t          j        d                              d                              d                                          }|j        pg }n# t          $ r g }Y nw xY wi }|D ]}|                    d          }t          |          p|pd	                                }|s?|                    |          }||||<   \t          t          |                    t          t          |                    k    r|||<   t          |                                          }	d t          t                    D             dfd|	                    fd           t          dd         }
||
v r|n|
r|
d         nd}dd |          dfdfd|D             }|                    d            t#          j        d| |	|
||d          S )u   
    상단: 기관별 최신 1건만 보여주는 스냅샷 테이블
    하단: 회사(기관) 탭별 전체 이력 테이블 (최신이 위)
    kepco_idz'department,posted_at,pdf_url,created_ati  
departmentr   Nc                    i | ]\  }}||	S  r0   ).0inames      r   
<dictcomp>z"group_timeline.<locals>.<dictcomp>9   s    AAAWQqAAAr   depr+   r   intc                R    t          |           }                    |pdd          S )Nr   i  )r   r%   )r5   label	order_maps     r   
dept_orderz"group_timeline.<locals>.dept_order;   s(    #C((}}U[b#...r   c                     |                      d                    t          t          |                                                      fS )Nr.   )r%   r   r&   	toordinal)rr:   s    r   <lambda>z group_timeline.<locals>.<lambda>@   sF    Jquu\**++)!,,--77999
 r   )keyr   sr   c                V    | pd                     dd                                          S )Nr    )replacestrip)r@   s    r   _keyzgroup_timeline.<locals>._keyJ   s(    R  b))//111r   boolc                    | sdS  |           }|k    rdS t          |           }|r |          k    rdS |v p|v S )NFT)r   )r5   dep_keynormrE   cur_keys      r   _matchesz group_timeline.<locals>._matchesO   sn     	5$s))g4"3'' 	DDJJ'))4'!7W%77r   c                P    g | ]"} |                     d                      |#S )r.   r$   )r1   r=   rK   s     r   
<listcomp>z"group_timeline.<locals>.<listcomp>[   s4    FFFq|1D1D(E(EFFFFr   c                `    t          t          |                                                      S )N)r   r&   r<   )r=   s    r   r>   z group_timeline.<locals>.<lambda>]   s&    ),>q,A,A"B"B"L"L"N"N!N r   zgroup/timeline.html)r)   	rows_maintabscurrent	comp_rows)r5   r+   r   r6   )r@   r+   r   r   )r5   r+   r   rF   )r   tableselectlimitexecutedata	Exceptionr%   r   rD   r   r&   listvalues	enumerater   sortr   TemplateResponse)r)   r*   resall_rows
latest_mapr=   r5   r?   currO   rP   rQ   rR   rE   rK   rJ   r:   r9   s                @@@@@r   group_timelinerb      s     	HZ  v?@@uT{{wyy	 	 *-R    -/J $ $eeL!!!#&&=39"*;*;*=*= 	nnS!!;JsOO +A..//)<Ns<S<S2T2TTT"#
3Z&&(())I BA	-(@(@AAAI/ / / / / / NN
 
 
 
     D!T//ggD1HabG2 2 2 2 d7mmG
8 
8 
8 
8 
8 
8 
8 GFFFHFFFINNNNNOOO%""	
 	
	 	 	s   AA A.-A.)r   r   r   r   )r   r    r   r   )r)   r	   r*   r+   )
__future__r   datetimer   typingr   r   r   fastapir   r	   r
   fastapi.responsesr   app.web.depsr   r   r   r   r   r   routerr   r&   r%   rb   r0   r   r   <module>rj      sX   " " " " " "       " " " " " " " " " " - - - - - - - - - - * * * * * *               
 
A A A A9 9 9 9 l;;AFtATATAT R R R R <;R R Rr   