
    si'                     D   d dl mZ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 d dlmZ d dlmZ d dlmZ d d	l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 G d de      Z G d de      Zy)    )reversereverse_lazy)method_decorator)is_reportingmanager)TicketFilterTicketReGroup)TICKET_STATUSTicket)login_required)HorillaKanbanView)Pipeline)HorillaListViewHorillaNavViewHorillaSectionViewHorillaTabViewdispatch)namec                   >    e Zd ZdZ ed      Z ed      ZdZdgZdZ	y)TicketPipelineViewz#
    Offboarding Pipeline View
    zticket-pipeline-navzget-ticket-tabspipelineContainerztickets/action.jsz%cbv/pipeline/ticket_section_view.htmlN)
__name__
__module____qualname____doc__r   nav_urlview_urlview_container_idscript_static_pathstemplate_name     9/var/www/python-projects/worksol/helpdesk/cbv/pipeline.pyr   r      s3     01G-.H+./;Mr!   r   c                   t     e Zd ZdZdZdZ ed      ZdZ e	       Z
dZg dZdd	d
ddd
ddd
gZ fdZ xZS )TicketPipelineNavz.
    Offboarding Pipeline Navigation View
    Ticketsz#pipelineContainer
ticket-tabz$cbv/pipeline/ticket_filter_form.htmlform))employee_idOwner)ticket_typezTicket Type)statusStatus)priorityPriority)tagsTags)assigned_toAssigner)+employee_id__employee_work_info__company_idCompanyArchivez
                href="#"
                role="button"
                class="oh-dropdown__link"
                onclick = "ticketBulkArchive(event)"
            )actionattrs	Unarchivez
                href="#"
                role="button"
                class="oh-dropdown__link"
                onclick = "ticketBulkUnArchive(event)"
            Deletez
                href="#"
                role="button"
                class="oh-dropdown__link oh-dropdown__link--danger"
                onclick = "ticketsBulkDelete(event)"
            c                     t        |   di | dt        d       d| _        ddt	        d       ddd	d
dt	        d       ddd	g| _        y )NzB
            class="oh-btn oh-btn--secondary"
            hx-get="zticket-createz"
            hx-target="#objectCreateModalTarget"
            data-toggle="oh-modal-toggle"
            data-target="#objectCreateModal"
        listzlist-outliner&   z?view_type=listz3
                    title ='List'
                )typeiconurlr7   cardzgrid-outlinez?view_type=cardz3
                    title ='Card'
                r    )super__init__r   create_attrsr   
view_types)selfkwargs	__class__s     r"   rA   zTicketPipelineNav.__init__T   s    "6"!_-. /	 &&|45_E	 &&|45_E	
r!   )r   r   r   r   	nav_titlesearch_swap_targetr   
search_urlfilter_body_templater   filter_instancefilter_form_context_namegroup_by_fieldsactionsrA   __classcell__rF   s   @r"   r$   r$      sw     I-l+JA"nO%O  	
 "	
 	
'G<
 
r!   r$   c                   ,     e Zd ZdZ fdZ fdZ xZS )TicketTabView
    Pipeline List View
    c                    t        |   di | | j                  j                  j	                  dd      }t        d      }|dk(  rt        d      }d| ddd| d	dg| _        t        | j                        s%| j                  j                  j                  d
      r"| j                  j                  d| dd       y y )N	view_typer;   zticket-tab-cardzticket-tab-listz
My Ticketsz?ticket_tab=my_tickets)titler>   zSuggested Ticketsz?ticket_tab=suggested_ticketszhelpdesk.view_ticketzAll Ticketsz?ticket_tab=all_ticketsr    )r@   rA   requestGETgetr   tabsr   userhas_permappend)rD   rE   rU   r>   rF   s       r"   rA   zTicketTabView.__init__x   s    "6"LL$$((f=	'(+,C &45 -;<
	 t||,0A0A0J0J"1
 II*!U"9:1
