| 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/pms/__pycache__/ |
Upload File : |
o
hͦh9# � @ s8
d Z ddlZddlZddlZddlmZ ddlmZmZm Z ddl
mZ ddlm
Z
ddlmZ ddlmZ dd lmZ dd
lmZmZ ddlmZ ddlmZ dd
lmZmZmZ ddlm Z m!Z!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2m3Z3 ddl4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: ddl;m<Z< ddl=m>Z> ddl?m@Z@ ddlAmBZB ddlCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZL ddlMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[ ddl\m]Z]m^Z^m_Z_ ddl`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZq e�res�Zte6dd� �Zudd � Zve6e7d!d"�d#d$� ��Zwe6e5e7d%d"�d&d'� ���Zxe6e7d(�d)d*� ��Zye6e5e:d+�d,d-� ���Zze6e5e:d.�d/d0� ���Z{e6e5e:d.��dd1d2����Z|e6e5d3d4� ��Z}e6e7d5d"�d6d7� ��Z~e6e:d8�d9d:� ��Ze6e:d;�d<d=� ��Z�e6e7d5�d>d?� ��Z�d@dA� Z�e6e5dBdC� ��Z�e6dDdE� �Z�dFdG� Z�e6dHdI� �Z�e6e5dJdK� ��Z�e6e5dLdM� ��Z�e6e5dNdO� ��Z�e6e5dPdQ� ��Z�e6e5dRdS� ��Z�e6e5dTdU� ��Z�e6e5dVdW� ��Z�e6dXdY� �Z�e6e5e_dZd"�d[d\� ���Z�e6e5e7d!d"�d]d^� ���Z�e6e5d_d`� ��Z�e6e7d5d"�dadb� ��Z�e6e7d5d"�dcdd� ��Z�e6e5dedf� ��Z�e6e7dgd"�dhdi� ��Z�e6e7dgd"�djdk� ��Z�e6e5e7dgd"�dldm� ���Z�e6e5e7dnd"�dodp� ���Z�dqdr� Z�e6e7dsd"�dtdu� ��Z�e6e5e7dvd"�dwdx� ���Z�e6dydz� �Z�e6e5d{d|� ��Z�e6d}d~� �Z�e6dd�� �Z�e6d�d�� �Z�e6d�d�� �Z�e6d�d�� �Z�e6d�d�� �Z�e6e7d�d"�d�d�� ��Z�e6e5d�d�� ��Z�e6d�d�� �Z�e6e7d�d"�d�d�� ��Z�e6d�d�� �Z�e6d�d�� �Z�e6e7d�d"�d�d�� ��Z�e6d�d�� �Z�e6e7d�d"�d�d�� ��Z�e6e7d�d"�d�d�� ��Z�e6e7d�d"�d�d�� ��Z�e6e7d�d"�d�d�� ��Z�e6e5e7d�d"�d�d�� ���Z�e6e7d�d"�d�d�� ��Z�e6e5e7d�d"�d�d�� ���Z�e6e7d�d"�d�d�� ��Z�e6e7d�d"�d�d�� ��Z�e6e7d�d"�e5d�d�� ���Z�e6e7d�d"�e5d�d�� ���Z�e6e7d�d"�d�d�� ��Z�e6e7d�d"�d�d�� ��Z�e6d�d�� �Z�e6d�d �Z�e6d�dĄ �Z�e6d�dƄ �Z�e6d�dȄ �Z��dd�dʄZ�e6d�d̄ �Z�e6d�d΄ �Z�e6e7d5d"�d�dЄ ��Z�e6d�d҄ �Z�e6e7d�d"�d�dԄ ��Z�e6d�dք �Z�e6d�d �Z�e6e5d�dڄ ��Z�e6e5d�d܄ ��Z�e6d�dބ �Z�e6e:d߃d�d� ��Z�e6e5d�d� ��Z�e6e5d�d� ��Z�e6e5e7dgd"�d�d� ���Z�e6e7d�d"�d�d� ��Z�e6d�d� �Z�e6d�d� �Z�e6d�d� �Z�e6d�d� �Z�e6e5d�d� ��Z�dd�lm�Z� e6e:d��d�d�� ��Z�e6e:d��d�d�� ��Z�e6d�d�� �Z�e6e5d�d�� ��Z�e6e8d��d��d � ��Z�e6e5e8d��d�d��d�d� ���Z�e6e8d��d�d��d�d� ��Z�e6e8d��d�d��d�d� ��Z�e6e5e8d��d�d��d �d
� ���Z�e6�d�d� �Z�e6e5e9�d
e2��d�d� ���Z�e6�d�d� �Z�e6e:�d��d�d� ��Z�e6e:�d��d�d� ��Z�e6�d�d� �Z�e6e:�d��d�d� ��Z�dS ( zr
views.py
This module contains the view functions for handling HTTP requests and rendering
responses in pms app.
� N)�tee)�parse_qs� urlencode�urlparse)�
relativedelta)�forms)�messages)�User)� Paginator)�ProtectedError�Q)�IntegrityError)�modelformset_factory)�HttpResponse�HttpResponseRedirect�JsonResponse)�get_object_or_404�redirect�render)�render_to_string)�reverse)�gettext_lazy)�closest_numbers�
eval_validate�get_key_instances�get_pagination�
paginator_qry�sortby)�Employee�EmployeeWorkInformation)�hx_request_required�login_required�manager_can_enter�meeting_manager_can_enter�owner_can_enter�permission_required)�group_by_queryset)�generate_choices)�serialize_form)�notify) �ActualKeyResultFilter�ActualObjectiveFilter�AnonymousFeedbackFilter�EmployeeObjectiveFilter�FeedbackFilter�KeyResultFilter�MeetingsFilter�ObjectiveFilter�ObjectiveReGroup)�AddAssigneesForm�AnonymousFeedbackForm�EmployeeKeyResultForm�EmployeeObjectiveCreateForm�EmployeeObjectiveForm�FeedbackForm�
KeyResultForm�KRForm�MeetingsForm�ObjectiveCommentForm�
ObjectiveForm�
PeriodForm�QuestionForm�QuestionTemplateForm)�'check_permission_feedback_detailed_view�get_anonymous_feedbacks�pms_owner_and_manager_can_enter)�AnonymousFeedback�Answer�BonusPointSetting�Comment�EmployeeBonusPoint�EmployeeKeyResult�EmployeeObjective�Feedback� KeyResult�KeyResultFeedback�Meetings�MeetingsAnswer� Objective�Period�Question�QuestionOptions�QuestionTemplatec C s: | j j}d}tjj|dd�}|�� }t| |�}t| ||�S )z�
This view is used to show all the objectives and returns some objects.
Returns:
Objects based on userlevel.
zokr/okr_view.htmlF��employee_id�archive)�user�employee_getrJ �objects�filter�distinct�objective_filter_paginationr )�request�employee�template�
objective_own�context� rc �/var/www/erp/pms/views.py�objective_list_viewi s �
re c
C s� |� � }|jd }|jd }|jd }t�| td�� |rY|D ];}t|||d�}|� � |rA|D ]}t|||j|jd�} | � � q0t j
| jj|j
ddd d
dtdd
|jid�d� qdS dS )z2
This view is used to save objective form
� assignees�
start_date�
key_result_idzObjective created)�objective_idrV rg ��employee_objective_idrh �
progress_type�target_value�You got an OKR!.�5 لقد حققت هدفًا ونتيجة رئيسية!�'Du hast ein Ziel-Key-Ergebnis erreicht!�- ¡Has logrado un Resultado Clave de Objetivo!�0 Vous avez atteint un Résultat Clé d'Objectif !�objective-detailed-view�obj_id��kwargs�� recipient�verb�verb_ar�verb_de�verb_es�verb_frr N)�save�cleaned_datar �success�_rJ rI rl rm r) �sendrX rY �employee_user_idr �id)
r^ �objective_form� objectiverf rg �default_krs�emp�
emp_objective�key�emp_krrc rc rd �
obj_form_savez sD
��
���r� zpms.add_employeeobjective��permc C sx | j j}t|d�}| j�d�durt| j�}| jdkr-t| j�}|�� r-t| |� t d�S |t
� t� d�}t| d|d�S ) a
This view is for objective creation , and returns a objective form.
Returns:
GET:
objective form, period, department, job position, employee, department
POST:
Objective created, and returns to key result creation function
)r_ rh N�POST�)<script>window.location.reload()</script>)r� �p_form�k_form�okr/objective_creation.html�rb )
rX rY r= �GET�get�methodr� �is_validr� r r>