Ë
    ‹øíi½  ã                   óª  — d dl mZ d dlmZmZ d dlmZ d dlmZ ddl	m
Z
mZmZ d„ Zde
d	efd
„Z eddg«       eeg«      d„ «       «       Z eddg«       eeg«      d„ «       «       Z edg«       eeg«      d„ «       «       Z edg«       eeg«      d„ «       «       Z edg«       eeg«      d„ «       «       Z edg«       eeg«      d„ «       «       Zy)é    )ÚIntegrityError)Úapi_viewÚpermission_classes)ÚIsAuthenticated)ÚResponseé   )ÚTenantCountryÚUserCountryAssignmentÚ
Membershipc                 óˆ   — | j                   j                  j                  d«      j                  «       }|r|j                  S d S )NÚtenant)ÚuserÚmembershipsÚselect_relatedÚfirstr   )ÚrequestÚms     ú-/var/www/html/acx/accounts/views_countries.pyÚ_tenantr      s6   € Ø�‰× Ñ ×/Ñ/°Ó9×?Ñ?ÓA€AÙˆ1�8‰8Ð"˜dÐ"ó    ÚcÚreturnc           	      óX  — | j                   | j                  | j                  | j                  | j                  rV| j                  j                   | j                  j
                  t        | j                  «      | j                  j                  dœnd | j                  j                  «       dœS )N)ÚidÚusernameÚ	full_nameÚemail)r   Úcountry_codeÚcountry_nameÚ	is_activeÚmanagerÚ
created_at)
r   r   r   r    r!   r   Ústrr   r"   Ú	isoformat)r   s    r   Ú
_serializer%      s{   € à�d‰dØŸ™ØŸ™Ø—[‘[ð �YŠYð	 —)‘)—,‘,ØŸ	™	×*Ñ*Ü˜QŸY™Y›Ø—Y‘Y—_‘_ò	
ð
 !Ø—l‘l×,Ñ,Ó.ñð r   ÚGETÚPOSTc           	      óÞ  — t        | «      }|st        ddid¬«      S | j                  dk(  rQt        j                  j                  |¬«      j                  d«      }t        |D �cg c]  }t        |«      ‘Œ c}«      S | j                  j                  d«      xs d	j                  «       j                  «       }| j                  j                  d
«      xs d	j                  «       }|r|st        ddid¬«      S 	 t        j                  j                  |||| j                  j                  dd«      ¬«      }t        t        |«      d¬«      S c c}w # t        $ r t        ddid¬«      cY S w xY w)NÚdetailzTenant introuvable.é�  ©Ústatusr&   )r   r!   r   Ú r   z/country_code et country_name sont obligatoires.r    T)r   r   r   r    éÉ   u   Ce pays est dÃ©jÃ  configurÃ©.i™  )r   r   Úmethodr	   ÚobjectsÚfilterr   r%   ÚdataÚgetÚupperÚstripÚcreater   )r   r   Úqsr   ÚcodeÚnameÚcountrys          r   Útenant_countriesr;   "   sS  € ô �WÓ€FÙÜ˜Ð#8Ð9À#ÔFÐFà‡~�~˜ÒÜ×"Ñ"×)Ñ)°Ð)Ó8×GÑGÈ	ÓRˆÜ°Ö3¨1œ A�Ò3Ó4Ð4ð �L‰L×Ñ˜^Ó,Ò2°×9Ñ9Ó;×AÑAÓC€DØ�L‰L×Ñ˜^Ó,Ò2°×9Ñ9Ó;€DÙ‘tÜ˜Ð#TÐUÐ^aÔbÐbð	RÜ×'Ñ'×.Ñ.ØØØØ—l‘l×&Ñ& {°DÓ9ð	 /ó 
ˆô œ
 7Ó+°CÔ8Ð8ùò 4øô  ò RÜ˜Ð#CÐDÈSÔQÒQðRús   Á$EÃ9AE ÅE,Å+E,ÚPATCHÚDELETEc                 óÄ  — t        | «      }	 t        j                  j                  d«      j	                  ||¬«      }| j                  dk(  r|j                  «        t        d¬«      S | j                  }d|v r
