
    si(                     >   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  G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zy)    )Any)forms)Qrender_to_string)gettext_lazy)	ModelForm)_thread_locals   )*c                   ,    e Zd ZdZddiZ G d d      Zy)ProjectFormz 
    Form for Project model
    description   c                   n    e Zd ZdZeZdZ ej                  ddi       ej                  ddi      dZ	y)ProjectForm.Meta7
        Meta class to add the additional info
        __all__typedateattrs
start_dateend_dateN
__name__
__module____qualname____doc__Projectmodelfieldsr   	DateInputwidgets     1/var/www/python-projects/worksol/project/forms.pyMetar      @    	 )%//0@A'vv.>?
r'   r)   Nr   r   r   r    colsr)   r&   r'   r(   r   r      s     2D

 

r'   r   c                   F     e Zd ZdZ fdZdd fd
Z G d d      Z xZS )ProjectTimeSheetFormz3
    Form for Project model in Time sheet form
    c                     t        t        | 
  |i | | j                  d   j                  j
                  j                  ddd       y )Nstatuswidth: 100%; height: 47px;	oh-selectstyleclasssuperr.   __init__r#   widgetr   updateselfargskwargs	__class__s      r(   r8   zProjectTimeSheetForm.__init__'   sF    "D2DCFCH$$**115$	
r'   Nrequestc                   t        t        | 
  |i | | j                  d   j                  j
                  j                  ddi       | j                  d   j                  j
                  j                  ddi       | j                  d   j                  j
                  j                  ddi       | j                  d   j                  j
                  j                  dd	i       y )
Nmanagersidmanagers_idr0   	status_idmembers
members_idtitle
id_projectr6   r<   rA   r=   r>   r?   s       r(   r8   zProjectTimeSheetForm.__init__0   s    "D2DCFCJ&&,,33T=4IJH$$**1142EFI%%++22D,3GHG##))00$1EFr'   c                   n    e Zd ZdZeZdZ ej                  ddi       ej                  ddi      dZ	y)ProjectTimeSheetForm.Metar   r   r   r   r   r   Nr   r&   r'   r(   r)   rM   7   r*   r'   r)   )r   r   r   r    r8   r)   __classcell__r?   s   @r(   r.   r.   "   s"    
 '+ G

 

r'   r.   c                   $    e Zd ZdZ G d d      Zy)TaskFormz
    Form for Task model
    c                       e Zd ZdZeZdZ ej                  ddi       ej                          ej                          ej                         dZ
y)TaskForm.Metar   r   r   r   r   )r   projectstagesequenceNr   r   r   r    Taskr"   r#   r   r$   HiddenInputr%   r&   r'   r(   r)   rS   I   sY    	  (vv.>?(u((*&U&&()))+	
r'   r)   N)r   r   r   r    r)   r&   r'   r(   rQ   rQ   D   s    
 
r'   rQ   c                   2     e Zd Z G d d      Z fdZ xZS )QuickTaskFormc                   ~    e Zd ZeZg dZ ej                          ej                          ej                         dZy)QuickTaskForm.Meta)rI   task_managersrT   rU   r   )rT   rU   r   N)	r   r   r   rX   r"   r#   r   rY   r%   r&   r'   r(   r)   r]   [   s=    K(u((*&U&&()))+
r'   r)   c                     t        t        | 
  |i | | j                  d   j                  j
                  j                  dt        d      d       d| j                  d   _        y )NrI   zoh-input w-100 mb-2z
Task Title)r5   placeholderTr^   )	r7   r[   r8   r#   r9   r   r:   _requiredr;   s      r(   r8   zQuickTaskForm.__init__d   sY    mT+T<V<G##))00+AlOL	
 15O$-r'   )r   r   r   r)   r8   rN   rO   s   @r(   r[   r[   Z   s    
 
5 5r'   r[   c                   B     e Zd ZdZ G d d      Zdd fd
Zd Z xZS )TaskFormCreatez?
    Form for Task model in create button inside task view
    c                       e Zd ZdZeZdZ ej                  ddi       ej                          ej                          ej                  ddd      d	Zy
)TaskFormCreate.Metar   r   r   r   r   z/oh-select oh-select-2 select2-hidden-accessiblezkeyResultChange($(this)))r5   onchange)r   rT   rV   rU   N)r   r   r   r    rX   r"   r#   r   r$   rY   SelectMultipler%   r&   r'   r(   r)   rf   r   sf    	  (vv.>?(u((*)))+)U))N :	

