
    si                        d 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 dd	lmZmZ dd
lmZ ddlmZmZ ddlmZmZmZmZmZ  eed       G d de             Z eed       G d de             Z  eed       G d de             Z! eed       G d de             Z" eed       G d de             Z# eed       e ed      d       G d de                    Z$y)z7
this page is handling the cbv methods of holiday page
    )Any)messages)HttpResponse)reversereverse_lazy)method_decorator)gettext_lazy)HolidayFilter)HolidayFormHolidaysColumnExportForm)Holidays)login_requiredpermission_required)HorillaDetailedViewHorillaFormViewHorillaListViewHorillaNavViewTemplateViewdispatch)namec                       e Zd ZdZdZy)HolidaysViewz
    for page view
    zcbv/holidays/holidays_home.htmlN)__name__
__module____qualname____doc__template_name     5/var/www/python-projects/worksol/base/cbv/holidays.pyr   r      s     6Mr   r   c                        e Zd ZdZdgZeZeZde	ddf fdZ
 ed      df ed	      d
f ed      df ed      dfgZddiZg dZdZdZ xZS )HolidayListViewz
    list view
    	recurringkwargsreturnNc                     t        |   di | t        d      | _        d| _        | j
                  j                  j                  d      rd| _        y y )Nholiday-filterholidaydeleteadd_holidayholidays_actionsr   )	super__init__r   
search_urlview_idrequestuserhas_permaction_methodselfr$   	__class__s     r    r,   zHolidayListView.__init__.   sL    "6"!"23&<<%%m4!3D 5r   Holiday Namer   
Start Date
start_dateEnd Dateend_date	Recurringget_recurring_statuszA style="width:200px !important;"
                                ))r6   r   )r7   r8   )r9   r:   z
                hx-get='{detail_view}?instance_ids={ordered_ids}'
                hx-target="#genericModalBody"
                data-target="#genericModal"
                data-toggle="oh-modal-toggle"
                
   )r   r   r   r   bulk_update_fieldsr
   filter_classr   modelr   r,   _columnsheader_attrssortby_mapping	row_attrsrecords_per_page__classcell__r5   s   @r    r"   r"   #   s     & LE4 4 4 
>	F#	
<,'	
:
#	
;/0	G 	 $L
NI r   r"   c                   V     e Zd ZdZdeddf fdZ ed      ZdZdZ	 e
       Zd	Z xZS )
HolidayNavViewz
    nav bar
    r$   r%   Nc                 .   t        |   di | t        d      | _        | j                  j
                  j                  d      rPdt        d       d| _        t        d      ddt        d	      d
t        d       ddt        d      ddg| _
        y y )Nr'   r)   z
                hx-get="zholiday-creationz"
                hx-target="#genericModalBody"
                data-target="#genericModal"
                data-toggle="oh-modal-toggle"
            Importa  
                    onclick="
                    importHolidays();
                    "
                    data-toggle = "oh-modal-toggle"
                    data-target = "#holidayImport
                    "
                    style="cursor: pointer;"
                )actionattrsExportz
                    data-toggle = "oh-modal-toggle"
                    data-target = "#genericModal"
                    hx-target="#genericModalBody"
                    hx-get ="zholiday-nav-exportz?"
                    style="cursor: pointer;"
                Deletez
                        onclick="
                        bulkDeleteHoliday();
                        "
                        data-action ="delete"
                        style="cursor: pointer; color:red !important"
                    r   )r+   r,   r   r-   r/   r0   r1   r   create_attrsrA   actionsr3   s     r    r,   zHolidayNavView.__init__W   s    "6"!"23<<%%m4%%&89: ;!D  k  k" &&:;< =		  k	/!DL 5r   r   z cbv/holidays/holiday_filter.htmlformz#listContainer)r   r   r   r   r   r,   rA   	nav_titlefilter_body_templatefilter_form_context_namer
   filter_instancesearch_swap_targetrG   rH   s   @r    rJ   rJ   Q   s@    + + +Z *I=%#oO)r   rJ   c                       e Zd ZdZeZ ed      ZddddZ ed      df ed      d	f ed
      df ed      dfhZ	dZ
y)HolidayDetailViewz!
    detail view of the page
    Detailsr    
get_avatar)titlesubtitleavatarr6   r7   r8   r9   r:   r;   r<   detail_view_actionsN)r   r   r   r   r   r@   rA   r^   headerbodyr2   r   r   r    rZ   rZ      sc     EiLE2FF	
>	F#	
<,'	
:
#	
;/0	D *Mr   rZ   c                   ,     e Zd ZdZdZdef fdZ xZS )HolidayExportz
    for bulk export
    z!cbv/holidays/holidays_export.htmlr$   c                     t         j                  j                         }t        }t	        |      }t        |   di |}||d<   ||d<   |S )z%
        get data for export
        )querysetexport_columnexport_filterr   )r   objectsallr   r
   r+   get_context_data)r4   r$   holidayrh   ri   contextr5   s         r    rl   zHolidayExport.get_context_data   sS    
 ""&&(0%w7'*4V4#0 #0 r   )r   r   r   r   r   r   rl   rG   rH   s   @r    re   re      s      8M  r   re   zleave.add_holidayc                   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 )HolidayFormViewz%
    form view for create button
    zCreate Holidayc                     t        |   di |}| j                  j                  j                  rt        d      | j                  _        |S )NzUpdate Holidayr   )r+   rl   rS   instancepkrA   
form_classverbose_name)r4   r$   rn   r5   s      r    rl   z HolidayFormView.get_context_data   s?    '*4V499  +,-=+>DOO(r   rS   r%   c                 .   |j                         rv|j                  j                  rt        d      }nt        d      }|j	                          t        j                  | j                  t        |             | j                         S t        | )  |      S )NzHoliday Updated Successfullyz New Holiday Created Successfully)is_validrr   rs   rA   saver   successr/   r   r+   
form_valid)r4   rS   messager5   s      r    rz   zHolidayFormView.form_valid   so    ==?}}:;>?IIKT\\1W:6$$&&w!$''r   )r   r   r   r   r   rt   r   r@   rA   new_display_titlerl   r   rz   rG   rH   s   @r    rp   rp      s=     JE*+
({ 
(| 
( 
(r   rp   N)%r   typingr   django.contribr   django.httpr   django.urlsr   r   django.utils.decoratorsr   django.utils.translationr	   rA   base.filtersr
   
base.formsr   r   base.modelsr   horilla_views.cbv_methodsr   r   horilla_views.generic.cbv.viewsr   r   r   r   r   r   r"   rJ   rZ   re   rp   r   r   r    <module>r      s    # $ - 4 6 & <   I  .z26< 6 36 .z2*o * 3*Z .z26*^ 6* 36*r .z2*+ * 3*& .z2L  3* .z2%&9:L(o ( M 3(r   