a
    Dg                     @   sn   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 Zed	d
dd Zdd Zd	S )    )	lru_cache)ContentType)hookssafe_snake_case)get_page_models)page_permission_policyc                 C   s   t | S )z
    Converts a user entered field label to a string that is safe to use for both a
    HTML attribute (field's name) and a JSON key used internally to store the responses.
    r   )label r
   Z/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/contrib/forms/utils.pyget_field_clean_name   s    r   N)maxsizec                     s4   ddl m   fddt D } ttjj|   S )Nr   	FormMixinc                    s   g | ]}t | r|qS r
   )
issubclass).0modelr   r
   r   
<listcomp>       z"get_form_types.<locals>.<listcomp>)Zwagtail.contrib.forms.modelsr   r   listr   ZobjectsZget_for_modelsvalues)Zform_modelsr
   r   r   get_form_types   s    r   c                 C   s8   t | d}|jt d}tdD ]}|| |}q$|S )za
    Return a queryset of form pages that this user is allowed to access the submissions for
    Zchange)Zcontent_type__inZ filter_form_submissions_for_user)r   Z!instances_user_has_permission_forfilterr   r   Z	get_hooks)userZeditable_formsfnr
   r
   r   get_forms_for_user   s    r   )	functoolsr   Z"django.contrib.contenttypes.modelsr   Zwagtailr   Zwagtail.coreutilsr   Zwagtail.modelsr   Zwagtail.permissionsr   r   r   r   r
   r
   r
   r   <module>   s   
