§
    Á?jŽ  ã                   óX  — d dl mZ d dlmZ d dlmZmZmZmZm	Z	 d dl
mZ d dlmZmZmZ defd„Zd„ Zded	z  fd
„Zded	z  fd„Zdee         dee         fd„Zded	z  fd„Zdedd	fd„Zdedefd„Zded	z  fd„Zd„ Zdedefd„Zdefd„Zdededd	fd„Z d„ Z!dedee         dd	fd„Z"d	S )é    ©Úwraps)ÚUUID)ÚabortÚflashÚredirectÚsessionÚurl_for)Úcurrent_user)ÚCoproprieteÚUserCoproprieteÚdbÚreturnc                 ó    — t          | ¦  «        S )z4Normalise un identifiant public (str ou UUID Flask).)Ústr)Úvalues    ú'/var/www/stessy.org/papa/app/helpers.pyÚpublic_id_strr   
   s   € åˆu‰:Œ:Ðó    c                 óh   —  | j         j        ddt          |¦  «        i|¤Ž                     ¦   «         S )NÚ	public_id© )ÚqueryÚ	filter_byr   Úfirst_or_404)Úmodelr   Úfilterss      r   Úget_by_public_idr      sA   € Ø ˆ5Œ;Ô ð ð Ý 	Ñ*Ô*ðØ.5ðð ç‚l�n„nðr   Nc                 óŽ   — t          j        ¦   «                              t          | ¦  «        ¬¦  «                             ¦   «         S ©N©r   )r   Úquery_actifsr   r   Úfirstr!   s    r   Úget_copropriete_by_public_idr$      s<   € ÝÔ#Ñ%Ô%×/Ò/Ý 	Ñ*Ô*ð 0ñ ô ç‚e�g„gðr   c                 óT   — t          | ¦  «        }|rt          |j        ¦  «        sd S |S )N)r$   Úuser_can_access_coproprieteÚid©r   Úcopros     r   Úresolve_copropriete_public_idr*      s3   € Ý(¨Ñ3Ô3€EØð Õ3°E´HÑ=Ô=ð ØˆtØ€Lr   Ú
public_idsc                 ó6  — | sg S g }| D ]�}|                      ¦   «         }|sŒ	 t          |¦  «         n# t          $ r Y Œ6w xY wt          j        ¦   «                              |¬¦  «                             ¦   «         }|r|                     |j        ¦  «         Œ�|S r    )	Ústripr   Ú
ValueErrorr   r"   r   r#   Úappendr'   )r+   ÚidsÚpidr)   s       r   Úcopropriete_ids_from_public_idsr2   "   sº   € Øð Øˆ	Ø
€CØð 
!ð 
!ˆØ�iŠi‰kŒkˆØð 	Øð	Ý�‰IŒIˆIˆIøÝð 	ð 	ð 	ØˆHð	øøøåÔ(Ñ*Ô*×4Ò4¸sÐ4ÑCÔC×IÒIÑKÔKˆØð 	!Ø�JŠJ�u”xÑ Ô Ð øØ€Js   £3³
A ¿A c                  ó*   — t          j        d¦  «        S ©NÚcopropriete_id)r	   Úgetr   r   r   Úget_copropriete_idr7   3   s   € ÝŒ;Ð'Ñ(Ô(Ð(r   Úcopro_idc                 ó   — | t           d<   d S r4   )r	   ©r8   s    r   Úset_copropriete_idr;   7   s   € Ø (…GÐÑÐÐr   c                 óH   — t           j        sdS | t          j        ¦   «         v S )NF)r   Úis_authenticatedÚaccessible_copropriete_idsr:   s    r   r&   r&   ;   s&   € ÝÔ(ð ØˆuØ•|Ô>Ñ@Ô@Ð@Ð@r   c                  óº   — t          ¦   «         } | rt          | ¦  «        sd S t          j        ¦   «                              | ¬¦  «                             ¦   «         }|S )N)r'   )r7   r&   r   r"   r   r#   ©r8   r)   s     r   Úget_copropriete_activerA   A   sZ   € Ý!Ñ#Ô#€HØð Õ6°xÑ@Ô@ð ØˆtÝÔ$Ñ&Ô&×0Ò0°HÐ0Ñ=Ô=×CÒCÑEÔE€EØ€Lr   c                 ó<   ‡ — t          ‰ ¦  «        ˆ fd„¦   «         }|S )Nc                  ó�   •— t          ¦   «         }|€,t          dd¦  «         t          t          d¦  «        ¦  «        S  ‰| d|i|¤ŽS )Nu/   SÃ©lectionnez une copropriÃ©tÃ© pour continuer.Úwarningzmain.select_coproprieteÚcopropriete)rA   r   r   r
   )ÚargsÚkwargsr)   Úfs      €r   Ú	decoratedz'copropriete_required.<locals>.decoratedJ   sU   ø€ å&Ñ(Ô(ˆØˆ=ÝÐCÀYÑOÔOÐOÝ�GÐ$=Ñ>Ô>Ñ?Ô?Ð?Øˆq�$Ð4 EÐ4¨VÐ4Ð4Ð4r   r   ©rH   rI   s   ` r   Úcopropriete_requiredrK   I   s4   ø€ Ý
