ó
    EdÂj®A  ã            
       óÔ  • % S r SSKJrJr  SSKJrJrJrJrJr  SSK	r	/ SQr
\\\\\4      \S'   \
 V s/ s H  o S   PM	     sn r\
 V s0 s H  o S   U S   _M     sn rSrS	rS
rSr\\\\/r\S\S\S\S0r/ SQrSrS\S\4S jrS\4S jrS\S\\\\4   \4   4S jrS\\   S\\\\4   \4   4S jrS\S\\   S\4S jrS\4S jrS\S\4S jr S\4S jr!S\S \S\"4S! jr#S\S \S\\   4S" jr$S \S\4S# jr%S\\&   4S$ jr'S \S%\S\4S& jr(S\S \S\S\4S' jr)S\S\S \S\S\4
S( jr*S\S\\&   4S) jr+S*\\&   S\\\4   4S+ jr,S\\   SS4S, jr-S\SS4S- jr.gs  sn f s  sn f ).u  LevÃ©l-feliratkozÃ¡sok hierarchiÃ¡val (2026-10-04, e-mail rendszer C szelete).

MIÃ‰RT KELL?
    KorÃ¡bban a riasztÃ¡sokat Ã©s a riportot MINDIG az adott cÃ©g Ã¶sszes Admin Ã©s EmelÅ‘gÃ©p Ã¼gyintÃ©zÅ‘
    (EÃœI) szerepkÃ¶rÅ± felhasznÃ¡lÃ³ja megkapta - a kÃ³dban kÃ³dolva, nem lehetett kikapcsolni, Ã©s mÃ¡s
    szerepkÃ¶r nem is kÃ©rhette. MostantÃ³l:

      1. A CÃ‰GES ADMIN szerepkÃ¶rÃ¶nkÃ©nt Ã©s kategÃ³riÃ¡nkÃ©nt megadja a szabÃ¡lyt (EmailFeliratkozasSzabaly):
            kotelezo   - mindig megkapja, a felhasznÃ¡lÃ³ nem kapcsolhatja ki
            alapbol_be - alapbÃ³l megkapja, a felhasznÃ¡lÃ³ kikapcsolhatja
            alapbol_ki - alapbÃ³l nem kapja, a felhasznÃ¡lÃ³ bekapcsolhatja
            tiltott    - nem kaphatja (Ã©s nem is kÃ©rheti)
      2. A FELHASZNÃ�LÃ“ a sajÃ¡t "Ã‰rtesÃ­tÃ©seim" oldalÃ¡n azt Ã¡llÃ­tja Ã¡t, amit a szabÃ¡ly megenged
         (EmailFeliratkozas) - kÃ¶telezÅ‘ vagy tiltott kategÃ³riÃ¡t nem mÃ³dosÃ­that.
      3. A levÃ©l kÃ¼ldÃ©sekor a cÃ­mzettek listÃ¡jÃ¡t EZ A MODUL Ã¡llÃ­tja elÅ‘ (cimzettek()).

KATEGÃ“RIÃ�K (a rendszer-/biztonsÃ¡gi Ã©s az aktivÃ¡lÃ³ levelek NEM ide tartoznak: azok mindig mennek):
    gep_riasztas          - hiba- Ã©s kritikus gÃ©p-Ã©rtesÃ­tÃ©sek (napi ellenÅ‘rzÃ©s hibÃ¡ja, automatikus
                            besorolÃ¡s-ellenÅ‘rzÃ©s)
    lejarati_riport       - a napi/heti riport a lejÃ¡rt Ã©s kÃ¶zelgÅ‘ vizsgÃ¡latokrÃ³l
    sikertelen_vizsgalat  - "KorlÃ¡tozÃ¡ssal alkalmas" / "Nem alkalmas" minÅ‘sÃ­tÃ©s utÃ¡ni Ã©rtesÃ­tÃ©s
    berlet                - a kihelyezett (bÃ©relt) gÃ©pek hibÃ¡ja / sikertelen vizsgÃ¡lata miatt a BÃ‰RLÅ� cÃ©g
                            felhasznÃ¡lÃ³inak kÃ¼ldÃ¶tt Ã©rtesÃ­tÃ©sek (a bÃ©rbeadÃ³ cÃ©gnek a sajÃ¡t kategÃ³riÃ¡ja
                            szerint megy; a bÃ©relt gÃ©pek lejÃ¡ratai a bÃ©rlÅ‘ lejarati_riport-jÃ¡ban vannak)