r!   c                 0    t        |   di |}d|d<   |S )NTshow_filter_tagsr    )r@   get_context_data)rD   rE   contextrF   s      r"   r`   zTicketTabView.get_context_data   s%    '*4V4&*"#r!   )r   r   r   r   rA   r`   rO   rP   s   @r"   rR   rR   r   s    @ r!   rR   c                   R     e Zd ZdZeZeZddgZg dZ	g dZ
dZdZdd	iZ fd
Z xZS )TicketListViewrS   
ticket_tabrU   )r*   r+   r-   r1   r/   )	)z	Ticket IDget_ticket_id_col)TitlerV   )r)   r(   )Typer*   )z
Forward toget_raised_on)zAssigned toget_assigned_to)r,   get_status_col)r.   get_priority_stars)r0   get_tags_colzg
        onclick="window.location.href = `{get_ticket_detail_url}`"
        class = "{row_colors}"
    ticket_action_colr6   zstyle='width:200px'c                 J   t         |          }| j                  j                  j	                  d      dk7  r!| j
                  j                  d      | _        | j                  j                  j	                  dd      }|dk(  r0|j                  | j                  j                  j                        S |dk(  r| j                  j                  j                  }|}|j                         }t        |d	      rh|j                  }|j                  }|j                  }|r ||j                  |j                  d
      z  }|r ||j                  |j                  d      z  }||j                  |j                  d      z  }|j                         S |dk(  r|j!                         S y )N	is_activefalseTro   rd   
my_ticketsr(   suggested_ticketsemployee_work_info
department	raised_onassigning_typejob_position
individualall_tickets)r@   get_querysetrW   rX   rY   querysetfilterr[   employee_getnonehasattrru   department_idjob_position_ididdistinctall)	rD   r~   rd   employeeqs_cpy	work_inforv   rz   rF   s	           r"   r}   zTicketListView.get_queryset   s   7')<<,7 MM0040@DM\\%%)),E
%??t||/@/@/M/M?NN..||((55HF}}Hx!56$77	&44
(88",-- !. ! H  ".//. !. ! H "++l &  H $$&&=(<<>! )r!   )r   r   r   r   r
   modelr   filter_classfilter_keys_to_removebulk_update_fieldscolumns	row_attrsaction_methodheader_attrsr}   rO   rP   s   @r"   rc   rc      sQ     EL);7
GI
 ,M34L"" ""r!   rc   c                   N     e Zd ZeZeZdZdZdZ	ddgZ
dddd	Zd
ZdZ fdZ xZS )TicketCardViewr+   
   Frd   rU   z${title} ({ticket_type__prefix}-{pk})z{employee_id__get_full_name}z{get_priority_stars})rV   r)   r.   zH
        onclick="window.location.href = `{get_ticket_detail_url}`"
    kanban_action_methodc                    t         |          | _        | j                  j                  j                  d      dk7  r!| j                  j                  d      | _        | j                  j                  j                  dd      }|dk(  rK| j                  j                  | j                  j                  j                        | _        | j                  S |dk(  r| j                  j                  j                  }| j                  }| j                  j                         }t        |d	      rh|j                  }|j                  }|j                  }|r ||j                  |j                  d
      z  }|r ||j                  |j                  d      z  }||j                  |j                  d      z  }|j                         | _        | j                  S | j                  S )Nro   rp   Trq   rd   rr   rs   rt   ru   rv   rw   rz   r{   )r@   r}   r~   rW   rX   rY   r   r[   r   r   r   ru   r   r   r   r   )	rD   rd   r   r   r~   r   rv   rz   rF   s	           r"   r}   zTicketCardView.get_queryset  s   ,.<<,7 MM0040@DM\\%%)),E
% MM00 LL--:: 1 DM == ..||((55H]]F}}))+Hx!56$77	&44
(88",-- !. ! H  ".//. !. ! H "++l &  H %--/DM== }}r!   )r   r   r   r
   r   r   r   	group_keyrecords_per_pageshow_kanban_confirmationr   detailskanban_attrsr   r}   rO   rP   s   @r"   r   r     sS    ELI$);7 8/*GL +M& &r!   r   N)django.urlsr   r   django.utils.decoratorsr   base.methodsr   helpdesk.filterr   r   helpdesk.modelsr	   r
   horilla_views.cbv_methodsr    horilla_views.generic.cbv.kanbanr   "horilla_views.generic.cbv.pipeliner   horilla_views.generic.cbv.viewsr   r   r   r   r   r$   rR   rc   r   r    r!   r"   <module>r      s    - 4 , 7 1 4 > 7  .z2	<+ 	< 3	< .z2O
 O
 3O
d .z2(N ( 3(VF"_ F"R:& :r!   