
    vg                         d Z ddl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  ej                  e      Zej"                  Zd Z eed	e        G d
 dej(                        Zy)z
horilla_company_manager.py
    N)	CoroutineSequence)models)QuerySet)_thread_locals)post_bulk_updatepre_bulk_updatec                     t        t        dd       }|| _        t        j                  | j
                  | ||       t        | g|i |}t        j                  | j
                  | ||       |S )Nrequest)senderquerysetargskwargs)getattrr   r   r	   sendmodeldjango_filter_updater   )selfr   r   r   results        0/var/www/horilla/base/horilla_company_manager.pyupdater      s`    ni6GDL

TVT!$888FdfUM    r   c                   H     e Zd ZdZd fd	Z fdZd Z fdZ fdZ xZ	S )HorillaCompanyManagerz
    HorillaCompanyManager
    c                 D    t        |   |i | || _        ddg| _        y )Nemployee_idrequested_employee_id)super__init__related_company_fieldcheck_fields)r   r    r   r   	__class__s       r   r   zHorillaCompanyManager.__init__&   s-    $)&)%:"#
r   c                    t         |          }t        t        dd      }d}||j                  j                  d      }	 |dk7  r'|r%|j                  | j                  j                        n|}	 |j                         |j                         j                         k7  }|r|j                         }|S # t        $ r}t        j                  |       Y d}~gd}~ww xY w#  Y |S xY w)z%
        get_queryset method
        r   Nselected_companyall)r   get_querysetr   r   sessiongetfilterr   company_filter	Exceptionloggererrorcountdistinct)r   r   r   r$   ehas_duplicatesr"   s         r   r&   z"HorillaCompanyManager.get_queryset.   s    
 7').)T:&223EF	 $u,1A 

 9 9: 	%^^-1B1B1D1J1J1LLN#,,.   	LLOO		s%   .B3 0AC 3	C<CCC#c                    g }	 | j                         }|j                         r	 |j                  j                  j                  }|dk(  r1t        t        dd      }t        |dd      s|j                  d      }n||j                  j                  j                  D ]Y  }t        |t        j                        s|j                  | j                  v s7|j                   ddi} |j                  di |}[ |S 	 |S #  Y |S xY w#  Y |S xY w)	z+
        Override the all() method
        employeer   Nis_filteringT)	is_active__is_active )r&   existsr   _meta
model_namer   r   r)   fields
isinstancer   
ForeignKeynamer!   )r   r   r:   r   fieldrelated_model_is_active_filters         r   r%   zHorillaCompanyManager.allH   s    	((*H !)!5!5!@!@J!Z/").)T"J&wE'/'FH%-^^%9%9%@%@ &E)%1B1BC#(::1B1B#B+0::,k(BDF&$B 0?x 0&*H0&H& + !* 	 	s/    D BC< 9C< %C< <D>D D D	c                 H    t        |   |i |}t        t        d|       |S )Nqueryset_filter)r   r)   setattrr   )r   r   r   r   r"   s       r   r)   zHorillaCompanyManager.filterf   s(    7>4262 18<r   c                 $    t         |          }|S )zS
        Fetch all datas from a model without applying any company filter.
        )r   r&   )r   r   r"   s     r   get_allzHorillaCompanyManager.get_allk   s     7')r   )N)
__name__
__module____qualname____doc__r   r&   r%   r)   rE   __classcell__)r"   s   @r   r   r   !   s&    
4<
 r   r   )rI   loggingtypingr   r   	django.dbr   django.db.models.queryr   horilla.horilla_middlewaresr   horilla.signalsr   r	   	getLoggerrF   r,   r   r   rC   Managerr   r7   r   r   <module>rS      s_     &  + 6 =			8	$ 	 (F #OFNN Or   