HATÃ“KÃ–R: az Admin Ã©s az EÃœI vÃ¡ltozatlanul (rÃ©gi viselkedÃ©s); minden mÃ¡s szerepkÃ¶r csak akkor kaphat
levelet, ha CÃ‰G szintÅ± hozzÃ¡fÃ©rÃ©se van Ã©s hozzÃ¡fÃ©r az EmelÅ‘gÃ©p modulhoz (hatokor_megfelelo_e). A napi
riport dolgozÃ³i (HR) szakasza - orvosi alkalmassÃ¡g, jogosÃ­tvÃ¡ny - kizÃ¡rÃ³lag az Admin/EÃœI cÃ­mzetteknek
megy (l. email_utils._ceg_riport).

ALAPÃ‰RTELMEZÃ‰S (nincs sor a szabÃ¡ly-tÃ¡blÃ¡ban): Admin Ã©s EmelÅ‘gÃ©p Ã¼gyintÃ©zÅ‘ = alapbol_be (pontosan a
korÃ¡bbi mÅ±kÃ¶dÃ©s, migrÃ¡ciÃ³ nÃ©lkÃ¼l), minden mÃ¡s szerepkÃ¶r = tiltott (a cÃ©gadmin engedÃ©lyezheti).

A CÃ‰GES FÅ�KAPCSOLÃ“K (Dictionary: EmailRiportGyakorisag, VizsgalatSikertelenEmailErtesites) VÃ�LTOZATLANOK
Ã©s Ã�LTALUK FELÃœLBÃ�RÃ�LTAK: ha a cÃ©g kikapcsolta a riportot / a sikertelen-vizsgÃ¡lat levelet, senki nem
kapja, akÃ¡rmit Ã¡llÃ­t a hierarchia. Ezt a hÃ­vÃ³ (email_utils / msz_logic) ellenÅ‘rzi, nem ez a modul.

