U
    |h                     @   s:  d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d dlm Z  da!dd Z"G dd dZ#G dd dej$Z$G dd de#ej%Z%G dd de#ej&Z&G dd dej'Z'G dd deZ(dS )    )warn)Group)get_object_or_404redirect)re_pathreverse)cached_property)gettext)gettext_lazy)hooks)TitleColumn)set_query_params)generic)ModelViewSet)HeaderButton)	GroupFormGroupPagePermissionFormSet)RemovedInWagtail70WarningNc                  C   s.   t d kr*tga tdD ]} t |   qt S )NZregister_group_permission_panel)_permission_panel_classesr   r   Z	get_hooksappend)fn r   b/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/users/views/groups.pyget_permission_panel_classes   s
    r   c                       s4   e Zd Zdd Zdd Zdd Z fddZ  ZS )	PermissionPanelFormsMixinc                 C   sF   i }| j jdkr(|| j j| j jd t| drB|d| ji |S )N)POSTPUT)datafilesobjectinstance)requestmethodupdater   ZFILEShasattrr   )selfclskwargsr   r   r    get_permission_panel_form_kwargs!   s    
z:PermissionPanelFormsMixin.get_permission_panel_form_kwargsc                    s    fddt  D S )Nc                    s   g | ]}|f   |qS r   )r(   ).0r&   r%   r   r   
<listcomp>2   s   zHPermissionPanelFormsMixin.get_permission_panel_forms.<locals>.<listcomp>)r   r*   r   r*   r   get_permission_panel_forms1   s    
z4PermissionPanelFormsMixin.get_permission_panel_formsc                 C   sX   |   }|  }| rJtdd |D rJ| |}|D ]}|  q8|S | |S d S )Nc                 s   s   | ]}|  V  qd S N)is_valid)r)   panelr   r   r   	<genexpr>:   s     z9PermissionPanelFormsMixin.process_form.<locals>.<genexpr>)Zget_formr,   r.   allZ
form_validsaveZform_invalid)r%   formpermission_panelsresponser/   r   r   r   process_form7   s    

z&PermissionPanelFormsMixin.process_formc                    sF   d|kr|   |d< t jf |}|d D ]}|d  |j7  < q*|S )Nr4   media)r,   superget_context_datar7   )r%   r'   contextr/   	__class__r   r   r9   D   s    z*PermissionPanelFormsMixin.get_context_data)__name__
__module____qualname__r(   r,   r6   r9   __classcell__r   r   r;   r   r       s   r   c                   @   sH   e Zd ZedZedZedZdgZdZdZ	e
dedddd	gZd
S )	IndexViewGroupszAdd a groupzSearch groupsnamegroups   Namezwagtailusers_groups:edit)labelsort_keyZurl_nameN)r=   r>   r?   _
page_titleZadd_item_labelZsearch_box_placeholderZsearch_fieldscontext_object_nameZpaginate_byr   columnsr   r   r   r   rA   Q   s   rA   c                   @   s$   e Zd ZedZedZdd ZdS )
CreateViewz	Add groupzGroup '%(object)s' created.c                 O   s   t  | _|  S z
        Handle POST requests: instantiate a form instance with the passed
        POST variables and then check if it's valid.
        )r   r   r6   r%   r!   argsr'   r   r   r   postg   s    zCreateView.postN)r=   r>   r?   rI   rJ   success_messagerQ   r   r   r   r   rM   c   s   rM   c                   @   s<   e Zd ZedZedZedZdZedd Z	dd Z
d	S )
EditViewzGroup '%(object)s' updated.z+The group could not be saved due to errors.Delete groupgroupc                 C   s&   t tdttdd| jjiddgS )NzView users in this groupwagtailusers_users:indexrU   user)urlZ	icon_name)r   r	   r   r   r   pkr*   r   r   r   header_buttonsw   s    
zEditView.header_buttonsc                 O   s   |   | _|  S rN   )Z
get_objectr   r6   rO   r   r   r   rQ      s    
zEditView.postN)r=   r>   r?   rI   rR   error_messageZdelete_item_labelrK   r   rZ   rQ   r   r   r   r   rS   q   s   
rS   c                   @   s$   e Zd ZedZedZedZdS )
DeleteViewzGroup '%(object)s' deleted.rT   z+Are you sure you want to delete this group?N)r=   r>   r?   rI   rR   rJ   Zconfirmation_messager   r   r   r   r\      s   r\   c                       sx   e Zd ZdZeZdgZdZdZe	dZ
dZdZeZeZeZeZdZed	d
 Z fddZdddZ fddZ  ZS )GroupViewSetrU   rC   FrD   rB   iY  Tzwagtailusers/groups/c                    s    fdd}|S )Nc                    sP   t  d|fd}tt ddtt|dji}td| d| dt t|S )	Nusers)rP   rV   rU   )rY   z+Accessing the list of users in a group via z is deprecated, use z	 instead.)	r   Zget_url_namer   r   r   rY   r   r   r   )r!   rY   Z
legacy_urlnew_urlr*   r   r   view   s    z%GroupViewSet.users_view.<locals>.viewr   )r%   r`   r   r*   r   
users_view   s    zGroupViewSet.users_viewc                    s   t  jf dd i|S )NZusage_url_name)r8   get_common_view_kwargs)r%   r'   r;   r   r   rb      s     z#GroupViewSet.get_common_view_kwargsc                 C   s   t S r-   )r   )r%   Z
for_updater   r   r   get_form_class   s    zGroupViewSet.get_form_classc                    s   t   td| jddg S )Nz(\d+)/users/$r^   )rC   )r8   get_urlpatternsr   ra   r*   r;   r   r   rd      s    zGroupViewSet.get_urlpatterns)F)r=   r>   r?   iconr   modelZorderingZadd_to_reference_indexZ	menu_namerI   Z
menu_labelZ
menu_orderZadd_to_settings_menurA   Zindex_view_classrM   Zadd_view_classrS   Zedit_view_classr\   Zdelete_view_classZtemplate_prefixpropertyra   rb   rc   rd   r@   r   r   r;   r   r]      s$   

r]   ))warningsr   Zdjango.contrib.auth.modelsr   Zdjango.shortcutsr   r   Zdjango.urlsr   r   Zdjango.utils.functionalr   Zdjango.utils.translationr	   r
   rI   Zwagtailr   Zwagtail.admin.ui.tablesr   Zwagtail.admin.utilsr   Zwagtail.admin.viewsr   Zwagtail.admin.viewsets.modelr   Zwagtail.admin.widgets.buttonr   Zwagtail.users.formsr   r   Zwagtail.utils.deprecationr   r   r   r   rA   rM   rS   r\   r]   r   r   r   r   <module>   s,   
1