
    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mZ dd	lmZmZmZmZmZ dd
lmZ ddlmZ ddl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       e
 ed      d       G d de                    Z  e
ed       G d de             Z!y)z
Restricted page
    )Any)messages)HttpResponse)reverse)method_decorator)gettext_lazy)login_requiredpermission_required)HorillaDetailedViewHorillaFormViewHorillaListViewHorillaNavViewTemplateView)RestrictLeaveFilter)RestrictLeaveForm)RestrictLeavedispatch)namec                       e Zd ZdZdZy)RestrictedDaysViewz!
    for resticted days page
    z(cbv/restricted_days/restricted_days.htmlN)__name__
__module____qualname____doc__template_name     =/var/www/python-projects/worksol/leave/cbv/restricted_days.pyr   r      s     ?Mr   r   c                        e Zd ZdZddgZdeddf fdZeZe	Z
 ed      d	f ed
      df 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 xZS )RestrictedDaysListz.
    List view of the resticted days page
    
departmentjob_positionkwargsreturnNc                     t        |   di | t        d      | _        | j                  j
                  j                  d      rd| _        d| _        y )Nrestrict-filterleave.add_restrictleaveactions_colrestrictdayr   )	super__init__r   
search_urlrequestuserhas_permaction_methodview_idselfr#   	__class__s     r   r+   zRestrictedDaysList.__init__+   sH    "6"!"34<<%%&?@!.D$r   Titletitle
Start Date
start_dateEnd dateend_date
DepartmentJob Positionjob_position_colDescriptiondescriptionz  style="width:180px !important" ))r7   r8   )r9   r:   )r;   department__department)r<   r=   z
                hx-get='{restricted_days_detail_view}?instance_ids={ordered_ids}'
                hx-target="#genericModalBody"
                data-target="#genericModal"
                data-toggle="oh-modal-toggle"
                )r   r   r   r   bulk_update_fieldsr   r+   r   modelr   filter_class_columnsheader_attrssortby_mapping	row_attrs__classcell__r4   s   @r   r    r    #   s     '7% % % E&L 
7W	
<,'	
:
#	
<,'	
>	./	
=	=)G CDLNIr   r    c                   V     e Zd ZdZdeddf fdZ ed      Z e       Z	dZ
dZd	Z xZS )
RestrictedDaysNavz
    Nav bar
    r#   r$   Nc                     t        |   d	i | t        d      | _        | j                  j
                  j                  d      r)dt        d       d| _        t        d      ddg| _	        y y )
Nr&   r'   z
                            data-toggle="oh-modal-toggle"
                            data-target="#genericModal"
                            hx-target="#genericModalBody"
                            hx-get="zrestrict-creationz"
                            Deletez
                    onclick="
                    bulkRestrictedDaysDelete();
                    "
                    data-action ="delete"
                    style="cursor: pointer; color:red !important"
                    )actionattrsr   )
r*   r+   r   r,   r-   r.   r/   create_attrsrD   actionsr2   s     r   r+   zRestrictedDaysNav.__init__V   s~    "6"!"34<<%%&?@%% &--@%A$B C	! D  k	DL Ar   zRestricted Dayszcbv/restricted_days/filter.htmlz#listContainerform)r   r   r   r   r   r+   rD   	nav_titler   filter_instancefilter_body_templatesearch_swap_targetfilter_form_context_namerI   rJ   s   @r   rL   rL   P   sB      . #$I)+O<)%r   rL   r'   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 )RestrictedDaysFormViewz
    Create and edit form
    zCreate Restricted Dayc                     t        |   di |}| j                  j                  j                  rt        d      | j                  _        |S )NzUpdate Restricted Dayr   )r*   get_context_datarS   instancepkrD   
form_classverbose_name)r3   r#   contextr4   s      r   r\   z'RestrictedDaysFormView.get_context_data   s?    '*4V499  +,-D+EDOO(r   rS   r$   c                    |j                         rm|j                  j                  rt        d      }nt        d      }|j	                          t        j                  | j                  |       | j                         S t        | )  |      S )Nz#Restricted Day Updated Successfullyz#Restricted Day Created Successfully)is_validr]   r^   rD   saver   successr-   r   r*   
form_valid)r3   rS   messager4   s      r   rf   z!RestrictedDaysFormView.form_valid   sk    ==?}}ABABIIKT\\73$$&&w!$''r   )r   r   r   r   r   rB   r   r_   rD   new_display_titler\   r   rf   rI   rJ   s   @r   rZ   rZ   t   s>     E"J12
(0 
(\ 
( 
(r   rZ   c                   P     e Zd ZdZdeddf fdZdZeZ e	d      Z
dd	d
dZ xZS )RestrictedDaysDetailViewz
    detail view of page
    r#   r$   Nc                     t        |   di | t        d      dft        d      dft        d      dft        d      dft        d	      d
fg| _        y )Nr7   r8   r9   r:   r;   r!   r<   r=   r>   r?   r   )r*   r+   rD   bodyr2   s     r   r+   z!RestrictedDaysDetailView.__init__   s[    "6"|_l+z]J'|_l+~ 23}}-
	r   detail_actionDetailsr6    
get_avatar)r6   subtitleavatar)r   r   r   r   r   r+   r0   r   rB   rD   r6   headerrI   rJ   s   @r   rj   rj      s@    
 
 
 $MEiLEFr   rj   N)"r   typingr   django.contribr   django.httpr   django.urlsr   django.utils.decoratorsr   django.utils.translationr   rD   horilla_views.cbv_methodsr	   r
   horilla_views.generic.cbv.viewsr   r   r   r   r   leave.filtersr   leave.formsr   leave.modelsr   r   r    rL   rZ   rj   r   r   r   <module>r      s     # $  4 6 I  . ) & .z2? ? 3? .z2) ) 3)X .z2 &  & 3 &F .z2%&?@zR(_ ( S 3(8 .z22  3r   