
    si%                        d Z ddl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 dd
lmZ ddl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!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       G d de             Z( eed       G d de             Z) eed       G d de             Z*y)z
Meetings page
    N)Any)messages)Q)HttpResponse)render)reversereverse_lazy)method_decorator)gettext_lazy)login_required)HorillaDetailedViewHorillaFormViewHorillaListViewHorillaNavViewTemplateView)notify)MeetingsFilter)MeetingResponseFormMeetingsForm)Meetingsdispatch)namec                       e Zd ZdZdZy)MeetingsViewz
    for meeting page
    zcbv/meetings/meetings.htmlN)__name__
__module____qualname____doc__template_name     4/var/www/python-projects/worksol/pms/cbv/meetings.pyr   r      s     1Mr!   r   c                        e Zd ZdZdeddf fdZ fdZeZe	Z
ddiZ ed	      d
f ed      df ed      df ed      df ed      dfgZdgZdgZdZdZ xZS )MeetingsListz
    List view of the page
    kwargsreturnNc                 R    t        |   di | t        d      | _        d| _        y )Nmeetings-listmeetingManagerContainerr    )super__init__r   
search_urlview_idselfr%   	__class__s     r"   r+   zMeetingsList.__init__-   s&    "6"!/20r!   c                 Z   t         |          }| j                  j                  j	                  d      sg| j                  j                  j
                  }|j                  t        |      t        |      z        j                         }|j                  d      S |j                  d      S )Nzpms.view_meetings)employee_id)managerz-id)
r*   get_querysetrequestuserhas_permemployee_getfilterr   distinctorder_by)r/   querysetr2   r0   s      r"   r4   zMeetingsList.get_queryset2   s    7')||  ))*=>,,++88Kk*Q{-CChj  $$U++  ''r!   mom_colzstyle="width: 20%;" Title	title_col	Employeesemployees_colManagersmanagers_colDatedate_colMoM)rD   rE   r3   
action_cola6  
                {diff_cell}
                class="oh-permission-table--collapsed"
                hx-get='{meeting_detail_view}?instance_ids={ordered_ids}'
                hx-target="#genericModalBody"
                data-target="#genericModal"
                data-toggle="oh-modal-toggle"
                )r   r   r   r   r   r+   r4   r   modelr   filter_classheader_attrs_columnssortby_mappingbulk_update_fieldsaction_method	row_attrs__classcell__r0   s   @r"   r$   r$   '   s    1 1 1
( E!L9:L 
7[!	
;)	
:'	
6J	
59G ++N# M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 )
MeetingsNavz
    Nav bar
    r%   r&   Nc                     t        |   di | t        d      | _        | j                  j
                  j                  d      rdt        d       d| _        y y )Nr(   zpms.add_meetingsz%
                            hx-get='zcreate-meetingz'
                            data-toggle="oh-modal-toggle"
                            data-target="#genericModal"
                            hx-target="#genericModalBody"
                            r    )	r*   r+   r   r,   r5   r6   r7   r	   create_attrsr.   s     r"   r+   zMeetingsNav.__init___   s^    "6"!/2<<%%&89%%%12B%C$D E! D :r!   r   zcbv/meetings/filter.htmlfilter_formz#listContainer)r   r   r   r   r   r+   rK   	nav_titler   filter_instancefilter_body_templatefilter_form_context_namesearch_swap_targetrQ   rR   s   @r"   rT   rT   Y   s@    	  	  	  *I$&O5,)r!   rT   c                   X     e Zd ZdZddiZdeddf fdZdZeZ	 e
d	      Zd
dddZ xZS )MeetingsDetailedViewz
    detail view of page
    mom_detail_col   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t        d      dfg| _        y )NrD   datezQuestion Templatequestion_templater@   employ_detail_colrB   manager_detail_colzAnswerable employeesanswerable_colzMinutes of Meetingr_   r    )r*   r+   rK   bodyr.   s     r"   r+   zMeetingsDetailedView.__init__{   so    "6"vY"#%89{^01z]01%&(89#$&67
	r!   detail_actionDetailstitleMeeting
get_avatar)rj   subtitleavatar)r   r   r   r   colsr   r+   rO   r   rH   rK   rj   headerrQ   rR   s   @r"   r^   r^   q   sN    
 	"D	
 	
 	
 $MEiLEFr!   r^   c                   f     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dedef fdZ xZS )	MeetingsFormView
    Form View
    z#cbv/meetings/forms/meet_create.htmlr   c                 h   t        |   di |}| j                  d| j                  j                  j
                  i       | j                  j                  j                  r@t        d      | j                  _
        | j                  | j                  j                         | j                  |d<   |S )Nr3   )initialUpdate Meetinginstanceformr    )r*   get_context_data
form_classr5   r6   r8   ry   rx   pkrK   verbose_name)r/   r%   contextr0   s      r"   rz   z!MeetingsFormView.get_context_data   s    '*4V4DLL,=,=,J,J KL99  +,-=+>DOO(OOTYY%7%7O8))r!   ry   r&   c                 2   | j                   j                  j                  rt        d      | j                  _        |j                         s>|j                  j                         }t        | j                  | j                  ||d      S t        | 5  |      S )Nrv   )ry   errors)ry   rx   r|   rK   r{   r}   is_validr   as_datar   r5   r   r*   form_invalid)r/   ry   r   r0   s      r"   r   zMeetingsFormView.form_invalid   sx    99  +,-=+>DOO(}}[[((*Fd00462R  w#D))r!   c                 0   |j                         r3|j                  j                  rt        d      }nt        d      }|j	                         }|j
                  d   D cg c]  }|j                   }}|j
                  d   D cg c]  }|j                   }}|j
                  d   }|j                  |j
                  d         D 	cg c]  }	|	j                   }}	t        j                  | j                  t        |             t        j                  t              5  t        j                  | j                  j                   j"                  |d|j$                   d|j$                   d	|j$                   d
