ó
    ƒ‰Èje5  ã            	       óº  • S r SSKrSSKrSSKJrJrJrJrJr  SSKJ	r	  SSK
JrJrJrJrJr  SSKJr  SSKrSSKJr  SrS	rS
rSrSrSr/ SQr\ V s/ s H  o S   PM	     sn r\ V s0 s H  o S   U S   _M     sn r\ V s0 s H  o S   U S   _M     sn r\ V s0 s H  o S   U S   _M     sn rSSSSSS.r Sr!S\"4S jr#S\"S\"4S jr$S\"S\"4S jr%S\"S\"4S jr&S r'S\"4S jr(S\	\"   4S  jr)S!\S\4S" jr*S2S#\	\   S$\	\   S%\"S&\+4S' jjr,S\"4S( jr-S3S)\+S\.4S* jjr/\S+4S,\0S&\+S\14S- jjr2S\14S. jr3S\14S/ jr4S\"4S0 jr5S\"4S1 jr6gs  sn f s  sn f s  sn f s  sn f )4u	  RENDSZERNAPLÃ“ (v37) - a rendszeradmin Ã¶sszes-naplÃ³ja: minden cÃ©g minden esemÃ©nye egy helyen, cÃ©gre / felhasznÃ¡lÃ³ra / kategÃ³riÃ¡ra / dÃ¡tumra / szÃ¶vegre szÅ±rhetÅ‘en.
LeÃ­rÃ¡s: docs/RENDSZERNAPLO.md

MIT NÃ‰Z?
    Az `audit_logs` tÃ¡bla (models.AuditLog) minden sorÃ¡t: a jogosultsÃ¡gi / fiÃ³k / belÃ©pÃ©si / biztonsÃ¡gi esemÃ©nyeket Ã‰S a gÃ©pek adatvÃ¡ltozÃ¡sait (gÃ©pnaplÃ³).
    A gÃ©p-esemÃ©nyeknek (machine_id kitÃ¶ltve) nincs sajÃ¡t `company_id`-jÃ¼k: a cÃ©get a gÃ©pbÅ‘l kapjuk (COALESCE(audit.company_id, machine.company_id)).
    A "felhasznÃ¡lÃ³" szÅ±rÅ‘ az esemÃ©ny VÃ‰GREHAJTÃ“JA (audit_logs.user_id); NULL = rendszer / ismeretlen (pl. Ã¼temezett feladat, szerver-szkript).

KATEGÃ“RIÃ�K (a megjelenÃ­tÃ©shez Ã©s a szÅ±rÃ©shez; az esemÃ©ny tÃ­pusa (field_name) alapjÃ¡n, a gÃ©p-esemÃ©nyek kÃ¼lÃ¶n "gep" kategÃ³riÃ¡ba):
    belepes    - BejelentkezÃ©s, KijelentkezÃ©s, EgyidejÅ± / SzimultÃ¡n belÃ©pÃ©s
    biztonsag  - KÃ©tlÃ©pcsÅ‘s hitelesÃ­tÃ©s (Ã©s mentÅ‘kÃ³dok), 2FA vÃ©szfeloldÃ¡s, JelszÃ³..., BejelentkezÃ©si tiltÃ¡s (Ã©s feloldÃ¡sa)
    fiok       - Ãšj felhasznÃ¡lÃ³, FelhasznÃ¡lÃ³ Ã¡llapota / adata / tÃ¶rÃ¶lve, SzerepkÃ¶r, Modulok, HozzÃ¡fÃ©rÃ©sek, FiÃ³k aktivÃ¡lva, AktivÃ¡lÃ³ link, SzabadsÃ¡gon vagyok
    levelezes  - E-mail beÃ¡llÃ­tÃ¡s / korlÃ¡t, HibÃ¡s e-mailek Ãºjra sorba Ã¡llÃ­tva, LevÃ©l-feliratkozÃ¡s (sajÃ¡t Ã©s szabÃ¡ly)
    ceg        - CÃ©g Ã¡llapota, BÃ©rbeadÃ¡s/kihelyezÃ©s joga, Ãšj szuperadmin, VIVÃœ adatmigrÃ¡ciÃ³
    gep        - minden, ami gÃ©phez kÃ¶tÃ¶tt (machine_id kitÃ¶ltve): Ãºj gÃ©p, mezÅ‘mÃ³dosÃ­tÃ¡s, dokumentum, Ã¼zemÃ³ra, stÃ¡tusz, ...
    egyeb      - minden mÃ¡s (Ãºj esemÃ©nytÃ­pus, amit mÃ©g nem soroltunk be)
    Ãšj esemÃ©nytÃ­pus felvÃ©telekor a megfelelÅ‘ PREFIXEK listÃ¡t kell bÅ‘vÃ­teni (a kategÃ³ria-szÅ±rÅ‘ Ã©s a megjelenÃ­tÃ©s ugyanabbÃ³l dolgozik).