Nem commitol: a hÃ­vÃ³ dÃ¶nt a tranzakciÃ³rÃ³l (kivÃ©ve ahol a docstring mÃ¡st mond).
é    )ÚdatetimeÚtimezone)ÚDictÚIterableÚListÚOptionalÚTupleN))Úgep_riasztasu   GÃ©p-riasztÃ¡sokux   Hiba- Ã©s kritikus gÃ©p-Ã©rtesÃ­tÃ©sek: a napi ellenÅ‘rzÃ©s sorÃ¡n talÃ¡lt hiba, az automatikus besorolÃ¡s-ellenÅ‘rzÃ©s.)Úlejarati_riportu   LejÃ¡rati riportu´   A napi (vagy heti) Ã¶sszefoglalÃ³ a lejÃ¡rt Ã©s hamarosan lejÃ¡rÃ³ vizsgÃ¡latokrÃ³l. A gyakorisÃ¡got a cÃ©g Ã¡llÃ­tja a BeÃ¡llÃ­tÃ¡sokban; ha ott ki van kapcsolva, senki nem kapja.)Úsikertelen_vizsgalatu   Sikertelen vizsgÃ¡latuÁ   Azonnali Ã©rtesÃ­tÃ©s, ha egy vizsgÃ¡lat vagy dokumentum "KorlÃ¡tozÃ¡ssal alkalmas" vagy "Nem alkalmas" minÅ‘sÃ­tÃ©st kap. A BeÃ¡llÃ­tÃ¡sokban a cÃ©g ki is kapcsolhatja - akkor senki nem kapja.)Úberletu   BÃ©relt gÃ©pekuÁ   Hiba- Ã©s sikertelen-vizsgÃ¡lat Ã©rtesÃ­tÃ©sek azokrÃ³l a gÃ©pekrÅ‘l, amelyeket mÃ¡s cÃ©gtÅ‘l bÃ©relsz (hozzÃ¡d kihelyezett gÃ©pek). A bÃ©relt gÃ©pek lejÃ¡ratai a LejÃ¡rati riportban Ã©rkeznek.Ú
KATEGORIAKé   ÚkotelezoÚ
alapbol_beÚ
alapbol_kiÚtiltottu    KÃ¶telezÅ‘ (nem kapcsolhatÃ³ ki)u   AlapbÃ³l be (kikapcsolhatÃ³)u   AlapbÃ³l ki (bekapcsolhatÃ³)ÚTiltott)	ÚAdminõ   EmelÅ‘gÃ©p Ã¼gyintÃ©zÅ‘u   EmelÅ‘gÃ©p szakÃ©rtÅ‘u   EmelÅ‘gÃ©p vizsgÃ¡lÃ³u   FelhasznÃ¡lÃ³u   KarbantartÃ³ÚVIVUÚEBKu   MegtekintÅ‘)r   r   Ú	szerepkorÚreturnc                 ó.   • U [         ;   a  [        $ [        $ )uc   Ha nincs tÃ¡rolt szabÃ¡ly: Admin/EÃœI alapbÃ³l kapja (kikapcsolhatÃ³), a tÃ¶bbi szerepkÃ¶r tiltott.)ÚALAP_CIMZETT_SZEREPKOROKÚ
ALAPBOL_BEÚTILTOTT)r   s    Ú&/var/www/website/email_feliratkozas.pyÚalap_modr    T   s   € à"Ô&>Ó>Œ:ÐKÄGÐKó    c                  ód   • [         R                  " [        R                  5      R	                  S S9$ )N)Útzinfo)r   Únowr   ÚutcÚreplace© r!   r   Ú	_utc_mostr(   Y   s#   € Ü�<Š<œŸ™Ó%×-Ñ-°TÐ-Ð:Ð:r!   Ú
company_idc           	      óÔ  • [          VVs0 s H  n[          H  o2U4[        U5      _M     M      nnnU R                  [        R
                  5      R                  [        R
                  R                  U:H  5      R                  5       nU HS  nUR                  [        ;   d  M  UR                  [        ;   d  M/  UR                  XFR                  UR                  4'   MU     U$ s  snnf )uœ   {(szerepkÃ¶r, kategÃ³ria): mÃ³d} - a cÃ©g TÃ�ROLT szabÃ¡lyai, kiegÃ©szÃ­tve az alapÃ©rtelmezÃ©ssel,
Ã­gy MINDEN szerepkÃ¶r x kategÃ³ria pÃ¡r szerepel benne.)ÚSZEREPKOROKÚKATEGORIA_KODOKr    ÚqueryÚmodelsÚEmailFeliratkozasSzabalyÚfilterr)   ÚallÚmodÚMODOKÚ	kategoriar   )Údbr)   ÚszÚkatÚ	szabalyokÚsorokÚss          r   Úszabalyok_betolteser;   `   s²   € õ 4?ÔZ²;¨RÏ/È/À3�c�œH R›LÒ(É/‘±;€IÑZØ�H‰H”V×4Ñ4Ó5×<Ñ<Ü×'Ñ'×2Ñ2°jÑ@óBßBEÁ#Ã%ð 
ãˆØ�5‰5”E�>˜aŸk™k¬_Õ<Ø45·E±EˆI—{‘{ A§K¡KÐ0Ó1ñ ð Ðùó [s   Š%C$Úuser_idkc                 ór  • [        U5      nU(       d  0 $ U R                  [        R                  5      R	                  [        R                  R
                  R                  U5      5      R                  5       nU Vs0 s H.  o3R
                  UR                  4[        UR                  5      _M0     sn$ s  snf )uU   {(user_id, kategÃ³ria): bekapcsolva} - a felhasznÃ¡lÃ³k TÃ�ROLT sajÃ¡t vÃ¡lasztÃ¡sai.)Úlistr-   r.   ÚEmailFeliratkozasr0   Úuser_idÚin_r1   r4   ÚboolÚbekapcsolva)r5   r<   r9   r:   s       r   Úvalasztasok_betolteserD   l   s„   € ä�H‹~€HÞØˆ	Ø�H‰H”V×-Ñ-Ó.×5Ñ5´f×6NÑ6N×6VÑ6V×6ZÑ6ZÐ[cÓ6dÓe×iÑiÓk€EÙCHÓIÂ5¸a�Y‰Y˜Ÿ™Ð$¤d¨1¯=©=Ó&9Ò9Á5ÑIÐIùÒIs   Á<5B4r2   Ú	valasztasc                 ó\   • U [         :X  a  gU [        :X  a  gUc	  U [        :H  $ [        U5      $ )uŸ   A VÃ‰GLEGES dÃ¶ntÃ©s: kap-e levelet. kotelezo -> igen; tiltott -> nem; alapbol_be/ki -> a
felhasznÃ¡lÃ³ tÃ¡rolt vÃ¡lasztÃ¡sa, ennek hiÃ¡nyÃ¡ban az alapÃ©rtÃ©k.TF)ÚKOTELEZOr   r   rB   )r2   rE   s     r   Ú	hatarozatrH   u   s3   € ð ŒhƒØØ
Œgƒ~ØØÑØ”jÑ Ð Ü�	‹?Ðr!   c                 óè   • U R                   [        ;   a  gU R                  =(       d    SS:w  a  gU R                   Vs1 s H!  o"R                  (       d  M  UR
                  iM#     nnSX-  ;   $ s  snf )u­  Az Admin Ã©s az EÃœI (a korÃ¡bbi, kÃ³dba Ã©getett cÃ­mzettek) vÃ¡ltozatlanul megfelelnek. Minden MÃ�S
szerepkÃ¶rnÃ©l (amit a cÃ©gadmin kapcsolt be) csak akkor kaphat levelet, ha CÃ‰G szintÅ± hozzÃ¡fÃ©rÃ©se van
(nem telephelyre/gÃ©pre korlÃ¡tozott) Ã‰S hozzÃ¡fÃ©r az EmelÅ‘gÃ©p modulhoz - kÃ¼lÃ¶nben a sajÃ¡t hatÃ³kÃ¶re
feletti gÃ©pekrÅ‘l Ã©s a teljes riportrÃ³l kapna informÃ¡ciÃ³t (az alkalmazÃ¡s egyÃ©bkÃ©nt elrejtenÃ© elÅ‘le).TÚCEGFÚEMELOGEP)Úroler   Úhozzaferes_szintÚsajat_modulokÚaktivÚkod)ÚuserÚcompany_modul_kodokÚmÚsajats       r   Úhatokor_megfelelo_erU   „   sd   € ð
 ‡y�yÔ,Ó,ØØ×Ñ×& ¨5Ó0ØØ ×.Ò.Ó:Ò.�q·'µ'‹UˆQ�UŒUÑ.€EÐ:ØÐ-Ñ5Ñ6Ð6ùò ;s   ¾A/ÁA/c                 óØ   • U R                  [        R                  U5      nUb9  UR                   Vs1 s H!  o3R                  (       d  M  UR
                  iM#     sn$ [        5       $ s  snf )N)Úgetr.   ÚCompanyÚengedelyezett_modulokrO   rP   Úset)r5   r)   ÚcegrS   s       r   Ú_ceg_modul_kodokr\   ‘   sM   € Ø
�&‰&”—‘ Ó
,€CØDGÁO˜3×4Ò4Ó@Ò4�a¿½‹EˆA�EŒEÑ4Ñ@Ð^ÔY\ÓY^Ð^ùÒ@s   ²A'Á
A'c                 ó   • U R                  [        R                  5      R                  [        R                  R                  U:H  [        R                  R
                  R                  S5      [        R                  R                  R                  S5      [        R                  R                  R                  S5      5      R                  5       $ )uª   A cÃ©g olyan felhasznÃ¡lÃ³i, akiknek egyÃ¡ltalÃ¡n kÃ¼ldhetÅ‘ levÃ©l: aktÃ­v, aktivÃ¡lt (a mÃ©g meg nem
erÅ‘sÃ­tett cÃ­m nem kap semmit - E szelet) Ã©s van e-mail cÃ­mÃ¼k.FN)
r-   r.   ÚUserr0   r)   rO   ÚisnotÚ	aktivalvaÚemailr1   ©r5   r)   s     r   Ú_kuldheto_felhasznalokrc   –   s‡   € ð �8‰8”F—K‘KÓ ×'Ñ'Ü�‰×Ñ *Ñ,Ü�‰×Ñ×Ñ Ó&Ü�‰×Ñ×#Ñ# EÓ*Ü�‰×Ñ×Ñ Ó%ó	÷
 
�cƒeðr!   r4   c                 ój  • U[         ;  a  [        SU 35      e[        X5      nU(       d  / $ [        X5      n[	        X Vs/ s H  oUR
                  PM     sn5      n[        X5      n/ [        5       p˜U Hµ  nUR                  UR                  U4[        5      n
[        X¦R                  UR
                  U45      5      (       d  MR  [        XW5      (       d  Md  UR                  (       d  Mw  UR                  U	;  d  M‰  UR                  U5        U	R                  UR                  5        M·     U$ s  snf )u¯   A cÃ©g azon felhasznÃ¡lÃ³i (User objektumok, e-mail cÃ­m szerint egyedi), akik a hierarchia szerint
kapjÃ¡k a megadott kategÃ³riÃ¡t. A cÃ©g fÅ‘kapcsolÃ³it a HÃ�VÃ“ ellenÅ‘rzi.u   ismeretlen levÃ©lkategÃ³ria: )r,   Ú
ValueErrorrc   r;   rD   Úidr\   rZ   rW   rL   r   rH   rU   ra   ÚappendÚadd)r5   r)   r4   Úfelhasznalokr8   ÚuÚvalasztasokÚmodulokÚeredmenyÚcimekr2   s              r   Úcimzett_felhasznalokro   ¡   sô   € ð œÓ'ÜÐ8¸¸ÐDÓEÐEÜ)¨"Ó9€LÞØˆ	Ü# BÓ3€IÜ'¨¸<Ó,Hº<°a¯T¬T¹<Ñ,HÓI€KÜ˜rÓ.€GØœ#›%ˆeÛˆØ�m‰m˜QŸV™V YÐ/´Ó9ˆÜ�cŸ?™?¨A¯D©D°)Ð+<Ó=×>Ó>ÔCVÐWX×CbÓCbØ—G—G‘G §¡¨uÕ 4Ø�O‰O˜AÔØ�I‰I�a—g‘gÖñ ð €Oùò -Is   ÁD0
c                 óX   • [        XU5       Vs/ s H  o3R                  PM     sn$ s  snf )uF   A cimzett_felhasznalok e-mail cÃ­mei (a felhasznÃ¡lÃ³k sorrendjÃ©ben).)ro   ra   )r5   r)   r4   rj   s       r   Ú	cimzettekrq   ¶   s%   € ä1°"À)ÔLÓMÒL˜�GŒGÑLÑMÐMùÒMs   �'c                 óä   • [        XR                  5      R                  UR                  U4[        5      n[        XR                  /5      R                  UR                  U45      n[        X45      $ )ug   Egy felhasznÃ¡lÃ³ra: kap-e levelet az adott kategÃ³riÃ¡bÃ³l (a cÃ©g szabÃ¡lya + a sajÃ¡t vÃ¡lasztÃ¡sa).)r;   r)   rW   rL   r   rD   rf   rH   )r5   rQ   r4   r2   Úvs        r   Úfeliratkozva_ert   »   sU   € ä
˜b§/¡/Ó
2×
6Ñ
6¸¿	¹	À9Ð7MÌwÓ
W€CÜ˜b§7¡7 )Ó,×0Ñ0°$·'±'¸9Ð1EÓF€AÜ�SÓÐr!   c                 óî  • [        XR                  5      n[        XR                  /5      n[	        U[        XR                  5      5      n/ n[         Hž  u  pgnUR                  UR                  U4[        5      n	UR                  UR                  U45      n
U	[        :g  =(       a    UnUR                  XgX‰[        U	   U=(       a    [        Xš5      U=(       a    U	[        [        4;   US.5        M      U$ )uÏ   A felhasznÃ¡lÃ³ "Ã‰rtesÃ­tÃ©seim" oldalÃ¡hoz: kategÃ³riÃ¡nkÃ©nt a szabÃ¡ly, a tÃ©nyleges Ã¡llapot Ã©s hogy
mÃ³dosÃ­thatja-e. Csak a tiltott kategÃ³riÃ¡k 'lathato' = False (nem Ã©rdekesek a felhasznÃ¡lÃ³nak).)rP   ÚnevÚleirasr2   Ú	mod_cimkeÚkapÚmodosithatoÚlathato)r;   r)   rD   rf   rU   r\   r   rW   rL   r   rg   Ú
MOD_CIMKEKrH   r   Ú
ALAPBOL_KI)r5   rQ   r8   rk   Ú
hatokor_okrm   rP   rv   rw   r2   rs   r{   s               r   Úfelhasznaloi_allapotr   Å   sÏ   € ô $ B¯©Ó8€IÜ'¨¯W©W¨IÓ6€KÜ$ TÔ+;¸BÇÁÓ+PÓQ€JØ€Hß&Ñˆ�&Ø�m‰m˜TŸY™Y¨Ð,¬gÓ6ˆØ�O‰O˜TŸW™W c˜NÓ+ˆØœ‘.×/ ZˆØ�‰Ø¨fÌzÐZ]ÉØ×0œy¨Ó0Ø"×F s¬z¼:Ð.FÑ'FØñ	
ö 	ñ	 'ð €Or!   rC   c           	      ó.  • U[         ;  a  g[        XR                  5      R                  UR                  U4[
        5      nU[        [        4;  a  gU R                  [        R                  5      R                  UR                  US9R                  5       n[        5       nUc:  U R                  [        R                  " UR                  U[!        U5      US95        g[!        UR"                  5      [!        U5      :w  a  [!        U5      Ul        Xel        g)u´   A felhasznÃ¡lÃ³ sajÃ¡t vÃ¡lasztÃ¡sÃ¡nak mentÃ©se. Igaz, ha mentettÃ¼k; hamis, ha a cÃ©g szabÃ¡lya nem engedi
(kÃ¶telezÅ‘ / tiltott kategÃ³ria, ismeretlen kategÃ³ria). NEM commitol.F)r@   r4   )r@   r4   rC   Úmodositva_atT)r,   r;   r)   rW   rL   r   r   r}   r-   r.   r?   Ú	filter_byrf   Úfirstr(   rh   rB   rC   r�   )r5   rQ   r4   rC   r2   ÚsorÚmas          r   Úvalasztas_beallitasar†   Ù   sÜ   € ð œÓ'ØÜ
˜b§/¡/Ó
2×
6Ñ
6¸¿	¹	À9Ð7MÌwÓ
W€CØ
”:œzÐ*Ó*ØØ
�(‰(”6×+Ñ+Ó
,×
6Ñ
6¸t¿w¹wÐR[Ð
6Ð
\×
bÑ
bÓ
d€CÜ	‹€BØ
�{Ø
�‰Œv×'Ò'°·±À9ÔZ^Ð_jÓZkÐz|Ñ}Ô~ð ô 
ˆc�o‰oÓ	¤$ {Ó"3Ó	3Ü˜{Ó+ˆŒØÔØr!   c                 ód   • U [         ;  d  U[        ;  d
  U[        ;  a  gU S:X  a  U[        :X  a  gg)u²   ElfogadhatÃ³-e a (szerepkÃ¶r, kategÃ³ria, mÃ³d) hÃ¡rmas. Az Admin szerepkÃ¶r nem tilthatÃ³ le (kÃ¼lÃ¶nben
egy elgÃ©pelt beÃ¡llÃ­tÃ¡ssal a cÃ©gben senki nem lÃ¡tnÃ¡ a riasztÃ¡st).Fr   T)r+   r,   r3   r   )r   r4   r2   s      r   Úszabaly_ervenyes_erˆ   î   s2   € ð œÓ# y¼Ó'GÈ3ÔV[ÓK[ØØ�GÓ ¤w£ØØr!   c                 ó€  • [        X#U5      (       d  [        S5      e[        X5      X#4   nU R                  [        R
                  5      R                  XUS9R                  5       nXd:X  a  Uc  gUb  UR                  U:X  a  g[        5       nUc2  U R                  [        R
                  " XUXH[        USS5      S95        OXGl        X‡l        [        USS5      Ul        U R                  [        R                  " U[        USS5      SU S[        U    S	[         U    3U S[        U    S	[         U    3S
95        g)uÀ   Egy szabÃ¡ly mentÃ©se (a cÃ©g Admin-jÃ¡nak kÃ©rÃ©sÃ©re) + naplÃ³. Igaz, ha Ã‰RDEMBEN vÃ¡ltozott (a naplÃ³ba
csak a valÃ³di vÃ¡ltozÃ¡s kerÃ¼l). Ã‰rvÃ©nytelen hÃ¡rmasra ValueError. NEM commitol.u$   Ã©rvÃ©nytelen feliratkozÃ¡s-szabÃ¡ly)r)   r   r4   NFrf   )r)   r   r4   r2   r�   Úmodosito_user_idu   LevÃ©l-feliratkozÃ¡s szabÃ¡lyz / z: )r)   r@   Ú
field_nameÚ	old_valueÚ	new_valueT)rˆ   re   r;   r-   r.   r/   r‚   rƒ   r2   r(   rh   Úgetattrr�   rŠ   ÚAuditLogÚKATEGORIA_NEVEKr|   )	r5   r)   r   r4   r2   ÚkuldoÚregir„   r…   s	            r   Úszabaly_beallitasar“   ø   sK  € ô ˜i°C×8Ñ8ÜÐ?Ó@Ð@Ü˜rÓ.°	Ð/EÑF€DØ
�(‰(”6×2Ñ2Ó
3×
=Ñ
=Ø¸ið >ð IßINÉËð àƒ{�s‘{ØØ
�˜3Ÿ7™7 c›>ØÜ	‹€BØ
�{Ø
�‰Œv×.Ò.¸*ÐenØ36ÔZaÐbgÐimÐosÓZtñvõ 	wð ŒØÔÜ& u¨d°DÓ9ˆÔØ‡F�FŒ6�?Š?Ø¤w¨u°d¸DÓ'AØ2Ø�K˜s¤?°9Ñ#=Ð">¸bÄÈDÑAQÐ@RÐSØ�K˜s¤?°9Ñ#=Ð">¸bÄÈCÁÐ@QÐRñ	Tô Uð
 r!   c                 óþ  • U R                  [        R                  5      R                  [        R                  R                  U:H  [        R                  R
                  R                  S5      5      R                  [        R                  R                  5      R                  5       n[        X5      n[        X Vs/ s H  oDR                  PM     sn5      n[        X5      n/ nU GH  n0 n[        UR                  5      =(       a     UR                   SL=(       a    [#        XF5      n	[$         Hf  n
UR'                  UR(                  U
4[*        5      nU	=(       a6    U[*        :g  =(       a&    [-        XµR'                  UR                  U
45      5      XŠ'   Mh     UR/                  UR                  UR                  UR                  UR(                  UR                   SL U[#        XF5      (       + S.5        GM     U$ s  snf )ui   A cÃ©g felhasznÃ¡lÃ³nkÃ©nti Ã¡llapota (csak olvashatÃ³ tÃ¡blÃ¡zathoz): ki melyik kategÃ³riÃ¡t kapja most.F)rf   Úusernamera   rL   ÚvaroÚallapotÚhatokor_korlat)r-   r.   r^   r0   r)   rO   r_   Úorder_byr•   r1   r;   rD   rf   r\   rB   ra   r`   rU   r,   rW   rL   r   rH   rg   )r5   r)   ri   r8   rj   rk   rl   r9   r—   ÚkuldhetorP   r2   s               r   Úceges_attekintesr›     s|  € à—8‘8œFŸK™KÓ(×/Ñ/Ü�‰×Ñ *Ñ,¬f¯k©k×.?Ñ.?×.EÑ.EÀeÓ.LóNßNVÉhÔW]×WbÑWb×WkÑWkÓNl×mpÑmpÓmrð ä# BÓ3€IÜ'¨¸<Ó,Hº<°a¯T¬T¹<Ñ,HÓI€KÜ˜rÓ.€GØ€EÜˆØˆÜ˜Ÿ™“=×a Q§[¡[¸Ð%=×aÔBUÐVWÓBaˆß"ˆCØ—-‘- §¡¨ ¬wÓ7ˆCØ#×g¨¬w©×g¼9ÀSÏ/É/Ð[\×[_Ñ[_ÐadÐZeÓJfÓ;gˆG‹Lñ #ð 	�‰Ø—$‘$ A§J¡J¸¿¹È!Ï&É&Ø—K‘K 5Ð(°WÜ"5°aÓ"AÔAñ
÷ 	ñ ð €Lùò -Is   Â;G:
Ú
attekintesc                 óf   ^• [          V^s0 s H  mT[        U4S jU  5       5      _M     sn$ s  snf )u¾   KategÃ³riÃ¡nkÃ©nt hÃ¡ny felhasznÃ¡lÃ³ kapja most (a ceges_attekintes() eredmÃ©nyÃ©bÅ‘l) - a cÃ©ges oldalon
figyelmeztetÃ©s, ha egy kategÃ³riÃ¡nak nincs cÃ­mzettje (pl. mindenki kikapcsolta).c              3   ó\   >#   • U  H!  oS    R                  T5      (       d  M  Sv •  M#     g7f)r—   r   N)rW   )Ú.0r:   rP   s     €r   Ú	<genexpr>Ú&cimzett_darabszamok.<locals>.<genexpr>-  s"   øé € ÐD¢
˜1°	©l×.>Ñ.>¸s×.C—Q‘Q¢
ùs   ƒ,£	,)r,   Úsum)rœ   rP   s    `r   Úcimzett_darabszamokr£   *  s1   ø€ õ Q`Ô`ÒP_ÈˆC”ÔD¡
ÓDÓDÒDÑP_Ñ`Ð`ùÒ`s   ‹ .c                 óî   • [        U5      nU(       ac  U R                  [        R                  5      R	                  [        R                  R
                  R                  U5      5      R                  SS9  gg)u¦   FelhasznÃ¡lÃ³(k) tÃ¶rlÃ©sekor a sajÃ¡t vÃ¡lasztÃ¡saik tÃ¶rlÃ©se (a DB-ben ON DELETE CASCADE is van; ez a
SQLite/tesztek Ã©s a vÃ©delmi mÃ©lysÃ©g miatt). NEM commitol.F©Úsynchronize_sessionN)r>   r-   r.   r?   r0   r@   rA   Údelete)r5   r<   s     r   Útorles_felhasznalohozr¨   0  s`   € ô �H‹~€HÞØ
�‰”×)Ñ)Ó*×1Ñ1´&×2JÑ2J×2RÑ2R×2VÑ2VÐW_Ó2`Óa×hÑhð  ~CÐhò  	Dð r!   c                 ó°   • U R                  [        R                  5      R                  [        R                  R                  U:H  5      R                  SS9  g)u7   CÃ©g tÃ¶rlÃ©sekor a szabÃ¡lyok tÃ¶rlÃ©se. NEM commitol.Fr¥   N)r-   r.   r/   r0   r)   r§   rb   s     r   Útorles_ceghezrª   8  sA   € à‡H�HŒV×,Ñ,Ó-×4Ñ4Ü×'Ñ'×2Ñ2°jÑ@óBßBHÁ&Ð]bÀ&ÒBcr!   )/Ú__doc__r   r   Útypingr   r   r   r   r	   r.   r   ÚstrÚ__annotations__r,   r�   rG   r   r}   r   r3   r|   r+   r   r    r(   Úintr;   rB   rD   rH   rU   rZ   r\   rc   r>   ro   rq   rt   Údictr   r†   rˆ   r“   r›   r£   r¨   rª   )Úks   0r   Ú<module>r²      sµ  ðò&÷N (ß 8Õ 8ã ò*€
ˆD��s˜C �}Ñ%Ñ&ó ñ ",Ó,¢˜A�Q”4¡Ñ,€Ù'1Ó2¢z !�Q‘4˜˜1™’:¡zÑ2€ð €Ø€
Ø€
Ø
€Ø	�:˜z¨7Ð3€àÐ0ØÐ.ØÐ.ØˆYð	€
ò€ð
 @Ð ðL˜ð L ô Lð
;�8ô ;ð	¨ð 	°°U¸3À¸8±_ÀcÐ5IÑ0Jô 	ðJ¨°©ð J¸$¸uÀSÈ#ÀX¹ÐPTÐ?TÑ:Uô Jð	�3ð 	 8¨D¡>ð 	°dô 	ð
7°dô 
7ð_ Sð _¨Sô _ð
¨3ô ð¨ð ¸ð Àô ð*N˜cð N¨cð N°d¸3±iô Nð
¨ð °ô ð d¨4¡jô ð(¨cð Àð Èô ð* #ð °#ð ¸Cð ÀDô ð sð °sð Àsð ÐQTð Ð`dô ð8 Sð ¨T°$©Zô ð,a D¨¡Jð a°4¸¸S¸±>ô aðD¨°©ð D¸$ô Dðd #ð d¨$õ dùò{ -ùÚ2s   ´E Á	E%