r'   r)   Nr@   c                    t        t        | 
  |i | | j                  d   j                  j
                  j                  ddi       y )NrU   rD   project_stage)r7   rd   r8   r#   r9   r   r:   rK   s       r(   r8   zTaskFormCreate.__init__   s?    nd,d=f=G##))00$1HIr'   c                 &    d| i}t        d|      }|S )zS
        Render the form fields as HTML table rows with Bootstrap styling.
        formzcommon_form.htmlr   )r<   context
table_htmls      r(   as_pzTaskFormCreate.as_p   s      4.%&8'B
r'   )r   r   r   r    r)   r8   ro   rN   rO   s   @r(   rd   rd   m   s"    
 
* '+ Jr'   rd   c                   D     e Zd ZdZddiZ G d d      Zdd fd
Z xZS )	TaskAllFormz.
    Form for Task model in task all view
    r   r   c                       e Zd ZdZeZdZ ej                  ddi       ej                  ddi       ej                         dZ
y)TaskAllForm.Metar   r   r   r   r   )r   r   rV   NrW   r&   r'   r(   r)   rs      sP    	  *%//0@A'vv.>?)))+
r'   r)   Nr@   c                   t        t        | 
  |i | t        t        d      }| j
                  d   j                  j                  j                  ddi       | j
                  d   j                  j                  j                  ddi       t        t        dd       }|j                  j                  }| j                  j                  s|j                  j                  s|j                  j                  d      rt        j                   j#                         }nmt        j                   j%                  |	      j'                         r!t        j                   j%                  |	      }nt        j                   j)                         }|| j
                  d   _        y | j                  }|j                  j                  r t        j                   j#                         }n||j,                  j.                  j#                         v r!t        j                   j%                  |	      }n||j0                  j#                         v r{t        j                   j%                  | j                  j,                  j2                  
      }d| j
                  d   _        d| j
                  d   _        d| j
                  d   _        n>t        j                   j%                  | j                  j,                  j2                  
      }|| j
                  d   _        y )NrA   rU   rD   rj   rT   rg   z
        $('[name=dynamic_project]').val(this.value);
        setTimeout(() => {
            $('#getStageButton').click();
        }, 100);
