| Server IP : 65.108.144.40 / Your IP : 216.73.217.165 Web Server : Apache/2.4.52 (Ubuntu) System : Linux ubuntu-8gb-hel1-1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64 User : dev ( 1000) PHP Version : 8.2.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/erp/recruitment/__pycache__/ |
Upload File : |
o
hͦh� � @ sb d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddd �Z
d
d� Z ddd�ZdS )zE
pipeline_grouper.py
This module is used to make queryset by groups
� )�datetime)� Paginator)�models)�ForwardManyToOneDescriptor)�_thread_locals�
c C s$ | j �|�}t||�}|�|�}|S )z=
This method is used to return the paginator entries
)�GET�getr �get_page)�request�queryset� page_name�records_per_page�page� r �,/var/www/erp/recruitment/pipeline_grouper.py�record_queryset_paginator s
r c C s� g }|r5|D ],}|j di ||ji��}|�� r2|t| |d|� |j� ��d|� |j� �d�} |�| � q|S |D ]1}|j di ||i��}|�� rh|t| |d|� |� ��dd��d|� |� ��dd�d�}
|�|
� q7|S )z"
groups generating method
�
dynamic_page_)�grouper�list�dynamic_name� �_Nr )�filter�id�countr �append�replace)r �groupersr r
�group_field�is_fk_field�groupsr �group_queryset�
group_info�groupr r r �generate_groups s@ ��
�����
�r% Nr �2 c s. � � d�}t|�dk}�j}tt|� d�t�}|} d}
ttdd�}|s%|ra|D ]}| j�|�}
|
j } q'| rE| j
�� }
t||
�|� dd�}nH� �fdd�t
�j� dd ��D �}
t||
�|� d
d�}n,� �fdd�t
�j� dd ��D �}
�jj�� �j }|r�|j
j|
d�}
t||
�|� d
d�}t||�}|�|�S )
zT
This method is used to make group-by and split groups by nested pagination
�__� Nr T)r c �. g | ]\}}|�j � d d�d|� vr|�qS �T��flatN��values_list��.0�index�item�r r r r �
<listcomp>b s
�z%group_by_queryset.<locals>.<listcomp>r+ Fc r) r* r- r/ r3 r r r4 o s
�)�id__in)�split�len�model�
isinstance�getattrr r �_meta� get_field�
related_model�objects�allr% � enumerater. r r r
)r r r r
r �fields_split�splitedr8 r �
model_copy� field_objr �fieldr r! r= r r3 r �group_by_querysetB sT
�
� �����
rF )r )Nr r&