|d   |_
        d|v rt        |d   «      |_        |j                  «        t        t        |«      «      S # t        j
                  $ r t        d¬«      cY S w xY w)	Nr!   ©r   r   é”  r+   r=   éÌ   r   r    )r   r	   r0   r   r3   ÚDoesNotExistr   r/   Údeleter2   r   Úboolr    Úsaver%   )r   Ú
country_idr   r:   r2   s        r   Útenant_country_detailrG   ?   s×   € ô �WÓ€Fð$Ü×'Ñ'×6Ñ6°yÓA×EÑEØ &ð Fó 
ˆð ‡~�~˜Ò!Ø�‰ÔÜ˜sÔ#Ð#ð �<‰<€DØ˜ÑØ# NÑ3ˆÔØ�dÑÜ   kÑ!2Ó3ˆÔØ‡L�L„NÜ”J˜wÓ'Ó(Ð(øô ×%Ñ%ò $Ü˜sÔ#Ò#ð$ús   �0B= Â=CÃCc                 ó*  — t        | «      }	 t        j                  j                  d«      j	                  ||¬«      }| j                  j	                  d«      }|sd|_        nB	 t        j                  j                  d«      j	                  ||¬«      }|j                  |_        |j                  «        t        t        |«      «      S # t        j
                  $ r t        d¬«      cY S w xY w# t        j
                  $ r t        d	d
id¬«      cY S w xY w)u.   DÃ©signer ou retirer le responsable d'un pays.r!   r?   r@   r+   Úuser_idNr   ©r   rI   r)   ú'Utilisateur introuvable dans ce tenant.r*   )r   r	   r0   r   r3   rB   r   r2   r!   r   r   rE   r%   )r   rF   r   r:   rI   Ú
memberships         r   Útenant_country_set_managerrM   X   s  € ô �WÓ€Fð$Ü×'Ñ'×6Ñ6°yÓA×EÑEØ &ð Fó 
ˆð �l‰l×Ñ˜yÓ)€GÙØˆ�ð	_Ü#×+Ñ+×:Ñ:¸6ÓB×FÑFØ wð Gó ˆJð )Ÿo™oˆGŒOð ‡L�L„NÜ”J˜wÓ'Ó(Ð(øô! ×%Ñ%ò $Ü˜sÔ#Ò#ð$ûô ×&Ñ&ò 	_Ü˜XÐ'PÐQÐZ]Ô^Ò^ð	_ús$   �0C Á#AC- ÃC*Ã)C*Ã-"DÄDc                 óÜ   — t        | «      }t        j                  j                  ||¬«      j	                  dd«      }t        |D �cg c]  }t        |j                  «      ‘Œ c}«      S c c}w )N©rI   r   r:   Úcountry__manager)r   r
   r0   r1   r   r   r%   r:   )r   rI   r   ÚassignmentsÚas        r   Úuser_country_listrS   v   sb   € ô �WÓ€FÜ'×/Ñ/×6Ñ6Ø ð 7ó ç�n�YÐ 2Ó3ð ô °KÖ@¨q”Z §	¡	Õ*Ò@ÓAÐAùÒ@s   ÁA)c           
      óü  — t        | «      }	 t        j                  j                  ||¬«       | j                  j                  dg «      }t        t        j                  j                  ||¬«      j                  dd	¬
