ó
    ÏÈj„  ă                   óL    S r SSKrSr\4S\4S jjrS\4S jrSS\S	\4S
 jjrg)u  KĂZĂS NAPLĂZĂ SEGĂD (v77, J-20) - egysĂ©ges AuditLog-bejegyzĂ©s az "audit-hiĂĄnyos" vĂ©gpontokhoz.
LeĂ­rĂĄs: docs/JOGOSULTSAGOK.md (J-20), docs/RENDSZERNAPLO.md.

MIĂRT?
    A J-20 audit szerint a JogosultsĂĄgi naplĂł (a BeĂĄllĂ­tĂĄsok fĂŒl) Ă©s a rendszeradmin RendszernaplĂłja hiĂĄnyos volt: a BeĂĄllĂ­tĂĄsok-Ă­rĂĄsok,
    a cĂ©g lĂ©trehozĂĄsa / adatai / licence / kapcsolĂłi / tĂ¶rlĂ©se, a felhasznĂĄlĂł- Ă©s gĂ©ptĂ¶rlĂ©s (ez csak `print`), a modul-kapcsolĂĄs, a jelszĂłcsere
    Ă©s az Admin ĂĄltali felhasznĂĄlĂł-szerkesztĂ©s nem hagyott nyomot. Ez a modul az ismĂ©tlĆdĆ `db.add(models.AuditLog(...))` blokkok helyett
    EGY helyen tartja a formĂĄtumot, a rĂ¶vidĂ­tĂ©st Ă©s az Ă©rtĂ©k-szĂ¶vegeket.

SZABĂLYOK
    * `naploz()` SOHA nem commitol: a hĂ­vĂł vĂ©gpont a mĂłdosĂ­tĂĄssal EGY tranzakciĂłban commitol (ha a mentĂ©s elbukik, a naplĂłsor sem marad meg,
      Ă©s fordĂ­tva: nincs naplĂł nĂ©lkĂŒli mĂłdosĂ­tĂĄs).
    * Az Ă©rtĂ©kek rĂ¶vidĂ­tettek (`ERTEK_MAX`), Ă­gy egy hosszĂș szĂ¶veg / JSON nem dagasztja a tĂĄblĂĄt; a szĂ¶veg-sablon (Jinja) automatikusan escape-el.
    * JELSZĂ, HASH, TOKEN, MENTĆKĂD Ă©rtĂ©ke SOHA nem kerĂŒl ide: a hĂ­vĂł csak a tĂ©ny-jellegĆ± szĂ¶veget ("mĂłdosĂ­tva") adja ĂĄt.
    * A `company_id` az az ĂŒgyfĂ©lcĂ©g, amelyet az esemĂ©ny Ă©rint (a JogosultsĂĄgi naplĂł erre szĆ±r: `AuditLog.company_id == munkakĂ¶rnyezet`).
      CĂ©gtĂ¶rlĂ©snĂ©l a cĂ©g sajĂĄt sorai is tĂ¶rlĆdnek, ezĂ©rt oda NEM Ă­runk: az 1-es (rendszeradmin) cĂ©ghez kerĂŒl a bejegyzĂ©s (l. routers/rendszeradmin.py).
    * Ăj esemĂ©nytĂ­pus (field_name) felvĂ©telekor a `rendszernaplo_utils._PREFIXEK` listĂĄt is bĆvĂ­teni kell (kategĂłria-szĆ±rĆ).
é    Ni,  Ú	max_hosszc                 ót    U c  g[        U 5      R                  5       n[        U5      U:  a  USUS-
   S-   $ U$ )ui   NaplĂłzhatĂł szĂ¶veg: None marad None, minden mĂĄs szĂ¶veggĂ© alakul Ă©s a hatĂĄrnĂĄl 'âŠ'-ra vĂĄgĂłdik.Né   u   âŠ)ÚstrÚstripÚlen)Úertekr   Úszovegs      Ú/var/www/website/naplo_utils.pyÚrovidr      sC    à}ŰÜZŚŃÓFÜ
6{YÓŰny 1}Đ%šŃ-Đ-ŰMó    Úreturnc                 ó    U (       a  S$ S$ )uX   KapcsolĂł-ĂĄllapot szĂ¶vege (a CĂ©g ĂĄllapota / BĂ©rbeadĂĄs sorok mintĂĄjĂĄra magyarul).ÚBekapcsolvaÚKikapcsolva© )Úallapots    r   Úbe_kir   "   s    æ#=Đ6šĐ6r   ÚmezoÚcsak_ha_valtozottc           	      óÄ    [        U5      [        U5      pU(       a  X:X  a  g[        R                  " X'[        USS5      [        US5      XS9n
U R	                  U
5        U
$ )u5  Egy AuditLog-sor hozzĂĄadĂĄsa a SESSION-hĂ¶z (NEM commitol). `actor`: a vĂ©grehajtĂł User (vagy None = rendszer).
`csak_ha_valtozott=True`: ha a (rĂ¶vidĂ­tett) rĂ©gi Ă©s Ășj Ă©rtĂ©k egyezik, semmi sem Ă­rĂłdik (pl. egy vĂĄltozatlan Ć±rlap-bekĂŒldĂ©s).
VisszatĂ©rĂ©s: a hozzĂĄadott sor, vagy None, ha kimaradt.NÚidéÿ   )Ú
company_idÚ
machine_idÚuser_idÚ
field_nameÚ	old_valueÚ	new_value)r   ÚmodelsÚAuditLogÚgetattrÚadd)ÚdbÚactorr   r   ÚregiÚujr   r   ÚrÚuÚsors              r   Únaplozr+   '   sX    ô ;b	qȚQVŰÜ
//ŰŒgÀeÈTĐSWÓ>XÜsÓ#šqńCđ FF3KŰJr   )NNFN)	Ú__doc__r    Ú	ERTEK_MAXÚintr   r   r   Úboolr+   r   r   r   Ú<module>r0      sE   đńó$ à	đ #,ń Cő đ7cô 7ń
šđ ĐTXö r   