o
    h                     @   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                    s^   t  j|i | t}|| jjds| jd= || jjds-| jd= | jd= | jd= d S d S )Npublishsubmitted_notificationschangeapproved_notificationsrejected_notificationsupdated_comments_notifications)super__init__r   user_has_permissioninstanceuserfields)selfargskwargspermission_policy	__class__ [/var/www/html/ndineBlogger/venv/lib/python3.10/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
   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   ).0	lang_code	lang_namer    r    r!   
<listcomp>1   s    z)_get_language_choices.<locals>.<listcomp>r)    z&Use server language: %(language_name)slanguage_namec                 S   s   | d   S )N   )lower)language_choicer    r    r!   <lambda>=   s    z'_get_language_choices.<locals>.<lambda>)key)r   r   r   LANGUAGE_CODE_sorted)language_choicesserver_languagedefaultr    r    r!   _get_language_choices0   s   r;   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>)r6   r	   r    r    r    r!   _get_time_zone_choicesA   s   r=   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                    sF   t  j|i | tt dkr| jd= tt dkr!| jd= d S d S )Nr0   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)rC   rD   rE   widgetc                   @   s   e Zd ZeZddgZdS )zLocalePreferencesForm.Metar?   r@   Nr"   r#   r$   r   r%   r   r    r    r    r!   r'   b       r'   )r"   r#   r$   r   r   ChoiceFieldr;   r6   r?   r=   Selectr   	TIME_ZONEr@   r'   r(   r    r    r   r!   r>   G   s"    	
r>   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)rC   rE   z	Last NameEmailc                    s4   ddl m} t j|i | | s| jd= d S d S )Nr   )email_management_enabledemail)wagtail.admin.views.accountrO   r   r   r   )r   r   r   rO   r   r    r!   r   l   s
   zNameEmailForm.__init__c                   @      e Zd ZeZg dZdS )zNameEmailForm.Meta)
first_name	last_namerP   N)r"   r#   r$   Userr%   r   r    r    r    r!   r'   t   rI   r'   )r"   r#   r$   r   	CharFieldr6   rS   rT   
EmailFieldrP   r   r'   r(   r    r    r   r!   rM   g   s    rM   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)rE   rC   c                    s    t  j|i | | jj| _d S )N)r   r   r   avatar_original_avatarrB   r   r    r!   r   |   s   zAvatarPreferencesForm.__init__Tc                    sh   |r+| j r+| j | jd kr+z| j j| j j W n ty*   td| j j  Y nw t j	|d d S )NrY   z$Failed to delete old avatar file: %s)commit)
rZ   cleaned_datastoragedeletenameOSErrorwarningswarnr   save)r   r[   r   r    r!   rc      s   
zAvatarPreferencesForm.savec                   @   s   e Zd ZeZdgZdS )zAvatarPreferencesForm.MetarY   NrH   r    r    r    r!   r'      s    
r'   )T)r"   r#   r$   r   
ImageFieldr6   rY   r   rc   r'   r(   r    r    r   r!   rX   y   s
    rX   c                   @   s   e Zd ZG dd dZdS )ThemePreferencesFormc                   @   rR   )zThemePreferencesForm.Meta)themecontrastdensityNrH   r    r    r    r!   r'      rI   r'   N)r"   r#   r$   r'   r    r    r    r!   re      s    re   )ra   djangor   django.confr   django.contrib.authr   django.utils.translationr   r   r6   wagtail.admin.localizationr   r	   wagtail.admin.widgetsr
   wagtail.permissionsr   wagtail.users.modelsr   rU   	ModelFormr   r;   r=   r>   rM   rX   re   r    r    r    r!   <module>   s$     