From 215b471be515e3224bcb07681ab7a8721aed3cf0 Mon Sep 17 00:00:00 2001 From: Horilla Date: Tue, 23 Jan 2024 15:30:22 +0530 Subject: [PATCH] [UPDT] EMPLOYEE: Dynamic creation of department, job position from employee work information form --- .../templates/base/department/department.html | 96 ++++++---------- .../base/department/department_form.html | 76 ++++++------ .../base/employee_type/employee_type.html | 65 +++++------ .../employee_type/employee_type_form.html | 67 ++++++----- .../base/job_position/job_position.html | 13 +-- .../base/job_position/job_position_form.html | 74 +++++++----- base/templates/base/job_role/job_role.html | 12 +- .../base/job_role/job_role_form.html | 71 +++++++----- base/templates/base/shift/shift.html | 64 +++++------ base/templates/base/shift/shift_form.html | 108 ++++++++++-------- base/templates/base/shift/shift_view.html | 2 +- base/templates/base/work_type/work_type.html | 66 +++++------ .../base/work_type/work_type_form.html | 73 +++++++----- base/translator.py | 3 +- base/views.py | 71 ++++++++---- 15 files changed, 441 insertions(+), 420 deletions(-) diff --git a/base/templates/base/department/department.html b/base/templates/base/department/department.html index 819cb1403..88da1c662 100644 --- a/base/templates/base/department/department.html +++ b/base/templates/base/department/department.html @@ -1,68 +1,44 @@ -{% extends 'settings.html' %} -{% load i18n %} -{% block settings %} +{% extends 'settings.html' %} {% load i18n %} {% block settings %}
- {% if perms.base.view_department %} -
-

{% trans "Department" %}

- {% if perms.base.add_department %} - - {% endif %} -
- {% include 'base/department/department_view.html' %} - + {% if perms.base.view_department %} +
+

{% trans "Department" %}

+ {% if perms.base.add_department %} + {% endif %} - -
- - - + {% include 'base/department/department_view.html' %} {% endif %}
-{% endblock settings %} \ No newline at end of file + + +{% endblock settings %} diff --git a/base/templates/base/department/department_form.html b/base/templates/base/department/department_form.html index 8d321750a..ae4b990fd 100644 --- a/base/templates/base/department/department_form.html +++ b/base/templates/base/department/department_form.html @@ -1,36 +1,48 @@ {% load i18n %} +
+ {% if department.id %} + {% trans "Department Update" %} + {% else %} + {% trans "Create Department" %} + {% endif %} + +
- {% csrf_token %} - {{form.non_field_errors}} -
- -
- {{form.department.errors}} {{form.department}} -
-
+ {% else %} + hx-post="{% url 'department-creation' %}?dynamic={{dynamic}}" + {% endif %} + method="post" + > +
+ {% csrf_token %} {{form.non_field_errors}} +
+ +
+ {{form.department.errors}} {{form.department}} +
+
-
- -
- {{form.company_id.errors}} - {{form.company_id}} -
-
- - - +
+ +
+ {{form.company_id.errors}} {{form.company_id}} +
+
+
+ + \ No newline at end of file diff --git a/base/templates/base/employee_type/employee_type.html b/base/templates/base/employee_type/employee_type.html index 107356d62..3a5e80642 100644 --- a/base/templates/base/employee_type/employee_type.html +++ b/base/templates/base/employee_type/employee_type.html @@ -1,48 +1,35 @@ -{% extends 'settings.html' %} -{% load i18n %} -{% block settings %} +{% extends 'settings.html' %} {% load i18n %} {% block settings %}
- {% if perms.base.view_employeetype %} -
-

{% trans "Employee Type" %}

- {% if perms.base.add_employeetype %} - - {% endif %} -
- - {% include 'base/employee_type/type_view.html' %} + {% if perms.base.view_employeetype %} +
+

{% trans "Employee Type" %}

+ {% if perms.base.add_employeetype %} + {% endif %} +
+ {% include 'base/employee_type/type_view.html' %} {% endif %}
- -{% endblock settings %} \ No newline at end of file +{% endblock settings %} diff --git a/base/templates/base/employee_type/employee_type_form.html b/base/templates/base/employee_type/employee_type_form.html index ed83b7e67..6c20a8c80 100644 --- a/base/templates/base/employee_type/employee_type_form.html +++ b/base/templates/base/employee_type/employee_type_form.html @@ -1,37 +1,48 @@ {% load i18n %} - -
+ {% trans "Employee Type" %} + + + - {% csrf_token %} - {{form.non_field_errors}} +
+ {% csrf_token %} {{form.non_field_errors}}
- -
- {{form.employee_type.errors}} - {{form.employee_type}} -
+ +
+ {{form.employee_type.errors}} {{form.employee_type}} +
- -
- {{form.company_id.errors}} - {{form.company_id}} -
+ +
+ {{form.company_id.errors}} {{form.company_id}} +
-
+
+ diff --git a/base/templates/base/job_position/job_position.html b/base/templates/base/job_position/job_position.html index 7c27ddf44..a87a9d363 100644 --- a/base/templates/base/job_position/job_position.html +++ b/base/templates/base/job_position/job_position.html @@ -24,17 +24,8 @@ role="dialog" aria-labelledby="jobPositionModal" aria-hidden="true" -> -
-
-