SZABÃ�LYOK
    * CSAK OLVAS (a GET nem Ã­rhat: docs/GET_ATTEKINTES.md).
    * RendezÃ©s: id szerint csÃ¶kkenÅ‘ (az id az idÅ‘rendet kÃ¶veti, Ã©s indexelt: nagy tÃ¡blÃ¡n is gyors; a timestamp-re nincs index).
    * A megjelenÃ­tett szÃ¶vegek (rÃ©gi / Ãºj Ã©rtÃ©k) az esemÃ©nyt kivÃ¡ltÃ³ (akÃ¡r tÃ¡madÃ³ Ã¡ltal beÃ­rt) szÃ¶veget tartalmazhatnak: a sablon automatikus escape-elÃ©se vÃ©di,
      a CSV-exportban a kÃ©pletnek lÃ¡tszÃ³ cellÃ¡k (=, +, -, @ kezdetÅ±ek) aposztrÃ³ffal vÃ©dettek.
é    N)ÚdateÚdatetimeÚtimeÚ	timedeltaÚtimezone)ÚOptional)Úand_ÚfuncÚnot_Úor_Úselect)Ú
joinedload)ÚHELYI_TZé2   é   iˆ  éd   éZ   é   ))Úbelepesu	   BelÃ©pÃ©szfa-right-to-bracketÚinfo)Ú	biztonsagu"   BiztonsÃ¡g (jelszÃ³, 2FA, tiltÃ¡s)zfa-shield-halvedÚdanger)Úfioku   FiÃ³k / felhasznÃ¡lÃ³zfa-userÚprimary)Ú	levelezesu
   LevelezÃ©szfa-envelopeÚwarning)Úcegu   CÃ©g / rendszerzfa-buildingÚsuccess)Úgepu   GÃ©p / dokumentumzfa-craneÚ	secondary)Úegyebõ   EgyÃ©búfa-circle-questionÚdarké   é   )u   KÃ©tlÃ©pcsÅ‘sÚ2FAu   JelszÃ³u   BejelentkezÃ©si tiltÃ¡s)u   BejelentkezÃ©su   KijelentkezÃ©su   EgyidejÅ± belÃ©pÃ©su   SzimultÃ¡n belÃ©pÃ©s)u   Ãšj felhasznÃ¡lÃ³u   FelhasznÃ¡lÃ³ Ã¡llapotau   FelhasznÃ¡lÃ³ adatau   FelhasznÃ¡lÃ³ tÃ¶rÃ¶lveu   SzerepkÃ¶r mÃ³dosÃ­tÃ¡sau   FiÃ³k aktivÃ¡lvau   AktivÃ¡lÃ³ linku   SzabadsÃ¡gon vagyoku   HozzÃ¡fÃ©rÃ©s-hozzÃ¡rendelÃ©seku   Modulok igazÃ­tÃ¡sau   Extra cÃ©gek mÃ³dosÃ­tÃ¡sa)úE-mailu   HibÃ¡s e-mailu   LevÃ©l-feliratkozÃ¡s)u   CÃ©g u   BÃ©rbeadÃ¡su   Ãšj szuperadminu   VIVÃœ adatmigrÃ¡ciÃ³u   BeÃ¡llÃ­tÃ¡su   GÃ©p tÃ¶rÃ¶lve)r   r   r   r   r   Úreturnc                 ó¦   • U R                   b  gU R                  =(       d    Sn[         H$  nUR                  [        U   5      (       d  M"  Us  $    g)u/   Egy naplÃ³-sor (models.AuditLog) kategÃ³riÃ¡ja.r   Ú r!   )Ú
machine_idÚ
field_nameÚ_SORRENDÚ
startswithÚ	_PREFIXEK)ÚsorÚnevÚkods      Ú'/var/www/website/rendszernaplo_utils.pyÚkategoria_kodr5   H   sD   € à
‡~�~Ñ!ØØ
�.‰.×
˜B€CßˆØ�>‰>œ) C™.×)Ó)ØŠJñ ð ó    r3   c                 ó.   • [         R                  U S5      $ )Nr"   )Ú_KAT_NEVÚget©r3   s    r4   Úkategoria_nevr;   S   s   € Ü�<‰<˜˜XÓ&Ð&r6   c                 ó.   • [         R                  U S5      $ )Nr$   )Ú	_KAT_SZINr9   r:   s    r4   Úkategoria_szinr>   W   s   € Ü�=‰=˜˜fÓ%Ð%r6   c                 ó.   • [         R                  U S5      $ )Nr#   )Ú	_KAT_IKONr9   r:   s    r4   Úkategoria_ikonrA   [   s   € Ü�=‰=˜Ð2Ó3Ð3r6   c                 óÞ   • [         R                  n[        U  VVs/ s HB  n[        U     H1  n[        R
                  " UR                  S[        U5      5      U:H  PM3     MD     snn6 $ s  snnf )Nr   )ÚmodelsÚAuditLogr   r0   r
   Úsubstrr-   Úlen)ÚkodokÚAr3   Úps       r4   Ú_prefix_feltetelrJ   _   sT   € Ü�‰€AäÁeÔdÂe¸sÔU^Ð_bÕUcÐPQ”—’˜QŸ\™\¨1¬c°!«fÓ5¸Ô:ÑUcÑ:ÁeÒdÐeÐeùÓds   ›A	A)
