
    si,                        d 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mZmZ  e
ed       e
 ed      d       G d de                    Z e
ed       e
 ed      d       G d de                    Z e
ed       e
 ed      d       G d de                    Zy)z4
This page handles the mail server page in settings
    )Any)messages)HttpResponse)reverse)method_decorator)gettext_lazy)MailServerFilter)DynamicMailConfForm)DynamicEmailConfiguration)login_requiredpermission_required)HorillaFormViewHorillaListViewHorillaNavViewdispatch)namez#base.view_dynamicemailconfiguration)permc                        e Zd ZdZdeddf fdZdef fdZeZe	Z
dZ ed      d	f ed
      df ed      dfgZddiZdZdZ xZS )MailServerListViewz.
    List view of the resticted days page
    kwargsreturnNc                 R    t        |   di | d| _        t        d      | _        y )Nzmail-server-contmail-server-list )super__init__view_idr   
search_urlselfr   	__class__s     8/var/www/python-projects/worksol/base/cbv/mail_server.pyr   zMailServerListView.__init__!   s)    "6" *!"45    c                     t        |   di |}d}t        j                  j	                  d      j                         rd}||d<   |S )NT)
is_primaryFprimary_mail_not_existr   )r   get_context_datar   objectsfilterexists)r    r   contextr&   r!   s       r"   r'   z#MailServerListView.get_context_data(   sQ    '*4V4!%$,,33t3DKKM%*",B()r#   z&cbv/settings/extended_mail_server.htmlz	Host UserusernameHosthostCompnay
company_idactionzG
                    style="width:200px !important"
                   z{highlight_cell}
action_col)__name__
__module____qualname____doc__r   r   r'   r   modelr	   filter_classtemplate_name_columnsheader_attrs	row_attrsaction_method__classcell__r!   s   @r"   r   r      s    
6 6 6  &E#L<M 
;$	
6F	
9|$G 	 L #I Mr#   r   c                   N     e Zd ZdZdeddf fdZ ed      Z e       Z	dZ
 xZS )MailServerNavz
    Nav bar
    r   r   Nc                     t        |   di | t        d      | _        | j                  j
                  j                  d      rdt        d       d| _        y y )Nr   "base.add_dynamicemailconfigurationa&  
                                onclick = "event.stopPropagation();"
                                data-toggle="oh-modal-toggle"
                                data-target="#genericModal"
                                hx-target="#genericModalBody"
                                hx-get="zcreate-mail-serverz"
                            r   )r   r   r   r   requestuserhas_permcreate_attrsr   s     r"   r   zMailServerNav.__init__M   sb    "6"!"45<<%%&JK%)
 *11E)F(G H! D Lr#   zMail Serversz#listContainer)r3   r4   r5   r6   r   r   r:   	nav_titler	   filter_instancesearch_swap_targetr?   r@   s   @r"   rB   rB   D   s5    

  
  
  .!I&(O)r#   rB   rD   c                   N     e Zd ZdZeZeZ ed      Z	 fdZ
dedef fdZ xZS )MailServerFormViewz
    Create and edit form
    zCreate Mail Serverc                     t        |   di |}| j                  j                  j                  rt        d      | j                  _        |S )NzUpdate Mail Serverr   )r   r'   forminstancepkr:   
form_classverbose_name)r    r   r+   r!   s      r"   r'   z#MailServerFormView.get_context_datak   s?    '*4V499  +,-A+BDOO(r#   rO   r   c                 .   |j                         rv|j                  j                  rt        d      }nt        d      }|j	                          t        j                  | j                  t        |             | j                         S t        | )  |      S )Nz!Mail server updated successfully.z!Mail server created successfully.)is_validrP   rQ   r:   saver   successrE   r   r   
form_valid)r    rO   messager!   s      r"   rX   zMailServerFormView.form_validq   so    ==?}}?@?@IIKT\\1W:6$$&&w!$''r#   )r3   r4   r5   r6   r   r7   r
   rR   r:   new_display_titler'   r   rX   r?   r@   s   @r"   rM   rM   ^   s>    
 &E$J./
(2 
(| 
( 
(r#   rM   N)r6   typingr   django.contribr   django.httpr   django.urlsr   django.utils.decoratorsr   django.utils.translationr   r:   base.filtersr	   
base.formsr
   base.modelsr   horilla_views.cbv_methodsr   r   horilla_views.generic.cbv.viewsr   r   r   r   rB   rM   r   r#   r"   <module>rf      s     # $  4 6 ) * 1 I  .z2BC*%! %! 3%!P .z2BC**N * 3*, .z2AB( ( 3(r#   