- {% trans "Job Position" %} -

- -
-
+ > +
diff --git a/base/templates/base/job_position/job_position_form.html b/base/templates/base/job_position/job_position_form.html index c665d9e2f..e5809f025 100644 --- a/base/templates/base/job_position/job_position_form.html +++ b/base/templates/base/job_position/job_position_form.html @@ -1,34 +1,48 @@ {% load i18n %} - +
+ {% trans "Job Position" %} + +
- {% csrf_token %} -
-
- - {{form.department_id}} {{form.department_id.errors}} -
-
- - {{form.job_position}} {{form.job_position.errors}} -
-
- - +
+ {% csrf_token %} +
+
+ + {{form.department_id}} {{form.department_id.errors}} +
+
+ + {{form.job_position}} {{form.job_position.errors}} +
+
+
+
diff --git a/base/templates/base/job_role/job_role.html b/base/templates/base/job_role/job_role.html index 7f52479aa..f72d8bba8 100644 --- a/base/templates/base/job_role/job_role.html +++ b/base/templates/base/job_role/job_role.html @@ -28,17 +28,7 @@ aria-labelledby="jobRoleModal" aria-hidden="true" > -
-
-

- {% trans "Job Role" %} -

- -
-
-
+
{% endblock settings %} diff --git a/base/templates/base/job_role/job_role_form.html b/base/templates/base/job_role/job_role_form.html index 8def1e7e9..593974490 100644 --- a/base/templates/base/job_role/job_role_form.html +++ b/base/templates/base/job_role/job_role_form.html @@ -1,33 +1,44 @@ {% load i18n %} - -
+ {% trans "Job Role" %} + + + - {% csrf_token %} - {{form.non_field_errors}} -
-
- - {{form.job_position_id.errors}} {{form.job_position_id}} -
-
- - {{form.job_role.errors}} {{form.job_role}} -
-
- - +
+ {% csrf_token %} {{form.non_field_errors}} +
+
+ + {{form.job_position_id.errors}} {{form.job_position_id}} +
+
+ + {{form.job_role.errors}} {{form.job_role}} +
+
+
+
diff --git a/base/templates/base/shift/shift.html b/base/templates/base/shift/shift.html index 5e9c3c5cb..82065af36 100644 --- a/base/templates/base/shift/shift.html +++ b/base/templates/base/shift/shift.html @@ -1,46 +1,34 @@ -{% extends 'settings.html' %} -{% load i18n %} -{% block settings %} +{% extends 'settings.html' %} {% load i18n %} {% block settings %}
- {% if perms.base.view_employeeshift %} -
-

{% trans "Shift" %}

- {% if perms.base.add_employeeshift %} - - {% endif %} -
- {% include 'base/shift/shift_view.html' %} + {% if perms.base.view_employeeshift %} +
+

{% trans "Shift" %}

+ {% if perms.base.add_employeeshift %} + {% endif %} - +
+ {% include 'base/shift/shift_view.html' %} {% endif %}
-{% endblock settings %} \ No newline at end of file +{% endblock settings %} diff --git a/base/templates/base/shift/shift_form.html b/base/templates/base/shift/shift_form.html index 03cf09eb3..553defd47 100644 --- a/base/templates/base/shift/shift_form.html +++ b/base/templates/base/shift/shift_form.html @@ -1,55 +1,65 @@ {% load i18n %} - -
+ {% trans "Employee Shift" %} + + + - {% csrf_token %} - {{form.non_field_errors}} + {% endif %} + method="post" +> +
+ {% csrf_token %} {{form.non_field_errors}}
-
- - {{form.employee_shift.errors}} - {{form.employee_shift}} -
-
- - {{form.weekly_full_time.errors}} - {{form.weekly_full_time}} -
-
- - {{form.full_time.errors}} - {{form.full_time}} -
-
- - {{form.grace_time_id.errors}} - {{form.grace_time_id}} -
-
- - {{form.company_id.errors}} - {{form.company_id}} -
+
+ + {{form.employee_shift.errors}} {{form.employee_shift}} +
+
+ + {{form.weekly_full_time.errors}} {{form.weekly_full_time}} +
+
+ + {{form.full_time.errors}} {{form.full_time}} +
+
+ + {{form.grace_time_id.errors}} {{form.grace_time_id}} +
+
+ + {{form.company_id.errors}} {{form.company_id}} +
-
+ +
+ diff --git a/base/templates/base/shift/shift_view.html b/base/templates/base/shift/shift_view.html index 93cc5d0d1..38100a329 100644 --- a/base/templates/base/shift/shift_view.html +++ b/base/templates/base/shift/shift_view.html @@ -1,5 +1,5 @@ {% load i18n %} -
+
diff --git a/base/templates/base/work_type/work_type.html b/base/templates/base/work_type/work_type.html index 3688c578a..d7f556662 100644 --- a/base/templates/base/work_type/work_type.html +++ b/base/templates/base/work_type/work_type.html @@ -1,49 +1,35 @@ -{% extends 'settings.html' %} -{% load i18n %} -{% block settings %} +{% extends 'settings.html' %} {% load i18n %} {% block settings %}
- {% if perms.base.view_worktype %} -
-