«      «      }t        j                  j                  ||¬«      j                  «        t        j                  j                  |D �cg c]  }t        |||¬«      ‘Œ c}d	¬«       t        j                  j                  ||¬«      j                  dd«      }t        |D �cg c]  }t        |j                   «      ‘Œ c}«      S # t        j                  $ r t        ddid¬«      cY S w xY wc c}w c c}w )uC   Remplace les pays assignÃ©s Ã  un utilisateur par la liste fournie.rJ   r)   rK   r*   r+   Úcountry_ids)r   Úid__inr   T)ÚflatrO   )rI   r   rF   ©Úignore_conflictsr:   rP   )r   r   r0   r3   rB   r   r2   Úsetr	   r1   Úvalues_listr
   rC   Úbulk_creater   r%   r:   )r   rI   r   rU   Ú	valid_idsÚcidÚupdatedrR   s           r   Úuser_country_saver`   €   s]  € ô �WÓ€Fð[Ü×Ñ×Ñ f°gÐÔ>ð —,‘,×"Ñ" =°"Ó5€KäÜ×Ñ×$Ñ$¨F¸;Ð$ÓG×SÑSÐTXÐ_cÐSÓdó€Iô ×!Ñ!×(Ñ(°ÀÐ(ÓH×OÑOÔQÜ×!Ñ!×-Ñ-ØZcÖdÐSVÔ	 w°vÈ#Ö	NÒdØð .ô ô
 $×+Ñ+×2Ñ2Ø ð 3ó ç�n�YÐ 2Ó3ð ô °GÖ<¨q”Z §	¡	Õ*Ò<Ó=Ð=øô% ×"Ñ"ò [Ü˜Ð#LÐMÐVYÔZÒZð[üò 	eùò =s   �!E ÃE4Ä)E9Å"E1Å0E1c           
      ó�  — t        | «      }	 t        j                  j                  ||¬«       t        j                  j                  |d¬«      }t        j                  j                  ||¬«      j                  «        t        j                  j                  |D �cg c]  }t        |||¬	«      ‘Œ c}d¬
«       t        j                  j                  ||¬«      j                  dd«      }t        |D �cg c]  }t        |j                  «      ‘Œ c}«      S # t        j                  $ r t        ddid¬«      cY S w xY wc c}w c c}w )u9   Assigne tous les pays actifs du tenant Ã  un utilisateur.rJ   r)   rK   r*   r+   T)r   r    rO   )rI   r   r:   rX   r:   rP   )r   r   r0   r3   rB   r   r	   r1   r
   rC   r\   r   r%   r:   )r   rI   r   Úall_countriesr   r_   rR   s          r   Úuser_country_assign_allrc   �   s*  € ô �WÓ€Fð[Ü×Ñ×Ñ f°gÐÔ>ô "×)Ñ)×0Ñ0¸È$Ð0ÓO€Mä×!Ñ!×(Ñ(°ÀÐ(ÓH×OÑOÔQÜ×!Ñ!×-Ñ-ØS`ÖaÈaÔ	 w°vÀqÖ	IÒaØð .ô ô
 $×+Ñ+×2Ñ2Ø ð 3ó ç�n�YÐ 2Ó3ð ô °GÖ<¨q”Z §	¡	Õ*Ò<Ó=Ð=øô ×"Ñ"ò [Ü˜Ð#LÐMÐVYÔZÒZð[üò 	bùò =s   �!D ÂD>Ã3EÄ"D;Ä:D;N)Ú	django.dbr   Úrest_framework.decoratorsr   r   Úrest_framework.permissionsr   Úrest_framework.responser   Úmodelsr	   r
   r   r   Údictr%   r;   rG   rM   rS   r`   rc   © r   r   ú<module>rk      s:  ðå $ç BÝ 6Ý ,ç DÑ Dò#ð
�-ð  Dó ñ$ 
ˆ5�&ˆ/ÓÙ�_Ð%Ó&ñRó 'ó ðRñ6 
ˆ7�HÐ
ÓÙ�_Ð%Ó&ñ)ó 'ó ð)ñ. 
ˆ6ˆ(ÓÙ�_Ð%Ó&ñ)ó 'ó ð)ñ8 
ˆ5ˆ'ÓÙ�_Ð%Ó&ñBó 'ó ðBñ 
ˆ6ˆ(ÓÙ�_Ð%Ó&ñ>ó 'ó ð>ñ6 
ˆ6ˆ(ÓÙ�_Ð%Ó&ñ>ó 'ó ñ>r   