
    si                     b   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 ddlmZmZ ddl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 G d de      Zy)z:
This page handles the cbv methods for mail template page
    )Any)forms)messages)HttpResponse)render)reverse_lazy)method_decorator)gettext_lazy)MailTemplateForm)HorillaMailTemplate)login_requiredpermission_required)HorillaFormViewHorillaNavViewdispatch)namezbase.add_horillamailtemplatec                   R     e Zd ZdZeZeZdZ e	d      Z
 fdZdedef fdZ xZS )MailTemplateFormViewz5
    form view for create and edit mail template
    z#cbv/mail_template/form_inherit.htmlzAdd Templatec                     t        |   di |}| j                  j                  j                  rt        d      | j                  _        |S )NzUpdate Template )superget_context_dataforminstancepk_
form_classverbose_name)selfkwargscontext	__class__s      :/var/www/python-projects/worksol/base/cbv/mail_template.pyr   z%MailTemplateFormView.get_context_data!   s?    '*4V499  +,->+?DOO(    r   returnc                    |j                         rn|j                  j                  rt        d      }nt        d      }|j	                          t        j                  | j                  |       | j                  d      S t        | )  |      S )NzTemplate UpdatedzTemplate created)<script>window.location.reload()</script>)is_validr   r   r   saver   successrequestr   r   
form_valid)r   r   messager"   s      r#   r,   zMailTemplateFormView.form_valid(   sn    ==?}}././IIKT\\73$$%PQQw!$''r$   )__name__
__module____qualname____doc__r   r   r   modeltemplate_namer   new_display_titler   r   r,   __classcell__r"   s   @r#   r   r      sB     "JE9M.)
(/ 
(L 
( 
(r$   r   c                   N     e Zd ZdZeZeZ fdZde	de
f fdZdede
fdZ xZS )MailTemplateDuplicateFormz0
    from view for duplicate mail templates
    c                 6   t        |   d	i |}t        j                  j	                  | j
                  d         }| j                  |      }|j                  j                         D ]f  \  }}t        |t        j                        s!|j                  j	                  |d      }|r|dz  }||j                  |<   ||j                  |   _        h t        |j                  d      rd |j                  _        ||d<   t!        d      | j                  _        |S )
Nr   )id)r    z (copy)r:   r   Duplicate Templater   )r   r   r   objectsgetr    r   fieldsitems
isinstancer   	CharFieldinitialhasattrr   r:   r   r   )	r   r    r!   original_objectr   
field_namefieldinitial_valuer"   s	           r#   r   z*MailTemplateDuplicateForm.get_context_data?   s    '*4V4-5599T[[=N9O8!%!2!2!4 	@J%1 $ 0 0R @ !Y.M+8Z(2?J'/	@ 4==$'#DMM'()='>$r$   r   r%   c                     t        d      | j                  _        |j                         s>|j                  j                         }t        | j                  | j                  ||d      S t        | )  |      S )Nr<   )r   errors)r   r   r   r(   rJ   as_datar   r+   r3   r   form_invalid)r   r   rJ   r"   s      r#   rL   z&MailTemplateDuplicateForm.form_invalidS   se    '()='>$}}[[((*Fd00462R  w#D))r$   c                 Z   | j                  | j                  j                        }t        d      | j                   _        |j                         rLt        d      }t        j                  | j                  |       |j                          | j                  d      S | j                  |      S )Nr<   zTemplate Addedr'   )r   r+   POSTr   r   r(   r   r*   r)   r   rL   )r   r   r-   s      r#   r,   z$MailTemplateDuplicateForm.form_valid\   s    t||001'()='>$==?()GT\\73IIK$$%PQQ  &&r$   )r.   r/   r0   r1   r   r2   r   r   r   r   r   rL   r,   r5   r6   s   @r#   r8   r8   5   s@      E!J(* * *'/ 'L 'r$   r8   c                   6     e Zd ZdZ ed      ZdZ fdZ xZS )MailTemplateNavViewz 
    Mail Template Nav View
    zMail TemplatesNc                 L    t        |   di | dt        d       d| _        y )Nz
            hx-get="zcreate-mail-templatez"
            data-toggle="oh-modal-toggle"
            data-target="#objectCreateModal"
            hx-target="#objectCreateModalTarget"
        r   )r   __init__r   create_attrs)r   r    r"   s     r#   rR   zMailTemplateNavView.__init__o   s3    "6"!!"89: ;	r$   )	r.   r/   r0   r1   r   	nav_title
search_urlrR   r5   r6   s   @r#   rP   rP   g   s$     "#IJ r$   rP   N)r1   typingr   djangor   django.contribr   django.httpr   django.shortcutsr   django.urlsr   django.utils.decoratorsr	   django.utils.translationr
   r   
base.formsr   base.modelsr   horilla_views.cbv_methodsr   r   horilla_views.generic.cbv.viewsr   r   r   r8   rP   r   r$   r#   <module>rb      s      # $ # $ 4 6 ' + I K .z2%&DEJW(? ( X 3(< .z2%&DEJW-' -' X 3-'`. r$   