{% trans "Work Type" %}

- {% if perms.base.add_worktype %} - - {% endif %} -
- - + {% if perms.base.view_worktype %} +
+

{% trans "Work Type" %}

+ {% if perms.base.add_worktype %} + {% endif %} +
- {% include 'base/work_type/work_type_view.html' %} + {% endif %} {% include 'base/work_type/work_type_view.html' %}
- -{% endblock settings %} \ No newline at end of file +{% endblock settings %} diff --git a/base/templates/base/work_type/work_type_form.html b/base/templates/base/work_type/work_type_form.html index 08f2b4cae..062939993 100644 --- a/base/templates/base/work_type/work_type_form.html +++ b/base/templates/base/work_type/work_type_form.html @@ -1,33 +1,50 @@ {% load i18n %} -
+ {% trans "Work Type" %} + +
+ - {% csrf_token %} - {{form.non_field_errors}} -
-
- - {{form.work_type.errors}} {{form.work_type}} -
-
-
-
- - {{form.company_id.errors}} {{form.company_id}} -
-
- +
+ {% csrf_token %} {{form.non_field_errors}} +
+
+ + {{form.work_type.errors}} {{form.work_type}} +
+
+
+
+ + {{form.company_id.errors}} {{form.company_id}} +
+
+
+ diff --git a/base/translator.py b/base/translator.py index cec72d3e8..75ca591ac 100644 --- a/base/translator.py +++ b/base/translator.py @@ -296,4 +296,5 @@ _("job_position"), _("job_role"), _("shift"), _("work_type"), -_("company"), \ No newline at end of file +_("company"), +_("employee-create-personal-info"), \ No newline at end of file diff --git a/base/views.py b/base/views.py index 19ea6b558..1779ed869 100644 --- a/base/views.py +++ b/base/views.py @@ -170,8 +170,13 @@ def login_user(request): if user is None: messages.error(request, _("Invalid username or password.")) return redirect("/login") - if user.employee_get.is_active== False: - messages.error(request, _("This user is archived. Please contact the manager for more information.")) + if user.employee_get.is_active == False: + messages.error( + request, + _( + "This user is archived. Please contact the manager for more information." + ), + ) return redirect("/login") login(request, user) messages.success(request, _("Login Success")) @@ -672,8 +677,8 @@ def object_duplicate(request, obj_id, **kwargs): initial_value = f"{form.initial.get(field_name, '')} (copy)" form.initial[field_name] = initial_value form.fields[field_name].initial = initial_value - if hasattr(form.instance, 'id'): - form.instance.id = None + if hasattr(form.instance, "id"): + form.instance.id = None if request.method == "POST": form = form_class(request.POST) @@ -874,7 +879,7 @@ def job_position_creation(request): """ This method is used to create job position """ - + dynamic = request.GET.get("dynamic") form = JobPositionForm() if request.method == "POST": form = JobPositionForm(request.POST) @@ -887,6 +892,7 @@ def job_position_creation(request): "base/job_position/job_position_form.html", { "form": form, + "dynamic": dynamic, }, ) @@ -921,7 +927,7 @@ def job_role_create(request): """ This method is used to create job role. """ - + dynamic = request.GET.get("dynamic") form = JobRoleForm() if request.method == "POST": form = JobRoleForm(request.POST) @@ -937,6 +943,7 @@ def job_role_create(request): "base/job_role/job_role_form.html", { "form": form, + "dynamic": dynamic, }, ) @@ -989,7 +996,7 @@ def work_type_create(request): """ This method is used to create work type """ - + dynamic = request.GET.get("dynamic") form = WorkTypeForm() work_types = WorkType.objects.all() if request.method == "POST": @@ -1004,7 +1011,7 @@ def work_type_create(request): return render( request, "base/work_type/work_type_form.html", - {"form": form, "work_types": work_types}, + {"form": form, "work_types": work_types, "dynamic": dynamic}, ) @@ -1461,7 +1468,7 @@ def employee_type_create(request): """ This method is used to create employee type """ - + dynamic = request.GET.get("dynamic") form = EmployeeTypeForm() types = EmployeeType.objects.all() if request.method == "POST": @@ -1474,7 +1481,7 @@ def employee_type_create(request): return render( request, "base/employee_type/employee_type_form.html", - {"form": form, "employee_types": types}, + {"form": form, "employee_types": types, "dynamic": dynamic}, ) @@ -1511,8 +1518,10 @@ def employee_shift_view(request): """ shifts = EmployeeShift.objects.all() - grace_times = GraceTime.objects.all().exclude(is_default=True) - return render(request, "base/shift/shift.html", {"shifts": shifts,'grace_times':grace_times}) + grace_times = GraceTime.objects.all().exclude(is_default=True) + return render( + request, "base/shift/shift.html", {"shifts": shifts, "grace_times": grace_times} + ) @login_required @@ -1521,7 +1530,7 @@ def employee_shift_create(request): """ This method is used to create employee shift """ - + dynamic = request.GET.get("dynamic") form = EmployeeShiftForm() shifts = EmployeeShift.objects.all() if request.method == "POST": @@ -1534,7 +1543,9 @@ def employee_shift_create(request): ) return HttpResponse("") return render( - request, "base/shift/shift_form.html", {"form": form, "shifts": shifts} + request, + "base/shift/shift_form.html", + {"form": form, "shifts": shifts, "dynamic": dynamic}, ) @@ -3348,11 +3359,11 @@ def validation_condition_view(request): This method view attendance validation conditions. """ condition = AttendanceValidationCondition.objects.first() - default_grace_time = GraceTime.objects.filter(is_default = True).first() + default_grace_time = GraceTime.objects.filter(is_default=True).first() return render( request, "attendance/break_point/condition.html", - {"condition": condition,'default_grace_time':default_grace_time}, + {"condition": condition, "default_grace_time": default_grace_time}, ) @@ -3976,7 +3987,9 @@ def create_shiftrequest_comment(request, shift_id): messages.success(request, _("Comment added successfully!")) if request.user.employee_get.id == shift.employee_id.id: - rec = shift.employee_id.employee_work_info.reporting_manager_id.employee_user_id + rec = ( + shift.employee_id.employee_work_info.reporting_manager_id.employee_user_id + ) notify.send( request.user.employee_get, recipient=rec, @@ -3988,7 +4001,10 @@ def create_shiftrequest_comment(request, shift_id): redirect="/employee/shift-request-view", icon="chatbox-ellipses", ) - elif request.user.employee_get.id == shift.employee_id.employee_work_info.reporting_manager_id.id: + elif ( + request.user.employee_get.id + == shift.employee_id.employee_work_info.reporting_manager_id.id + ): rec = shift.employee_id.employee_user_id notify.send( request.user.employee_get, @@ -4002,7 +4018,10 @@ def create_shiftrequest_comment(request, shift_id): icon="chatbox-ellipses", ) else: - rec = [shift.employee_id.employee_user_id, shift.employee_id.employee_work_info.reporting_manager_id.employee_user_id] + rec = [ + shift.employee_id.employee_user_id, + shift.employee_id.employee_work_info.reporting_manager_id.employee_user_id, + ] notify.send( request.user.employee_get, recipient=rec, @@ -4075,7 +4094,9 @@ def create_worktyperequest_comment(request, worktype_id): messages.success(request, _("Comment added successfully!")) if request.user.employee_get.id == work_type.employee_id.id: - rec = work_type.employee_id.employee_work_info.reporting_manager_id.employee_user_id + rec = ( + work_type.employee_id.employee_work_info.reporting_manager_id.employee_user_id + ) notify.send( request.user.employee_get, recipient=rec, @@ -4087,7 +4108,10 @@ def create_worktyperequest_comment(request, worktype_id): redirect="/employee/work-type-request-view", icon="chatbox-ellipses", ) - elif request.user.employee_get.id == work_type.employee_id.employee_work_info.reporting_manager_id.id: + elif ( + request.user.employee_get.id + == work_type.employee_id.employee_work_info.reporting_manager_id.id + ): rec = work_type.employee_id.employee_user_id notify.send( request.user.employee_get, @@ -4101,7 +4125,10 @@ def create_worktyperequest_comment(request, worktype_id): icon="chatbox-ellipses", ) else: - rec = [work_type.employee_id.employee_user_id, work_type.employee_id.employee_work_info.reporting_manager_id.employee_user_id] + rec = [ + work_type.employee_id.employee_user_id, + work_type.employee_id.employee_work_info.reporting_manager_id.employee_user_id, + ] notify.send( request.user.employee_get, recipient=rec,