c                 ó¼  • [         R                  nU S:X  a  UR                  R                  S5      $ UR                  R	                  S5      nU S:X  aE  [        U[        UR                  R	                  S5      [        [        [        5      5      5      5      $ U S:X  a*  [        U[        S/5      [        [        S/5      5      5      $ [        U[        U /5      5      $ )ur   SQL-feltÃ©tel egy kategÃ³riÃ¡ra; a kategÃ³riÃ¡k kizÃ¡rjÃ¡k egymÃ¡st (a python-oldali kategoria_kod-dal egyezÅ‘en).r   Nr!   r   r   )rC   rD   r,   ÚisnotÚis_r	   r   r-   r   rJ   r.   )r3   rH   Ú
gepnelkulis      r4   Ú_kategoria_feltetelrO   e   s´   € ä�‰€AØ
ˆeƒ|Ø�|‰|×!Ñ! $Ó'Ð'Ø—‘×!Ñ! $Ó'€JØ
ˆgƒ~Ü�J¤ A§L¡L×$4Ñ$4°TÓ$:¼DÔAQÔRZÓA[Ó<\Ó ]Ó^Ð^à
ˆiÓÜ�JÔ 0°)°Ó =¼tÔDTÐVaÐUbÓDcÓ?dÓeÐeÜ�
Ô,¨c¨UÓ3Ó4Ð4r6   Úszovegc                 óª   • U =(       d    SR                  5       n U (       d  g [        R                  " U 5      S4$ ! [         a    SSU SS  34s $ f = f)uT   (date|None, hiba|None). Ãœres -> (None, None). Ã‰rvÃ©nytelen -> (None, hibaÃ¼zenet).r+   )NNNu   Ã‰rvÃ©nytelen dÃ¡tum: é   )Ústripr   ÚfromisoformatÚ
ValueError)rP   s    r4   ÚdatumrV   v   s]   € à�l˜×!Ñ!Ó#€FÞØð<Ü×!Ò! &Ó)¨4Ð/Ð/øÜó <ØÐ-¨f°S°b¨k¨]Ð;Ð;Ò;ð<ús   £; »AÁAÚnapc                 óÂ   • [         R                  " U [        R                  5      R	                  [
        S9R                  [        R                  5      R	                  SS9$ )u_   Egy helyi (budapesti) nap 00:00-ja UTC-ben, tz nÃ©lkÃ¼l (az adatbÃ¡zis Ã­gy tÃ¡rolja az idÅ‘t).©ÚtzinfoN)	r   Úcombiner   ÚminÚreplacer   Ú
astimezoner   Úutc)rW   s    r4   Ú_helyi_napkezdet_utcr`   �   sE   € ä×Ò˜C¤§¡Ó*×2Ñ2¼(Ð2ÐC×NÑNÌxÏ|É|Ó\×dÑdÐlpÐdÐqÐqr6   ÚtolÚigÚkeresesÚcsak_rendszeradminc                 ó¶  • [         R                  [         R                  p˜U R                  U5      R	                  X™R
                  UR                  :H  5      R                  [        UR                  5      [        UR                  5      [        UR                  5      R                  U	R                  5      5      n
[        R                  " UR                  U	R                  5      nU(       a¨  [        [         R                   R
                  5      R#                  [         R                   R$                  S:H  [         R                   R                  [&        :H  5      nU
R)                  [+        UR,                  R/                  U5      U[&        :H  5      5      n
US:X  a!  U
R)                  UR1                  S5      5      n
OUb  U
R)                  X±:H  5      n
US:X  a+  U
R)                  UR,                  R1                  S5      5      n
O!Ub  U
R)                  UR,                  U:H  5      n
U[2        ;   a  U
R)                  [5        U5      5      n
Ub'  U
R)                  UR6                  [9        U5      :¬  5      n
Ub1  U
R)                  UR6                  [9        U[;        SS9-   5      :  5      n
U=(       d    SR=                  5       S[>         nU(       aæ  SURA                  5       RC                  SS	5      RC                  SS
5      RC                  SS5      -   S-   nU
R)                  [+        [        R@                  " URD                  5      RG                  USS9[        R@                  " URH                  5      RG                  USS9[        R@                  " URJ                  5      RG                  USS95      5      n
U
RM                  UR
                  RO                  5       5      $ )u…  A szÅ±rt naplÃ³-lekÃ©rdezÃ©s (id szerint csÃ¶kkenÅ‘).
ceg: int = az a cÃ©g; "nincs" = cÃ©g nÃ©lkÃ¼li esemÃ©ny. felhasznalo: int = a vÃ©grehajtÃ³; "nincs" = nincs vÃ©grehajtÃ³ (rendszer).
tol / ig: helyi napok, mindkettÅ‘ bezÃ¡rÃ³lag. kereses: az esemÃ©nytÃ­pusban, a rÃ©gi Ã©s az Ãºj Ã©rtÃ©kben keres (kis/nagybetÅ±-fÃ¼ggetlen).
csak_rendszeradmin: a "rendszeradminra vonatkozÃ³" esemÃ©nyek (a dashboard-kÃ¡rtya): amit rendszeradmin-fiÃ³k hajtott vÃ©gre (Admin, company_id == 1; bÃ¡rmelyik cÃ©gnÃ©l),
VAGY aminek a tÃ©nyleges cÃ©ge a rendszeradmin cÃ©g (az 1-es cÃ©g Ã©s a gÃ©pei). A naplÃ³oldal ezt nem hasznÃ¡lja: ott minden esemÃ©ny lÃ¡tszik.ÚAdminÚnincsNr   )Údaysr+   Ú%Ú\z\\z\%Ú_z\_)Úescape)(rC   rD   ÚMachineÚqueryÚ	outerjoinÚidr,   Úoptionsr   Úuserr   Úmachiner
   ÚcoalesceÚ
company_idr   ÚUserÚwhereÚroleÚRENDSZERADMIN_CEG_IDÚfilterr   Úuser_idÚin_rM   ÚKATEGORIA_KODOKrO   Ú	timestampr`   r   rS   ÚKERESES_MAX_HOSSZÚlowerr]   r-   ÚlikeÚ	old_valueÚ	new_valueÚorder_byÚdesc)Údbr   ÚfelhasznaloÚ	kategoriara   rb   rc   rd   rH   ÚMÚqÚ
ceg_oszlopÚra_felhasznalokÚmintas                 r4   Úszurt_lekerdezesrŽ   †   sÓ  € ô �?‰?œFŸN™N€qØ	�‰�!‹×	Ñ	˜q§$¡$¨!¯,©,Ñ"6Ó	7ß
‰'”*˜QŸV™VÓ$¤j°·±Ó&7¼ÀAÇIÁIÓ9N×9YÑ9YÐZ[×Z_ÑZ_Ó9`Ó
að ä—’˜qŸ|™|¨Q¯\©\Ó:€JÞÜ ¤§¡§¡Ó0×6Ñ6´v·{±{×7GÑ7GÈ7Ñ7RÔTZ×T_ÑT_×TjÑTjô  oCñ  UCó  DˆØ�H‰H”S˜Ÿ™Ÿ™ Ó7¸ÔG[Ñ9[Ó\Ó]ˆØ
ˆgƒ~Ø�H‰H�Z—^‘^ DÓ)Ó*‰Ø	‰Ø�H‰H�ZÑ&Ó'ˆØ�gÓØ�H‰H�Q—Y‘Y—]‘] 4Ó(Ó)‰Ø	Ñ	 Ø�H‰H�Q—Y‘Y +Ñ-Ó.ˆØ”OÓ#Ø�H‰HÔ(¨Ó3Ó4ˆØ
�Ø�H‰H�Q—[‘[Ô$8¸Ó$=Ñ=Ó>ˆØ	�~Ø�H‰H�Q—[‘[Ô#7¸¼YÈAÑ=NÑ8NÓ#OÑOÓPˆØ�}˜"×#Ñ#Ó%Ð&8Ô'8Ð9€GÞØ�g—m‘m“o×-Ñ-¨d°FÓ;×CÑCÀCÈÓO×WÑWÐX[Ð]bÓcÑcÐfiÑiˆØ�H‰H”SœŸš A§L¡LÓ1×6Ñ6°uÀTÐ6ÐJÌDÏJÊJÐWX×WbÑWbÓLc×LhÑLhÐinÐw{ÐLhÐL|ÜŸš A§K¡KÓ0×5Ñ5°eÀDÐ5ÐIóKó Lˆà�:‰:�a—d‘d—i‘i“kÓ"Ð"r6   c                 ó¦   • U c  gU R                   c  U R                  [        R                  S9n U R	                  [
        5      R                  S5      $ )NÚ?rY   z%Y-%m-%d %H:%M:%S)rZ   r]   r   r_   r^   r   Ústrftime)Úutc_naivs    r4   Ú_helyi_szovegr“   ¬   sI   € ØÑØØ‡�ÑØ×#Ñ#¬8¯<©<Ð#Ð8ˆØ×ÑœxÓ(×1Ñ1Ð2EÓFÐFr6   Úrovidc                 ól  ^• U R                   b  U R                   R                  OEU R                  b7  U R                  R                   b   U R                  R                   R                  OSnU R                  b  U R                  O$U R                  b  U R                  R                  OSn[	        U 5      nU4S jnSnU R                  b„  SR                  S U R                  R                  U R                  R                  (       a  SU R                  R                   S3OS4 5       5      =(       d    SU R                  R                   3nOU R                  b  SU R                   S3nU R                  [        U R                  5      X2U R                  U R                  b  U R                  R                  OSU R                  b  U R                  R                  OSU[!        U5      [#        U5      [%        U5      U R&                  =(       d    S	U" U R(                  5      U" U R*                  5      US
.$ )uk   Egy naplÃ³-sor megjelenÃ­tÃ©sre kÃ©sz szÃ³tÃ¡ra. rovid: a hosszÃº Ã©rtÃ©keket levÃ¡gja (dashboard-kÃ¡rtya).Nc                 ót   >• U c  SO
[        U 5      n T(       a  [        U 5      [        :”  a  U S [         S-   $ U $ )Nr+   u   â€¦)ÚstrrF   ÚKARTYA_ERTEK_HOSSZ)Úxr”   s    €r4   ÚvagÚsor_adat.<locals>.vagº   s:   ø€ Ø‘)‰B¤ Q£ˆÞ49¼cÀ!»fÔGYÓ>Y�Ð%Ô%Ð&¨Ñ.ÐaÐ`aÐar6   Ú c              3   ó6   #   • U  H  o(       d  M  Uv •  M     g 7f)N© )Ú.0r™   s     r4   Ú	<genexpr>Úsor_adat.<locals>.<genexpr>À   s   é € Ð}Ò"w˜QÓ{|—q‘qÒ"wùs   ‚
�	Ú(Ú)Ú#u    (tÃ¶rÃ¶lt gÃ©p)r+   )rp   ÚidoÚceg_idr   r{   r‡   Úemailrˆ   r;   ÚszinÚikonÚmezoÚregiÚujr   )r   r2   rs   ru   r5   ÚjoinÚ
megnevezesÚ
gyari_szamrp   r,   r“   r~   r{   rr   Úusernamer§   r;   r>   rA   r-   r‚   rƒ   )Úar”   Úceg_nevr¦   r3   rš   r   s    `     r4   Úsor_adatr³   ´   sß  ø€ àŸ5™5Ñ,ˆa�e‰e�iŠiÈÏÉÑI^Ðcd×clÑcl×cpÑcpÑc|°1·9±9·=±=×3DÒ3Dð  DH€GØŸ\™\Ñ5ˆQ�\Š\ÐTU×T]ÑT]ÑTi¸A¿I¹I×<PÒ<PÐos€FÜ
˜Ó
€Cõbð €CØ‡y�yÑØ�h‰hÑ} 1§9¡9×#7Ñ#7ÐXY×XaÑXa×Xl×Xl¸1¸Q¿Y¹Y×=QÑ=QÐ<RÐRSÑ9TÐrvÑ"wÓ}Ó}÷  Tð  DEð  FG÷  FOñ  FO÷  FRñ  FRð  ESð  BT‰Ø	
�‰Ñ	!Ø�!—,‘,�Ð/Ð0ˆà�d‰dœ=¨¯©Ó5ÀØ—9‘9ÀÇÁÑ@R¨Q¯V©V¯_ª_ÐX\Ðwx×w}Ñw}ñ  xJÐgh×gmÑgm×gsÒgsð  PTØ¬=¸Ó+=Ä~ÐVYÓGZÔdrÐsvÓdwØ—‘×" ©C°·±Ó,<ÁCÈÏÉÓDTÐ]`ñ	ð r6   TÚdarabc                 óŠ   • [        XS9R                  U5      R                  5        Vs/ s H  n[        USS9PM     sn$ s  snf )u!  A dashboard-kÃ¡rtya: az utolsÃ³ `darab` rendszeradminra vonatkozÃ³ esemÃ©ny (v37 Ã³ta alapbÃ³l SZÅ°RT: csak a rendszeradmin-fiÃ³kok Ã¡ltal vÃ©grehajtott Ã©s a
rendszeradmin cÃ©get Ã©rintÅ‘ esemÃ©nyek; a teljes, minden cÃ©get mutatÃ³ naplÃ³ az /rendszeradmin/naplo oldalon van). Csak olvas.)rd   T)r”   )rŽ   ÚlimitÚallr³   )r†   r´   rd   r±   s       r4   Ú	legutobbir¸   Ë   s?   € ô .>¸bÑ-h×-nÑ-nÐotÓ-u×-yÑ-yÔ-{Ó|Ò-{¨ŒH�Q˜dÔ#Ñ-{Ñ|Ð|ùÒ|s   ©A c                 ó*  • U R                  [        R                  R                  [        R                  R                  5      R                  [        R                  R                  5      R                  5        VVs/ s H	  u  pXS.PM     snn$ s  snnf )N)rp   r2   )rn   rC   ÚCompanyrp   r2   r„   r·   )r†   ÚiÚns      r4   Úcegek_listajar½   Ñ   sa   € Ø,.¯H©H´V·^±^×5FÑ5FÌÏÉ×HZÑHZÓ,[×,dÑ,dÔek×esÑes×ewÑewÓ,x×,|Ñ,|Ô,~ÔÒ,~¡D A�1ÔÑ,~ÒÐùÓs   Á;Bc                 óÂ  • U R                  [        R                  R                  [        R                  R                  [        R                  R
                  [        R                  R                  [        R                  R                  5      R                  [        R                  [        R                  R                  [        R                  R                  :H  5      R                  [        R                  R                  [        R                  R                  5      R                  5       nU VVVVVs/ s H  u  p#pEobX4XV=(       d    SS.PM     snnnnn$ s  snnnnnf )uS   Minden felhasznÃ¡lÃ³ a szÅ±rÅ‘-listÃ¡hoz (cÃ©g szerint csoportosÃ­tva a sablonban).u   (cÃ©g nÃ©lkÃ¼l))rp   r2   r§   r¦   r   )rn   rC   rv   rp   r°   r§   ru   rº   r2   ro   r„   r·   )r†   Úsorokr»   r¼   ÚeÚcÚcns          r4   Úfelhasznalok_listajarÃ   Õ   sÐ   € à�X‰X”f—k‘k—n‘n¤f§k¡k×&:Ñ&:¼F¿K¹K×<MÑ<MÌvÏ{É{×OeÑOeÔgm×guÑgu×gyÑgyÓzß‰iœŸ™¬¯©×(9Ñ(9¼V¿[¹[×=SÑ=SÑ(SÓTß‰h”v—~‘~×)Ñ)¬6¯;©;×+?Ñ+?Ó@ÇÁÃð 
ñ pu×uÒotÑ]kÐ]^ÐcdÐik˜Q°a×@WÐFWÔXÑotÕuÐuùÖus   Ä5Ec                 óB   • U c  SO
[        U 5      nUSS S;   a  SU-   $ U$ )ug   CSV-injekciÃ³ ellen: a kÃ©pletnek lÃ¡tszÃ³ (=, +, -, @, tab, CR kezdetÅ±) cella elÃ© aposztrÃ³f kerÃ¼l.Nr+   r   )Ú=Ú+Ú-Ú@Ú	ÚÚ')r—   )ÚertekÚss     r4   Ú
_csv_cellarÎ   à   s.   € à‰m‰¤ U£€AØ˜˜�eÐ?Ó?ˆ3�‰7ÐFÀQÐFr6   c                 óÄ  • [         R                  " 5       n[        R                  " US[        R                  SS9nUR                  / SQ5        U  Hv  nUR                  US   US   =(       d    SUS   =(       d    S	US
   =(       d    SUS   US   US   US   US   =(       d    S4	 Vs/ s H  n[        U5      PM     sn5        Mx     SUR                  5       -   $ s  snf )u_   A naplÃ³-sorok (sor_adat szÃ³tÃ¡rak) CSV-je, pontosvesszÅ‘vel (magyar Excel) Ã©s UTF-8 BOM-mal.Ú;z
)Ú	delimiterÚquotingÚlineterminator)	u   IdÅ‘pontu   CÃ©gu   FelhasznÃ¡lÃ³r(   u
   KategÃ³riau   EsemÃ©nyu   RÃ©gi Ã©rtÃ©ku   Ãšj Ã©rtÃ©ku   GÃ©pr¥   r   r+   r‡   ÚRendszerr§   r;   rª   r«   r¬   r   u   ï»¿)ÚioÚStringIOÚcsvÚwriterÚQUOTE_MINIMALÚwriterowrÎ   Úgetvalue)r¿   ÚkiÚirorÍ   r™   s        r4   Ú
csv_szovegrÞ   æ   s/  € ä	�Š‹€BÜ
�*Š*�R 3´×0AÑ0AÐRXÑ
Y€CØ‡L�Lò  Cô  DÛˆØ�‰¨a°©h¸¸%¹¿ÀBÈÈ-ÑHX×HfÐ\fÐhiÐjqÑhr×hxÐvxÐz{ð  }Lñ  {Mð  OPð  QWñ  OXð  Z[ð  \bñ  Zcð  efð  gkñ  elð  noð  puñ  nv÷  n|ð  z|ñ  .}ó  ~ò  .}¨”j –mñ  .}ñ  ~ö  	ñ à�2—;‘;“=Ñ Ð ùò ~s   Â*C
)NNNNNr+   F)F)7Ú__doc__r×   rÕ   r   r   r   r   r   Útypingr   Ú
sqlalchemyr	   r
   r   r   r   Úsqlalchemy.ormr   rC   Útemplates_envr   Ú	LAP_MERETÚKARTYA_SOROKÚ
EXPORT_MAXr   r˜   ry   Ú
KATEGORIAKr}   r8   r=   r@   r0   r.   r—   r5   r;   r>   rA   rJ   rO   rV   r`   ÚboolrŽ   r“   Údictr³   ÚintÚlistr¸   r½   rÃ   rÎ   rÞ   )Úks   0r4   Ú<module>rí      s,  ðñó0 Û 	ß >Õ >Ý ç 4Õ 4Ý %ã Ý "à€	Ø€Ø€
ØÐ ØÐ ØÐ ò€
ñ ",Ó,¢˜A�Q”4¡Ñ,€Ù *Ó+¢
˜1ˆa‰D�!�A‘$ŠJ¡
Ñ+€Ù!+Ó,¢˜Aˆq‰T�1�Q‘4ŠZ¡Ñ,€	Ù!+Ó,¢˜Aˆq‰T�1�Q‘4ŠZ¡Ñ,€	ð
 PØbð|àDð qñ	€	ð @€ð˜#ô ð'�sð '˜sô 'ð&˜ð & ô &ð4˜ð 4 ô 4òfð5˜Sô 5ð"<�(˜3‘-ô <ðr˜dð r xô rñ
 #È(ÐSWÉ.ð  #ÐemÐnrÑesð  #ð  FIð  #ð  dhõ  #ðLG˜sô Gñ�tð ¨õ ð.  ,Èñ }˜ð }Àð }ÐQUõ }ð@˜ô @ðv ô vðG˜ô Gð!˜õ !ùòe -ùÚ+ùÚ,ùÚ,s   ÁE	Á&EÁ?EÂE