d|j$                   d|j$                   dt'        d      d|j$                   z   	       d d d        t        j                  t              5  t        j                  | j                  j                   j"                  |d|j$                   d|j$                   dd|j$                   dd|j$                   d|j$                   dt'        d      d|j$                   z   	       d d d        t        j                  t              5  t        j                  | j                  j                   j"                  |d|j$                   d|j$                   d|j$                   dd|j$                   d|j$                   dt'        d      d|j$                   z   	       d d d        | j)                         S t*        
| Y  |      S c c}w c c}w c c}	w # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   | j)                         S xY w)NzMeeting updated successfullyzMeeting added successfullyr3   answer_employeesr2   )id__inz1You have been added as a manager for the meeting u7   لقد تمت إضافتك كمدير للاجتماع u(   Sie wurden als Manager für das Meeting u    hinzugefügtu4   Se le ha agregado como administrador de la reunión u<   Vous avez été ajouté en tant que responsable de réunion informationzview-meetingsz?search=)	recipientverbverb_arverb_deverb_esverb_friconredirectz#You have been added to the meeting u/   لقد تمت إضافتك إلى اجتماع .zSie wurden zur u    Besprechung hinzugefügtu   Te han agregado a la reunión u'   Vous avez été ajouté à la réunion z>You have been added as an answerable employee for the meeting uG   لقد تمت إضافتك كموظف مسؤول عن الاجتماع u2   Du wurden als Mitarbeiter zum Ausfüllen für das u   -Meeting hinzugefügtu;   Se le ha agregado como empleado responsable de la reunión uJ   Vous avez été ajouté en tant que employé responsable pour la réunion )r   rx   r|   rK   savecleaned_dataemployee_user_idexcluder   successr5   
contextlibsuppress	Exceptionr   sendr6   r8   rj   r   r   r*   
form_valid)r/   ry   messagerx   r3   managers
answer_empr   	employeesemployeer0   s             r"   r   zMeetingsFormView.form_valid   sp   ==?}}:;89yy{H8<8I8I)8T-4((H 
 #'"3"34F"G  ++    ))-8I !* 1 1,,-?@ !2 ! ))I  T\\1W:6$$Y/ LL%%22&LX^^L\]UV^VdVdUefFx~~FVVcdRS[SaSaRbcZ[c[i[iZjk&$_5(8>>BR8SS
 $$Y/ LL%%22'>x~~>NOMhnnM]]^_-hnn-==VW<X^^<LMEhnnEUV&$_5(8>>BR8SS
 $$Y/ LL%%22.YZbZhZhYijefnftfteuvPQYQ_Q_P``uvYZbZhZhYijhiqiwiwhxy&$_5(8>>BR8SS
 $$&&w!$''i 
   $$&&s9   !MMM#BM$BM1BM=$M.1M:=N)r   r   r   r   r   rH   r   r{   r   rK   new_display_titlerz   r   r   r   r   rQ   rR   s   @r"   rr   rr      sS     EJ9M*	* 	* 	*;(| ;( ;( ;(r!   rr   c                   B     e Zd ZdZeZeZdZ fdZ	dede
f fdZ xZS )MeetingResponseFormViewrs   zAdd Responsec                     t        |   di |}| j                  j                  d      }t        j
                  j                  |      j                         }| j                  |      }||d<   |S )Nidr   rw   ry   r    )	r*   rz   r%   getr   objectsr9   firstr{   )r/   r%   r~   meet_idmeetingry   r0   s         r"   rz   z(MeetingResponseFormView.get_context_data   sg    '*4V4++//$'""))W)5;;=0r!   ry   r&   c                    | j                   j                  d      }t        j                  j	                  |      j                         }|j                         rwt        d      }| j                  j                  j                  d      }||_
        |j                          t        j                  | j                  |       | j                         S t        | A  |      S )Nr   r   zResponse added successfullyresponse)r%   r   r   r   r9   r   r   rK   r5   POSTr   r   r   r   r   r*   r   )r/   ry   r   r   r   r   r0   s         r"   r   z"MeetingResponseFormView.form_valid  s    ++//$'""))W)5;;===?56G||((,,Z8H'GLLNT\\73$$&&w!$''r!   )r   r   r   r   r   rH   r   r{   r   rz   r   r   rQ   rR   s   @r"   r   r      s8     E$J&
(2 
(| 
( 
(r!   r   )+r   r   typingr   django.contribr   django.db.modelsr   django.httpr   django.shortcutsr   django.urlsr   r	   django.utils.decoratorsr
   django.utils.translationr   rK   horilla_views.cbv_methodsr   horilla_views.generic.cbv.viewsr   r   r   r   r   notifications.signalsr   pms.filtersr   	pms.formsr   r   
pms.modelsr   r   r$   rT   r^   rr   r   r    r!   r"   <module>r      s     #  $ # - 4 6 4  ) & 7  .z21< 1 31 .z2.? . 3.b .z2*. * 3*. .z2.  3> .z2Y( Y( 3Y(x .z2(o ( 3(r!   