
    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 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mZ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 company in settings
    )Any)forms)messages)HttpResponse)render)reverse)method_decorator)gettext_lazy)CompanyFilter)CompanyForm)Company)login_requiredpermission_required)DynamicBulkUpdateForm)HorillaFormViewHorillaListViewHorillaNavViewdispatch)namezbase.view_company)permc            	            e Zd ZdZdeddf fdZeZeZ	dZ
g dZd 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 ed      dfgZg dZdZd
diZ xZS )CompanyListViewz+
    list view for company in settings
    kwargsreturnNc                    t        |   di | t        d      | _        g | _        | j
                  j                  j                  d      r(| j                  j                  t        d      ddd       | j
                  j                  j                  d      r)| j                  j                  t        d      d	d
d       y y )Ncompany-listzbase.change_company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attrszbase.delete_companyDeleteztrash-outlinea|  
                            class="oh-btn oh-btn--danger-outline oh-btn--light-bkg w-100"
                            hx-get="{get_delete_url}?model=base.company&pk={pk}"
                            data-toggle="oh-modal-toggle"
                            data-target="#deleteConfirmation"
                            hx-target="#deleteConfirmationBody"
                         )
super__init__r   
search_urlactionsrequestuserhas_permappend_selfr   	__class__s     4/var/www/python-projects/worksol/base/cbv/company.pyr$   zCompanyListView.__init__"   s    "6"!.1<<%%&;<LLi,
 <<%%&;<LLk+
 =    selectedInstance)countrystatecityzipc                 (   t        t        | j                        }t        j                  t        j
                  dddd            |j                  d<   t        j                  t        j
                  dddd            |j                  d	<   |S )
z-
        Bulk from generating method
        )
root_modelbulk_update_fieldsoh-select oh-select-2Tzwidth: 100%; height:45px;)classrequiredstyler    )widgetr2   r3   )r   r   r8   r   ChoiceFieldSelectfields)r-   forms     r/   get_bulk_formzCompanyListView.get_bulk_formH   s    
 %43J3J
 "'!2!2<<4 $8"
I  %00<<4 $8 
G r0   r   company_icon_with_namezIs HqhqAddressaddressCountryr2   Stater3   Cityr4   Zipr5   ))r   rD   )rH   r2   )rI   r3   )rJ   r4   )rK   r5   zE
                id="companyTr{get_delete_instance}"
                z  style="width:180px !important" )__name__
__module____qualname____doc__r   r$   r   modelr   filter_classselected_instances_key_idr8   rC   r+   columnssortby_mapping	row_attrsheader_attrs__classcell__r.   s   @r/   r   r      s      B E L 2<@ 
9/0	
7T	
9y!	
9y!	
7W	
6F	
55GNI
 	!"HLr0   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 )CompanyNavViewz(
    nav bar of the department view
    r   r   Nc                     t        |   di | t        d      | _        | j                  j
                  j                  d      rdt        d       d| _        y y )Nr   base.add_companya&  
                                onclick = "event.stopPropagation();"
                                data-toggle="oh-modal-toggle"
                                data-target="#genericModal"
                                hx-target="#genericModalBody"
                                hx-get="zcompany-create-formz""
                                r"   )r#   r$   r   r%   r'   r(   r)   create_attrsr,   s     r/   r$   zCompanyNavView.__init__   s`    "6"!.1<<%%&89%)
 *11F)G(H I!!$D :r0   r   z#listContainer)rL   rM   rN   rO   r   r$   r+   	nav_titlesearch_swap_targetr   filter_instancerW   rX   s   @r/   rZ   rZ      s3    
$ 
$ 
$ )I)#oOr0   rZ   r\   c                   d     e Zd ZdZeZeZ ed      Z	d fd	Z
dedef fdZdedef fdZ xZS )	CompanyCreateFormz@
    form view for creating and editing company in settings
    zCreate Companyc                 B   t         |   |      }| j                  j                  j                  rt        d      | j                  _        t        j                  ddi      |j                  d   _        t        j                  ddi      |j                  d   _        |S )NUpdate Companyr:   r9   r=   r2   r3   )r#   get_formrB   instancepkr+   
form_classverbose_namer   r@   rA   r>   )r-   rh   rB   r.   s      r/   re   zCompanyCreateForm.get_form   s    w
+99  +,-=+>DOO((-0)
I%
 ',ll34'
G# r0   rB   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   )rB   errors)rB   rf   rg   r+   rh   ri   is_validrk   as_datar   r'   template_namer#   form_invalid)r-   rB   rk   r.   s      r/   ro   zCompanyCreateForm.form_invalid   sz    
 99  +,-=+>DOO(}}[[((*Fd00462R  w#D))r0   c                    |j                         r|j                          | j                  j                  j                  r9t        j                  | j                  t        d             | j                         S t        j                  | j                  t        d             | j                         S t        | -  |      S )Nz'Company have been successfully updated.z'Company have been successfully created.)rl   saverB   rf   rg   r   successr'   r+   r   r#   
form_valid)r-   rB   r.   s     r/   rs   zCompanyCreateForm.form_valid   s    ==?IIKyy!!$$  LL!$M"N $$&&   LL!$M"N $$&&w!$''r0   )N)rL   rM   rN   rO   r   rP   r   rh   r+   new_display_titlere   r   r   ro   rs   rW   rX   s   @r/   rb   rb      sP     EJ*+ * * *({ (| ( (r0   rb   N)$rO   typingr   djangor   django.contribr   django.httpr   django.shortcutsr   django.urlsr   django.utils.decoratorsr	   django.utils.translationr
   r+   base.filtersr   
base.formsr   base.modelsr   horilla_views.cbv_methodsr   r   horilla_views.formsr   horilla_views.generic.cbv.viewsr   r   r   r   rZ   rb   r"   r0   r/   <module>r      s      # $ #  4 6 & "  I 5  .z2%+>?jQbo b R 3bJ .z2%+>?jQ&^ & R 3&, .z2%+=>ZP5( 5( Q 35(r0   