zproject.add_taskrC   )rD   Tr^   )r7   rq   r8   getattrr
   r#   r9   r   r:   useremployee_getinstancepkis_superuserhas_permr!   objectsallfilterexistsnonequerysetrT   rC   r^   rD   disabled)r<   rA   r=   r>   employeeprojectstaskr?   s          r(   r8   zTaskAllForm.__init__   s5   k4)4:6:.)4G##))00$1HII%%++22 		
 .)T:<<,,}}||((GLL,A,ABT,U"??..0''':AAC"??1181D"??//1.6DKK	"+ ==D||(("??..0T\\226688"??1181DT//3355"??11T]]5J5J5M5M1N26I&/04G$-8<O,5"??11T]]5J5J5M5M1N.6DKK	"+r'   r   r   r   r    r,   r)   r8   rN   rO   s   @r(   rq   rq      s/    
 	rD
 
 '+ )7 )7r'   rq   c                   D     e Zd ZdZddiZ G d d      Zdd fd
Z xZS )	TimeSheetFormz#
    Form for Time Sheet model
    r   r   c                   F    e Zd ZdZeZdZd ej                  ddi      iZ	y)TimeSheetForm.Metar   r   r   r   r   N)
r   r   r   r    	TimeSheetr"   r#   r   r$   r%   r&   r'   r(   r)   r      s/    	 OEOO66*:;
r'   r)   Nr@   c                   t        t        | 
  |i | t        t        dd       }|j
                  j                  }| j                  j                  rdnd}| j                  j                  d      dk(  s8| j                  d   j                  j                  j                  d|ddd	d
       | j                  d   j                  j                  j                  dd|ddd       |j
                  j                  d      sst         j"                  j%                  t'        |      t'        |      z  t'        |      z  t'        |      z        j)                         }|| j                  d   _        y y )NrA   changezload,change
project_iddynamic_createz#id_task_id_parent_divz#id_task_id	innerHTMLz/project/get-tasks-of-project/)	hx-target
hx-trigger
hx-includehx-swaphx-gettask_idz#id_employee_id_parent_divz#id_project_idz /project/get-members-of-project/)r   r   r   r   r   zproject.add_timesheetru   )rG   )task__task_members)task__task_managers)r7   r   r8   rv   r
   rw   rx   ry   rD   initialgetr#   r9   r   r:   r|   r!   r}   r   r   distinctr   )r<   rA   r=   r>   r   hx_trigger_valuer   r?   s          r(   r8   zTimeSheetForm.__init__   sN   mT+T<V<.)T:<<,,'+}}'7'78]||-1AAKK%,,2299!9"2"/*> 	I%%++229..&<	
 ||$$%<=--8$H%&x01 12
 hj  2:DKK%. >r'   r   rO   s   @r(   r   r      s-     2D	
 	
 '+  :  :r'   r   c                        e Zd Z G d d      Zy)TimesheetInTaskFormc                       e Zd ZdZeZdZ ej                  ddi       ej                          ej                         dZ
y)TimesheetInTaskForm.Metar   r   r   r   r   )r   r   r   N)r   r   r   r    r   r"   r#   r   r$   rY   r%   r&   r'   r(   r)   r     sI    	 #EOO66*:;+%++-(u((*
r'   r)   N)r   r   r   r)   r&   r'   r(   r   r     s    
 
r'   r   c                   ,    e Zd ZdZddiZ G d d      Zy)ProjectStageFormz&
    Form for Project stage model
    rI   r   c                   >    e Zd ZdZeZdZd ej                         iZ	y)ProjectStageForm.Metar   r   rT   N)
r   r   r   r    ProjectStager"   r#   r   rY   r%   r&   r'   r(   r)   r   $  s+    	  /e//12r'   r)   Nr+   r&   r'   r(   r   r     s    
 	D	3 	3r'   r   c                   6     e Zd ZdZ G d d      Z fdZ xZS )TaskTimeSheetFormz/
    Form for Task model in timesheet form
    c                   f    e Zd ZdZeZdZ ej                  ddi       ej                         dZ
y)TaskTimeSheetForm.Metar   r   r   r   r   )r   rT   NrW   r&   r'   r(   r)   r   5  s;    	 'vv.>?(u((*
r'   r)   c                    t        t        | 
  |i | | j                  d   j                  j
                  j                  ddd       | j                  d   j                  j
                  j                  ddd       | j                  d   j                  j
                  j                  ddd       | j                  d   j                  j
                  j                  dd	i       y )
Nr0   r1   r2   r3   r   zwidth: 100%; height: 130px;rU   rD   rj   )r7   r   r8   r#   r9   r   r:   r;   s      r(   r8   zTaskTimeSheetForm.__init__A  s    /@@
 	H$$**115$	
 	M"))//666$	
 	M"))//666$	
 	G##))00$1HIr'   )r   r   r   r    r)   r8   rN   rO   s   @r(   r   r   0  s    

 

J Jr'   r   N)typingr   djangor   django.db.modelsr   django.template.loaderr   django.utils.translationr   ra   
base.formsr	   horilla.horilla_middlewaresr
   modelsr   r.   rQ   r[   rd   rq   r   r   r   r   r&   r'   r(   <module>r      s       3 6   6 
) 
(
9 
D
y 
,5I 5&$Y $N@7) @7F2:I 2:j
) 
3y 3**J	 *Jr'   