ˆ1�X„Xð5ð 5ð 5ð 5ñ „Xð5ð Ðr   c                 ó®   — t          | ¦  «        st          d¦  «         t          j                             t
          | ¦  «        }|st          d¦  «         |S )Né“  é”  )r&   r   r   r	   r6   r   r@   s     r   Úensure_copropriete_accessrO   U   sJ   € Ý& xÑ0Ô0ð Ýˆc‰
Œ
ˆ
ÝŒJ�NŠN�;¨Ñ1Ô1€EØð Ýˆc‰
Œ
ˆ
Ø€Lr   c                 óŒ   — t          | ¦  «        }|st          d¦  «         t          |j        ¦  «        st          d¦  «         |S )NrN   rM   )r$   r   r&   r'   r(   s     r   Ú&ensure_copropriete_access_by_public_idrQ   ^   sD   € Ý(¨Ñ3Ô3€EØð Ýˆc‰
Œ
ˆ
Ý& u¤xÑ0Ô0ð Ýˆc‰
Œ
ˆ
Ø€Lr   Úuser_idc                 óÐ   — t           j                             | |¬¦  «                             ¦   «         }|s0t          j                             t          | |¬¦  «        ¦  «         d S d S )N)rR   r5   )r   r   r   r#   r   r	   Úadd)rR   r8   Úexistss      r   Úlink_user_to_coproprieterV   g   sn   € ÝÔ"×,Ò,Ø¨ð -ñ ô ç‚e�g„gð ð ð RÝ
Œ
�Š•¨wÀxÐPÑPÔPÑQÔQÐQÐQÐQðRð Rr   c                 ó<   ‡ — t          ‰ ¦  «        ˆ fd„¦   «         }|S )Nc                  ób   •— t           j        rt           j        st          d¦  «          ‰| i |¤ŽS )NrM   )r   r=   Úis_adminr   )rF   rG   rH   s     €r   rI   z!admin_required.<locals>.decoratedp   s8   ø€ åÔ,ð 	µLÔ4Ið 	Ý�#‰JŒJˆJØˆq�$Ð!˜&Ð!Ð!Ð!r   r   rJ   s   ` r   Úadmin_requiredrZ   o   s4   ø€ Ý
ˆ1�X„Xð"ð "ð "ð "ñ „Xð"ð
 Ðr   Úcopropriete_idsc                 ó”   — t           j                             | ¬¦  «                             ¦   «          |D ]}t	          | |¦  «         ŒdS )u2   Remplace les liens utilisateur â†” copropriÃ©tÃ©s.)rR   N)r   r   r   ÚdeleterV   )rR   r[   r8   s      r   Úset_user_coproprietesr^   y   sT   € åÔ×#Ò#¨GÐ#Ñ4Ô4×;Ò;Ñ=Ô=Ð=Ø#ð 4ð 4ˆÝ  ¨(Ñ3Ô3Ð3Ð3ð4ð 4r   )#Ú	functoolsr   Úuuidr   Úflaskr   r   r   r	   r
   Úflask_loginr   Ú
app.modelsr   r   r   r   r   r   r$   r*   ÚlistÚintr2   r7   r;   Úboolr&   rA   rK   rO   rQ   rV   rZ   r^   r   r   r   ú<module>rg      sb  ðØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø $Ð $Ð $Ð $Ð $Ð $à 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7ð˜Cð ð ð ð ð
ð ð ð¨{¸TÑ/Að ð ð ð ð°¸dÑ0Bð ð ð ð ð°°S´	ð ¸dÀ3¼ið ð ð ð ð")˜C $™Jð )ð )ð )ð )ð) ð )¨ð )ð )ð )ð )ðA¨#ð A°$ð Að Að Að Að ¨dÑ 2ð ð ð ð ð	ð 	ð 	ð¨ð °ð ð ð ð ð¸ð ð ð ð ðR cð R°Sð R¸Tð Rð Rð Rð Rðð ð ð4 3ð 4¸¸c¼ð 4Àtð 4ð 4ð 4ð 4ð 4ð 4r   