o
    h                     @   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
   [/var/www/html/ndineBlogger/venv/lib/python3.10/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>   s    z"get_form_types.<locals>.<listcomp>)wagtail.contrib.forms.modelsr   r   listr   objectsget_for_modelsvalues)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
    change)content_type__in filter_form_submissions_for_user)r   !instances_user_has_permission_forfilterr   r   	get_hooks)usereditable_formsfnr
   r
   r   get_forms_for_user   s   r$   )	functoolsr   "django.contrib.contenttypes.modelsr   wagtailr   wagtail.coreutilsr   wagtail.modelsr   wagtail.permissionsr   r   r   r$   r
   r
   r
   r   <module>   s    
