
    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 dd	lmZmZ dd
lmZmZmZ ddlmZ ddlmZ ddlmZ  eed       e ed      d       G d de                    Z eed       e ed      d       G d de                    Z eed       e ed      d       G d de                    Zy)z>
this page is handling the cbv methods for skills in settings
    )Any)messages)HttpResponse)render)reverse)method_decorator)gettext_lazy)login_requiredpermission_required)HorillaFormViewHorillaListViewHorillaNavView)SkillsFilter)
SkillsForm)Skilldispatch)namezrecruitment.view_recruitment)permc                        e Zd ZdZdeddf fdZeZeZ	 e
d      df e
d      d	fgZd
Z e
d      ddd e
d      dddgZdddZ xZS )SkillsListViewz-
    list view of the skills in settings
    kwargsreturnNc                 D    t        |   di | t        d      | _        y )Nskills-list-view )super__init__r   
search_urlselfr   	__class__s     :/var/www/python-projects/worksol/recruitment/cbv/skills.pyr   zSkillsListView.__init__"   s     "6"!"45    zSI.Noget_sinor   titlezH
                    id="skillsTr{get_delete_instance}"
                Editzcreate-outlinea  
                        class="oh-btn oh-btn--light-bkg w-100"
                        hx-get='{get_update_url}?instance_ids={ordered_ids}'
								hx-target="#genericModalBody"
								data-toggle="oh-modal-toggle"
								data-target="#genericModal"
                      )actioniconattrsDeleteztrash-outlineaN  
                        class="oh-btn oh-btn--light-bkg w-100 text-danger"
                        hx-post="{get_delete_url}"
                        hx-swap="delete"
                        hx-confirm="Are you sure want to delete this skill?"
                        hx-target="#skillsTr{get_delete_instance}"
                      z  style="width:200px !important" )r%   r'   )__name__
__module____qualname____doc__r   r   r   modelr   filter_class_columns	row_attrsactionsheader_attrs__classcell__r!   s   @r"   r   r      s    
6 6 6 EL'
J'!G*g)>?GI i$
	
 k#
	
G4 88Lr#   r   c                   N     e Zd ZdZdeddf fdZ ed      ZdZ e	       Z
 xZS )SkillsNavViewz
    navbar of skills view
    r   r   Nc                 l    t        |   di | t        d      | _        dt        d       d| _        y )Nr   a  
                            onclick = "event.stopPropagation();"
                            data-toggle="oh-modal-toggle"
                            data-target="#genericModal"
                            hx-target="#genericModalBody"
                            hx-get="zsettings-create-skillsz"
                            r   )r   r   r   r   create_attrsr   s     r"   r   zSkillsNavView.__init__W   sC    "6"!"45!%
 &--E%F$G H r#   Skillsz#listContainer)r+   r,   r-   r.   r   r   r1   	nav_titlesearch_swap_targetr   filter_instancer6   r7   s   @r"   r9   r9   N   s3    
	  	  	  (I)"nOr#   r9   zrecruitment.add_recruitmentc                   b     e Zd ZdZeZe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 )SkillsCreateFormz>
    form view for creating and update skills in settings
    r<   c                    t        |   di |}| j                         }| j                  j                  j
                  r@| j                  | j                  j                        }t        d      | j                  _        |||<   |S )zO
        Add form to context, initializing with instance if it exists.
        )instanceUpdate Skillsr   )r   get_context_data
form_classformrC   pkr1   verbose_name)r    r   contextrG   r!   s       r"   rE   z!SkillsCreateForm.get_context_datat   so     '*4V4 99  ??DII,>,>??D+,_+=DOO(r#   rG   r   c                 2   | j                   j                  j                  rt        d      | j                  _        |j                         s>|j                  j                         }t        | j                  | j                  ||d      S t        | 5  |      S )zJ
        Handles and renders form errors or defers to superclass.
        rD   )rG   errors)rG   rC   rH   r1   rF   rI   is_validrL   as_datar   requesttemplate_namer   form_invalid)r    rG   rL   r!   s      r"   rQ   zSkillsCreateForm.form_invalid   sy     99  +,_+=DOO(}}[[((*Fd00462R  w#D))r#   c                 T   |j                         r|j                  j                  r*t        j                  | j
                  t        d             n)t        j                  | j
                  t        d             |j                          | j                         S t        | )  |      S )z/
        Handle valid form submission.
        zSkill updatedzSkill created successfully!)rM   rC   rH   r   successrO   r1   saver   r   
form_valid)r    rG   r!   s     r"   rU   zSkillsCreateForm.form_valid   sv     ==?}}  q/AB  q1N/OPIIK$$&&w!$''r#   )r+   r,   r-   r.   r   r/   r   rF   r1   new_display_titlerE   r   r   rQ   rU   r6   r7   s   @r"   rA   rA   g   sN    
 EJ(
* * *(z (l ( (r#   rA   N) r.   typingr   django.contribr   django.httpr   django.shortcutsr   django.urlsr   django.utils.decoratorsr   django.utils.translationr	   r1   horilla_views.cbv_methodsr
   r   horilla_views.generic.cbv.viewsr   r   r   recruitment.filtersr   recruitment.formsr   recruitment.modelsr   r   r9   rA   r   r#   r"   <module>rc      s     # $ #  4 6 I 
 - ( $ .z2;<:._ . 3.b .z2;<:%N % 3%* .z2:;*-( -( 3-(r#   