a
    Dg                     @   s   d dl 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 d	lmZ d d
lmZ e ZG dd dejZdd Zdd ZG dd dejZG dd dejZG dd dejZG dd dejZdS )    N)forms)settings)get_user_modelget_language_info)gettext_lazy)get_available_admin_languagesget_available_admin_time_zones)SwitchInput)page_permission_policy)UserProfilec                       s*   e Zd Z fddZG dd dZ  ZS )NotificationPreferencesFormc                    sZ   t  j|i | t}|| jjds.| jd= || jjdsV| jd= | jd= | jd= d S )Npublishsubmitted_notificationsZchangeapproved_notificationsrejected_notificationsupdated_comments_notifications)super__init__r   Zuser_has_permissioninstanceuserfields)selfargskwargsZpermission_policy	__class__ Z/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/admin/forms/account.pyr      s    z$NotificationPreferencesForm.__init__c                   @   s.   e Zd ZeZg dZe e e e dZdS )z NotificationPreferencesForm.Meta)r   r   r   r   N)__name__
__module____qualname__r   modelr   r
   Zwidgetsr   r   r   r   Meta    s   r#   )r   r    r!   r   r#   __classcell__r   r   r   r   r      s   r   c                  C   sH   dd t  D } ttjd }dtdd|i f}|gt| dd d	 S )
Nc                 S   s    g | ]\}}|t |d  fqS )
name_localr   ).0Z	lang_codeZ	lang_namer   r   r   
<listcomp>1   s   z)_get_language_choices.<locals>.<listcomp>r%    z&Use server language: %(language_name)sZlanguage_namec                 S   s   | d   S )N   )lower)Zlanguage_choicer   r   r   <lambda>=       z'_get_language_choices.<locals>.<lambda>)key)r   r   r   ZLANGUAGE_CODE_sorted)Zlanguage_choicesZserver_languagedefaultr   r   r   _get_language_choices0   s    r1   c                   C   s   dt dfgdd t D  S )Nr(   zUse server time zonec                 S   s   g | ]}||fqS r   r   )r&   tzr   r   r   r'   B   s   z*_get_time_zone_choices.<locals>.<listcomp>)r.   r	   r   r   r   r   _get_time_zone_choicesA   s    r3   c                	       sf   e Zd Z fddZejdeeddZejde	edej
ddejd	d
dZG dd dZ  ZS )LocalePreferencesFormc                    sB   t  j|i | tt dkr(| jd= tt dkr>| jd= d S )Nr)   preferred_languagecurrent_time_zone)r   r   lenr   r   r	   r   r   r   r   r   r   r   H   s
    zLocalePreferencesForm.__init__FzPreferred language)requiredchoiceslabelzCurrent time zonezw-init w-localez.w-init:ready->w-locale#localizeTimeZoneOptions)zdata-controllerzdata-actionz$data-w-locale-server-time-zone-param)attrs)r9   r:   r;   Zwidgetc                   @   s   e Zd ZeZddgZdS )zLocalePreferencesForm.Metar5   r6   Nr   r    r!   r   r"   r   r   r   r   r   r#   b   s   r#   )r   r    r!   r   r   ZChoiceFieldr1   r.   r5   r3   ZSelectr   Z	TIME_ZONEr6   r#   r$   r   r   r   r   r4   G   s    	
r4   c                       s`   e Zd ZejdeddZejdeddZejdeddZ	 fddZ
G dd	 d	Z  ZS )
NameEmailFormTz
First Name)r9   r;   z	Last NameZEmailc                    s0   ddl m} t j|i | | s,| jd= d S )Nr   )email_management_enabledemail)Zwagtail.admin.views.accountr?   r   r   r   )r   r   r   r?   r   r   r   r   l   s    zNameEmailForm.__init__c                   @   s   e Zd ZeZg dZdS )zNameEmailForm.Meta)
first_name	last_namer@   N)r   r    r!   Userr"   r   r   r   r   r   r#   t   s   r#   )r   r    r!   r   Z	CharFieldr.   rA   rB   Z
EmailFieldr@   r   r#   r$   r   r   r   r   r>   g   s
   r>   c                       sJ   e Zd ZejedddZ fddZd fdd	ZG d	d
 d
Z	  Z
S )AvatarPreferencesFormzUpload a profile pictureF)r;   r9   c                    s    t  j|i | | jj| _d S )N)r   r   r   avatar_original_avatarr8   r   r   r   r   |   s    zAvatarPreferencesForm.__init__Tc                    sh   |rV| j rV| j | jd krVz| j j| j j W n$ tyT   td| j j  Y n0 t j	|d d S )NrE   z$Failed to delete old avatar file: %s)commit)
rF   Zcleaned_dataZstoragedeletenameOSErrorwarningswarnr   save)r   rG   r   r   r   rM      s    

zAvatarPreferencesForm.savec                   @   s   e Zd ZeZdgZdS )zAvatarPreferencesForm.MetarE   Nr=   r   r   r   r   r#      s   r#   )T)r   r    r!   r   Z
ImageFieldr.   rE   r   rM   r#   r$   r   r   r   r   rD   y   s   rD   c                   @   s   e Zd ZG dd dZdS )ThemePreferencesFormc                   @   s   e Zd ZeZg dZdS )zThemePreferencesForm.Meta)ZthemeZcontrastZdensityNr=   r   r   r   r   r#      s   r#   N)r   r    r!   r#   r   r   r   r   rN      s   rN   )rK   Zdjangor   Zdjango.confr   Zdjango.contrib.authr   Zdjango.utils.translationr   r   r.   Zwagtail.admin.localizationr   r	   Zwagtail.admin.widgetsr
   Zwagtail.permissionsr   Zwagtail.users.modelsr   rC   Z	ModelFormr   r1   r3   r4   r>   rD   rN   r   r   r   r   <module>   s"    