U
    Ä®whò  ã                   @   s<   d dl T d dlZd dlZG dd„ dejjjejj	j
jƒZdS )é    )Ú*Nc                       s(   e Zd Z‡ fdd„Z‡ fdd„Z‡  ZS )ÚCmfPersonGroupc                    s–   | j jrˆtj | ¡rjtjsj| j jD ]}t|tj	ƒr"tj 
|| ¡ q"| j jD ]}t|tj	ƒrJtj || ¡ qJtj ¡  tj ¡  tj ¡  tƒ j||ŽS ©N)Z
rg_membersZ
is_changedÚmodelsÚ
CmfLicenseÚis_license_groupÚgÚ license_disable_user_count_hooksZchanges_appendedÚ
isinstanceZ	CmfPersonZtake_user_licenseZchanges_removedZrelease_user_licenseZCmfProjectPermSchemeZtrigger_reloadZCmfProjectRoleAssignZCmfProjectNotifySchemeÚsuperÚsave)ÚselfÚargsÚkwargsÚuser©Ú	__class__© ú+./modules/person/models/cmf_person_group.pyr      s    


zCmfPersonGroup.savec                    s,   t j | ¡rtjstt jjƒ tƒ jf |ŽS r   )	r   r   r   r   r	   Zschedule_deferred_jobZrecalc_users_countsr   Údelete)r   r   r   r   r   r      s    zCmfPersonGroup.delete)Ú__name__Ú
__module__Ú__qualname__r   r   Ú__classcell__r   r   r   r   r      s   r   )Zcmf.includeZcmf.models.cmf_translit_codeZcmfZ&modules.person.fields.cmf_person_groupÚmodulesr   Zcmf_translit_codeZCmfTranslitCodeZpersonZfieldsZcmf_person_groupr   r   r   r   r   Ú<module>   s   
 
ÿ