diff --git a/asset/templates/asset/dashboard_allocated_assets.html b/asset/templates/asset/dashboard_allocated_assets.html index 555a6b56f..ab3a31dcd 100644 --- a/asset/templates/asset/dashboard_allocated_assets.html +++ b/asset/templates/asset/dashboard_allocated_assets.html @@ -33,9 +33,9 @@ {% else %} -
- Page not found. 404. -
{% trans "There is no asset allocation at this moment." %}
+
+ Page not found. 404. +

{% trans "No Records found." %}

+

{% trans "There is no asset allocation at this moment." %}

{% endif %} diff --git a/asset/templates/asset/dashboard_asset_requests.html b/asset/templates/asset/dashboard_asset_requests.html index ab22a9c01..6e29264d3 100644 --- a/asset/templates/asset/dashboard_asset_requests.html +++ b/asset/templates/asset/dashboard_asset_requests.html @@ -97,9 +97,8 @@
{% else %}
-

- - {% trans "No records available at the moment." %} -

+ Page not found. 404. +

{% trans "No Records found." %}

+

{% trans "No records available at the moment." %}

{% endif %} diff --git a/attendance/models.py b/attendance/models.py index 47b1e16dc..7946cfcca 100644 --- a/attendance/models.py +++ b/attendance/models.py @@ -821,26 +821,34 @@ class Attendance(HorillaModel): super().clean(*args, **kwargs) now = datetime.now().time() today = datetime.today().date() - out_time = self.attendance_clock_out + + # Convert to time if it's a string + if isinstance(self.attendance_clock_out, str): + out_time = datetime.strptime(self.attendance_clock_out, "%H:%M:%S").time() + else: + out_time = self.attendance_clock_out + if self.attendance_clock_in_date < self.attendance_date: raise ValidationError( { - "attendance_clock_in_date": "Attendance check-in date never smaller than attendance date" + "attendance_clock_in_date": "Attendance check-in date cannot be earlier than attendance date" } ) + if ( self.attendance_clock_out_date and self.attendance_clock_out_date < self.attendance_clock_in_date ): raise ValidationError( { - "attendance_clock_out_date": "Attendance check-out date never smaller than attendance check-in date" + "attendance_clock_out_date": "Attendance check-out date cannot be earlier than check-in date" } ) + if self.attendance_clock_out_date and self.attendance_clock_out_date >= today: if out_time > now: raise ValidationError( - {"attendance_clock_out": "Check out time not allow in the future"} + {"attendance_clock_out": "Check-out time cannot be in the future"} ) diff --git a/attendance/templates/attendance/components/in_out_component.html b/attendance/templates/attendance/components/in_out_component.html index c5455d336..293922b7d 100644 --- a/attendance/templates/attendance/components/in_out_component.html +++ b/attendance/templates/attendance/components/in_out_component.html @@ -1,9 +1,8 @@ -{% load horillafilters i18n %} +{% load horillafilters attendancefilters i18n %} {% if request.user.employee_get %} {% with get_forecasted_at_work=request.user.employee_get.get_forecasted_at_work %} {% if request.session.selected_company == "all" or request.user.employee_get.employee_work_info.company_id.id == request.session.selected_company|default:"-1"|add:"0" %} - {% if request|is_check_in_enabled %} {% if request.user|is_clocked_in and get_forecasted_at_work.has_attendance %} diff --git a/attendance/templates/attendance/dashboard/overtime_table.html b/attendance/templates/attendance/dashboard/overtime_table.html index 41f6aee49..457980f35 100644 --- a/attendance/templates/attendance/dashboard/overtime_table.html +++ b/attendance/templates/attendance/dashboard/overtime_table.html @@ -67,12 +67,10 @@ {% else %} -
-
- -

{% trans "No Overtime to Validate...." %}

-
+
+ Page not found. 404. +

{% trans "No Records found." %}

+

{% trans "No overtime records pending validation." %}

{% endif %} {% if overtime_attendances.has_previous or overtime_attendances.has_next %} diff --git a/attendance/templates/attendance/dashboard/to_validate_table.html b/attendance/templates/attendance/dashboard/to_validate_table.html index 1d86eb272..d9deb880a 100644 --- a/attendance/templates/attendance/dashboard/to_validate_table.html +++ b/attendance/templates/attendance/dashboard/to_validate_table.html @@ -86,11 +86,10 @@
{% else %} -
-
- -

{% trans "All Attendance Validated." %}

-
+
+ Page not found. 404. +

{% trans "No Records found." %}

+

{% trans "No pending attendance to validate." %}

{% endif %} {% if validate_attendances.has_previous or validate_attendances.has_next %} diff --git a/attendance/templates/requests/attendance/request_lines.html b/attendance/templates/requests/attendance/request_lines.html index e7d24501a..0553f3610 100644 --- a/attendance/templates/requests/attendance/request_lines.html +++ b/attendance/templates/requests/attendance/request_lines.html @@ -305,7 +305,9 @@ hx-target='#view-container' hx-get="{% url 'search-attendance-requests' %}?{{pd}}&sortby=attendance_overtime"> {% trans "Overtime" %}
-
{% trans "Actions" %}
+ {% if perms.attendance.change_attendance %} +
{% trans "Actions" %}
+ {% endif %} {% for attendance in attendances %} @@ -357,6 +359,7 @@
{{attendance.attendance_overtime}}
+ {% if perms.attendance.change_attendance %}
+ {% endif %} {% endfor %} diff --git a/base/backends.py b/base/backends.py index bada9f045..ca5f043e1 100644 --- a/base/backends.py +++ b/base/backends.py @@ -245,7 +245,9 @@ def new_init( if request and request.user and request.user.is_authenticated: user_id = request.user.pk reply_to = cache.get(f"reply_to{user_id}") if not reply_to else reply_to - from_email = cache.get(f"dynamic_display_name{user_id}") + + if not from_email: + from_email = cache.get(f"dynamic_display_name{user_id}") message_init( self, diff --git a/base/context_processors.py b/base/context_processors.py index 0e874abfb..ae4940f17 100644 --- a/base/context_processors.py +++ b/base/context_processors.py @@ -85,6 +85,10 @@ def update_selected_company(request): This method is used to update the selected company on the session """ company_id = request.GET.get("company_id") + user = request.user.employee_get + user_company = getattr( + getattr(user, "employee_work_info", None), "company_id", None + ) request.session["selected_company"] = company_id company = ( AllCompany() @@ -103,21 +107,13 @@ def update_selected_company(request): if re.match(pattern, previous_path): employee_id = get_last_section(previous_path) employee = Employee.objects.filter(id=employee_id).first() - - if ( - not EmployeeWorkInformation.objects.filter( - employee_id=employee_id - ).exists() - or employee.employee_work_info.company_id != company - ): + emp_company = getattr( + getattr(employee, "employee_work_info", None), "company_id", None + ) + if emp_company != company: text = "Other Company" - if ( - company_id - == request.user.employee_get.employee_work_info.company_id - ): + if company_id == user_company: text = "My Company" - if company_id == "all": - text = "All companies" company = { "company": company.company, "icon": company.icon.url, @@ -134,11 +130,13 @@ def update_selected_company(request): """ ) - text = "Other Company" - if company_id == request.user.employee_get.employee_work_info.company_id: - text = "My Company" if company_id == "all": text = "All companies" + elif company_id == user_company: + text = "My Company" + else: + text = "Other Company" + company = { "company": company.company, "icon": company.icon.url, diff --git a/base/methods.py b/base/methods.py index d00639b60..8c3aca929 100644 --- a/base/methods.py +++ b/base/methods.py @@ -1008,3 +1008,12 @@ def template_pdf(template, context={}, html=False, filename="payslip.pdf"): return response except Exception as e: return HttpResponse(f"Error generating PDF: {str(e)}", status=500) + + +def generate_otp(): + """ + Function to generate a random 6-digit OTP (One-Time Password). + Returns: + str: A 6-digit random OTP as a string. + """ + return str(random.randint(100000, 999999)) diff --git a/base/middleware.py b/base/middleware.py index 63011ecf5..e29130d94 100644 --- a/base/middleware.py +++ b/base/middleware.py @@ -3,10 +3,12 @@ middleware.py """ from django.apps import apps +from django.contrib import messages from django.core.cache import cache from django.db.models import Q from django.shortcuts import redirect +from base.backends import ConfiguredEmailBackend from base.context_processors import AllCompany from base.horilla_company_manager import HorillaCompanyManager from base.models import Company, ShiftRequest, WorkTypeRequest @@ -16,6 +18,7 @@ from employee.models import ( EmployeeBankDetails, EmployeeWorkInformation, ) +from horilla.horilla_apps import TWO_FACTORS_AUTHENTICATION from horilla.horilla_settings import APPS from horilla.methods import get_horilla_model_class from horilla_documents.models import DocumentRequest @@ -55,12 +58,23 @@ class CompanyMiddleware: """ Set the company session data based on the company ID. """ + user = request.user.employee_get + user_company_id = getattr( + getattr(user, "employee_work_info", None), "company_id", None + ) if company_id and request.session.get("selected_company") != "all": + if company_id == "all": + text = "All companies" + elif company_id == user_company_id: + text = "My Company" + else: + text = "Other Company" + request.session["selected_company"] = str(company_id.id) request.session["selected_company_instance"] = { "company": company_id.company, "icon": company_id.icon.url, - "text": "My company", + "text": text, "id": company_id.id, } else: @@ -189,3 +203,37 @@ class ForcePasswordChangeMiddleware: return redirect("change-password") return self.get_response(request) + + +class TwoFactorAuthMiddleware: + """ + Middleware to enforce two-factor authentication for specific users. + """ + + def __init__(self, get_response): + self.get_response = get_response + + def __call__(self, request): + excluded_paths = [ + "/change-password", + "/login", + "/logout", + "/two-factor", + "/send-otp", + ] + + if request.path.rstrip("/") in excluded_paths: + return self.get_response(request) + + if TWO_FACTORS_AUTHENTICATION: + try: + if ConfiguredEmailBackend().configuration is not None: + if hasattr(request, "user") and request.user.is_authenticated: + if not request.session.get("otp_code_verified", False): + return redirect("/two-factor") + else: + return self.get_response(request) + except Exception as e: + return self.get_response(request) + + return self.get_response(request) diff --git a/base/templates/announcement/announcement_one.html b/base/templates/announcement/announcement_one.html index 6d328eaa6..e0a97b2ad 100644 --- a/base/templates/announcement/announcement_one.html +++ b/base/templates/announcement/announcement_one.html @@ -148,12 +148,9 @@ {% else %}
-

- Page not found. 404. - {% trans "No Announcements to show." %} -

+ Page not found. 404. +

{% trans "No Records found." %}

+

{% trans "There are no announcements at the moment." %}

{% endif %} diff --git a/base/templates/announcement/announcements_list.html b/base/templates/announcement/announcements_list.html index b60488811..da198231e 100644 --- a/base/templates/announcement/announcements_list.html +++ b/base/templates/announcement/announcements_list.html @@ -1,18 +1,15 @@ {% load static %} {% load i18n %} -
-
-
- {% if not announcements %} -
-
- Page not found. 404. -
{% trans "No Announcements to show." %}
-
-
- {% else %} +{% if not announcements %} +
+ Page not found. 404. +

{% trans "No Records found." %}

+

{% trans "There are no announcements at the moment." %}

+
+{% else %} +
+
+
{% for announcement in announcements %}
@@ -30,7 +27,7 @@ {% if announcement.created_at|date:"Y-m-d" == current_date and request.user not in announcement.viewed_by %} + font-size: 0.7rem; padding: 3px 8px; border-radius: 15px; font-weight: 800; width:auto;"> {% trans "NEW" %} {% endif %} @@ -38,7 +35,7 @@
{% endfor %} - {% endif %} +
-
+{% endif %} diff --git a/base/templates/base/auth/two_factor_auth.html b/base/templates/base/auth/two_factor_auth.html new file mode 100644 index 000000000..0aca6471b --- /dev/null +++ b/base/templates/base/auth/two_factor_auth.html @@ -0,0 +1,187 @@ +{% load static %} {% load i18n %} + + + + + + + Login - {{white_label_company_name}} Dashboard + + + + + + + + +
+
+ {% for message in messages %} +
+ {{ message }} +
+ {% endfor %} +
+
+
+
+ {{white_label_company_name}} HRMS +
+

+ {% trans "Two Factor Authentication" %} +

+

+ {% trans "Enter the OTP send to your email: " %} + {{request.user.employee_get.get_mail}}. +

+
+ {% if request.session.otp_code %} +
+ {% csrf_token %} +
+
+
+ +
+ + +
+
+
+
+ +
+ {% else %} +
+ {% csrf_token %} + +
+ {% endif %} +
+
+ Horilla +
+
+ + + + + + + + + + diff --git a/base/templates/request_and_approve/shift_request.html b/base/templates/request_and_approve/shift_request.html index b94cb0198..d5bf42470 100644 --- a/base/templates/request_and_approve/shift_request.html +++ b/base/templates/request_and_approve/shift_request.html @@ -64,12 +64,11 @@
{% else %} -
-

- - {% trans "No records available at the moment." %} -

-
+
+ Page not found. 404. +

{% trans "No Records found." %}

+

{% trans "No records available at the moment." %}

+
{% endif %} {% if requests.has_next or requests.has_previous %}
diff --git a/base/templates/request_and_approve/work_type_request.html b/base/templates/request_and_approve/work_type_request.html index 70df6131f..84c4b35bb 100644 --- a/base/templates/request_and_approve/work_type_request.html +++ b/base/templates/request_and_approve/work_type_request.html @@ -63,12 +63,11 @@
{% else %} -
-

- - {% trans "No records available at the moment." %} -

-
+
+ Page not found. 404. +

{% trans "No Records found." %}

+

{% trans "No records available at the moment." %}

+
{% endif %} {% if requests.has_next or requests.has_previous %}
diff --git a/base/translator.py b/base/translator.py index 44398e802..be798f659 100644 --- a/base/translator.py +++ b/base/translator.py @@ -354,3 +354,15 @@ _("project-view"), _("task-view"), _("task-all"), _("view-time-sheet"), +_("backup"), +_("gdrive"), +_("horilla-theme"), +_("color-settings"), +_("report"), +_("recruitment-report"), +_("employee-report"), +_("attendance-report"), +_("leave-report"), +_("payroll-report"), +_("asset-report"), +_("pms-report"), diff --git a/base/urls.py b/base/urls.py index c1024f509..86663ab47 100644 --- a/base/urls.py +++ b/base/urls.py @@ -1,5 +1,5 @@ from django.contrib.auth.models import Group -from django.urls import path +from django.urls import path, re_path from django.utils.translation import gettext_lazy as _ from base import announcement, request_and_approve, views @@ -210,6 +210,8 @@ urlpatterns = [ path("reset-send-success", views.reset_send_success, name="reset-send-success"), path("change-password", views.change_password, name="change-password"), path("change-username", views.change_username, name="change-username"), + path("two-factor", views.two_factor_auth, name="two-factor"), + path("send-otp", views.send_otp, name="send-otp"), path("logout", views.logout_user, name="logout"), path("settings", views.common_settings, name="settings"), path( @@ -1682,3 +1684,7 @@ urlpatterns = [ name="delete-penalties", ), ] + +urlpatterns.append( + re_path(r"^media/(?P.*)$", views.protected_media, name="protected_media"), +) diff --git a/base/views.py b/base/views.py index 43f3daaa0..2fbe4ddee 100644 --- a/base/views.py +++ b/base/views.py @@ -7,6 +7,8 @@ This module is used to map url pattens with django views or methods import csv import json import os +import random +import threading import uuid from datetime import datetime, timedelta from email.mime.image import MIMEImage @@ -24,11 +26,17 @@ from django.contrib.auth.models import Group, Permission, User from django.contrib.auth.views import PasswordResetConfirmView, PasswordResetView from django.core.exceptions import ValidationError from django.core.files.base import ContentFile -from django.core.mail import EmailMultiAlternatives +from django.core.mail import EmailMessage, EmailMultiAlternatives, send_mail from django.core.management import call_command from django.core.validators import validate_ipv46_address from django.db.models import ProtectedError, Q -from django.http import Http404, HttpResponse, HttpResponseRedirect, JsonResponse +from django.http import ( + FileResponse, + Http404, + HttpResponse, + HttpResponseRedirect, + JsonResponse, +) from django.shortcuts import get_object_or_404, redirect, render from django.template.loader import render_to_string from django.urls import reverse, reverse_lazy @@ -114,6 +122,7 @@ from base.methods import ( filtersubordinatesemployeemodel, format_date, generate_colors, + generate_otp, get_key_instances, is_reportingmanager, paginator_qry, @@ -598,13 +607,14 @@ def login_user(request): return redirect("login") login(request, user) + messages.success(request, _("Login successful.")) # Ensure `next_url` is a safe local URL if not url_has_allowed_host_and_scheme( next_url, allowed_hosts={request.get_host()} ): - next_url = "/dashboard" + next_url = "/" if params: next_url += f"?{params}" @@ -797,6 +807,95 @@ def change_username(request): return render(request, "base/auth/username_change.html", {"form": form}) +def two_factor_auth(request): + """ + function to handle two-factor authentication for users. + """ + # request.session["otp_code"] = None + try: + otp = get_otp(request) + except: + otp = None + + if request.method == "POST": + user_otp = request.POST.get("otp") + if user_otp == otp: + request.session["otp_code"] = None + request.session["otp_code_timestamp"] = None + request.session["otp_code_verified"] = True + request.session.save() + messages.success(request, "OTP verified successfully.") + return redirect("/") + elif otp is None: + messages.error(request, "OTP expired. Please request a new one.") + return render(request, "base/auth/two_factor_auth.html") + else: + messages.error(request, "Invalid OTP.") + return render(request, "base/auth/two_factor_auth.html") + + if not horilla_apps.TWO_FACTORS_AUTHENTICATION: + return redirect("/") + + if otp is None: + send_otp(request) + return render(request, "base/auth/two_factor_auth.html") + + +def send_otp(request): + """ + Function to send OTP to the user's email address. + It generates a new OTP code, stores it in the session, and sends it via email. + """ + employee = request.user.employee_get + email = employee.get_mail() + + email_backend = ConfiguredEmailBackend() + display_email_name = email_backend.dynamic_from_email_with_display_name + + otp_code = set_otp(request) + email = EmailMessage( + subject="Your OTP Code", + body=f"Your OTP code is {otp_code}", + from_email=display_email_name, + to=[email], + ) + thread = threading.Thread(target=email.send) + thread.start() + + return redirect("two-factor") + + +def set_otp(request): + """ + Function to set the OTP code in the session. + Generates a new OTP code, stores it in the session, and sets a timestamp for expiration. + """ + + otp_code = generate_otp() + request.session["otp_code"] = otp_code + request.session["otp_code_timestamp"] = timezone.now().timestamp() + request.session["otp_code_verified"] = False + request.session.save() + return otp_code + + +def get_otp(request): + """ + Function to retrieve the OTP code from the session. + Checks if the OTP code has expired (10 minutes) and clears it if so. + """ + created_at = request.session.get("otp_code_timestamp", 0) + current_time = timezone.now().timestamp() + + if current_time - created_at > 600: + request.session["otp_code"] = None + request.session["otp_code_timestamp"] = None + request.session.save() + return None + else: + return request.session.get("otp_code") + + def logout_user(request): """ This method used to logout the user @@ -7531,6 +7630,8 @@ def view_penalties(request): return render(request, "penalty/penalty_view.html", {"records": records}) +@login_required +@permission_required("base.delete_penaltyaccounts") def delete_penalities(request, penalty_id): penalty = PenaltyAccounts.objects.get(id=penalty_id) penalty.delete() @@ -7538,3 +7639,34 @@ def delete_penalities(request, penalty_id): return HttpResponse( "" ) + + +def protected_media(request, path): + page_urls = [ + "/login", + "/forgot-password", + "/change-username", + "/change-password", + "/employee-reset-password", + "/recruitment/candidate-survey", + "/recruitment/open-recruitments", + "/recruitment/candidate-self-status-tracking", + ] + + exempted_folders = ["base/icon/"] + + media_path = os.path.join(settings.MEDIA_ROOT, path) + if not os.path.exists(media_path): + raise Http404("File not found") + + referer = urlparse(request.META.get("HTTP_REFERER", "")) + referer_path = referer.path + + if referer_path not in page_urls and not any( + path.startswith(folder) for folder in exempted_folders + ): + if not request.user.is_authenticated: + messages.error(request, "You must be logged in to access this file.") + return redirect("login") + + return FileResponse(open(media_path, "rb")) diff --git a/employee/cbv/document_request.py b/employee/cbv/document_request.py index 7007e70d6..82e8c6f42 100644 --- a/employee/cbv/document_request.py +++ b/employee/cbv/document_request.py @@ -17,7 +17,7 @@ from employee.models import Employee from horilla.decorators import manager_can_enter from horilla_documents.forms import ( DocumentForm, - DocumentRejectForm, + DocumentRejectCbvForm, DocumentRequestForm, DocumentUpdateForm, ) @@ -111,13 +111,13 @@ class DocumentCreateForm(HorillaFormView): @method_decorator(login_required, name="dispatch") @method_decorator(manager_can_enter("horilla_documents.add_document"), name="dispatch") -class DocumentRejectform(HorillaFormView): +class DocumentRejectCbvForm(HorillaFormView): """ form view for rejecting document on document request and employee individual view """ model = Document - form_class = DocumentRejectForm + form_class = DocumentRejectCbvForm hx_confirm = _("Do you want to reject this request") def get_context_data(self, **kwargs): @@ -126,7 +126,7 @@ class DocumentRejectform(HorillaFormView): self.form_class.verbose_name = _("Reject") return context - def form_valid(self, form: DocumentRejectForm) -> HttpResponse: + def form_valid(self, form: DocumentRejectCbvForm) -> HttpResponse: if form.is_valid(): pk = self.form.instance.pk document_obj = get_object_or_404(Document, id=pk) diff --git a/employee/cbv/employees.py b/employee/cbv/employees.py index 45e0f0294..d2908cd0f 100644 --- a/employee/cbv/employees.py +++ b/employee/cbv/employees.py @@ -14,7 +14,7 @@ from accessibility.cbv_decorators import enter_if_accessible from base.methods import is_reportingmanager from employee.filters import EmployeeFilter from employee.forms import BulkUpdateFieldForm, EmployeeExportExcelForm -from employee.models import Employee +from employee.models import Employee, EmployeeBankDetails, EmployeeWorkInformation from employee.views import _check_reporting_manager from horilla.signals import post_generic_delete from horilla_views.cbv_methods import login_required @@ -51,6 +51,9 @@ class EmployeesView(TemplateView): return context +from base import models as base_models + + @method_decorator(login_required, name="dispatch") @method_decorator( enter_if_accessible( @@ -90,6 +93,112 @@ class EmployeesList(HorillaListView): "employee_work_info__company_id", ] + import_fields = [ + "badge_id", + "employee_first_name", + "employee_last_name", + "employee_user_id__username", + "employee_user_id__password", + "email", + "phone", + "address", + "country", + "state", + "city", + "zip", + "dob", + "gender", + "qualification", + "experience", + "marital_status", + "children", + "emergency_contact", + "emergency_contact_name", + "emergency_contact_relation", + "is_active", + "employee_work_info__department_id", + "employee_work_info__job_position_id", + "employee_work_info__job_role_id", + "employee_work_info__reporting_manager_id", + "employee_work_info__shift_id", + "employee_work_info__work_type_id", + "employee_work_info__employee_type_id", + "employee_work_info__location", + "employee_work_info__company_id", + "employee_work_info__email", + "employee_work_info__mobile", + "employee_work_info__date_joining", + "employee_work_info__contract_end_date", + "employee_work_info__basic_salary", + "employee_work_info__salary_hour", + "employee_bank_details__bank_name", + "employee_bank_details__account_number", + "employee_bank_details__branch", + "employee_bank_details__address", + "employee_bank_details__country", + "employee_bank_details__state", + "employee_bank_details__city", + "employee_bank_details__any_other_code1", + "employee_bank_details__any_other_code2", + ] + import_file_name = "Employee Import" + update_reference = "id" + + import_help = { + "Id | Reference": ["Dont Alter this column"], + "Gender": ["male", "female", "other"], + "Marital Status": ["single", "married", "divorced"], + "Date Formats": ["yyyy-mm-dd"], + } + + import_related_model_column_mapping = { + "employee_user_id": base_models.User, + "employee_work_info": EmployeeWorkInformation, + "employee_bank_details": EmployeeBankDetails, + "employee_work_info__reporting_manager_id": Employee, + "employee_work_info__department_id": base_models.Department, + "employee_work_info__job_position_id": base_models.JobPosition, + "employee_work_info__job_role_id": base_models.JobRole, + "employee_work_info__shift_id": base_models.EmployeeShift, + "employee_work_info__work_type_id": base_models.WorkType, + "employee_work_info__employee_type_id": base_models.EmployeeType, + "employee_work_info__company_id": base_models.Company, + } + import_related_column_export_mapping = { + "employee_work_info__reporting_manager_id": "employee_work_info__reporting_manager_id__badge_id", + "employee_work_info__department_id": "employee_work_info__department_id__department", + "employee_work_info__job_position_id": "employee_work_info__job_position_id__job_position", + "employee_work_info__job_role_id": "employee_work_info__job_role_id__job_role", + "employee_work_info__shift_id": "employee_work_info__shift_id__employee_shift", + "employee_work_info__work_type_id": "employee_work_info__work_type_id__work_type", + "employee_work_info__employee_type_id": "employee_work_info__employee_type_id__employee_type", + "employee_work_info__company_id": "employee_work_info__company_id__company", + } + + primary_key_mapping = { + "employee_user_id": "username", + "employee_work_info__reporting_manager_id": "badge_id", + "employee_work_info__department_id": "department", + "employee_work_info__job_position_id": "job_position", + "employee_work_info__job_role_id": "job_role", + "employee_work_info__shift_id": "employee_shift", + "employee_work_info__work_type_id": "work_type", + "employee_work_info__employee_type_id": "employee_type", + "employee_work_info__company_id": "company", + } + + reverse_model_relation_to_base_model = { + "employee_work_info": "employee_id", + "employee_bank_details": "employee_id", + } + + # fk_o2o_field_in_base_model = ["employee_user_id", "test"] + fk_o2o_field_in_base_model = ["employee_user_id"] + # Excel column value mapping to the table, one to one relation + fk_mapping = { + # "test": "department", + } + def get_bulk_form(self): """ Bulk from generating method diff --git a/employee/methods/methods.py b/employee/methods/methods.py index 3ad08dc62..e5b0e0213 100644 --- a/employee/methods/methods.py +++ b/employee/methods/methods.py @@ -6,12 +6,12 @@ import logging import re import threading from datetime import date, datetime -from itertools import groupby +from itertools import chain, groupby import pandas as pd from django.apps import apps from django.contrib.auth.models import User -from django.db import models +from django.db import connection, models, transaction from django.utils.translation import gettext as _ from base.context_processors import get_initial_prefix @@ -28,6 +28,8 @@ from employee.models import Employee, EmployeeWorkInformation logger = logging.getLogger(__name__) +is_postgres = connection.vendor == "postgresql" + error_data_template = { field: [] for field in [ @@ -66,6 +68,11 @@ error_data_template = { } +def chunked(iterable, size): + for i in range(0, len(iterable), size): + yield iterable[i : i + size] + + def normalize_phone(phone): phone = str(phone).strip() if phone.startswith("+"): @@ -244,26 +251,34 @@ def valid_import_file_headers(data_frame): def process_employee_records(data_frame): - created_count = 0 - success_list, error_list = [], [] - employee_dicts = data_frame.to_dict("records") + email_regex = re.compile(r"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$") phone_regex = re.compile(r"^\+?\d{10,15}$") - allowed_genders = {choice[0] for choice in Employee.choice_gender} - - existing_badge_ids = set(Employee.objects.values_list("badge_id", flat=True)) - existing_usernames = set(User.objects.values_list("username", flat=True)) - existing_name_emails = set( - Employee.objects.values_list( + allowed_genders = frozenset(choice[0] for choice in Employee.choice_gender) + existing_badge_ids = frozenset(Employee.objects.values_list("badge_id", flat=True)) + existing_usernames = frozenset(User.objects.values_list("username", flat=True)) + existing_name_emails = frozenset( + (fname, lname, email) + for fname, lname, email in Employee.objects.values_list( "employee_first_name", "employee_last_name", "email" ) ) - existing_companies = set(Company.objects.values_list("company", flat=True)) + existing_companies = frozenset(Company.objects.values_list("company", flat=True)) + success_list, error_list = [], [] + employee_dicts = data_frame.to_dict("records") + + created_count = 0 + seen_badge_ids = set(existing_badge_ids) + seen_usernames = set(existing_usernames) + seen_name_emails = set(existing_name_emails) + + today = date.today() for emp in employee_dicts: - errors, save = {}, True + errors = {} + save = True - email = str(emp.get("Email", "")).strip() + email = str(emp.get("Email", "")).strip().lower() raw_phone = emp.get("Phone", "") phone = normalize_phone(raw_phone) badge_id = clean_badge_id(emp.get("Badge ID")) @@ -274,14 +289,14 @@ def process_employee_records(data_frame): basic_salary = convert_nan("Basic Salary", emp) salary_hour = convert_nan("Salary Hour", emp) + # Date validation joining_date = import_valid_date( emp.get("Date Joining"), "Joining Date", errors, "Joining Date Error" ) - if "Joining Date Error" in errors: - save = False - if joining_date and joining_date > date.today(): - errors["Joining Date Error"] = "Joining date cannot be in the future." - save = False + if joining_date: + if joining_date > today: + errors["Joining Date Error"] = "Joining date cannot be in the future." + save = False contract_end_date = import_valid_date( emp.get("Contract End Date"), @@ -289,58 +304,64 @@ def process_employee_records(data_frame): errors, "Contract Date Error", ) - if "Contract Error" in errors: - save = False if contract_end_date and joining_date and contract_end_date < joining_date: errors["Contract Date Error"] = ( "Contract end date cannot be before joining date." ) save = False + # Email validation if not email or not email_regex.match(email): errors["Email Error"] = "Invalid email address." save = False + # Name validation if not first_name: errors["First Name Error"] = "First name cannot be empty." save = False + # Phone validation if not phone_regex.match(phone): errors["Phone Error"] = "Invalid phone number format." save = False - if badge_id in existing_badge_ids: + # Badge ID validation + if badge_id in seen_badge_ids: errors["Badge ID Error"] = "An employee with this badge ID already exists." save = False else: - emp["Badge ID"] = badge_id - existing_badge_ids.add(badge_id) + seen_badge_ids.add(badge_id) - if email in existing_usernames: + # Username/email uniqueness + if email in seen_usernames: errors["User ID Error"] = "User with this email already exists." save = False else: - existing_usernames.add(email) + seen_usernames.add(email) + # Name+email uniqueness name_email_tuple = (first_name, last_name, email) - if name_email_tuple in existing_name_emails: + if name_email_tuple in seen_name_emails: errors["Name and Email Error"] = ( "This employee already exists in the system." ) save = False else: - existing_name_emails.add(name_email_tuple) + seen_name_emails.add(name_email_tuple) + # Gender validation if gender and gender not in allowed_genders: errors["Gender Error"] = ( f"Invalid gender. Allowed values: {', '.join(allowed_genders)}." ) save = False + # Company validation if company and company not in existing_companies: errors["Company Error"] = f"Company '{company}' does not exist." save = False + # Salary validation if basic_salary not in [None, ""]: try: basic_salary_val = float(basic_salary) @@ -361,6 +382,7 @@ def process_employee_records(data_frame): ) save = False + # Final processing if save: emp["Phone"] = phone emp["Date Joining"] = joining_date @@ -376,73 +398,87 @@ def process_employee_records(data_frame): def bulk_create_user_import(success_lists): """ - Bulk creation of user instances based on the excel import of employees + Creates new User instances in bulk from a list of dictionaries containing user data. + + Returns: + list: A list of created User instances. If no new users are created, returns an empty list. """ - user_obj_list = [] - existing_usernames = { - user.username - for user in User.objects.filter( - username__in=[row["Email"] for row in success_lists] + emails = [row["Email"] for row in success_lists] + existing_usernames = ( + set(User.objects.filter(username__in=emails).values_list("username", flat=True)) + if is_postgres + else set( + chain.from_iterable( + User.objects.filter(username__in=chunk).values_list( + "username", flat=True + ) + for chunk in chunked(emails, 999) + ) ) - } + ) - for work_info in success_lists: - email = work_info["Email"] - if email in existing_usernames: - continue - - phone = work_info["Phone"] - user_obj = User( - username=email, - email=email, - password=str(phone).strip(), + users_to_create = [ + User( + username=row["Email"], + email=row["Email"], + password=str(row["Phone"]).strip(), is_superuser=False, ) - user_obj_list.append(user_obj) - result = [] - if user_obj_list: - result = User.objects.bulk_create(user_obj_list) - return result + for row in success_lists + if row["Email"] not in existing_usernames + ] + + created_users = [] + if users_to_create: + with transaction.atomic(): + created_users = User.objects.bulk_create( + users_to_create, batch_size=None if is_postgres else 999 + ) + return created_users def bulk_create_employee_import(success_lists): """ - Bulk creation of employee instances based on the excel import of employees + Creates Employee instances in bulk based on imported data. + Uses adaptive chunking for compatibility with SQLite, avoids chunking in PostgreSQL. """ - employee_obj_list = [] + emails = [row["Email"] for row in success_lists] + is_postgres = connection.vendor == "postgresql" + existing_users = { user.username: user - for user in User.objects.filter( - username__in=[row["Email"] for row in success_lists] + for user in ( + User.objects.filter(username__in=emails).only("id", "username") + if is_postgres + else chain.from_iterable( + User.objects.filter(username__in=chunk).only("id", "username") + for chunk in chunked(emails, 999) + ) ) } - for work_info in success_lists: - email = work_info["Email"] - user = existing_users.get(email) - if not user: - continue - - badge_id = work_info["Badge ID"] - first_name = convert_nan("First Name", work_info) - last_name = convert_nan("Last Name", work_info) - phone = work_info["Phone"] - gender = work_info.get("Gender", "").lower() - employee_obj = Employee( - employee_user_id=user, - badge_id=badge_id, - employee_first_name=first_name, - employee_last_name=last_name, - email=email, - phone=phone, - gender=gender, + employees_to_create = [ + Employee( + employee_user_id=existing_users[row["Email"]], + badge_id=row["Badge ID"], + employee_first_name=convert_nan("First Name", row), + employee_last_name=convert_nan("Last Name", row), + email=row["Email"], + phone=row["Phone"], + gender=row.get("Gender", "").lower(), ) - employee_obj_list.append(employee_obj) - result = [] - if employee_obj_list: - result = Employee.objects.bulk_create(employee_obj_list) + for row in success_lists + if row["Email"] in existing_users + ] - return result + created_employees = [] + if employees_to_create: + with transaction.atomic(): + created_employees = Employee.objects.bulk_create( + employees_to_create, batch_size=None if is_postgres else 999 + ) + + return created_employees def set_initial_password(employees): @@ -483,162 +519,191 @@ def bulk_create_department_import(success_lists): Bulk creation of department instances based on the excel import of employees """ departments_to_import = { - convert_nan("Department", work_info) for work_info in success_lists + dept + for work_info in success_lists + if (dept := convert_nan("Department", work_info)) } - existing_departments = {dep.department for dep in Department.objects.all()} - department_obj_list = [] - for department in departments_to_import: - if department and department not in existing_departments: - department_obj = Department(department=department) - department_obj_list.append(department_obj) - existing_departments.add(department) + existing_departments = set(Department.objects.values_list("department", flat=True)) - if department_obj_list: - Department.objects.bulk_create(department_obj_list) + new_departments = [ + Department(department=dept) + for dept in departments_to_import - existing_departments + ] + + if new_departments: + with transaction.atomic(): + Department.objects.bulk_create( + new_departments, batch_size=None if is_postgres else 999 + ) def bulk_create_job_position_import(success_lists): """ - Bulk creation of job position instances based on the excel import of employees + Optimized: Bulk creation of job position instances based on the Excel import of employees. """ + + # Step 1: Extract unique (job_position, department_name) pairs job_positions_to_import = { - (convert_nan("Job Position", work_info), convert_nan("Department", work_info)) - for work_info in success_lists + (convert_nan("Job Position", item), convert_nan("Department", item)) + for item in success_lists + if convert_nan("Job Position", item) and convert_nan("Department", item) } - departments = {dep.department: dep for dep in Department.objects.all()} - existing_job_positions = { - (job_position.job_position, job_position.department_id): job_position - for job_position in JobPosition.objects.all() - } - job_position_obj_list = [] - for job_position, department_name in job_positions_to_import: - if not job_position or not department_name: - continue - department_obj = departments.get(department_name) - if not department_obj: - continue + if not job_positions_to_import: + return # No valid data to import - # Check if this job position already exists for this department - if (job_position, department_obj.id) not in existing_job_positions: - job_position_obj = JobPosition( - department_id=department_obj, job_position=job_position + # Step 2: Fetch all departments at once and build a name -> object map + department_objs = Department.objects.only("id", "department") + department_lookup = {dep.department: dep for dep in department_objs} + + # Step 3: Filter out entries with unknown departments + valid_pairs = [ + (jp, department_lookup[dept]) + for jp, dept in job_positions_to_import + if dept in department_lookup + ] + + if not valid_pairs: + return # No valid (job_position, department_id) pairs to process + + # Step 4: Fetch existing job positions + existing_pairs = set( + JobPosition.objects.filter( + department_id__in={dept_id for _, dept_id in valid_pairs} + ).values_list("job_position", "department_id") + ) + + # Step 5: Create list of new JobPosition instances + new_positions = [ + JobPosition(job_position=jp, department_id=dept_id) + for jp, dept_id in valid_pairs + if (jp, dept_id) not in existing_pairs + ] + + # Step 6: Bulk create in a transaction + if new_positions: + with transaction.atomic(): + JobPosition.objects.bulk_create( + new_positions, batch_size=None if is_postgres else 999 ) - job_position_obj_list.append(job_position_obj) - existing_job_positions[(job_position, department_obj.id)] = job_position_obj - - if job_position_obj_list: - JobPosition.objects.bulk_create(job_position_obj_list) def bulk_create_job_role_import(success_lists): """ Bulk creation of job role instances based on the excel import of employees """ - # Collect job role names and their associated job positions into a set as tubles + # Extract unique (job_role, job_position) pairs, filtering out empty values job_roles_to_import = { - (convert_nan("Job Role", work_info), convert_nan("Job Position", work_info)) + (role, pos) for work_info in success_lists + if (role := convert_nan("Job Role", work_info)) + and (pos := convert_nan("Job Position", work_info)) } - job_positions = {jp.job_position: jp for jp in JobPosition.objects.all()} - existing_job_roles = { - (jr.job_role, jr.job_position_id): jr for jr in JobRole.objects.all() - } + # Prefetch existing data efficiently + job_positions = JobPosition.objects.only("id", "job_position") + existing_job_roles = set(JobRole.objects.values_list("job_role", "job_position_id")) - job_role_obj_list = [] + # Create new job roles + new_job_roles = [ + JobRole(job_role=role, job_position_id=job_positions[pos].id) + for role, pos in job_roles_to_import + if pos in job_positions + and (role, job_positions[pos].id) not in existing_job_roles + ] - for job_role, job_position_name in job_roles_to_import: - - if not job_role or not job_position_name: - continue - - job_position_obj = job_positions.get(job_position_name) - if not job_position_obj: - continue - - if (job_role, job_position_obj.id) not in existing_job_roles: - job_role_obj = JobRole(job_position_id=job_position_obj, job_role=job_role) - job_role_obj_list.append(job_role_obj) - existing_job_roles[(job_role, job_position_obj.id)] = job_role_obj - - if job_role_obj_list: - JobRole.objects.bulk_create(job_role_obj_list) + # Bulk create if there are new roles + if new_job_roles: + with transaction.atomic(): + JobRole.objects.bulk_create( + new_job_roles, batch_size=None if is_postgres else 999 + ) def bulk_create_work_types(success_lists): """ Bulk creation of work type instances based on the excel import of employees """ - # Collect unique work types + # Extract unique work types, filtering out None values work_types_to_import = { - convert_nan("Work Type", work_info) for work_info in success_lists + wt for work_info in success_lists if (wt := convert_nan("Work Type", work_info)) } - work_types_to_import.discard(None) - # Fetch existing work types - existing_work_types = {wt.work_type: wt for wt in WorkType.objects.all()} + # Get existing work types in one optimized query + existing_work_types = set(WorkType.objects.values_list("work_type", flat=True)) - # Prepare list for new WorkType objects - work_type_obj_list = [ - WorkType(work_type=work_type) - for work_type in work_types_to_import - if work_type not in existing_work_types + # Create new work type objects + new_work_types = [ + WorkType(work_type=wt) for wt in work_types_to_import - existing_work_types ] - # Bulk create new work types - if work_type_obj_list: - WorkType.objects.bulk_create(work_type_obj_list) + + # Bulk create if there are new work types + if new_work_types: + with transaction.atomic(): + WorkType.objects.bulk_create( + new_work_types, batch_size=None if is_postgres else 999 + ) def bulk_create_shifts(success_lists): """ Bulk creation of shift instances based on the excel import of employees """ - # Collect unique shifts - shifts_to_import = {convert_nan("Shift", work_info) for work_info in success_lists} - shifts_to_import.discard(None) - - # Fetch existing shifts - existing_shifts = { - shift.employee_shift: shift for shift in EmployeeShift.objects.all() + # Extract unique shifts, filtering out None values + shifts_to_import = { + shift + for work_info in success_lists + if (shift := convert_nan("Shift", work_info)) } - # Prepare list for new EmployeeShift objects - shift_obj_list = [ + # Get existing shifts in one optimized query + existing_shifts = set( + EmployeeShift.objects.values_list("employee_shift", flat=True) + ) + + # Create new shift objects + new_shifts = [ EmployeeShift(employee_shift=shift) - for shift in shifts_to_import - if shift not in existing_shifts + for shift in shifts_to_import - existing_shifts ] - # Bulk create new shifts - if shift_obj_list: - EmployeeShift.objects.bulk_create(shift_obj_list) + + # Bulk create if there are new shifts + if new_shifts: + with transaction.atomic(): + EmployeeShift.objects.bulk_create( + new_shifts, batch_size=None if is_postgres else 999 + ) def bulk_create_employee_types(success_lists): """ Bulk creation of employee type instances based on the excel import of employees """ - # Collect unique employee types + # Extract unique employee types, filtering out None values employee_types_to_import = { - convert_nan("Employee Type", work_info) for work_info in success_lists - } - employee_types_to_import.discard(None) - - # Fetch existing employee types - existing_employee_types = { - et.employee_type: et for et in EmployeeType.objects.all() + et + for work_info in success_lists + if (et := convert_nan("Employee Type", work_info)) } - # Prepare list for new EmployeeType objects - employee_type_obj_list = [ - EmployeeType(employee_type=employee_type) - for employee_type in employee_types_to_import - if employee_type not in existing_employee_types + # Get existing employee types in one optimized query + existing_employee_types = set( + EmployeeType.objects.values_list("employee_type", flat=True) + ) + + # Create new employee type objects + new_employee_types = [ + EmployeeType(employee_type=et) + for et in employee_types_to_import - existing_employee_types ] - # Bulk create new employee types - if employee_type_obj_list: - EmployeeType.objects.bulk_create(employee_type_obj_list) + + # Bulk create if there are new types + if new_employee_types: + with transaction.atomic(): + EmployeeType.objects.bulk_create( + new_employee_types, batch_size=None if is_postgres else 999 + ) def create_contracts_in_thread(new_work_info_list, update_work_info_list): @@ -687,18 +752,34 @@ def bulk_create_work_info_import(success_lists): shifts = set(row.get("Shift") for row in success_lists) companies = set(row.get("Company") for row in success_lists) - existing_employees = { - emp.badge_id: emp - for emp in Employee.objects.entire() - .filter(badge_id__in=badge_ids) - .only("badge_id") - } + chunk_size = None if is_postgres else 999 + employee_qs = ( + chain.from_iterable( + Employee.objects.entire().filter(badge_id__in=chunk).only("badge_id") + for chunk in chunked(badge_ids, chunk_size) + ) + if chunk_size + else Employee.objects.entire().filter(badge_id__in=badge_ids).only("badge_id") + ) + + existing_employees = {emp.badge_id: emp for emp in employee_qs} + existing_employee_work_infos = { emp.employee_id: emp - for emp in EmployeeWorkInformation.objects.filter( - employee_id__in=existing_employees.values() - ).only("employee_id") + for emp in ( + EmployeeWorkInformation.objects.filter( + employee_id__in=existing_employees.values() + ).only("employee_id") + if is_postgres + else chain.from_iterable( + EmployeeWorkInformation.objects.filter(employee_id__in=chunk).only( + "employee_id" + ) + for chunk in chunked(list(existing_employees.values()), 900) + ) + ) } + existing_departments = { dep.department: dep for dep in Department.objects.filter(department__in=departments).only( @@ -740,8 +821,13 @@ def bulk_create_work_info_import(success_lists): reporting_manager_dict = optimize_reporting_manager_lookup() for work_info in success_lists: - email = work_info["Email"] badge_id = work_info["Badge ID"] + employee_obj = existing_employees.get(badge_id) + if not employee_obj: + continue + + email = work_info["Email"] + employee_work_info = existing_employee_work_infos.get(employee_obj) department_obj = existing_departments.get(work_info.get("Department")) job_position_key = ( @@ -791,9 +877,6 @@ def bulk_create_work_info_import(success_lists): else 0 ) - employee_obj = existing_employees.get(badge_id) - employee_work_info = existing_employee_work_infos.get(employee_obj) - if employee_work_info is None: # Create a new instance employee_work_info = EmployeeWorkInformation( @@ -839,9 +922,10 @@ def bulk_create_work_info_import(success_lists): employee_work_info.basic_salary = basic_salary employee_work_info.salary_hour = salary_hour update_work_info_list.append(employee_work_info) - if new_work_info_list: - EmployeeWorkInformation.objects.bulk_create(new_work_info_list) + EmployeeWorkInformation.objects.bulk_create( + new_work_info_list, batch_size=None if is_postgres else 999 + ) if update_work_info_list: EmployeeWorkInformation.objects.bulk_update( update_work_info_list, @@ -861,6 +945,7 @@ def bulk_create_work_info_import(success_lists): "basic_salary", "salary_hour", ], + batch_size=None if is_postgres else 999, ) if apps.is_installed("payroll"): diff --git a/employee/models.py b/employee/models.py index 08df04733..e7aa4a387 100644 --- a/employee/models.py +++ b/employee/models.py @@ -17,6 +17,7 @@ from django.db.models.query import QuerySet from django.db.models.signals import post_save from django.dispatch import receiver from django.http import JsonResponse +from django.templatetags.static import static from django.urls import reverse, reverse_lazy from django.utils.translation import gettext as _ from django.utils.translation import gettext_lazy as trans @@ -252,17 +253,9 @@ class Employee(models.Model): ) def get_avatar(self): - """ - Method will retun the api to the avatar or path to the profile image - """ - url = ( - f"https://ui-avatars.com/api/?name={self.get_full_name()}&background=random" - ) - if self.employee_profile: - full_filename = self.employee_profile.name - if default_storage.exists(full_filename): - url = self.employee_profile.url - return url + if self.employee_profile and default_storage.exists(self.employee_profile.name): + return self.employee_profile.url + return static("images/ui/default_avatar.jpg") def get_leave_status(self): """ @@ -620,7 +613,7 @@ class Employee(models.Model): # your custom code here # ... # call the parent class's save method to save the object - prev_employee = Employee.objects.filter(id=self.id).first() + # prev_employee = Employee.objects.filter(id=self.id).first() super().save(*args, **kwargs) request = getattr(horilla_middlewares._thread_locals, "request", None) if request and not self.is_active and self.get_archive_condition() is not False: @@ -631,7 +624,7 @@ class Employee(models.Model): if employee.employee_user_id is None: # Create user if no corresponding user exists username = self.email - password = self.phone + password = str(self.phone) is_new_employee_flag = ( not employee.employee_user_id.is_new_employee @@ -903,19 +896,21 @@ class EmployeeBankDetails(HorillaModel): related_name="employee_bank_details", verbose_name=_("Employee"), ) - bank_name = models.CharField(max_length=50) + bank_name = models.CharField(max_length=50, null=True) account_number = models.CharField( max_length=50, - null=False, + null=True, blank=False, default="", ) - branch = models.CharField(max_length=50) - address = models.TextField(max_length=255) + branch = models.CharField(max_length=50, null=True) + address = models.TextField(max_length=255, null=True) country = models.CharField(max_length=50, blank=True, null=True) - state = models.CharField(max_length=50, blank=True) - city = models.CharField(max_length=50, blank=True) - any_other_code1 = models.CharField(max_length=50, verbose_name="Bank Code #1") + state = models.CharField(max_length=50, blank=True, null=True) + city = models.CharField(max_length=50, blank=True, null=True) + any_other_code1 = models.CharField( + max_length=50, verbose_name="Bank Code #1", null=True + ) any_other_code2 = models.CharField( max_length=50, null=True, blank=True, verbose_name="Bank Code #2" ) diff --git a/employee/static/document/actions.js b/employee/static/document/actions.js new file mode 100644 index 000000000..de63a1f11 --- /dev/null +++ b/employee/static/document/actions.js @@ -0,0 +1,107 @@ +var confirmMessages = { + approved: { + ar: "هل ترغب حقًا في الموافقة على جميع الطلبات المحددة؟", + de: "Möchten Sie wirklich alle ausgewählten Anfragen genehmigen?", + es: "¿Realmente quieres aprobar todas las solicitudes seleccionadas?", + en: "Do you really want to approve all the selected requests?", + fr: "Voulez-vous vraiment approuver toutes les demandes sélectionnées?", + }, + rejected: { + ar: "هل تريد حقًا رفض جميع الطلبات المحددة؟", + de: "Möchten Sie wirklich alle ausgewählten Anfragen ablehnen?", + es: "¿Realmente deseas rechazar todas las solicitudes seleccionadas?", + en: "Do you really want to reject all the selected requests?", + fr: "Voulez-vous vraiment rejeter toutes les demandes sélectionnées?", + }, +}; + +var alreadyActionMessages = { + approved: { + ar: "بعض الطلبات المحددة تم الموافقة عليها مسبقًا.", + de: "Einige ausgewählte Anfragen wurden bereits genehmigt.", + es: "Algunas solicitudes seleccionadas ya han sido aprobadas.", + en: "Some selected requests have already been approved.", + fr: "Certaines demandes sélectionnées ont déjà été approuvées.", + }, + rejected: { + ar: "بعض الطلبات المحددة تم رفضها مسبقًا.", + de: "Einige ausgewählte Anfragen wurden bereits abgelehnt.", + es: "Algunas solicitudes seleccionadas ya han sido rechazadas.", + en: "Some selected requests have already been rejected.", + fr: "Certaines demandes sélectionnées ont déjà été rejetées.", + }, +}; + +function validateDocsIds(event) { + getCurrentLanguageCode(function (lang) { + const ids = []; + const checkedRows = $("[type=checkbox]:checked"); + const takeAction = $(event.currentTarget).data("action"); + let alreadyTakeAction = false; + + checkedRows.each(function () { + const id = $(this).attr("id"); + const status = $(this).data("status"); + + if (id) { + if (status === takeAction) alreadyTakeAction = true; + ids.push(id); + } + }); + + if (ids.length === 0) { + var norowMessages = { + ar: "لم يتم تحديد أي صفوف.", + de: "Es wurden keine Zeilen ausgewählt.", + es: "No se han seleccionado filas.", + en: "No rows have been selected.", + fr: "Aucune ligne n'a été sélectionnée.", + }; + event.preventDefault(); + Swal.fire({ + text: norowMessages[lang] || norowMessages.en, + icon: "warning", + confirmButtonText: "Close", + }); + } else if (alreadyTakeAction) { + event.preventDefault(); + Swal.fire({ + text: + alreadyActionMessages[takeAction][lang] || + alreadyActionMessages[takeAction].en, + icon: "warning", + confirmButtonText: "Close", + }); + } else { + // Directly trigger action without confirmation + const triggerId = + takeAction === "approved" + ? "#bulkApproveDocument" + : "#bulkRejectDocument"; + $(triggerId).attr("hx-vals", JSON.stringify({ ids })).click(); + } + }); +} + + +function highlightRow(checkbox) { + checkbox.closest(".oh-user_permission-list_item").removeClass("highlight-selected"); + if (checkbox.is(":checked")) { + checkbox.closest(".oh-user_permission-list_item").addClass("highlight-selected"); + } +} + +function selectAllDocuments(event) { + event.stopPropagation(); + const checkbox = event.currentTarget; + const isChecked = checkbox.checked; + + const accordionBody = checkbox + .closest(".oh-accordion-meta__header") + .nextElementSibling; + + if (accordionBody) { + const checkboxes = accordionBody.querySelectorAll('[type="checkbox"]'); + checkboxes.forEach(cb => cb.checked = isChecked); + } +} diff --git a/employee/static/employee/actions.js b/employee/static/employee/actions.js index 98c4fe4da..14a61e03d 100644 --- a/employee/static/employee/actions.js +++ b/employee/static/employee/actions.js @@ -37,6 +37,14 @@ var noRowMessages = { fr: "Aucune ligne n'a été sélectionnée pour supprimer des employés.", }; +var noRowUpdateMessages = { + "ar": "لم يتم تحديد أي صفوف لتحديث الموظفين.", + "de": "Es wurden keine Zeilen ausgewählt, um Mitarbeiter zu aktualisieren.", + "es": "No se han seleccionado filas para actualizar empleados.", + "en": "No rows have been selected to update employees.", + "fr": "Aucune ligne n'a été sélectionnée pour mettre à jour des employés." +}; + var rowMessages = { ar: " تم الاختيار", de: " Ausgewählt", @@ -335,8 +343,8 @@ $("#employeeBulkUpdateId").click(function (e) { var languageCode = null; languageCode = $("#main-section-data").attr("data-lang"); var textMessage = - noRowMessages[languageCode] || - ((languageCode = "en"), noRowMessages[languageCode]); + noRowUpdateMessages[languageCode] || + ((languageCode = "en"), noRowUpdateMessages[languageCode]); ids = []; ids.push($("#selectedInstances").attr("data-ids")); ids = JSON.parse($("#selectedInstances").attr("data-ids")); diff --git a/templates/birthdays_container.html b/employee/templates/dashboard/birthdays_container.html similarity index 89% rename from templates/birthdays_container.html rename to employee/templates/dashboard/birthdays_container.html index 19d3e76c7..629232ff3 100644 --- a/templates/birthdays_container.html +++ b/employee/templates/dashboard/birthdays_container.html @@ -1,6 +1,6 @@ {% load i18n %} {% if birthdays %} -
+
{% for birthday in birthdays %}
@@ -20,11 +20,11 @@
    {% for birthday in birthdays %} -
  • {% endfor %}
-{% endif %} +{% endif %} \ No newline at end of file diff --git a/employee/templates/dashboard/not_in_yet.html b/employee/templates/dashboard/not_in_yet.html index 286053fae..fc96c0382 100644 --- a/employee/templates/dashboard/not_in_yet.html +++ b/employee/templates/dashboard/not_in_yet.html @@ -30,11 +30,10 @@
{% else %}
-

- - {% trans "No records available at the moment." %} -

-
+ Page not found. 404. +

{% trans "No Records found." %}

+

{% trans "No records available at the moment." %}

+
{% endif %} {% if employees.has_previous or employees.has_next %}
diff --git a/employee/templates/dashboard/not_out_yet.html b/employee/templates/dashboard/not_out_yet.html index 361f3e52e..d51ccf196 100644 --- a/employee/templates/dashboard/not_out_yet.html +++ b/employee/templates/dashboard/not_out_yet.html @@ -34,9 +34,8 @@
{% else %}
-

- - {% trans "No records available at the moment." %} -

+ Page not found. 404. +

{% trans "No Records found." %}

+

{% trans "No records available at the moment." %}

{% endif %} diff --git a/employee/templates/disciplinary_actions/disciplinary_nav.html b/employee/templates/disciplinary_actions/disciplinary_nav.html index 19427de52..b33cc7a21 100644 --- a/employee/templates/disciplinary_actions/disciplinary_nav.html +++ b/employee/templates/disciplinary_actions/disciplinary_nav.html @@ -120,16 +120,13 @@ {% include 'disciplinary_actions/disciplinary_records.html' %}
{% else %} -
- -
-
- Page not found. 404. -
{% trans "There are currently no disciplinary actions to consider." %}
-
+
+
+ Page not found. 404. +

{% trans "No Records found." %}

+

{% trans "There are currently no disciplinary actions to consider." %}

-
+ {% endif %} + diff --git a/employee/templates/documents/document_reject_reason.html b/employee/templates/documents/document_reject_reason.html new file mode 100644 index 000000000..000fb767e --- /dev/null +++ b/employee/templates/documents/document_reject_reason.html @@ -0,0 +1,28 @@ +{% load i18n %} +
+ {% trans "Bulk Reject Requests" %} + +
+
+
+
+ + {{form.reject_reason}} + {% if form.reject_reason.errors %} + {{ form.reject_reason.errors }} + {% endif %} +
+ {% for id in ids %} + + {% endfor %} + +
+ +
+
+
\ No newline at end of file diff --git a/employee/templates/documents/document_requests.html b/employee/templates/documents/document_requests.html index cb2eb4811..f98c7718f 100644 --- a/employee/templates/documents/document_requests.html +++ b/employee/templates/documents/document_requests.html @@ -9,9 +9,10 @@ } .custom-dialog { - max-width:1000px; + max-width: 1000px; max-height: 800px; } + .oh-not-found { display: flex; justify-content: center; @@ -21,167 +22,22 @@ opacity: 0.5; } -.file-validation { - color: #4f5bd9; - background-color: #d8e7f0; - border-color: #d6e9c6; - padding: 15px; - border: 1px solid transparent; - border-radius: 4px; - -} + .file-validation { + color: #4f5bd9; + background-color: #d8e7f0; + border-color: #d6e9c6; + padding: 15px; + border: 1px solid transparent; + border-radius: 4px; + } {% include 'documents/document_nav.html' %} -
diff --git a/helpdesk/templates/helpdesk/faq/faq_category_nav.html b/helpdesk/templates/helpdesk/faq/faq_category_nav.html index b3d82ff31..0bd5df738 100644 --- a/helpdesk/templates/helpdesk/faq/faq_category_nav.html +++ b/helpdesk/templates/helpdesk/faq/faq_category_nav.html @@ -47,6 +47,39 @@ {% endcomment %} +
+
+ + +
+
{% if perms.helpdesk.add_faqcategory %}
-
+
- {% endif %} - {% if perms.helpdesk.delete_faq %} - - {% csrf_token %} - - - {% endif %} -
-
-
{{faq.answer}}
- - {% empty %} -
-
- -

- {% trans "There are no FAQs at the moment." %} -

-
-
- {% endfor %} - -
+
+
    + {% for faq in faqs %} +
  • +
    +
    + + {{faq.question}} + +
      + {% for tag in faq.tags.all %} +
    • + {{tag|capfirst}} +
    • + {% endfor %} +
    +
    +
    + {% if perms.helpdesk.change_faq %} + + {% endif %} + {% if perms.helpdesk.delete_faq %} +
    + {% csrf_token %} + +
    + {% endif %} +
    +
    +
    {{faq.answer}}
    +
  • + {% empty %} +
    +
    + +

    + {% trans "There are no FAQs at the moment." %} +

    +
    +
    + {% endfor %} +
+
diff --git a/helpdesk/templates/helpdesk/faq/faq_list_view.html b/helpdesk/templates/helpdesk/faq/faq_list_view.html index 06d4e3062..dbd08a5df 100644 --- a/helpdesk/templates/helpdesk/faq/faq_list_view.html +++ b/helpdesk/templates/helpdesk/faq/faq_list_view.html @@ -1,75 +1,82 @@ {% extends 'index.html' %} {% block content %} {% load static %} {% load i18n %}
+ {% include 'helpdesk/faq/faq_nav.html'%} +
+
{% include "helpdesk/faq/faq_list.html" %}
+
- {% include 'helpdesk/faq/faq_nav.html'%} -
- {% if faqs %} -
- {% include "helpdesk/faq/faq_list.html" %} -
- {% endif %} -
+ - +
+
+
-
-
-
-
- - +
{% endblock %} diff --git a/helpdesk/templates/helpdesk/faq/faq_view.html b/helpdesk/templates/helpdesk/faq/faq_view.html index f185132af..69c12acea 100644 --- a/helpdesk/templates/helpdesk/faq/faq_view.html +++ b/helpdesk/templates/helpdesk/faq/faq_view.html @@ -4,7 +4,20 @@ {% include 'helpdesk/faq/faq_category_nav.html'%}
- {% include "helpdesk/faq/faq_category_list.html" %} + {% if faq_categories %} + {% include "helpdesk/faq/faq_category_list.html" %} + {% else %} +
+ +

+ {% trans "There are no FAQs at the moment." %} +

+
+ {% endif %}
diff --git a/helpdesk/templates/helpdesk/faq/load_faq.html b/helpdesk/templates/helpdesk/faq/load_faq.html new file mode 100644 index 000000000..b9b3793a1 --- /dev/null +++ b/helpdesk/templates/helpdesk/faq/load_faq.html @@ -0,0 +1,111 @@ +{% load static i18n %} +
+ {% trans "Load FAQs" %} + +
+
+
+
+
+ {% trans "Select All Faqs" %} +
+
+ {% trans "Unselect All Faqs" %} +
+ {% csrf_token %} + {% for cat_id, category in catagories.items %} +
+
{{category}}
+
+ + + +
+ {% for faq in faqs %} + {% if faq.fields.category == cat_id %} +
+
+
+ {{faq.fields.question}} + + + +
+
+ {{faq.fields.answer}} +
+
    + {% for tag in faq.tags %} +
  • + {{tag}} +
  • + {% endfor %} +
+
+
+ {% endif %} + {% endfor %} +
+
+
+ {% endfor %} + +
+ +
+
+
+
+ \ No newline at end of file diff --git a/helpdesk/templates/helpdesk/ticket/ticket_card.html b/helpdesk/templates/helpdesk/ticket/ticket_card.html index 6a627bf0c..0290c3e42 100644 --- a/helpdesk/templates/helpdesk/ticket/ticket_card.html +++ b/helpdesk/templates/helpdesk/ticket/ticket_card.html @@ -424,7 +424,7 @@ {% else %} - {% if not ticket|calim_request_exists:request.user.employee_get and request.user.employee_get not in ticket.assigned_to.all %} + {% if not ticket|claim_request_exists:request.user.employee_get and request.user.employee_get not in ticket.assigned_to.all %}
  • @@ -950,8 +950,8 @@ display: flex; align-items: center; justify-content: center; + position: relative; " - class="" >
    - {% if ticket|calim_request_exists:request.user.employee_get or request.user.employee_get in ticket.assigned_to.all %} + {% if ticket|claim_request_exists:request.user.employee_get or request.user.employee_get in ticket.assigned_to.all %} {% else %} - {% if ticket|calim_request_exists:request.user.employee_get or request.user.employee_get in ticket.assigned_to.all %} + {% if ticket|claim_request_exists:request.user.employee_get or request.user.employee_get in ticket.assigned_to.all %}
    + $('.oh-modal--show').removeClass('oh-modal--show'); + $('#reloadMessagesButton').click(); + $('.filterButton').click(); + + """ + return HttpResponse(script) + + processed_faqs = [] + for faq in faq_raw: + processed = faq.copy() + + category_pk = faq["fields"].get("category") + tag_pk = faq["fields"].get("tags") + processed["tags"] = [tag_lookup.get(pk, "") for pk in tag_pk] + processed["category"] = category_lookup.get(category_pk, "") + processed_faqs.append(processed) + + return render( + request, + "helpdesk/faq/load_faq.html", + { + "faqs": processed_faqs, + "catagories": category_lookup, + }, + ) diff --git a/horilla/decorators.py b/horilla/decorators.py index 0fec2590c..5ffbfab34 100755 --- a/horilla/decorators.py +++ b/horilla/decorators.py @@ -243,13 +243,25 @@ def login_required(view_func): request.session["title"] = res if path == "" or path == "/": request.session["title"] = "Dashboard".upper() - if not request.user.is_authenticated or not request.user.is_active: - login_url = reverse("login") - params = urlencode(request.GET) - url = f"{login_url}?next={request.path}" - if params: - url += f"&{params}" - return redirect(url) + + login_url = reverse("login") + try: + query_string = urlencode(request.GET) + except: + query_string = None + redirect_url = f"{login_url}?next={request.path}" + if query_string: + redirect_url += f"&{query_string}" + + employee = getattr(request.user, "employee_get", None) + + if ( + not request.user.is_authenticated + or not request.user.is_active + or not employee + or not employee.is_active + ): + return redirect(redirect_url) try: func = view_func(request, *args, **kwargs) except Exception as e: diff --git a/horilla/horilla_apps.py b/horilla/horilla_apps.py index a8e565a21..534371aa1 100644 --- a/horilla/horilla_apps.py +++ b/horilla/horilla_apps.py @@ -12,7 +12,6 @@ INSTALLED_APPS.append("horilla_audit") INSTALLED_APPS.append("horilla_widgets") INSTALLED_APPS.append("horilla_crumbs") INSTALLED_APPS.append("horilla_documents") -INSTALLED_APPS.append("haystack") INSTALLED_APPS.append("horilla_views") INSTALLED_APPS.append("horilla_automations") INSTALLED_APPS.append("auditlog") @@ -21,6 +20,7 @@ INSTALLED_APPS.append("helpdesk") INSTALLED_APPS.append("offboarding") INSTALLED_APPS.append("horilla_backup") INSTALLED_APPS.append("project") + if settings.env("AWS_ACCESS_KEY_ID", default=None) and "storages" not in INSTALLED_APPS: INSTALLED_APPS.append("storages") @@ -61,3 +61,4 @@ SIDEBARS = [ WHITE_LABELLING = False NESTED_SUBORDINATE_VISIBILITY = False +TWO_FACTORS_AUTHENTICATION = False diff --git a/horilla/horilla_middlewares.py b/horilla/horilla_middlewares.py index 4275dfa4b..9a1b14b05 100644 --- a/horilla/horilla_middlewares.py +++ b/horilla/horilla_middlewares.py @@ -17,6 +17,7 @@ MIDDLEWARE.append("horilla.horilla_middlewares.ThreadLocalMiddleware") MIDDLEWARE.append("accessibility.middlewares.AccessibilityMiddleware") MIDDLEWARE.append("accessibility.middlewares.AccessibilityMiddleware") MIDDLEWARE.append("base.middleware.ForcePasswordChangeMiddleware") +MIDDLEWARE.append("base.middleware.TwoFactorAuthMiddleware") _thread_locals = threading.local() diff --git a/horilla/locale/en/LC_MESSAGES/django.po b/horilla/locale/en/LC_MESSAGES/django.po index b8c0abbcc..11378af68 100644 --- a/horilla/locale/en/LC_MESSAGES/django.po +++ b/horilla/locale/en/LC_MESSAGES/django.po @@ -3,13 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # -#: .\leave\views.py:2878 +#: .\leave\views.py:2996 #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-14 10:29+0530\n" +"POT-Creation-Date: 2025-05-17 09:48+0530\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -37,11 +37,11 @@ msgstr "" #: .\accessibility\filters.py:41 #: .\asset\templates\asset_history\asset_history_list.html:23 -#: .\asset\templates\asset_history\group_by.html:36 .\attendance\forms.py:550 -#: .\attendance\forms.py:750 .\attendance\forms.py:1114 -#: .\attendance\models.py:60 .\attendance\models.py:138 -#: .\attendance\models.py:597 .\attendance\models.py:766 -#: .\attendance\models.py:1055 +#: .\asset\templates\asset_history\group_by.html:36 .\attendance\forms.py:477 +#: .\attendance\forms.py:682 .\attendance\forms.py:1047 +#: .\attendance\models.py:58 .\attendance\models.py:138 +#: .\attendance\models.py:600 .\attendance\models.py:771 +#: .\attendance\models.py:945 #: .\attendance\templates\attendance\attendance\attendance_activites_view.html:17 #: .\attendance\templates\attendance\attendance\attendance_filters.html:9 #: .\attendance\templates\attendance\attendance\attendance_on_time.html:21 @@ -69,14 +69,14 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\report_list.html:37 #: .\attendance\templates\attendance\own_attendance\attendances.html:99 #: .\attendance\templates\attendance\own_attendance\group_by.html:24 -#: .\attendance\templates\attendance\work_record\work_record_list.html:70 +#: .\attendance\templates\attendance\work_record\work_record_list.html:111 #: .\attendance\templates\requests\attendance\filter.html:11 #: .\attendance\templates\requests\attendance\group_by.html:30 #: .\attendance\templates\requests\attendance\group_by.html:349 #: .\attendance\templates\requests\attendance\request_lines.html:36 #: .\attendance\templates\requests\attendance\request_lines.html:266 -#: .\base\models.py:259 .\base\models.py:349 .\base\models.py:646 -#: .\base\models.py:743 .\base\models.py:841 .\base\models.py:997 +#: .\base\models.py:262 .\base\models.py:352 .\base\models.py:649 +#: .\base\models.py:746 .\base\models.py:844 .\base\models.py:1000 #: .\base\templates\base\auth\permission_view.html:11 #: .\base\templates\base\rotating_shift\filters.html:10 #: .\base\templates\base\rotating_shift\htmx\group_by.html:72 @@ -86,9 +86,6 @@ msgstr "" #: .\base\templates\base\rotating_work_type\htmx\group_by.html:60 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_export.html:41 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_view.html:62 -#: .\base\templates\request_and_approve\feedback_answer.html:7 -#: .\base\templates\request_and_approve\leave_allocation_approve.html:7 -#: .\base\templates\request_and_approve\leave_request_approve.html:7 #: .\base\templates\request_and_approve\shift_request.html:8 #: .\base\templates\request_and_approve\work_type_request.html:8 #: .\base\templates\shift_request\htmx\allocation_requests.html:43 @@ -102,12 +99,13 @@ msgstr "" #: .\base\templates\work_type_request\htmx\requests.html:58 #: .\base\templates\work_type_request\work_type_request_export.html:41 #: .\base\templates\work_type_request\work_type_request_nav.html:64 -#: .\biometric\forms.py:219 .\biometric\models.py:228 -#: .\biometric\templates\biometric\card_biometric_devices.html:122 +#: .\biometric\forms.py:232 .\biometric\models.py:246 +#: .\biometric\templates\biometric\card_biometric_devices.html:128 #: .\biometric\templates\biometric\list_employees_biometric.html:28 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:17 #: .\biometric\templates\biometric_users\dahua\list_dahua_employees.html:12 -#: .\employee\models.py:549 .\employee\models.py:691 +#: .\biometric\templates\biometric_users\etimeoffice\list_etimeoffice_employees.html:12 +#: .\employee\models.py:574 .\employee\models.py:718 #: .\employee\templates\disciplinary_actions\disciplinary_nav.html:37 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:40 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:71 @@ -129,13 +127,17 @@ msgstr "" #: .\employee\templates\tabs\shift-tab.html:633 #: .\employee\templates\tabs\shift-tab.html:850 #: .\helpdesk\templates\helpdesk\ticket\ticket_claim_requests.html:29 +#: .\horilla_documents\models.py:83 #: .\horilla_widgets\templates\horilla_widgets\multiselect_components\table.html:19 #: .\leave\filters.py:370 .\leave\filters.py:406 .\leave\filters.py:430 -#: .\leave\models.py:356 .\leave\models.py:534 +#: .\leave\forms.py:110 .\leave\models.py:349 .\leave\models.py:575 +#: .\leave\models.py:1169 #: .\leave\templates\leave\accrual_plan_assign_view.html:9 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:36 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:190 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_view.html:97 +#: .\leave\templates\leave\dashboard\leave_allocation_approve.html:7 +#: .\leave\templates\leave\dashboard\leave_request_approve.html:7 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:43 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:213 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_list.html:24 @@ -152,15 +154,18 @@ msgstr "" #: .\leave\templates\leave\leave_request\leave_clashes.html:6 #: .\leave\templates\leave\leave_request\leave_requests.html:76 #: .\leave\templates\leave\leave_request_view.html:9 +#: .\offboarding\templates\offboarding\dashboard\asset_returned_table.html:16 +#: .\offboarding\templates\offboarding\dashboard\employee_feedback_table.html:16 +#: .\offboarding\templates\offboarding\dashboard\employee_task_table.html:14 #: .\offboarding\templates\offboarding\pipeline\filter.html:13 #: .\offboarding\templates\offboarding\resignation\filter.html:20 #: .\offboarding\templates\offboarding\resignation\group_by.html:55 #: .\offboarding\templates\offboarding\resignation\request_list.html:47 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:65 -#: .\payroll\filters.py:364 .\payroll\filters.py:386 -#: .\payroll\forms\component_forms.py:486 .\payroll\models\models.py:166 -#: .\payroll\models\models.py:400 .\payroll\models\models.py:1360 -#: .\payroll\models\models.py:1480 +#: .\payroll\filters.py:435 .\payroll\filters.py:457 +#: .\payroll\forms\component_forms.py:496 .\payroll\models\models.py:164 +#: .\payroll\models\models.py:398 .\payroll\models\models.py:1344 +#: .\payroll\models\models.py:1464 #: .\payroll\templates\payroll\contract\contract_list.html:45 #: .\payroll\templates\payroll\contract\contract_list.html:48 #: .\payroll\templates\payroll\contract\group_by.html:49 @@ -177,16 +182,17 @@ msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:84 #: .\payroll\templates\payroll\payslip\group_payslips.html:47 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:80 -#: .\payroll\templates\payroll\payslip\payslip_table.html:73 +#: .\payroll\templates\payroll\payslip\payslip_table.html:54 #: .\payroll\templates\payroll\reimbursement\filter.html:19 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:92 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:418 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:755 -#: .\pms\models.py:606 .\pms\models.py:619 .\pms\models.py:729 +#: .\pms\cbvs.py:176 .\pms\models.py:517 .\pms\models.py:629 +#: .\pms\models.py:642 .\pms\models.py:754 #: .\pms\templates\anonymous\anonymous_feedback_form.html:45 #: .\pms\templates\anonymous\single_view.html:35 -#: .\pms\templates\feedback\feedback_creation.html:45 -#: .\pms\templates\feedback\feedback_detailed_view.html:245 +#: .\pms\templates\dashboard\feedback_answer.html:7 +#: .\pms\templates\feedback\feedback_detailed_view.html:259 #: .\pms\templates\feedback\feedback_list.html:98 #: .\pms\templates\feedback\feedback_list.html:261 #: .\pms\templates\feedback\feedback_list.html:397 @@ -198,17 +204,23 @@ msgstr "" #: .\pms\templates\okr\key_result\key_result_creation_htmx.html:94 #: .\pms\templates\okr\key_result\key_result_update.html:92 #: .\pms\templates\okr\objective_list_view.html:84 +#: .\project\cbv\timesheet.py:109 .\project\cbv\timesheet.py:160 +#: .\project\models.py:541 .\project\templates\cbv\timesheet\filter.html:31 #: .\project\templates\task\new\task_timesheet.html:49 #: .\project\templates\time_sheet\filters.html:32 #: .\project\templates\time_sheet\time_sheet_list_view.html:29 #: .\project\templates\time_sheet\time_sheet_single_view.html:18 -#: .\recruitment\models.py:368 .\templates\settings.html:249 +#: .\recruitment\models.py:369 +#: .\report\templates\report\attendance_report.html:46 +#: .\report\templates\report\employee_report.html:37 +#: .\report\templates\report\payroll_report.html:45 +#: .\report\templates\report\pms_report.html:132 .\templates\settings.html:281 #: .\templates\work_info_complete.html:9 msgid "Employee" msgstr "" -#: .\accessibility\filters.py:45 .\payroll\models\models.py:760 -#: .\payroll\models\models.py:1100 +#: .\accessibility\filters.py:45 .\payroll\models\models.py:758 +#: .\payroll\models\models.py:1091 msgid "Exclude Employees" msgstr "" @@ -222,7 +234,8 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\export_filter.html:71 #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:34 #: .\attendance\templates\requests\attendance\filter.html:35 -#: .\base\models.py:166 .\base\models.py:177 +#: .\base\models.py:150 .\base\models.py:167 .\base\models.py:178 +#: .\base\models.py:1517 #: .\base\templates\announcement\announcement_one.html:139 #: .\base\templates\base\job_position\job_position.html:5 #: .\base\templates\base\job_position\job_position_view.html:12 @@ -238,18 +251,19 @@ msgstr "" #: .\biometric\templates\biometric\list_employees_biometric.html:34 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:37 #: .\biometric\templates\biometric_users\dahua\list_dahua_employees.html:17 -#: .\employee\models.py:556 +#: .\biometric\templates\biometric_users\etimeoffice\list_etimeoffice_employees.html:17 +#: .\employee\models.py:588 #: .\employee\templates\disciplinary_actions\disciplinary_nav.html:77 #: .\employee\templates\documents\document_nav.html:80 #: .\employee\templates\employee_export_filter.html:86 #: .\employee\templates\employee_filters.html:69 -#: .\employee\templates\employee_nav.html:240 +#: .\employee\templates\employee_nav.html:118 #: .\employee\templates\employee_personal_info\employee_list.html:97 #: .\employee\templates\employee_personal_info\group_by.html:78 #: .\employee\templates\personal-tab.html:210 #: .\employee\templates\tabs\personal_tab.html:216 .\leave\filters.py:380 -#: .\leave\filters.py:417 .\leave\filters.py:439 .\leave\models.py:130 -#: .\leave\models.py:1099 .\leave\templates\leave\job_position_field.html:3 +#: .\leave\filters.py:417 .\leave\filters.py:439 .\leave\models.py:124 +#: .\leave\models.py:1261 .\leave\templates\leave\job_position_field.html:3 #: .\leave\templates\leave\leave_request\filter_leave_requests.html:75 #: .\leave\templates\leave\leave_request\leave_requests_export_filter.html:109 #: .\leave\templates\leave\restrict\restrict.html:61 @@ -259,16 +273,17 @@ msgstr "" #: .\onboarding\templates\onboarding\candidate_filter.html:21 #: .\onboarding\templates\onboarding\onboarding_table.html:118 #: .\onboarding\templates\onboarding\single_view.html:46 -#: .\onboarding\templates\onboarding\task_view.html:10 .\payroll\filters.py:365 -#: .\payroll\filters.py:395 .\payroll\models\models.py:214 +#: .\onboarding\templates\onboarding\task_view.html:10 .\payroll\filters.py:436 +#: .\payroll\filters.py:466 .\payroll\models\models.py:212 #: .\payroll\templates\payroll\contract\contract_export_filter.html:106 #: .\payroll\templates\payroll\contract\contract_single_view.html:114 #: .\payroll\templates\payroll\contract\filter_contract.html:72 -#: .\pms\models.py:608 .\pms\models.py:633 +#: .\pms\cbvs.py:182 .\pms\models.py:631 .\pms\models.py:656 #: .\pms\templates\anonymous\anonymous_feedback_form.html:56 #: .\pms\templates\anonymous\single_view.html:43 -#: .\pms\templates\meetings\meetings_filter.html:97 .\recruitment\models.py:149 -#: .\recruitment\models.py:354 .\recruitment\models.py:796 +#: .\pms\templates\meetings\meetings_filter.html:97 +#: .\project\cbv\timesheet.py:118 .\recruitment\models.py:153 +#: .\recruitment\models.py:355 .\recruitment\models.py:796 #: .\recruitment\templates\candidate\candidate_list.html:101 #: .\recruitment\templates\candidate\export_filter.html:121 #: .\recruitment\templates\candidate\filters.html:84 @@ -283,6 +298,11 @@ msgstr "" #: .\recruitment\templates\recruitment\recruitment_form.html:99 #: .\recruitment\templates\recruitment\recruitment_update_form.html:90 #: .\recruitment\templates\skill_zone\skill_zone_nav.html:53 +#: .\report\templates\report\attendance_report.html:65 +#: .\report\templates\report\employee_report.html:95 +#: .\report\templates\report\leave_report.html:109 +#: .\report\templates\report\recruitment_report.html:60 +#: .\report\templates\report\recruitment_report.html:139 #: .\templates\initialize_database\horilla_job_position.html:26 #: .\templates\initialize_database\horilla_job_position_form.html:48 msgid "Job Position" @@ -298,9 +318,9 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\export_filter.html:50 #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:14 #: .\attendance\templates\requests\attendance\filter.html:15 -#: .\base\models.py:117 .\base\models.py:155 +#: .\base\models.py:109 .\base\models.py:116 .\base\models.py:156 #: .\base\templates\announcement\announcement_one.html:129 -#: .\base\templates\base\department\department.html:7 +#: .\base\templates\base\department\department.html:5 #: .\base\templates\base\department\department_view.html:6 #: .\base\templates\base\job_position\job_position_view.html:10 #: .\base\templates\base\rotating_shift\filters.html:49 @@ -314,48 +334,51 @@ msgstr "" #: .\base\templates\shift_request\shift_request_nav.html:114 #: .\base\templates\work_type_request\work_type_request_export.html:63 #: .\base\templates\work_type_request\work_type_request_nav.html:86 -#: .\employee\models.py:563 +#: .\employee\models.py:581 #: .\employee\templates\disciplinary_actions\disciplinary_nav.html:62 #: .\employee\templates\documents\document_nav.html:100 #: .\employee\templates\employee\profile\work_info.html:13 #: .\employee\templates\employee_export_filter.html:69 #: .\employee\templates\employee_filters.html:50 -#: .\employee\templates\employee_nav.html:234 +#: .\employee\templates\employee_nav.html:111 #: .\employee\templates\employee_personal_info\employee_list.html:98 #: .\employee\templates\employee_personal_info\group_by.html:79 #: .\employee\templates\personal-tab.html:148 -#: .\employee\templates\tabs\personal_tab.html:158 +#: .\employee\templates\tabs\personal_tab.html:158 .\helpdesk\models.py:55 #: .\helpdesk\templates\department_managers\department_managers_view.html:6 #: .\leave\filters.py:379 .\leave\filters.py:416 .\leave\filters.py:438 -#: .\leave\models.py:1095 +#: .\leave\models.py:1257 #: .\leave\templates\leave\leave_request\filter_leave_requests.html:69 #: .\leave\templates\leave\leave_request\leave_requests_export_filter.html:103 #: .\leave\templates\leave\restrict\restrict.html:58 #: .\leave\templates\leave\restrict\restrict_filter.html:34 -#: .\leave\templates\leave\restrict\restrict_form.html:46 -#: .\leave\templates\leave\restrict\restrict_update_form.html:46 #: .\offboarding\templates\offboarding\pipeline\filter.html:31 #: .\offboarding\templates\offboarding\resignation\filter.html:34 -#: .\payroll\filters.py:366 .\payroll\filters.py:394 -#: .\payroll\models\models.py:206 +#: .\payroll\filters.py:437 .\payroll\filters.py:465 +#: .\payroll\models\models.py:204 #: .\payroll\templates\payroll\contract\contract_export_filter.html:98 #: .\payroll\templates\payroll\contract\contract_single_view.html:110 #: .\payroll\templates\payroll\contract\filter_contract.html:64 #: .\payroll\templates\payroll\loan\filter.html:37 #: .\payroll\templates\payroll\payslip\individual_payslip_summery.html:28 -#: .\payroll\templates\payroll\reimbursement\filter.html:33 .\pms\models.py:607 -#: .\pms\models.py:626 +#: .\payroll\templates\payroll\reimbursement\filter.html:33 .\pms\cbvs.py:181 +#: .\pms\models.py:630 .\pms\models.py:649 #: .\pms\templates\anonymous\anonymous_feedback_form.html:50 #: .\pms\templates\anonymous\single_view.html:39 #: .\pms\templates\meetings\meetings_filter.html:62 +#: .\project\cbv\timesheet.py:117 #: .\recruitment\templates\candidate\export_filter.html:149 #: .\recruitment\templates\candidate\filters.html:112 #: .\recruitment\templates\candidate\individual.html:389 #: .\recruitment\templates\pipeline\filters.html:162 +#: .\report\templates\report\attendance_report.html:50 +#: .\report\templates\report\employee_report.html:77 +#: .\report\templates\report\leave_report.html:103 +#: .\report\templates\report\recruitment_report.html:93 #: .\templates\initialize_database\horilla_department.html:26 #: .\templates\initialize_database\horilla_department_form.html:48 #: .\templates\initialize_database\horilla_job_position_form.html:56 -#: .\templates\settings.html:156 +#: .\templates\settings.html:176 msgid "Department" msgstr "" @@ -390,7 +413,8 @@ msgstr "" #: .\attendance\templates\requests\attendance\request_lines.html:68 #: .\attendance\templates\requests\attendance\request_lines.html:297 #: .\attendance\templates\requests\attendance\request_lines.html:298 -#: .\base\models.py:212 .\base\templates\base\rotating_shift\filters.html:67 +#: .\base\models.py:205 .\base\models.py:215 +#: .\base\templates\base\rotating_shift\filters.html:67 #: .\base\templates\base\rotating_shift\rotating_shift_assign_export.html:99 #: .\base\templates\base\rotating_work_type\filters.html:67 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_export.html:100 @@ -400,13 +424,13 @@ msgstr "" #: .\base\templates\shift_request\shift_request_nav.html:126 #: .\base\templates\work_type_request\work_type_request_export.html:71 #: .\base\templates\work_type_request\work_type_request_nav.html:94 -#: .\employee\models.py:570 +#: .\employee\models.py:617 #: .\employee\templates\disciplinary_actions\disciplinary_nav.html:81 #: .\employee\templates\documents\document_nav.html:108 #: .\employee\templates\employee\profile\work_info.html:27 #: .\employee\templates\employee_export_filter.html:91 #: .\employee\templates\employee_filters.html:73 -#: .\employee\templates\employee_nav.html:258 +#: .\employee\templates\employee_nav.html:138 #: .\employee\templates\employee_personal_info\employee_list.html:100 #: .\employee\templates\employee_personal_info\group_by.html:81 #: .\employee\templates\personal-tab.html:219 @@ -417,57 +441,60 @@ msgstr "" #: .\leave\templates\leave\leave_request\filter_leave_requests.html:87 #: .\leave\templates\leave\leave_request\leave_requests_export_filter.html:121 #: .\offboarding\templates\offboarding\pipeline\filter.html:61 -#: .\payroll\filters.py:369 .\payroll\models\models.py:238 -#: .\payroll\models\models.py:727 .\payroll\models\models.py:871 +#: .\payroll\filters.py:440 .\payroll\models\models.py:236 +#: .\payroll\models\models.py:725 .\payroll\models\models.py:869 #: .\payroll\templates\payroll\contract\contract_export_filter.html:126 #: .\payroll\templates\payroll\contract\contract_single_view.html:130 #: .\payroll\templates\payroll\contract\filter_contract.html:92 #: .\pms\templates\meetings\meetings_filter.html:105 -#: .\templates\settings.html:260 +#: .\report\templates\report\attendance_report.html:69 +#: .\report\templates\report\employee_report.html:99 +#: .\report\templates\report\leave_report.html:121 +#: .\templates\settings.html:292 msgid "Work Type" msgstr "" -#: .\accessibility\filters.py:52 .\base\models.py:445 +#: .\accessibility\filters.py:52 .\base\models.py:448 #: .\base\templates\base\employee_type\employee_type.html:7 #: .\base\templates\base\employee_type\type_view.html:6 -#: .\employee\models.py:577 +#: .\employee\models.py:625 #: .\employee\templates\employee\profile\work_info.html:35 #: .\employee\templates\personal-tab.html:167 #: .\employee\templates\tabs\personal_tab.html:176 #: .\offboarding\templates\offboarding\pipeline\filter.html:49 -#: .\templates\settings.html:310 +#: .\report\templates\report\employee_report.html:103 +#: .\templates\settings.html:342 msgid "Employee Type" msgstr "" -#: .\accessibility\filters.py:53 .\base\models.py:189 +#: .\accessibility\filters.py:53 .\base\models.py:181 .\base\models.py:192 #: .\base\templates\base\job_role\job_role.html:5 #: .\base\templates\base\job_role\job_role_view.html:13 #: .\base\templates\shift_request\shift_request_export.html:70 #: .\base\templates\shift_request\shift_request_nav.html:120 #: .\base\templates\work_type_request\work_type_request_export.html:67 #: .\base\templates\work_type_request\work_type_request_nav.html:90 -#: .\employee\models.py:584 +#: .\employee\models.py:595 #: .\employee\templates\documents\document_nav.html:104 #: .\employee\templates\employee\profile\work_info.html:41 -#: .\employee\templates\employee_nav.html:246 +#: .\employee\templates\employee_nav.html:125 #: .\employee\templates\employee_personal_info\employee_list.html:101 #: .\employee\templates\employee_personal_info\group_by.html:82 -#: .\leave\models.py:130 +#: .\leave\models.py:124 #: .\offboarding\templates\offboarding\pipeline\filter.html:43 -#: .\payroll\filters.py:370 .\payroll\filters.py:396 -#: .\payroll\models\models.py:222 +#: .\payroll\filters.py:441 .\payroll\filters.py:467 +#: .\payroll\models\models.py:220 #: .\payroll\templates\payroll\contract\contract_export_filter.html:112 #: .\payroll\templates\payroll\contract\contract_single_view.html:120 #: .\payroll\templates\payroll\contract\filter_contract.html:78 -#: .\templates\settings.html:176 +#: .\report\templates\report\employee_report.html:81 +#: .\templates\settings.html:196 msgid "Job Role" msgstr "" -#: .\accessibility\filters.py:54 .\asset\models.py:26 .\asset\models.py:40 -#: .\asset\templates\category\asset_category_creation.html:50 -#: .\asset\templates\category\asset_category_update.html:48 -#: .\attendance\forms.py:619 .\attendance\models.py:818 -#: .\attendance\models.py:850 +#: .\accessibility\filters.py:54 .\asset\models.py:30 .\asset\models.py:60 +#: .\attendance\forms.py:547 .\attendance\models.py:823 +#: .\attendance\models.py:859 #: .\attendance\templates\attendance\attendance\attendance_filters.html:27 #: .\attendance\templates\attendance\attendance\export_filter.html:67 #: .\attendance\templates\attendance\attendance_account\attendance_account_export_filter.html:68 @@ -479,21 +506,21 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:30 #: .\attendance\templates\attendance\settings\check_in_check_out_enable_form.html:13 #: .\attendance\templates\requests\attendance\filter.html:31 -#: .\base\models.py:97 .\base\models.py:112 .\base\models.py:157 -#: .\base\models.py:180 .\base\models.py:203 .\base\models.py:436 -#: .\base\models.py:481 .\base\models.py:518 .\base\models.py:605 -#: .\base\models.py:1170 .\base\models.py:1309 .\base\models.py:1683 -#: .\base\templates\base\company\company.html:7 -#: .\base\templates\base\company\company_form.html:15 -#: .\base\templates\base\company\company_view.html:6 -#: .\base\templates\base\mail_server\mail_server_view.html:44 +#: .\base\models.py:94 .\base\models.py:111 .\base\models.py:158 +#: .\base\models.py:183 .\base\models.py:206 .\base\models.py:439 +#: .\base\models.py:484 .\base\models.py:521 .\base\models.py:608 +#: .\base\models.py:1173 .\base\models.py:1318 .\base\models.py:1520 +#: .\base\models.py:1724 .\base\templates\base\company\company_view.html:6 +#: .\base\templates\base\mail_server\mail_server_view.html:45 #: .\base\templates\base\rotating_shift\filters.html:45 #: .\base\templates\base\rotating_shift\rotating_shift_assign_export.html:77 #: .\base\templates\base\rotating_work_type\filters.html:45 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_export.html:78 #: .\base\templates\company_leave\company_leave_creation_form.html:40 +#: .\base\templates\company_leave\company_leave_update_form.html:40 #: .\base\templates\holiday\holiday_form.html:59 -#: .\base\templates\mail\htmx\form.html:22 +#: .\base\templates\holiday\holiday_update_form.html:48 +#: .\base\templates\mail\htmx\form.html:39 #: .\base\templates\multi_approval_condition\condition_create_form.html:89 #: .\base\templates\multi_approval_condition\condition_edit_form.html:122 #: .\base\templates\multi_approval_condition\condition_table.html:23 @@ -501,39 +528,38 @@ msgstr "" #: .\base\templates\shift_request\shift_request_nav.html:100 #: .\base\templates\work_type_request\work_type_request_export.html:53 #: .\base\templates\work_type_request\work_type_request_nav.html:76 -#: .\employee\models.py:599 .\employee\models.py:781 +#: .\biometric\models.py:102 .\employee\models.py:638 .\employee\models.py:808 #: .\employee\templates\disciplinary_actions\disciplinary_nav.html:58 #: .\employee\templates\documents\document_nav.html:90 #: .\employee\templates\employee\profile\work_info.html:55 #: .\employee\templates\employee_export_filter.html:64 #: .\employee\templates\employee_filters.html:46 -#: .\employee\templates\employee_nav.html:264 +#: .\employee\templates\employee_nav.html:145 #: .\employee\templates\employee_personal_info\employee_list.html:109 #: .\employee\templates\employee_personal_info\group_by.html:84 #: .\employee\templates\personal-tab.html:237 #: .\employee\templates\settings\settings.html:32 #: .\employee\templates\tabs\personal_tab.html:252 .\leave\filters.py:382 -#: .\leave\filters.py:419 .\leave\filters.py:441 .\leave\models.py:1131 +#: .\leave\filters.py:419 .\leave\filters.py:441 .\leave\models.py:1295 #: .\leave\templates\leave\leave_request\filter_leave_requests.html:57 #: .\leave\templates\leave\leave_request\leave_requests_export_filter.html:91 #: .\leave\templates\leave\restrict\restrict.html:67 -#: .\leave\templates\leave\restrict\restrict_form.html:94 -#: .\leave\templates\leave\restrict\restrict_update_form.html:93 -#: .\onboarding\templates\onboarding\filters.html:27 .\payroll\filters.py:375 -#: .\payroll\filters.py:397 +#: .\onboarding\templates\onboarding\filters.html:27 +#: .\outlook_auth\cbv\views.py:57 .\payroll\filters.py:446 +#: .\payroll\filters.py:468 #: .\payroll\templates\payroll\contract\contract_export_filter.html:92 #: .\payroll\templates\payroll\contract\filter_contract.html:58 #: .\payroll\templates\payroll\settings\payroll_settings.html:51 #: .\payroll\templates\payroll\settings\payslip_auto_generate_table.html:7 -#: .\pms\models.py:32 .\pms\models.py:64 .\pms\models.py:127 -#: .\pms\models.py:422 -#: .\pms\templates\feedback\question_template\question_template_list.html:18 +#: .\pms\cbvs.py:187 .\pms\models.py:32 .\pms\models.py:64 .\pms\models.py:127 +#: .\pms\models.py:433 +#: .\pms\templates\feedback\question_template\question_template_list.html:12 #: .\pms\templates\meetings\meetings_filter.html:70 #: .\pms\templates\okr\key_result\kr_filter.html:33 -#: .\pms\templates\okr\key_result\kr_list.html:67 -#: .\pms\templates\period\period_list.html:19 .\recruitment\models.py:88 -#: .\recruitment\models.py:160 .\recruitment\models.py:636 -#: .\recruitment\models.py:828 .\recruitment\models.py:847 +#: .\pms\templates\okr\key_result\kr_list.html:62 +#: .\pms\templates\period\period_list.html:19 .\project\cbv\timesheet.py:120 +#: .\recruitment\models.py:92 .\recruitment\models.py:164 +#: .\recruitment\models.py:634 .\recruitment\models.py:832 #: .\recruitment\templates\candidate\export_filter.html:154 #: .\recruitment\templates\candidate\filters.html:117 #: .\recruitment\templates\offerletter\htmx\form.html:23 @@ -544,11 +570,16 @@ msgstr "" #: .\recruitment\templates\recruitment\recruitment_form.html:132 #: .\recruitment\templates\recruitment\recruitment_update_form.html:120 #: .\recruitment\templates\stage\filters.html:29 +#: .\report\templates\report\attendance_report.html:61 +#: .\report\templates\report\employee_report.html:73 +#: .\report\templates\report\leave_report.html:91 +#: .\report\templates\report\recruitment_report.html:143 +#: .\report\templates\report\recruitment_report.html:194 #: .\templates\initialize_database\horilla_company.html:26 #: .\templates\initialize_database\horilla_company.html:38 #: .\templates\initialize_database\horilla_department_form.html:56 #: .\templates\initialize_database\horilla_job_position_form.html:64 -#: .\templates\settings.html:186 +#: .\templates\settings.html:206 msgid "Company" msgstr "" @@ -583,7 +614,7 @@ msgstr "" #: .\attendance\templates\requests\attendance\request_lines.html:66 #: .\attendance\templates\requests\attendance\request_lines.html:295 #: .\attendance\templates\requests\attendance\request_lines.html:296 -#: .\base\models.py:581 .\base\templates\base\rotating_shift\filters.html:53 +#: .\base\models.py:584 .\base\templates\base\rotating_shift\filters.html:53 #: .\base\templates\base\rotating_shift\rotating_shift_assign_export.html:85 #: .\base\templates\base\rotating_work_type\filters.html:53 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_export.html:86 @@ -594,12 +625,12 @@ msgstr "" #: .\base\templates\shift_request\shift_request_nav.html:95 #: .\base\templates\work_type_request\work_type_request_export.html:49 #: .\base\templates\work_type_request\work_type_request_nav.html:72 -#: .\employee\models.py:620 +#: .\employee\models.py:610 #: .\employee\templates\disciplinary_actions\disciplinary_nav.html:66 #: .\employee\templates\documents\document_nav.html:86 #: .\employee\templates\employee_export_filter.html:74 #: .\employee\templates\employee_filters.html:54 -#: .\employee\templates\employee_nav.html:252 +#: .\employee\templates\employee_nav.html:131 #: .\employee\templates\employee_personal_info\employee_list.html:99 #: .\employee\templates\employee_personal_info\group_by.html:80 #: .\employee\templates\tabs\attendance-tab.html:56 @@ -608,12 +639,15 @@ msgstr "" #: .\leave\templates\leave\leave_request\filter_leave_requests.html:81 #: .\leave\templates\leave\leave_request\leave_requests_export_filter.html:115 #: .\offboarding\templates\offboarding\pipeline\filter.html:55 -#: .\payroll\filters.py:368 .\payroll\models\models.py:230 -#: .\payroll\models\models.py:726 .\payroll\models\models.py:847 +#: .\payroll\filters.py:439 .\payroll\models\models.py:228 +#: .\payroll\models\models.py:724 .\payroll\models\models.py:845 #: .\payroll\templates\payroll\contract\contract_export_filter.html:120 #: .\payroll\templates\payroll\contract\contract_single_view.html:124 #: .\payroll\templates\payroll\contract\filter_contract.html:86 #: .\pms\templates\meetings\meetings_filter.html:78 +#: .\report\templates\report\attendance_report.html:54 +#: .\report\templates\report\employee_report.html:85 +#: .\report\templates\report\leave_report.html:115 msgid "Shift" msgstr "" @@ -634,13 +668,13 @@ msgstr "" #: .\accessibility\filters.py:57 #: .\base\templates\base\auth\group_assign_view.html:9 #: .\employee\templates\employee_filters.html:91 -#: .\employee\templates\tabs\group_permissions.html:15 +#: .\employee\templates\tabs\group_permissions.html:18 msgid "Groups" msgstr "" #: .\accessibility\filters.py:58 .\base\templates\base\auth\group_view.html:11 #: .\base\templates\base\auth\group_view.html:39 -#: .\base\templates\base\auth\permission_accordion.html:37 +#: .\base\templates\base\auth\permission_accordion.html:39 #: .\base\templates\base\auth\permission_view.html:14 #: .\base\templates\base\auth\permission_view.html:49 #: .\employee\templates\employee_filters.html:110 @@ -660,6 +694,7 @@ msgstr "" #: .\asset\templates\batch\asset_batch_number_list.html:22 #: .\asset\templates\category\asset_category.html:49 #: .\asset\templates\category\asset_category_view.html:169 +#: .\asset\templates\category\asset_empty.html:19 #: .\asset\templates\request_allocation\asset_request_allocation_list.html:38 #: .\asset\templates\request_allocation\asset_request_allocation_list.html:350 #: .\attendance\templates\attendance\attendance\attendance_empty.html:68 @@ -716,9 +751,6 @@ msgstr "" #: .\base\templates\holiday\holiday.html:49 #: .\base\templates\holiday\holiday_view.html:45 #: .\base\templates\multi_approval_condition\condition_table.html:25 -#: .\base\templates\request_and_approve\feedback_answer.html:10 -#: .\base\templates\request_and_approve\leave_allocation_approve.html:10 -#: .\base\templates\request_and_approve\leave_request_approve.html:9 #: .\base\templates\request_and_approve\shift_request.html:11 #: .\base\templates\request_and_approve\work_type_request.html:11 #: .\base\templates\shift_request\htmx\allocation_requests.html:54 @@ -737,11 +769,13 @@ msgstr "" #: .\biometric\templates\biometric\nav_employees_cosec_biometric.html:49 #: .\biometric\templates\biometric_users\dahua\list_dahua_employees.html:19 #: .\biometric\templates\biometric_users\dahua\nav_dahua_employees.html:26 +#: .\biometric\templates\biometric_users\etimeoffice\list_etimeoffice_employees.html:19 +#: .\biometric\templates\biometric_users\etimeoffice\nav_etimeoffice_employees.html:26 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:48 #: .\employee\templates\documents\document_nav.html:181 -#: .\employee\templates\documents\requests.html:75 -#: .\employee\templates\employee_nav.html:387 -#: .\employee\templates\employee_personal_info\employee_card.html:78 +#: .\employee\templates\documents\requests.html:51 +#: .\employee\templates\employee_nav.html:227 +#: .\employee\templates\employee_personal_info\employee_card.html:79 #: .\employee\templates\employee_personal_info\employee_list.html:118 #: .\employee\templates\employee_personal_info\group_by.html:87 #: .\employee\templates\tabs\allowance_deduction-tab.html:67 @@ -766,7 +800,7 @@ msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:758 #: .\helpdesk\templates\helpdesk\ticket\ticket_nav.html:30 #: .\horilla_views\templates\generic\group_by.html:107 -#: .\horilla_views\templates\generic\group_by_table.html:119 +#: .\horilla_views\templates\generic\group_by_table.html:123 #: .\horilla_views\templates\generic\horilla_list.html:117 #: .\horilla_views\templates\generic\horilla_list_table.html:107 #: .\horilla_views\templates\generic\horilla_nav.html:199 @@ -774,6 +808,8 @@ msgstr "" #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:44 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:198 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_type.html:55 +#: .\leave\templates\leave\dashboard\leave_allocation_approve.html:10 +#: .\leave\templates\leave\dashboard\leave_request_approve.html:9 #: .\leave\templates\leave\holiday\holiday.html:66 #: .\leave\templates\leave\holiday\holiday_view.html:67 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:50 @@ -798,9 +834,9 @@ msgstr "" #: .\offboarding\templates\offboarding\resignation\request_list.html:84 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:27 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:73 -#: .\onboarding\templates\onboarding\candidates.html:61 +#: .\onboarding\templates\onboarding\candidates.html:60 #: .\onboarding\templates\onboarding\candidates_view.html:131 -#: .\onboarding\templates\onboarding\group_by.html:52 +#: .\onboarding\templates\onboarding\group_by.html:51 #: .\onboarding\templates\onboarding\kanban\kanban.html:56 #: .\onboarding\templates\onboarding\kanban\kanban.html:102 #: .\onboarding\templates\onboarding\onboarding_table.html:53 @@ -817,33 +853,34 @@ msgstr "" #: .\payroll\templates\payroll\loan\records_list.html:578 #: .\payroll\templates\payroll\payslip\group_by.html:92 #: .\payroll\templates\payroll\payslip\group_payslips.html:54 -#: .\payroll\templates\payroll\payslip\payslip_table.html:101 -#: .\payroll\templates\payroll\payslip\payslips_empty.html:11 +#: .\payroll\templates\payroll\payslip\payslip_table.html:72 #: .\payroll\templates\payroll\payslip\view_payslips.html:134 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:116 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:452 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:783 #: .\payroll\templates\payroll\settings\payslip_auto_generate_table.html:12 #: .\payroll\templates\payroll\tax\filing_status_list.html:35 +#: .\pms\templates\dashboard\feedback_answer.html:10 +#: .\pms\templates\feedback\feedback_empty.html:28 #: .\pms\templates\feedback\feedback_list.html:103 #: .\pms\templates\feedback\feedback_list.html:266 #: .\pms\templates\feedback\feedback_list.html:403 #: .\pms\templates\feedback\feedback_list.html:558 -#: .\pms\templates\feedback\feedback_list_view.html:145 -#: .\pms\templates\feedback\question_template\question_template_list.html:20 +#: .\pms\templates\feedback\feedback_list_view.html:143 +#: .\pms\templates\feedback\question_template\question_template_list.html:14 #: .\pms\templates\meetings\meetings_list.html:37 #: .\pms\templates\okr\emp_objective\emp_objective_dashboard_view.html:95 #: .\pms\templates\okr\emp_objective\emp_objective_list.html:113 -#: .\pms\templates\okr\key_result\kr_card.html:49 +#: .\pms\templates\okr\key_result\kr_card.html:43 #: .\pms\templates\okr\key_result\kr_dashboard_view.html:56 -#: .\pms\templates\okr\key_result\kr_list.html:71 +#: .\pms\templates\okr\key_result\kr_list.html:63 #: .\pms\templates\okr\kr_list.html:35 #: .\pms\templates\okr\objective_list_view.html:233 #: .\pms\templates\okr\okr_list.html:148 .\pms\templates\okr\okr_list.html:451 #: .\pms\templates\period\period_list.html:21 #: .\project\templates\project\new\navbar.html:165 #: .\project\templates\task\new\task_list_view.html:58 -#: .\project\templates\task\new\task_list_view.html:125 +#: .\project\templates\task\new\task_list_view.html:114 #: .\project\templates\task\new\task_timesheet.html:62 #: .\project\templates\task_all\task_all_navbar.html:115 #: .\project\templates\time_sheet\time_sheet_list_view.html:42 @@ -852,7 +889,7 @@ msgstr "" #: .\recruitment\templates\candidate\candidate_list.html:107 #: .\recruitment\templates\candidate\candidate_nav.html:141 #: .\recruitment\templates\candidate\group_by.html:91 -#: .\recruitment\templates\candidate\interview_list.html:56 +#: .\recruitment\templates\candidate\interview_list.html:54 #: .\recruitment\templates\pipeline\matching_resumes.html:9 #: .\recruitment\templates\pipeline\pipeline_card.html:65 #: .\recruitment\templates\pipeline\pipeline_card.html:174 @@ -866,9 +903,9 @@ msgstr "" #: .\recruitment\templates\skill_zone_cand\skill_zone_cand_list.html:14 #: .\recruitment\templates\stage\stage_component.html:61 #: .\recruitment\templates\survey\survey-card.html:22 -#: .\recruitment\templates\survey\survey_card.html:34 -#: .\recruitment\templates\survey\template_accordion.html:21 -#: .\recruitment\templates\survey\template_accordion.html:60 +#: .\recruitment\templates\survey\survey_card.html:30 +#: .\recruitment\templates\survey\template_accordion.html:22 +#: .\recruitment\templates\survey\template_accordion.html:75 #: .\recruitment\templates\survey\templates.html:9 msgid "Actions" msgstr "" @@ -879,13 +916,13 @@ msgid "You won't be able to revert this!" msgstr "" #: .\accessibility\templates\accessibility\accessibility.html:58 -#: .\base\methods.py:518 .\base\templatetags\horillafilters.py:283 -#: .\base\templatetags\horillafilters.py:289 +#: .\base\methods.py:579 .\base\templatetags\horillafilters.py:272 +#: .\base\templatetags\horillafilters.py:278 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:62 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:80 -#: .\employee\views.py:2747 +#: .\employee\views.py:2702 #: .\horillavenv\Lib\site-packages\django\forms\widgets.py:795 -#: .\leave\forms.py:50 .\leave\templates\leave\holiday\holiday.html:92 +#: .\leave\forms.py:46 .\leave\templates\leave\holiday\holiday.html:92 #: .\leave\templates\leave\user_leave\user_leave_confirm.html:47 #: .\leave\templates\leave\user_leave\user_leave_confirm.html:57 #: .\leave\templates\leave\user_leave\user_leave_confirm.html:67 @@ -937,260 +974,65 @@ msgstr "Attendance" msgid "All filter cleared" msgstr "" -#: .\asset\forms.py:68 -msgid "A powerful laptop for business use." -msgstr "" - -#: .\asset\forms.py:116 +#: .\asset\forms.py:87 #, fuzzy #| msgid "employee" msgid "---Choose Batch No.---" msgstr "Employee" -#: .\asset\forms.py:124 +#: .\asset\forms.py:90 #, fuzzy #| msgid "create-allowance" msgid "Create new batch number" msgstr "Creation" #: .\asset\forms.py:252 -msgid "Computers." -msgstr "" - -#: .\asset\forms.py:257 -msgid "A category for all types of laptops." -msgstr "" - -#: .\asset\forms.py:301 msgid "Requesting a laptop for software development purposes." msgstr "" -#: .\asset\forms.py:407 +#: .\asset\forms.py:292 .\asset\models.py:251 +#: .\asset\templates\asset_history\asset_history_single_view.html:105 +msgid "Assign Condition Images" +msgstr "" + +#: .\asset\forms.py:360 msgid "on returns the laptop. However, it has suffered minor damage." msgstr "" -#: .\asset\forms.py:442 +#: .\asset\forms.py:377 +#: .\asset\templates\asset_history\asset_history_single_view.html:126 +msgid "Return Condition Images" +msgstr "" + +#: .\asset\forms.py:397 msgid "Return date cannot be in the future." msgstr "" -#: .\asset\forms.py:477 -msgid "" -"A batch of 50 laptops, consisting of Lenovo ThinkPad " -"T480s and Dell XPS 13." +#: .\asset\models.py:24 .\base\forms.py:2711 .\base\models.py:74 +#: .\base\models.py:1716 .\biometric\models.py:56 +#: .\biometric\templates\biometric\edit_cosec_user.html:26 .\leave\forms.py:118 +#: .\leave\models.py:314 +#: .\leave\templates\leave\leave_type\leave_type_creation.html:32 +#: .\leave\templates\leave\leave_type\leave_type_filter.html:9 +#: .\leave\templates\leave\leave_type\leave_type_update.html:28 +#: .\leave\templates\leave\leave_type_creation.html:38 +#: .\leave\templates\leave\leave_type_update.html:40 +#: .\onboarding\templates\onboarding\table.html:10 +#: .\outlook_auth\cbv\views.py:55 .\project\models.py:56 +#: .\recruitment\forms.py:415 .\recruitment\models.py:340 +#: .\recruitment\templates\candidate\application_form.html:101 +#: .\recruitment\templates\pipeline\form\candidate_drop_down_form.html:19 +#: .\report\templates\report\recruitment_report.html:42 +msgid "Name" msgstr "" -#: .\asset\models.py:48 -#, fuzzy -#| msgid "employee" -msgid "Asset Batch" -msgstr "Employee" - -#: .\asset\models.py:49 .\asset\sidebar.py:24 -#, fuzzy -#| msgid "asset-batch-view" -msgid "Asset Batches" -msgstr "Asset Batches" - -#: .\asset\models.py:61 -msgid "In Use" -msgstr "" - -#: .\asset\models.py:62 -#: .\base\templates\shift_request\htmx\allocation_details.html:77 -#: .\base\templates\shift_request\htmx\group_by.html:399 -#: .\base\templates\shift_request\htmx\group_by.html:461 -#: .\base\templates\shift_request\htmx\requests.html:350 -#: .\base\templates\shift_request\htmx\requests.html:438 -msgid "Available" -msgstr "" - -#: .\asset\models.py:63 -msgid "Not-Available" -msgstr "" - -#: .\asset\models.py:98 -msgid "An asset with this tracking ID already exists." -msgstr "" - -#: .\asset\models.py:171 -msgid "Minor damage" -msgstr "" - -#: .\asset\models.py:172 -msgid "Major damage" -msgstr "" - -#: .\asset\models.py:173 -msgid "Healthy" -msgstr "" - -#: .\asset\models.py:176 .\asset\views.py:1635 .\base\translator.py:249 -msgid "asset" -msgstr "Asset" - -#: .\asset\models.py:217 -#: .\attendance\templates\attendance\own_attendance\attendances.html:48 -#: .\base\methods.py:475 .\base\models.py:962 -#: .\base\templates\shift_request\htmx\requests.html:95 -#: .\employee\templates\leave-tab.html:52 -#: .\employee\templates\tabs\leave-tab.html:61 -#: .\employee\templates\tabs\shift-tab.html:928 .\leave\models.py:134 -#: .\leave\models.py:141 -#: .\leave\templates\leave\compensatory_leave\compensatory_leave_view.html:240 -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:253 -#: .\leave\templates\leave\leave_request\leave-requests.html:23 -#: .\leave\templates\leave\leave_request\leave_requests.html:42 -#: .\leave\templates\leave\user_leave\user_requests.html:30 -#: .\offboarding\models.py:144 -#: .\offboarding\templates\offboarding\resignation\request_cards.html:13 -#: .\payroll\models\models.py:1692 -#: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:34 -#: .\payroll\templates\payroll\reimbursement\request_cards.html:34 -msgid "Requested" -msgstr "" - -#: .\asset\models.py:218 -#: .\attendance\templates\attendance\attendance\group_by.html:185 -#: .\attendance\templates\attendance\attendance\tab_content.html:776 -#: .\base\methods.py:476 .\base\models.py:867 .\base\models.py:962 -#: .\base\models.py:1024 .\base\models.py:1033 -#: .\base\templates\shift_request\htmx\requests.html:91 -#: .\base\templates\shift_request\shift_request_export.html:101 -#: .\base\templates\shift_request\shift_request_nav.html:159 -#: .\base\templates\shift_request\shift_request_view.html:38 -#: .\base\templates\work_type_request\work_type_request_export.html:98 -#: .\base\templates\work_type_request\work_type_request_nav.html:119 -#: .\base\templates\work_type_request\work_type_request_view.html:35 -#: .\employee\templates\documents\requests.html:128 -#: .\employee\templates\leave-tab.html:59 -#: .\employee\templates\tabs\htmx\view_file.html:17 -#: .\employee\templates\tabs\leave-tab.html:68 -#: .\employee\templates\tabs\shift-tab.html:924 .\leave\models.py:135 -#: .\leave\models.py:142 -#: .\leave\templates\leave\compensatory_leave\compensatory_leave_view.html:251 -#: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:155 -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_single_view.html:185 -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:264 -#: .\leave\templates\leave\leave_request\dashboard_leave_requests.html:40 -#: .\leave\templates\leave\leave_request\group_by.html:129 -#: .\leave\templates\leave\leave_request\leave-requests.html:27 -#: .\leave\templates\leave\leave_request\leave_clashes.html:46 -#: .\leave\templates\leave\leave_request\leave_requests.html:36 -#: .\leave\templates\leave\leave_request\leave_requests.html:169 -#: .\leave\templates\leave\leave_request\one_request_view.html:101 -#: .\leave\templates\leave\user_leave\group_by.html:121 -#: .\leave\templates\leave\user_leave\user_requests.html:26 -#: .\leave\templates\leave\user_leave\user_requests.html:122 -#: .\offboarding\models.py:145 -#: .\offboarding\templates\offboarding\resignation\request_cards.html:18 -#: .\payroll\models\models.py:1693 -#: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:23 -#: .\payroll\templates\payroll\reimbursement\request_cards.html:23 -#: .\recruitment\templates\candidate\candidate_self_tracking.html:459 -msgid "Approved" -msgstr "" - -#: .\asset\models.py:219 .\base\methods.py:478 .\base\models.py:960 -#: .\base\templates\shift_request\htmx\requests.html:93 -#: .\base\templates\shift_request\shift_request_view.html:27 -#: .\base\templates\work_type_request\work_type_request_view.html:24 -#: .\employee\templates\documents\requests.html:134 -#: .\employee\templates\tabs\htmx\view_file.html:32 -#: .\employee\templates\tabs\leave-tab.html:47 -#: .\employee\templates\tabs\shift-tab.html:926 .\leave\models.py:137 -#: .\leave\models.py:143 -#: .\leave\templates\leave\compensatory_leave\compensatory_leave_view.html:229 -#: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:175 -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_single_view.html:205 -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:242 -#: .\leave\templates\leave\leave_request\leave_requests.html:24 -#: .\leave\templates\leave\leave_request\one_request_view.html:104 -#: .\leave\templates\leave\user_leave\user_requests.html:18 -#: .\offboarding\models.py:146 -#: .\offboarding\templates\offboarding\resignation\request_cards.html:8 -#: .\payroll\models\models.py:1694 -#: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:12 -#: .\payroll\templates\payroll\reimbursement\request_cards.html:12 -#: .\recruitment\templates\candidate\candidate_self_tracking.html:463 -msgid "Rejected" -msgstr "" - -#: .\asset\models.py:229 -#: .\asset\templates\asset\dashboard_asset_requests.html:12 -#: .\asset\templates\category\asset_category_view.html:51 -#: .\asset\templates\category\asset_category_view.html:86 -#: .\asset\templates\category\asset_empty.html:38 -#: .\asset\templates\request_allocation\asset_request_allocation_list.html:174 -#: .\asset\templates\request_allocation\asset_request_allocation_view.html:83 -#: .\asset\templates\request_allocation\asset_request_creation.html:43 -#: .\asset\templates\request_allocation\group_by.html:123 -#: .\asset\templates\request_allocation\group_by.html:328 -#: .\employee\templates\tabs\asset_request_tab.html:13 -msgid "Asset Category" -msgstr "" - -#: .\asset\sidebar.py:9 .\asset\templates\asset\asset_list.html:4 -#: .\asset\templates\asset\dashboard.html:33 -#: .\asset\templates\batch\asset_batch_number_list.html:20 -#: .\asset\templates\batch\asset_batch_number_list.html:36 -#: .\asset\templates\category\asset_category.html:39 -#: .\employee\templates\employee\profile\profile_view.html:297 -#: .\employee\templates\employee\profile\profile_view.html:306 -#: .\employee\templates\employee\view\individual.html:388 -#: .\employee\templates\employee\view\individual.html:391 -msgid "Assets" -msgstr "" - -#: .\asset\sidebar.py:14 .\attendance\sidebar.py:20 .\recruitment\sidebar.py:20 -#: .\templates\sidebar.html:123 -msgid "Dashboard" -msgstr "" - -#: .\asset\sidebar.py:19 -#, fuzzy -#| msgid "employee" -msgid "Asset View" -msgstr "Employee" - -#: .\asset\sidebar.py:29 -#, fuzzy -#| msgid "asset-request-allocation-view" -msgid "Request and Allocation" -msgstr "Asset Requests & Allocations" - -#: .\asset\sidebar.py:33 -#: .\asset\templates\asset_history\asset_history_filter.html:4 -#: .\asset\templates\asset_history\asset_history_nav.html:7 -#, fuzzy -#| msgid "employee" -msgid "Asset History" -msgstr "Employee" - -#: .\asset\templates\asset\asset_creation.html:30 -msgid "Asset Creation" -msgstr "" - -#: .\asset\templates\asset\asset_creation.html:40 -#: .\asset\templates\asset\asset_update.html:88 -#: .\asset\templates\category\asset_category_view.html:118 -#: .\asset\templates\category\asset_filter_export.html:24 -#: .\asset\templates\request_allocation\asset_request_allocation_view.html:58 -#: .\asset\templates\request_allocation\individual_own.html:30 -msgid "Asset Name" -msgstr "" - -#: .\asset\templates\asset\asset_creation.html:47 -#: .\asset\templates\asset\asset_information.html:57 -#: .\asset\templates\batch\asset_batch_number_creation.html:51 +#: .\asset\models.py:27 .\asset\models.py:58 .\asset\models.py:95 +#: .\asset\models.py:291 .\asset\templates\asset\asset_information.html:57 #: .\asset\templates\batch\asset_batch_number_list.html:19 -#: .\asset\templates\batch\asset_batch_number_update.html:36 -#: .\asset\templates\category\asset_category_creation.html:45 -#: .\asset\templates\category\asset_category_update.html:43 #: .\asset\templates\category\asset_category_view.html:99 -#: .\asset\templates\request_allocation\asset_request_creation.html:50 #: .\asset\templates\request_allocation\individual_own.html:37 #: .\attendance\templates\requests\attendance\individual_view.html:84 -#: .\base\models.py:863 .\base\models.py:1029 +#: .\base\models.py:866 .\base\models.py:1032 #: .\base\templates\shift_request\htmx\allocation_details.html:114 #: .\base\templates\shift_request\htmx\allocation_requests.html:52 #: .\base\templates\shift_request\htmx\group_by.html:46 @@ -1203,13 +1045,13 @@ msgstr "" #: .\base\templates\work_type_request\htmx\group_by.html:96 #: .\base\templates\work_type_request\htmx\requests.html:73 #: .\base\templates\work_type_request\htmx\work_type_request_single_view.html:84 -#: .\base\translator.py:96 .\employee\models.py:751 +#: .\base\translator.py:96 .\employee\models.py:778 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:46 -#: .\employee\templates\documents\document_request_create_form.html:79 #: .\employee\templates\tabs\shift-tab.html:182 #: .\employee\templates\tabs\shift-tab.html:866 #: .\helpdesk\templates\helpdesk\ticket\ticket_individual_view.html:110 -#: .\leave\forms.py:701 .\leave\models.py:559 .\leave\models.py:1124 +#: .\horilla_documents\models.py:53 .\leave\forms.py:408 .\leave\models.py:600 +#: .\leave\models.py:1175 .\leave\models.py:1288 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:42 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:196 #: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:86 @@ -1220,9 +1062,7 @@ msgstr "" #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_single_view.html:94 #: .\leave\templates\leave\one_request_view.html:55 #: .\leave\templates\leave\restrict\restrict.html:66 -#: .\leave\templates\leave\restrict\restrict_form.html:89 -#: .\leave\templates\leave\restrict\restrict_update_form.html:88 -#: .\leave\templates\leave\user_leave\user_request_one.html:95 +#: .\leave\templates\leave\user_leave\user_request_one.html:77 #: .\leave\templates\leave\user_request_form.html:30 #: .\leave\templates\leave\user_request_one.html:41 #: .\offboarding\templates\offboarding\resignation\group_by.html:86 @@ -1230,7 +1070,7 @@ msgstr "" #: .\offboarding\templates\offboarding\resignation\request_list.html:78 #: .\offboarding\templates\offboarding\resignation\request_list.html:81 #: .\onboarding\templates\onboarding\candidate_creation_form.html:4 -#: .\payroll\models\models.py:106 +#: .\payroll\models\models.py:104 #: .\payroll\templates\payroll\loan\records_list.html:89 #: .\payroll\templates\payroll\loan\records_list.html:91 #: .\payroll\templates\payroll\loan\records_list.html:331 @@ -1253,19 +1093,23 @@ msgstr "" #: .\pms\templates\okr\key_result\key_result_update.html:37 #: .\pms\templates\okr\okr_list.html:144 .\pms\templates\okr\okr_list.html:146 #: .\pms\templates\okr\okr_list.html:447 .\pms\templates\okr\okr_list.html:449 +#: .\project\cbv\dashboard.py:81 .\project\cbv\tasks.py:92 +#: .\project\cbv\tasks.py:421 .\project\cbv\timesheet.py:166 +#: .\project\cbv\timesheet.py:494 .\project\models.py:77 +#: .\project\models.py:355 .\project\models.py:557 #: .\project\templates\dashboard\project_details.html:52 #: .\project\templates\project\new\project_list_view.html:77 #: .\project\templates\task\new\task_details.html:54 -#: .\project\templates\task\new\task_list_view.html:124 +#: .\project\templates\task\new\task_list_view.html:112 #: .\project\templates\task\new\task_timesheet.html:61 #: .\project\templates\task_all\task_all_list.html:57 #: .\project\templates\time_sheet\time_sheet_list_view.html:41 #: .\project\templates\time_sheet\time_sheet_single_view.html:48 -#: .\recruitment\forms.py:251 .\recruitment\forms.py:557 -#: .\recruitment\models.py:686 .\recruitment\models.py:841 -#: .\recruitment\models.py:952 +#: .\recruitment\forms.py:256 .\recruitment\forms.py:570 +#: .\recruitment\models.py:684 .\recruitment\models.py:826 +#: .\recruitment\models.py:946 +#: .\recruitment\templates\candidate\interview_list.html:49 #: .\recruitment\templates\candidate\interview_list.html:50 -#: .\recruitment\templates\candidate\interview_list.html:52 #: .\recruitment\templates\pipeline\form\recruitment_update.html:31 #: .\recruitment\templates\recruitment\recruitment_duplicate_form.html:16 #: .\recruitment\templates\recruitment\recruitment_form.html:88 @@ -1275,33 +1119,102 @@ msgstr "" msgid "Description" msgstr "" -#: .\asset\templates\asset\asset_creation.html:55 -#: .\asset\templates\asset\asset_information.html:67 +#: .\asset\models.py:38 .\asset\models.py:287 +#: .\asset\templates\asset\dashboard_asset_requests.html:12 +#: .\asset\templates\category\asset_category_view.html:86 +#: .\asset\templates\request_allocation\asset_request_allocation_list.html:174 +#: .\asset\templates\request_allocation\asset_request_allocation_view.html:83 +#: .\asset\templates\request_allocation\group_by.html:123 +#: .\asset\templates\request_allocation\group_by.html:328 +#: .\employee\templates\tabs\asset_request_tab.html:13 +msgid "Asset Category" +msgstr "" + +#: .\asset\models.py:39 +#, fuzzy +#| msgid "asset-batch-view" +msgid "Asset Categories" +msgstr "Asset Batches" + +#: .\asset\models.py:55 .\asset\templates\batch\asset_batch_number_list.html:18 +#: .\asset\templates\category\asset_filter_export.html:50 +msgid "Batch Number" +msgstr "" + +#: .\asset\models.py:69 +#, fuzzy +#| msgid "employee" +msgid "Asset Batch" +msgstr "Employee" + +#: .\asset\models.py:70 .\asset\sidebar.py:24 +#, fuzzy +#| msgid "asset-batch-view" +msgid "Asset Batches" +msgstr "Asset Batches" + +#: .\asset\models.py:82 +msgid "In Use" +msgstr "" + +#: .\asset\models.py:83 +#: .\base\templates\shift_request\htmx\allocation_details.html:77 +#: .\base\templates\shift_request\htmx\group_by.html:399 +#: .\base\templates\shift_request\htmx\group_by.html:461 +#: .\base\templates\shift_request\htmx\requests.html:350 +#: .\base\templates\shift_request\htmx\requests.html:438 +msgid "Available" +msgstr "" + +#: .\asset\models.py:84 +msgid "Not-Available" +msgstr "" + +#: .\asset\models.py:86 .\asset\templates\category\asset_category_view.html:118 +#: .\asset\templates\category\asset_filter_export.html:24 +#: .\asset\templates\request_allocation\asset_request_allocation_view.html:58 +#: .\asset\templates\request_allocation\individual_own.html:30 +#: .\report\templates\report\asset_report.html:47 +msgid "Asset Name" +msgstr "" + +#: .\asset\models.py:92 +msgid "Current User" +msgstr "" + +#: .\asset\models.py:98 .\asset\templates\asset\asset_information.html:67 #: .\asset\templates\asset\asset_list.html:28 -#: .\asset\templates\asset\asset_update.html:120 #: .\asset\templates\category\asset_category_view.html:122 #: .\asset\templates\category\asset_filter_export.html:34 #: .\asset\templates\request_allocation\individual_own.html:46 +#: .\report\templates\report\asset_report.html:51 msgid "Tracking Id" msgstr "" -#: .\asset\templates\asset\asset_creation.html:64 -#: .\asset\templates\asset\asset_information.html:73 -#: .\asset\templates\asset\asset_update.html:142 +#: .\asset\models.py:100 .\asset\templates\asset\asset_information.html:73 #: .\asset\templates\category\asset_category_view.html:129 +#: .\report\templates\report\asset_report.html:58 msgid "Purchase Date" msgstr "" -#: .\asset\templates\asset\asset_creation.html:73 -#: .\asset\templates\asset\asset_information.html:80 -#: .\asset\templates\asset\asset_update.html:152 +#: .\asset\models.py:102 .\asset\templates\asset\asset_information.html:80 msgid "Cost" msgstr "" -#: .\asset\templates\asset\asset_creation.html:84 -#: .\asset\templates\asset\asset_information.html:87 +#: .\asset\models.py:105 .\asset\templates\asset\asset_information.html:105 +#: .\asset\templates\category\asset_category_view.html:145 +#: .\asset\templates\category\asset_filter_export.html:44 +#: .\asset\templates\request_allocation\asset_request_allocation_list.html:36 +#: .\asset\templates\request_allocation\group_by.html:228 +#: .\asset\templates\request_allocation\group_by.html:426 +#: .\asset\templates\request_allocation\individual_own.html:84 +#: .\asset\templates\request_allocation\individual_request.html:87 +#: .\report\templates\report\asset_report.html:74 +msgid "Category" +msgstr "" + +#: .\asset\models.py:111 .\asset\templates\asset\asset_information.html:87 #: .\asset\templates\asset\asset_list.html:27 -#: .\asset\templates\asset\asset_update.html:163 #: .\asset\templates\asset\dashboard_asset_requests.html:14 #: .\asset\templates\asset_history\asset_history_filter.html:38 #: .\asset\templates\category\asset_category_view.html:151 @@ -1337,8 +1250,8 @@ msgstr "" #: .\employee\templates\tabs\shift-tab.html:427 #: .\employee\templates\tabs\shift-tab.html:657 #: .\employee\templates\tabs\shift-tab.html:869 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:110 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:124 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:96 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:105 #: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:119 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:48 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:378 @@ -1346,9 +1259,10 @@ msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:46 #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:359 #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:754 +#: .\horilla_documents\models.py:92 #: .\horillavenv\Lib\site-packages\django_apscheduler\admin.py:159 #: .\leave\filters.py:373 .\leave\filters.py:394 .\leave\filters.py:432 -#: .\leave\models.py:570 +#: .\leave\models.py:611 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:41 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:195 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_view.html:126 @@ -1367,11 +1281,10 @@ msgstr "" #: .\leave\templates\leave\leave_request\leave_requests.html:97 #: .\leave\templates\leave\leave_request\leave_requests_export_filter.html:74 #: .\leave\templates\leave\leave_request_view.html:17 -#: .\leave\templates\leave\request_view.html:67 #: .\leave\templates\leave\user_leave\group_by.html:76 #: .\leave\templates\leave\user_leave\user_request_view.html:129 #: .\leave\templates\leave\user_leave\user_requests.html:70 -#: .\leave\templates\leave\user_request_view.html:67 +#: .\offboarding\templates\offboarding\dashboard\employee_feedback_table.html:18 #: .\offboarding\templates\offboarding\pipeline\filter.html:82 #: .\offboarding\templates\offboarding\pipeline\filter.html:103 #: .\offboarding\templates\offboarding\resignation\filter.html:24 @@ -1379,8 +1292,8 @@ msgstr "" #: .\offboarding\templates\offboarding\resignation\group_by.html:82 #: .\offboarding\templates\offboarding\resignation\request_list.html:69 #: .\offboarding\templates\offboarding\resignation\request_list.html:74 -#: .\payroll\filters.py:367 .\payroll\filters.py:393 -#: .\payroll\forms\component_forms.py:495 .\payroll\models\models.py:198 +#: .\payroll\filters.py:438 .\payroll\filters.py:464 +#: .\payroll\forms\component_forms.py:505 .\payroll\models\models.py:196 #: .\payroll\templates\payroll\contract\contract_export_filter.html:79 #: .\payroll\templates\payroll\contract\contract_list.html:65 #: .\payroll\templates\payroll\contract\contract_single_view.html:160 @@ -1393,16 +1306,17 @@ msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:91 #: .\payroll\templates\payroll\payslip\group_payslips.html:53 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:114 -#: .\payroll\templates\payroll\payslip\payslip_table.html:100 +#: .\payroll\templates\payroll\payslip\payslip_table.html:71 #: .\payroll\templates\payroll\reimbursement\filter.html:23 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:109 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:445 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:776 #: .\payroll\templates\payroll\reimbursement\reimbursenent_individual.html:67 -#: .\pms\templates\feedback\feedback_detailed_view.html:246 -#: .\pms\templates\feedback\feedback_detailed_view.html:296 -#: .\pms\templates\feedback\feedback_detailed_view.html:361 -#: .\pms\templates\feedback\feedback_detailed_view.html:412 +#: .\pms\templates\feedback\feedback_detailed_view.html:260 +#: .\pms\templates\feedback\feedback_detailed_view.html:310 +#: .\pms\templates\feedback\feedback_detailed_view.html:377 +#: .\pms\templates\feedback\feedback_detailed_view.html:428 +#: .\pms\templates\feedback\feedback_detailed_view.html:479 #: .\pms\templates\feedback\feedback_list.html:100 #: .\pms\templates\feedback\feedback_list.html:263 #: .\pms\templates\feedback\feedback_list.html:399 @@ -1418,56 +1332,423 @@ msgstr "" #: .\pms\templates\okr\objective_list.html:93 #: .\pms\templates\okr\objective_list.html:312 #: .\pms\templates\okr\objective_list_view.html:78 +#: .\project\cbv\dashboard.py:76 .\project\cbv\projects.py:138 +#: .\project\cbv\tasks.py:91 .\project\cbv\tasks.py:243 +#: .\project\cbv\tasks.py:419 .\project\cbv\timesheet.py:112 +#: .\project\cbv\timesheet.py:165 .\project\cbv\timesheet.py:493 +#: .\project\models.py:70 .\project\models.py:348 .\project\models.py:555 +#: .\project\templates\cbv\tasks\task_filter.html:26 +#: .\project\templates\cbv\timesheet\filter.html:13 #: .\project\templates\dashboard\project_details.html:28 #: .\project\templates\project\new\filter_project.html:21 #: .\project\templates\project\new\project_kanban_view.html:90 #: .\project\templates\project\new\project_list_view.html:73 -#: .\project\templates\task\new\filter_task.html:25 +#: .\project\templates\task\new\filter_task.html:24 #: .\project\templates\task\new\task_details.html:43 -#: .\project\templates\task\new\task_list_view.html:121 +#: .\project\templates\task\new\task_kanban_view.html:125 +#: .\project\templates\task\new\task_list_view.html:109 #: .\project\templates\task\new\task_timesheet.html:60 #: .\project\templates\task_all\task_all_filter.html:25 #: .\project\templates\task_all\task_all_list.html:56 #: .\project\templates\time_sheet\filters.html:14 #: .\project\templates\time_sheet\time_sheet_list_view.html:40 #: .\project\templates\time_sheet\time_sheet_single_view.html:42 -#: .\recruitment\templates\candidate\interview_list.html:53 -#: .\recruitment\templates\candidate\interview_list.html:55 +#: .\recruitment\templates\candidate\interview_list.html:51 +#: .\recruitment\templates\candidate\interview_list.html:52 #: .\recruitment\templates\candidate\mail_log.html:9 #: .\recruitment\templates\recruitment\recruitment_component.html:86 #: .\recruitment\templates\recruitment\recruitment_component.html:88 +#: .\report\templates\report\asset_report.html:80 +#: .\report\templates\report\leave_report.html:70 +#: .\report\templates\report\payroll_report.html:54 +#: .\report\templates\report\pms_report.html:102 +#: .\report\templates\report\pms_report.html:126 msgid "Status" msgstr "" -#: .\asset\templates\asset\asset_creation.html:93 -#: .\asset\templates\asset\asset_information.html:99 +#: .\asset\models.py:118 .\asset\templates\asset\asset_information.html:99 #: .\asset\templates\asset\asset_list.html:29 -#: .\asset\templates\asset\asset_update.html:173 #: .\asset\templates\request_allocation\individual_own.html:78 msgid "Batch No" msgstr "" -#: .\asset\templates\asset\asset_creation.html:104 -#: .\asset\templates\asset\asset_update.html:184 +#: .\asset\models.py:120 #: .\asset\templates\request_allocation\asset_request_allocation_list.html:37 -#: .\employee\templates\tabs\htmx\document_form.html:46 -#: .\horilla_documents\models.py:78 +#: .\horilla_documents\models.py:96 msgid "Expiry Date" msgstr "" -#: .\asset\templates\asset\asset_creation.html:113 -#: .\employee\templates\tabs\htmx\document_form.html:56 +#: .\asset\models.py:122 .\employee\templates\tabs\htmx\document_form.html:56 msgid "Notify Before (days)" msgstr "" +#: .\asset\models.py:128 .\asset\models.py:222 +#: .\asset\templates\asset\asset_list.html:26 +#: .\asset\templates\asset\asset_report_form.html:48 +#: .\asset\templates\asset\dashboard_allocated_assets.html:9 +#: .\asset\templates\asset_history\asset_history_filter.html:20 +#: .\asset\templates\asset_history\asset_history_list.html:22 +#: .\asset\templates\asset_history\asset_history_single_view.html:88 +#: .\asset\templates\asset_history\group_by.html:31 +#: .\asset\templates\category\asset_category_view.html:111 +#: .\asset\templates\category\asset_filter_export.html:19 +#: .\asset\templates\request_allocation\asset_request_allocation_list.html:35 +#: .\asset\templates\request_allocation\asset_request_allocation_list.html:341 +#: .\asset\templates\request_allocation\asset_request_allocation_view.html:23 +#: .\asset\templates\request_allocation\asset_request_allocation_view.html:53 +#: .\asset\templates\request_allocation\asset_request_allocation_view.html:113 +#: .\asset\templates\request_allocation\asset_request_allocation_view.html:229 +#: .\asset\templates\request_allocation\group_by.html:11 +#: .\asset\templates\request_allocation\group_by.html:534 +#: .\asset\templates\request_allocation\group_by.html:642 +#: .\asset\templates\request_allocation\group_by.html:733 +#: .\asset\templates\request_allocation\group_by.html:841 +#: ⁨.\asset\templates\request_allocation\individual allocation.html⁩:107 +#: .\employee\templates\asset-tab.html:7 +#: .\employee\templates\tabs\asset-tab.html:21 +#: .\employee\templates\tabs\profile-asset-tab.html:19 +#: .\offboarding\templates\offboarding\dashboard\asset_returned_table.html:17 +#: .\report\templates\report\asset_report.html:42 +msgid "Asset" +msgstr "" + +#: .\asset\models.py:129 .\asset\sidebar.py:9 +#: .\asset\templates\asset\asset_list.html:4 +#: .\asset\templates\asset\dashboard.html:33 +#: .\asset\templates\batch\asset_batch_number_list.html:20 +#: .\asset\templates\batch\asset_batch_number_list.html:36 +#: .\asset\templates\category\asset_category.html:39 +#: .\employee\templates\employee\profile\profile_view.html:209 +#: .\employee\templates\employee\profile\profile_view.html:218 +#: .\employee\templates\employee\view\individual.html:388 +#: .\employee\templates\employee\view\individual.html:391 +msgid "Assets" +msgstr "" + +#: .\asset\models.py:144 +msgid "An asset with this tracking ID already exists." +msgstr "" + +#: .\asset\models.py:217 +msgid "Minor damage" +msgstr "" + +#: .\asset\models.py:218 +msgid "Major damage" +msgstr "" + +#: .\asset\models.py:219 +msgid "Healthy" +msgstr "" + +#: .\asset\models.py:228 +msgid "Assigned To" +msgstr "" + +#: .\asset\models.py:235 +#: .\asset\templates\request_allocation\individual_own.html:71 +msgid "Assigned By" +msgstr "" + +#: .\asset\models.py:237 +#: .\asset\templates\asset_history\asset_history_filter.html:48 +#: .\asset\templates\request_allocation\asset_request_allocation_list.html:347 +#: .\asset\templates\request_allocation\asset_request_allocation_list.html:349 +#: .\asset\templates\request_allocation\asset_request_allocation_view.html:129 +#: .\asset\templates\request_allocation\group_by.html:536 +#: .\asset\templates\request_allocation\group_by.html:735 +msgid "Return Date" +msgstr "" + +#: .\asset\models.py:238 +msgid "Return Condition" +msgstr "" + +#: .\asset\models.py:240 +#: .\asset\templates\asset_history\asset_history_list.html:26 +#: .\asset\templates\asset_history\group_by.html:51 +msgid "Return Status" +msgstr "" + +#: .\asset\models.py:261 +#: .\asset\templates\request_allocation\asset_request_allocation_view.html:103 +#: .\asset\templates\request_allocation\asset_request_allocation_view.html:187 +#: .\asset\templates\request_allocation\asset_request_allocation_view.html:241 +msgid "Asset Allocation" +msgstr "" + +#: .\asset\models.py:262 +#, fuzzy +#| msgid "asset-request-allocation-view" +msgid "Asset Allocations" +msgstr "Asset Requests & Allocations" + +#: .\asset\models.py:274 +#: .\attendance\templates\attendance\own_attendance\attendances.html:48 +#: .\base\methods.py:534 .\base\models.py:965 +#: .\base\templates\shift_request\htmx\requests.html:95 +#: .\employee\templates\leave-tab.html:52 +#: .\employee\templates\tabs\leave-tab.html:61 +#: .\employee\templates\tabs\shift-tab.html:928 .\leave\models.py:128 +#: .\leave\models.py:135 +#: .\leave\templates\leave\compensatory_leave\compensatory_leave_view.html:240 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:253 +#: .\leave\templates\leave\leave_request\leave-requests.html:23 +#: .\leave\templates\leave\leave_request\leave_requests.html:42 +#: .\leave\templates\leave\user_leave\user_requests.html:30 +#: .\offboarding\models.py:144 +#: .\offboarding\templates\offboarding\resignation\request_cards.html:13 +#: .\payroll\models\models.py:1580 +#: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:34 +#: .\payroll\templates\payroll\reimbursement\request_cards.html:34 +msgid "Requested" +msgstr "" + +#: .\asset\models.py:275 +#: .\attendance\templates\attendance\attendance\group_by.html:185 +#: .\attendance\templates\attendance\attendance\tab_content.html:776 +#: .\base\methods.py:535 .\base\models.py:870 .\base\models.py:965 +#: .\base\models.py:1027 .\base\models.py:1036 +#: .\base\templates\shift_request\htmx\requests.html:91 +#: .\base\templates\shift_request\shift_request_export.html:101 +#: .\base\templates\shift_request\shift_request_nav.html:159 +#: .\base\templates\shift_request\shift_request_view.html:38 +#: .\base\templates\work_type_request\work_type_request_export.html:98 +#: .\base\templates\work_type_request\work_type_request_nav.html:119 +#: .\base\templates\work_type_request\work_type_request_view.html:35 +#: .\employee\templates\documents\requests.html:95 +#: .\employee\templates\leave-tab.html:59 +#: .\employee\templates\tabs\htmx\view_file.html:17 +#: .\employee\templates\tabs\leave-tab.html:68 +#: .\employee\templates\tabs\shift-tab.html:924 .\leave\models.py:129 +#: .\leave\models.py:136 +#: .\leave\templates\leave\compensatory_leave\compensatory_leave_view.html:251 +#: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:155 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_single_view.html:185 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:264 +#: .\leave\templates\leave\leave_request\dashboard_leave_requests.html:40 +#: .\leave\templates\leave\leave_request\group_by.html:129 +#: .\leave\templates\leave\leave_request\leave-requests.html:27 +#: .\leave\templates\leave\leave_request\leave_clashes.html:46 +#: .\leave\templates\leave\leave_request\leave_requests.html:36 +#: .\leave\templates\leave\leave_request\leave_requests.html:169 +#: .\leave\templates\leave\leave_request\one_request_view.html:101 +#: .\leave\templates\leave\user_leave\group_by.html:121 +#: .\leave\templates\leave\user_leave\user_requests.html:26 +#: .\leave\templates\leave\user_leave\user_requests.html:122 +#: .\offboarding\models.py:145 +#: .\offboarding\templates\offboarding\resignation\request_cards.html:18 +#: .\payroll\models\models.py:1581 +#: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:23 +#: .\payroll\templates\payroll\reimbursement\request_cards.html:23 +#: .\recruitment\templates\candidate\candidate_self_tracking.html:459 +msgid "Approved" +msgstr "" + +#: .\asset\models.py:276 .\base\methods.py:537 .\base\models.py:963 +#: .\base\templates\shift_request\htmx\requests.html:93 +#: .\base\templates\shift_request\shift_request_view.html:27 +#: .\base\templates\work_type_request\work_type_request_view.html:24 +#: .\employee\templates\documents\requests.html:100 +#: .\employee\templates\tabs\htmx\view_file.html:32 +#: .\employee\templates\tabs\leave-tab.html:47 +#: .\employee\templates\tabs\shift-tab.html:926 .\leave\models.py:131 +#: .\leave\models.py:137 +#: .\leave\templates\leave\compensatory_leave\compensatory_leave_view.html:229 +#: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:175 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_single_view.html:205 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:242 +#: .\leave\templates\leave\leave_request\leave_requests.html:24 +#: .\leave\templates\leave\leave_request\one_request_view.html:104 +#: .\leave\templates\leave\user_leave\user_requests.html:18 +#: .\offboarding\models.py:146 +#: .\offboarding\templates\offboarding\resignation\request_cards.html:8 +#: .\payroll\models\models.py:1582 +#: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:12 +#: .\payroll\templates\payroll\reimbursement\request_cards.html:12 +#: .\recruitment\templates\candidate\candidate_self_tracking.html:463 +msgid "Rejected" +msgstr "" + +#: .\asset\models.py:284 +msgid "Requesting User" +msgstr "" + +#: .\asset\models.py:304 +#: .\asset\templates\request_allocation\asset_request_allocation_view.html:73 +#: .\asset\templates\request_allocation\asset_request_allocation_view.html:161 +#: .\asset\templates\request_allocation\asset_request_allocation_view.html:231 +msgid "Asset Request" +msgstr "" + +#: .\asset\models.py:305 +#, fuzzy +#| msgid "user-request-view" +msgid "Asset Requests" +msgstr "My Leave Requests" + +#: .\asset\sidebar.py:14 .\attendance\sidebar.py:20 .\offboarding\sidebar.py:21 +#: .\recruitment\sidebar.py:20 .\templates\sidebar.html:138 +msgid "Dashboard" +msgstr "" + +#: .\asset\sidebar.py:19 +#, fuzzy +#| msgid "employee" +msgid "Asset View" +msgstr "Employee" + +#: .\asset\sidebar.py:29 +#, fuzzy +#| msgid "asset-request-allocation-view" +msgid "Request and Allocation" +msgstr "Asset Requests & Allocations" + +#: .\asset\sidebar.py:33 +#: .\asset\templates\asset_history\asset_history_filter.html:4 +#: .\asset\templates\asset_history\asset_history_nav.html:7 +#, fuzzy +#| msgid "employee" +msgid "Asset History" +msgstr "Employee" + +#: .\asset\templates\asset\asset_creation.html:30 +#: .\asset\templates\batch\asset_batch_empty.html:18 +#: .\asset\templates\batch\asset_batch_number_creation.html:13 +#: .\asset\templates\batch\asset_batch_number_view.html:44 +#: .\asset\templates\category\asset_category.html:60 +#: .\asset\templates\category\asset_category_form.html:11 +#: .\asset\templates\category\asset_category_view.html:198 +#: .\asset\templates\category\asset_empty.html:43 +#: .\attendance\templates\attendance\attendance\attendance_empty.html:84 +#: .\attendance\templates\attendance\attendance\attendance_nav.html:255 +#: .\attendance\templates\attendance\attendance_account\nav.html:159 +#: .\attendance\templates\attendance\attendance_account\overtime_empty.html:18 +#: .\attendance\templates\attendance\break_point\condition.html:13 +#: .\attendance\templates\attendance\grace_time\grace_time_table.html:22 +#: .\attendance\templates\attendance\grace_time\grace_time_table.html:137 +#: .\attendance\templates\requests\attendance\nav.html:145 +#: .\attendance\templates\requests\attendance\requests_empty.html:59 +#: .\base\templates\base\action_type\action_type.html:15 +#: .\base\templates\base\auth\group_accordion.html:49 +#: .\base\templates\base\company\company.html:17 +#: .\base\templates\base\company\company_form.html:5 +#: .\base\templates\base\department\department.html:11 +#: .\base\templates\base\department\department_form.html:4 +#: .\base\templates\base\employee_type\employee_type.html:17 +#: .\base\templates\base\employee_type\employee_type_form.html:4 +#: .\base\templates\base\job_position\job_position.html:15 +#: .\base\templates\base\job_position\job_position_form.html:4 +#: .\base\templates\base\job_role\job_role.html:15 +#: .\base\templates\base\job_role\job_role_form.html:4 +#: .\base\templates\base\mail_server\mail_server.html:11 +#: .\base\templates\base\rotating_shift\htmx\rotating_shift_form.html:4 +#: .\base\templates\base\rotating_shift\rotating_shift.html:18 +#: .\base\templates\base\rotating_work_type\htmx\rotating_work_type_form.html:4 +#: .\base\templates\base\rotating_work_type\rotating_work_type.html:18 +#: .\base\templates\base\shift\schedule.html:17 +#: .\base\templates\base\shift\schedule_form.html:4 +#: .\base\templates\base\shift\shift.html:17 +#: .\base\templates\base\shift\shift_form.html:4 +#: .\base\templates\base\tags\employee_tags.html:20 +#: .\base\templates\base\tags\helpdesk_tags.html:20 +#: .\base\templates\base\tags\tags.html:21 +#: .\base\templates\base\ticket_type\ticket_type.html:17 +#: .\base\templates\base\work_type\work_type.html:17 +#: .\base\templates\base\work_type\work_type_form.html:4 +#: .\base\templates\company_leave\company_leave_view.html:67 +#: .\base\templates\holiday\holiday_view.html:87 +#: .\base\templates\mail\empty_mail_template.html:29 +#: .\base\templates\mail\view_templates.html:27 +#: .\base\templates\multi_approval_condition\condition.html:31 +#: .\base\templates\shift_request\htmx\shift_request_create_form.html:4 +#: .\base\templates\shift_request\shift_request_nav.html:342 +#: .\base\templates\work_type_request\work_type_request_nav.html:271 +#: .\employee\templates\documents\document_nav.html:236 +#: .\employee\templates\employee_nav.html:294 +#: .\employee\templates\policies\nav.html:18 +#: .\employee\templates\tabs\document_tab.html:16 +#: .\employee\templates\tabs\profile-asset-tab.html:9 +#: .\employee\templates\tabs\profile-attendance-tab.html:9 +#: .\employee\templates\tabs\resignation.html:6 +#: .\helpdesk\templates\department_managers\department_managers.html:17 +#: .\helpdesk\templates\department_managers\department_managers_form.html:9 +#: .\helpdesk\templates\helpdesk\faq\faq_category_create.html:17 +#: .\helpdesk\templates\helpdesk\faq\faq_category_nav.html:80 +#: .\helpdesk\templates\helpdesk\faq\faq_create.html:15 +#: .\helpdesk\templates\helpdesk\faq\faq_nav.html:97 +#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:4 +#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:96 +#: .\helpdesk\templates\helpdesk\ticket\ticket_nav.html:100 +#: .\horilla_views\templates\generic\horilla_nav.html:229 +#: .\leave\templates\leave\accrual_plan_view.html:3 +#: .\leave\templates\leave\company_leave\company_leave_view.html:65 +#: .\leave\templates\leave\compensatory_leave\compensatory_leave_view.html:207 +#: .\leave\templates\leave\holiday\holiday_view.html:128 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_create.html:13 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:220 +#: .\leave\templates\leave\leave_my_requests_view.html:3 +#: .\leave\templates\leave\leave_request\request_view.html:175 +#: .\leave\templates\leave\leave_request_view.html:3 +#: .\leave\templates\leave\leave_type\leave_type_creation.html:263 +#: .\leave\templates\leave\leave_type\leave_type_empty_view.html:21 +#: .\leave\templates\leave\leave_type\leave_type_view.html:55 +#: .\leave\templates\leave\leave_type_creation.html:185 +#: .\leave\templates\leave\restrict\view_restrict.html:67 +#: .\leave\templates\leave\user_leave\user_request_view.html:261 +#: .\offboarding\templates\offboarding\pipeline\nav.html:21 +#: .\offboarding\templates\offboarding\resignation\nav.html:88 +#: .\onboarding\templates\onboarding\candidate_creation.html:82 +#: .\onboarding\templates\onboarding\candidates_view.html:207 +#: .\onboarding\templates\onboarding\stage_form.html:15 +#: .\onboarding\templates\onboarding\task_form.html:15 +#: .\payroll\templates\payroll\allowance\view_allowance.html:72 +#: .\payroll\templates\payroll\contract\contract_empty.html:14 +#: .\payroll\templates\payroll\contract\contract_view.html:179 +#: .\payroll\templates\payroll\contribution\contribution_deduction_view.html:31 +#: .\payroll\templates\payroll\deduction\view_deduction.html:73 +#: .\payroll\templates\payroll\loan\nav.html:83 +#: .\payroll\templates\payroll\payslip\view_payslips.html:236 +#: .\payroll\templates\payroll\reimbursement\nav.html:52 +#: .\payroll\templates\payroll\settings\auto_payslip_settings.html:18 +#: .\payroll\templates\payroll\tax\filing_status_list.html:56 +#: .\payroll\templates\payroll\tax\filing_status_view.html:31 +#: .\pms\templates\bonus\view_bonus_settings.html:17 +#: .\pms\templates\feedback\feedback_empty.html:48 +#: .\pms\templates\feedback\feedback_list_view.html:199 +#: .\pms\templates\feedback\question_template\question_template_view.html:22 +#: .\pms\templates\meetings\meetings_nav.html:93 +#: .\pms\templates\okr\key_result\kr_nav.html:124 +#: .\pms\templates\okr\objective_empty.html:27 +#: .\pms\templates\okr\objective_list_view.html:281 +#: .\pms\templates\okr\okr_nav.html:235 +#: .\pms\templates\period\period_view.html:28 .\project\cbv\projects.py:281 +#: .\project\templates\project\new\navbar.html:249 +#: .\project\templates\task\new\task_navbar.html:64 +#: .\project\templates\time_sheet\time_sheet_navbar.html:147 +#: .\recruitment\templates\candidate\candidate_empty.html:20 +#: .\recruitment\templates\candidate\candidate_nav.html:253 +#: .\recruitment\templates\candidate\document.html:59 +#: .\recruitment\templates\candidate\interview_nav.html:100 +#: .\recruitment\templates\recruitment\nav.html:35 +#: .\recruitment\templates\recruitment\recruitment_empty.html:18 +#: .\recruitment\templates\settings\reject_reasons.html:10 +#: .\recruitment\templates\settings\skills\skills_view.html:10 +#: .\recruitment\templates\skill_zone\skill_zone_form.html:23 +#: .\recruitment\templates\skill_zone\skill_zone_nav.html:140 +#: .\recruitment\templates\skill_zone_cand\skill_zone_cand_nav.html:195 +#: .\recruitment\templates\stage\nav.html:69 +#: .\recruitment\templates\stage\stage_empty.html:16 +msgid "Create" +msgstr "" + #: .\asset\templates\asset\asset_creation.html:122 #: .\asset\templates\asset\asset_report_form.html:60 -#: .\asset\templates\asset\asset_return_form.html:84 -#: .\asset\templates\asset\asset_update.html:208 -#: .\asset\templates\batch\asset_batch_number_creation.html:57 -#: .\asset\templates\batch\asset_batch_number_update.html:41 -#: .\asset\templates\category\asset_category_creation.html:56 -#: .\asset\templates\category\asset_category_update.html:55 +#: .\asset\templates\asset\asset_return_form.html:55 +#: .\asset\templates\asset\asset_update.html:210 +#: .\asset\templates\batch\asset_batch_number_creation.html:38 +#: .\asset\templates\batch\asset_batch_number_update.html:42 +#: .\asset\templates\category\asset_category_form.html:40 #: .\asset\templates\request_allocation\asset_allocation_creation.html:57 #: .\asset\templates\request_allocation\asset_approve.html:32 #: .\asset\templates\request_allocation\asset_request_creation.html:57 @@ -1479,45 +1760,42 @@ msgstr "" #: .\attendance\templates\attendance\penalty\form.html:92 #: .\attendance\templates\attendance_form.html:52 #: .\attendance\templates\requests\attendance\attendance_request_comment_form.html:51 -#: .\base\templates\announcement\announcement_form.html:33 -#: .\base\templates\announcement\announcement_update_form.html:35 +#: .\base\templates\announcement\announcement_form.html:34 +#: .\base\templates\announcement\announcement_update_form.html:37 #: .\base\templates\base\action_type\action_type_form.html:36 #: .\base\templates\base\audit_tag\audit_tag_form.html:53 #: .\base\templates\base\auth\group_assign.html:11 #: .\base\templates\base\auth\group_user_assign.html:9 #: .\base\templates\base\auth\permission_assign.html:13 -#: .\base\templates\base\company\company_form.html:61 -#: .\base\templates\base\department\department_form.html:27 +#: .\base\templates\base\company\company_form.html:82 +#: .\base\templates\base\department\department_form.html:15 #: .\base\templates\base\employee_tag\employee_tag_form.html:37 -#: .\base\templates\base\employee_type\employee_type_form.html:33 -#: .\base\templates\base\job_position\job_position_form.html:45 -#: .\base\templates\base\job_role\job_role_form.html:42 +#: .\base\templates\base\employee_type\employee_type_form.html:18 +#: .\base\templates\base\job_position\job_position_form.html:31 +#: .\base\templates\base\job_role\job_role_form.html:27 #: .\base\templates\base\rotating_shift\htmx\rotating_shift_assign_form.html:19 #: .\base\templates\base\rotating_shift\htmx\rotating_shift_assign_update_form.html:25 -#: .\base\templates\base\rotating_shift\htmx\rotating_shift_form.html:30 +#: .\base\templates\base\rotating_shift\htmx\rotating_shift_form.html:18 #: .\base\templates\base\rotating_work_type\htmx\rotating_work_type_assign_form.html:19 #: .\base\templates\base\rotating_work_type\htmx\rotating_work_type_assign_update_form.html:26 -#: .\base\templates\base\rotating_work_type\htmx\rotating_work_type_form.html:28 -#: .\base\templates\base\shift\shift_form.html:33 -#: .\base\templates\base\work_type\work_type_form.html:33 +#: .\base\templates\base\rotating_work_type\htmx\rotating_work_type_form.html:17 +#: .\base\templates\base\shift\shift_form.html:18 +#: .\base\templates\base\work_type\work_type_form.html:17 #: .\base\templates\common_form.html:44 #: .\base\templates\company_leave\company_leave_creation_form.html:47 -#: .\base\templates\company_leave\company_leave_update_form.html:31 +#: .\base\templates\company_leave\company_leave_update_form.html:47 #: .\base\templates\holiday\holiday_form.html:80 -#: .\base\templates\holiday\holiday_update_form.html:43 +#: .\base\templates\holiday\holiday_update_form.html:66 #: .\base\templates\horilla_form.html:48 -#: .\base\templates\mail\empty_mail_template.html:54 -#: .\base\templates\mail\empty_mail_template.html:68 -#: .\base\templates\mail\view_templates.html:74 -#: .\base\templates\mail\view_templates.html:88 +#: .\base\templates\mail\htmx\form.html:62 #: .\base\templates\shift_request\htmx\shift_request_comment_form.html:25 #: .\base\templates\work_type_request\htmx\worktype_request_comment_form.html:25 -#: .\biometric\templates\biometric\add_biometric_device.html:82 -#: .\biometric\templates\biometric\edit_biometric_device.html:81 +#: .\biometric\templates\biometric\add_biometric_device.html:132 +#: .\biometric\templates\biometric\edit_biometric_device.html:113 #: .\biometric\templates\biometric\edit_cosec_user.html:58 #: .\dynamic_fields\templates\dynamic_fields\common\form.html:80 -#: .\employee\templates\documents\document_nav.html:268 -#: .\employee\templates\documents\document_request_create_form.html:87 +#: .\employee\templates\documents\document_reject_reason.html:24 +#: .\employee\templates\documents\document_request_create_form.html:72 #: .\employee\templates\employee\profile\bank_info.html:83 #: .\employee\templates\employee\profile\personal_info.html:210 #: .\employee\templates\employee\update_form\bank_details.html:14 @@ -1527,13 +1805,13 @@ msgstr "" #: .\employee\templates\tabs\htmx\document_form.html:77 #: .\employee\templates\tabs\htmx\reject_form.html:19 #: .\employee\templates\tabs\update_note.html:15 -#: .\helpdesk\templates\department_managers\department_managers_form.html:43 -#: .\helpdesk\templates\helpdesk\faq\faq_category_create.html:30 -#: .\helpdesk\templates\helpdesk\faq\faq_create.html:28 +#: .\helpdesk\templates\department_managers\department_managers_form.html:37 +#: .\helpdesk\templates\helpdesk\faq\faq_category_create.html:31 +#: .\helpdesk\templates\helpdesk\faq\faq_create.html:29 #: .\helpdesk\templates\helpdesk\ticket\forms\add_tag.html:55 #: .\helpdesk\templates\helpdesk\ticket\forms\add_tag.html:501 -#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:115 -#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:180 +#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:79 +#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:129 #: .\horilla_audit\templates\horilla_audit\horilla_audit_log.html:33 #: .\horilla_views\templates\generic\form.html:80 #: .\leave\templates\leave\company_leave\company_leave_creation_form.html:52 @@ -1542,14 +1820,14 @@ msgstr "" #: .\leave\templates\leave\holiday\holiday_update_form.html:59 #: .\leave\templates\leave\leave_allocation_request\allocation_request_comment_form.html:50 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_reject_form.html:35 -#: .\leave\templates\leave\leave_assign\available_update_form.html:57 +#: .\leave\templates\leave\leave_assign\available_update_form.html:47 #: .\leave\templates\leave\leave_assign\leave_assign_form.html:50 #: .\leave\templates\leave\leave_request\cancel_form.html:23 #: .\leave\templates\leave\leave_request\leave_request_comment_form.html:52 #: .\leave\templates\leave\leave_request\penalty\form.html:77 -#: .\leave\templates\leave\leave_request\request_view.html:256 +#: .\leave\templates\leave\leave_request\request_view.html:250 #: .\leave\templates\leave\leave_request\user_cancel_form.html:35 -#: .\leave\templates\leave\restrict\restrict_form.html:101 +#: .\leave\templates\leave\restrict\restrict_form.html:102 #: .\leave\templates\leave\restrict\restrict_update_form.html:100 #: .\payroll\templates\contract_form.html:68 #: .\payroll\templates\one_time_deduction.html:48 @@ -1562,13 +1840,12 @@ msgstr "" #: .\payroll\templates\payroll\tax\tax_bracket_edit.html:44 #: .\pms\templates\anonymous\anonymous_feedback_form.html:71 #: .\pms\templates\feedback\answer\feedback_answer.html:175 -#: .\pms\templates\feedback\feedback_creation.html:164 +#: .\pms\templates\feedback\feedback_creation.html:167 #: .\pms\templates\feedback\feedback_update.html:128 -#: .\pms\templates\feedback\question\question_all.html:105 -#: .\pms\templates\feedback\question_template\question_template_empty.html:69 +#: .\pms\templates\feedback\question\question_all.html:98 #: .\pms\templates\meetings\meeting_answer.html:283 #: .\pms\templates\meetings\mom_form.html:26 -#: .\pms\templates\okr\create_period.html:52 +#: .\pms\templates\okr\create_period.html:46 #: .\pms\templates\okr\key_result\key_result_creation.html:131 #: .\pms\templates\okr\key_result\key_result_creation_htmx.html:106 #: .\pms\templates\okr\key_result\key_result_update.html:103 @@ -1592,16 +1869,13 @@ msgstr "" #: .\recruitment\templates\candidate\candidate_create_form.html:64 #: .\recruitment\templates\candidate\document_form.html:66 #: .\recruitment\templates\candidate\reject_form.html:19 -#: .\recruitment\templates\offerletter\empty_mail_template.html:54 -#: .\recruitment\templates\offerletter\empty_mail_template.html:68 -#: .\recruitment\templates\offerletter\view_templates.html:74 -#: .\recruitment\templates\offerletter\view_templates.html:88 #: .\recruitment\templates\pipeline\form\recruitment_update.html:101 #: .\recruitment\templates\pipeline\form\stage_update.html:39 #: .\recruitment\templates\pipeline\pipeline_components\update_note.html:15 #: .\recruitment\templates\pipeline\pipeline_components\update_note_individual.html:15 -#: .\recruitment\templates\recruitment\recruitment_update_form.html:169 +#: .\recruitment\templates\recruitment\recruitment_update_form.html:184 #: .\recruitment\templates\settings\skills\skills_form.html:21 +#: .\recruitment\templates\skill_zone\skill_zone_form.html:36 #: .\recruitment\templates\stage\stage_form.html:43 #: .\recruitment\templates\survey\question-template-organized-form.html:49 #: .\recruitment\templates\survey\question_template_organized_form.html:97 @@ -1617,29 +1891,29 @@ msgid "Import Assets" msgstr "" #: .\asset\templates\asset\asset_import.html:17 -#: .\asset\templates\category\asset_empty.html:59 #: .\attendance\templates\attendance\attendance\attendance_empty.html:42 #: .\attendance\templates\attendance\attendance\attendance_nav.html:89 #: .\attendance\templates\attendance\attendance_activity\import_activity.html:29 #: .\base\templates\base\rotating_shift\rotating_shift_assign_nav.html:261 #: .\base\templates\holiday\holiday_view.html:150 -#: .\employee\templates\employee_nav.html:79 +#: .\employee\templates\employee\employee_import.html:31 #: .\leave\templates\leave\holiday\holiday_view.html:223 #: .\leave\templates\leave\leave_assign\assign_view.html:29 +#: .\project\templates\cbv\projects\projects.html:125 #: .\project\templates\project\new\navbar.html:41 msgid "Upload a File" msgstr "" #: .\asset\templates\asset\asset_import.html:18 -#: .\asset\templates\category\asset_empty.html:60 #: .\attendance\templates\attendance\attendance\attendance_empty.html:43 #: .\attendance\templates\attendance\attendance\attendance_nav.html:90 #: .\attendance\templates\attendance\attendance_activity\import_activity.html:30 #: .\base\templates\base\rotating_shift\rotating_shift_assign_nav.html:264 #: .\base\templates\holiday\holiday_view.html:151 -#: .\employee\templates\employee_nav.html:82 +#: .\employee\templates\employee\employee_import.html:32 #: .\leave\templates\leave\holiday\holiday_view.html:226 #: .\leave\templates\leave\leave_assign\assign_view.html:30 +#: .\project\templates\cbv\projects\projects.html:126 #: .\project\templates\project\new\navbar.html:42 msgid "Drag and drop files here" msgstr "" @@ -1648,7 +1922,7 @@ msgstr "" #: .\attendance\templates\attendance\attendance\attendance_nav.html:99 #: .\base\templates\base\rotating_shift\rotating_shift_assign_nav.html:292 #: .\base\templates\holiday\holiday_view.html:160 -#: .\employee\templates\employee_nav.html:96 +#: .\employee\templates\employee\employee_import.html:38 #: .\leave\templates\leave\holiday\holiday_view.html:244 #: .\leave\templates\leave\leave_assign\assign_view.html:39 #, fuzzy @@ -1657,16 +1931,17 @@ msgid "Download Template" msgstr "Employee" #: .\asset\templates\asset\asset_import.html:29 -#: .\asset\templates\category\asset_empty.html:65 #: .\attendance\templates\attendance\attendance\attendance_empty.html:48 #: .\attendance\templates\attendance\attendance\attendance_nav.html:104 #: .\attendance\templates\attendance\attendance_activity\import_activity.html:35 #: .\base\templates\base\rotating_shift\rotating_shift_assign_nav.html:301 #: .\base\templates\holiday\holiday_view.html:166 -#: .\employee\templates\documents\requests.html:155 -#: .\employee\templates\employee_nav.html:108 +#: .\employee\templates\documents\requests.html:116 +#: .\employee\templates\employee\employee_import.html:45 +#: .\employee\templates\tabs\htmx\document_form.html:3 #: .\leave\templates\leave\holiday\holiday_view.html:255 #: .\leave\templates\leave\leave_assign\assign_view.html:45 +#: .\project\templates\cbv\projects\projects.html:135 #: .\project\templates\project\new\navbar.html:51 msgid "Upload" msgstr "" @@ -1675,18 +1950,6 @@ msgstr "" msgid "by " msgstr "" -#: .\asset\templates\asset\asset_information.html:105 -#: .\asset\templates\asset\asset_update.html:130 -#: .\asset\templates\category\asset_category_view.html:145 -#: .\asset\templates\category\asset_filter_export.html:44 -#: .\asset\templates\request_allocation\asset_request_allocation_list.html:36 -#: .\asset\templates\request_allocation\group_by.html:228 -#: .\asset\templates\request_allocation\group_by.html:426 -#: .\asset\templates\request_allocation\individual_own.html:84 -#: .\asset\templates\request_allocation\individual_request.html:87 -msgid "Category" -msgstr "" - #: .\asset\templates\asset\asset_information.html:112 #: .\asset\templates\asset\asset_information.html:116 msgid "Reports" @@ -1724,6 +1987,7 @@ msgstr "" #: .\base\templates\base\employee_type\type_view.html:22 #: .\base\templates\base\job_position\job_position_view.html:53 #: .\base\templates\base\job_role\job_role_view.html:54 +#: .\base\templates\base\mail_server\mail_server_view.html:61 #: .\base\templates\base\rotating_shift\individual_view.html:135 #: .\base\templates\base\rotating_shift\rotating_shift_view.html:36 #: .\base\templates\base\rotating_work_type\individual_view.html:145 @@ -1735,7 +1999,7 @@ msgstr "" #: .\base\templates\base\work_type\work_type_view.html:22 #: .\base\templates\company_leave\company_leave.html:52 #: .\base\templates\holiday\holiday.html:76 -#: .\base\templates\mail\view_templates.html:48 +#: .\base\templates\mail\view_templates.html:55 #: .\base\templates\multi_approval_condition\condition_table.html:59 #: .\base\templates\shift_request\htmx\allocation_details.html:138 #: .\base\templates\shift_request\htmx\allocation_requests.html:122 @@ -1749,16 +2013,17 @@ msgstr "" #: .\base\templates\work_type_request\htmx\group_by.html:206 #: .\base\templates\work_type_request\htmx\requests.html:131 #: .\base\templates\work_type_request\htmx\work_type_request_single_view.html:118 -#: .\biometric\templates\biometric\card_biometric_devices.html:72 +#: .\biometric\templates\biometric\card_biometric_devices.html:66 +#: .\biometric\templates\biometric\edit_biometric_device.html:9 #: .\biometric\templates\biometric\list_biometric_devices.html:76 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:112 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:141 -#: .\employee\templates\documents\requests.html:85 -#: .\employee\templates\employee\profile\profile_view.html:100 +#: .\employee\templates\documents\requests.html:61 +#: .\employee\templates\employee\profile\profile_view.html:12 #: .\employee\templates\employee\update_form\form_view.html:7 #: .\employee\templates\employee\view\individual.html:138 #: .\employee\templates\employee\view\individual.html:139 -#: .\employee\templates\employee_personal_info\employee_card.html:85 +#: .\employee\templates\employee_personal_info\employee_card.html:86 #: .\employee\templates\employee_personal_info\employee_list.html:259 #: .\employee\templates\employee_personal_info\group_by.html:198 #: .\employee\templates\tabs\attendance-tab.html:203 @@ -1766,14 +2031,14 @@ msgstr "" #: .\employee\templates\tabs\shift-tab.html:263 #: .\employee\templates\tabs\shift-tab.html:943 #: .\helpdesk\templates\department_managers\department_managers_view.html:31 -#: .\helpdesk\templates\helpdesk\faq\faq_category_list.html:23 +#: .\helpdesk\templates\helpdesk\faq\faq_category_list.html:39 #: .\helpdesk\templates\helpdesk\faq\faq_list.html:19 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:135 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:463 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:787 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:260 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:483 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:520 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:216 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:423 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:452 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:155 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:484 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:812 @@ -1815,7 +2080,7 @@ msgstr "" #: .\offboarding\templates\offboarding\stage\offboarding_body.html:44 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:90 #: .\offboarding\templates\offboarding\task\table_body.html:108 -#: .\onboarding\templates\onboarding\candidates.html:112 +#: .\onboarding\templates\onboarding\candidates.html:119 #: .\onboarding\templates\onboarding\group_by.html:103 #: .\onboarding\templates\onboarding\kanban\kanban.html:67 #: .\onboarding\templates\onboarding\onboarding_table.html:72 @@ -1839,33 +2104,39 @@ msgstr "" #: .\payroll\templates\payroll\settings\payslip_auto_generate_table.html:48 #: .\pms\templates\bonus\bonus_point_action.html:6 #: .\pms\templates\bonus\bonus_seetting_action.html:6 +#: .\pms\templates\feedback\feedback_detailed_view.html:126 #: .\pms\templates\feedback\feedback_list.html:603 -#: .\pms\templates\feedback\question\question_all.html:91 +#: .\pms\templates\feedback\question\question_all.html:81 +#: .\pms\templates\meetings\meeting_single_view.html:99 #: .\pms\templates\meetings\meetings_list.html:161 #: .\pms\templates\okr\emp_obj_single.html:128 #: .\pms\templates\okr\emp_objective\emp_objective_dashboard_view.html:108 #: .\pms\templates\okr\emp_objective\emp_objective_list.html:126 #: .\pms\templates\okr\key_result\key_result_view.html:41 -#: .\pms\templates\okr\key_result\kr_card.html:64 +#: .\pms\templates\okr\key_result\kr_card.html:53 #: .\pms\templates\okr\key_result\kr_dashboard_view.html:140 -#: .\pms\templates\okr\key_result\kr_list.html:116 +#: .\pms\templates\okr\key_result\kr_list.html:99 #: .\pms\templates\okr\kr_list.html:112 #: .\pms\templates\okr\objective_detailed_view.html:59 #: .\pms\templates\okr\objective_detailed_view.html:150 #: .\pms\templates\okr\okr_detailed_view.html:93 -#: .\pms\templates\okr\okr_list.html:284 +#: .\pms\templates\okr\okr_list.html:284 .\project\cbv\tasks.py:443 +#: .\project\templates\cbv\projects\project_details.html:43 +#: .\project\templates\cbv\tasks\task_detail_actions.html:8 +#: .\project\templates\cbv\timesheet\detail_actions.html:8 #: .\project\templates\project\new\project_kanban_view.html:121 +#: .\project\templates\task\new\task_card_view.html:80 +#: .\project\templates\task\new\task_card_view.html:166 #: .\project\templates\task\new\task_details.html:82 -#: .\project\templates\task\new\task_kanban_view.html:81 -#: .\project\templates\task\new\task_kanban_view.html:167 -#: .\project\templates\task\new\task_list_view.html:166 +#: .\project\templates\task\new\task_kanban_view.html:43 +#: .\project\templates\task\new\task_kanban_view.html:96 +#: .\project\templates\task\new\task_list_view.html:168 #: .\project\templates\task_all\task_all_card.html:73 #: .\project\templates\time_sheet\time_sheet_card_view.html:65 #: .\project\templates\time_sheet\time_sheet_single_view.html:65 #: .\recruitment\templates\candidate\candidate_interview_view.html:89 #: .\recruitment\templates\candidate\individual.html:104 -#: .\recruitment\templates\candidate\interview_list.html:147 -#: .\recruitment\templates\offerletter\view_templates.html:48 +#: .\recruitment\templates\linkedin\linkedin_action.html:14 #: .\recruitment\templates\pipeline\components\stages_tab_content.html:54 #: .\recruitment\templates\pipeline\kanban_components\candidate_kanban_components.html:202 #: .\recruitment\templates\pipeline\kanban_components\kanban_stage_components.html:56 @@ -1880,9 +2151,9 @@ msgstr "" #: .\recruitment\templates\skill_zone_cand\skill_zone_cand_list.html:54 #: .\recruitment\templates\stage\stage_component.html:144 #: .\recruitment\templates\survey\survey-card.html:39 -#: .\recruitment\templates\survey\survey_card.html:51 -#: .\recruitment\templates\survey\template_accordion.html:36 -#: .\recruitment\templates\survey\template_accordion.html:97 +#: .\recruitment\templates\survey\survey_card.html:40 +#: .\recruitment\templates\survey\template_accordion.html:48 +#: .\recruitment\templates\survey\template_accordion.html:103 #: .\recruitment\templates\survey\templates.html:48 #: .\recruitment\templates\survey\view_single_template.html:69 #: .\recruitment\templates\survey\view_single_template.html:86 @@ -1926,26 +2197,27 @@ msgstr "" #: .\base\templates\shift_request\shift_request_nav.html:320 #: .\base\templates\work_type_request\htmx\group_by.html:236 #: .\base\templates\work_type_request\work_type_request_nav.html:250 -#: .\biometric\templates\biometric\card_biometric_devices.html:96 +#: .\biometric\templates\biometric\card_biometric_devices.html:102 #: .\biometric\templates\biometric\list_employees_biometric.html:120 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:126 #: .\biometric\templates\biometric\nav_employees_biometric.html:66 #: .\biometric\templates\biometric\nav_employees_cosec_biometric.html:63 #: .\biometric\templates\biometric_users\dahua\nav_dahua_employees.html:40 -#: .\employee\templates\documents\requests.html:98 -#: .\employee\templates\documents\requests.html:100 -#: .\employee\templates\documents\requests.html:227 -#: .\employee\templates\employee_nav.html:465 -#: .\employee\templates\employee_personal_info\employee_card.html:119 +#: .\biometric\templates\biometric_users\etimeoffice\nav_etimeoffice_employees.html:40 +#: .\employee\templates\documents\requests.html:69 +#: .\employee\templates\documents\requests.html:70 +#: .\employee\templates\documents\requests.html:169 +#: .\employee\templates\employee_nav.html:279 +#: .\employee\templates\employee_personal_info\employee_card.html:120 #: .\employee\templates\tabs\allowance_deduction-tab.html:116 #: .\employee\templates\tabs\allowance_deduction-tab.html:216 #: .\employee\templates\tabs\contract-tab.html:66 #: .\employee\templates\tabs\document_tab.html:135 -#: .\helpdesk\templates\helpdesk\faq\faq_category_list.html:34 +#: .\helpdesk\templates\helpdesk\faq\faq_category_list.html:57 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:171 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:507 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:831 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:269 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:222 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:172 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:501 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:829 @@ -1979,7 +2251,7 @@ msgstr "" #: .\leave\templates\leave\leave_request\group_by.html:158 #: .\leave\templates\leave\leave_request\leave-requests.html:109 #: .\leave\templates\leave\leave_request\leave_requests.html:211 -#: .\leave\templates\leave\leave_request\request_view.html:158 +#: .\leave\templates\leave\leave_request\request_view.html:161 #: .\leave\templates\leave\leave_request_view.html:72 #: .\leave\templates\leave\leave_type\leave_type_individual_view.html:198 #: .\leave\templates\leave\leave_type\leave_types.html:103 @@ -1994,7 +2266,7 @@ msgstr "" #: .\offboarding\templates\offboarding\stage\offboarding_body.html:51 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:95 #: .\offboarding\templates\offboarding\task\table_body.html:136 -#: .\onboarding\templates\onboarding\candidates.html:136 +#: .\onboarding\templates\onboarding\candidates.html:155 #: .\onboarding\templates\onboarding\candidates_view.html:181 #: .\onboarding\templates\onboarding\group_by.html:128 #: .\onboarding\templates\onboarding\kanban\kanban.html:72 @@ -2027,39 +2299,46 @@ msgstr "" #: .\payroll\templates\payroll\reimbursement\request_cards.html:388 #: .\payroll\templates\payroll\reimbursement\request_cards.html:675 #: .\payroll\templates\payroll\tax\filing_status_list.html:83 -#: .\payroll\templates\payroll\tax\tax_bracket_view.html:63 +#: .\payroll\templates\payroll\tax\tax_bracket_view.html:53 #: .\pms\templates\bonus\bonus_point_action.html:22 #: .\pms\templates\bonus\bonus_seetting_action.html:22 -#: .\pms\templates\feedback\feedback_detailed_view.html:141 +#: .\pms\templates\feedback\feedback_detailed_view.html:151 #: .\pms\templates\feedback\feedback_list.html:174 #: .\pms\templates\feedback\feedback_list.html:469 #: .\pms\templates\feedback\feedback_list.html:627 -#: .\pms\templates\feedback\feedback_list_view.html:172 -#: .\pms\templates\feedback\question\question_all.html:99 -#: .\pms\templates\feedback\question_template\question_template_list.html:88 -#: .\pms\templates\meetings\meeting_single_view.html:108 +#: .\pms\templates\feedback\feedback_list_view.html:183 +#: .\pms\templates\feedback\question\question_all.html:93 +#: .\pms\templates\feedback\question_template\question_template_list.html:59 +#: .\pms\templates\meetings\meeting_single_view.html:110 #: .\pms\templates\meetings\meetings_list.html:201 #: .\pms\templates\okr\emp_obj_single.html:174 #: .\pms\templates\okr\emp_objective\emp_objective_dashboard_view.html:147 #: .\pms\templates\okr\emp_objective\emp_objective_list.html:158 #: .\pms\templates\okr\group_by.html:222 .\pms\templates\okr\group_by.html:544 -#: .\pms\templates\okr\key_result\kr_card.html:72 -#: .\pms\templates\okr\key_result\kr_card.html:74 +#: .\pms\templates\okr\key_result\kr_card.html:61 #: .\pms\templates\okr\key_result\kr_dashboard_view.html:158 -#: .\pms\templates\okr\key_result\kr_list.html:132 +#: .\pms\templates\okr\key_result\kr_list.html:109 #: .\pms\templates\okr\kr_list.html:129 #: .\pms\templates\okr\objective_detailed_view.html:22 #: .\pms\templates\okr\objective_list.html:202 #: .\pms\templates\okr\objective_list.html:421 #: .\pms\templates\okr\objective_list_view.html:262 #: .\pms\templates\okr\okr_list.html:321 .\pms\templates\okr\okr_list.html:559 -#: .\pms\templates\period\period_list.html:75 +#: .\pms\templates\period\period_list.html:63 .\project\cbv\projects.py:101 +#: .\project\cbv\tasks.py:229 .\project\cbv\tasks.py:464 +#: .\project\cbv\timesheet.py:63 +#: .\project\templates\cbv\tasks\task_actions.html:27 +#: .\project\templates\cbv\tasks\task_actions.html:40 +#: .\project\templates\cbv\tasks\task_detail_actions.html:25 +#: .\project\templates\cbv\timesheet\detail_actions.html:21 #: .\project\templates\project\new\navbar.html:227 #: .\project\templates\project\new\project_kanban_view.html:147 +#: .\project\templates\task\new\task_card_view.html:86 +#: .\project\templates\task\new\task_card_view.html:172 #: .\project\templates\task\new\task_details.html:116 -#: .\project\templates\task\new\task_kanban_view.html:87 -#: .\project\templates\task\new\task_kanban_view.html:173 -#: .\project\templates\task\new\task_list_view.html:86 +#: .\project\templates\task\new\task_kanban_view.html:51 +#: .\project\templates\task\new\task_kanban_view.html:104 +#: .\project\templates\task\new\task_list_view.html:74 #: .\project\templates\task_all\task_all_card.html:92 #: .\project\templates\task_all\task_all_navbar.html:144 #: .\project\templates\time_sheet\time_sheet_card_view.html:71 @@ -2069,20 +2348,21 @@ msgstr "" #: .\recruitment\templates\candidate\candidate_interview_view.html:81 #: .\recruitment\templates\candidate\candidate_nav.html:238 #: .\recruitment\templates\candidate\document.html:179 -#: .\recruitment\templates\candidate\interview_list.html:161 +#: .\recruitment\templates\candidate\interview_list.html:154 +#: .\recruitment\templates\linkedin\linkedin_action.html:30 #: .\recruitment\templates\pipeline\components\stages_tab_content.html:69 #: .\recruitment\templates\pipeline\kanban_components\candidate_kanban_components.html:214 #: .\recruitment\templates\pipeline\kanban_components\kanban_stage_components.html:63 #: .\recruitment\templates\pipeline\pipeline_card.html:80 #: .\recruitment\templates\pipeline\pipeline_card.html:274 #: .\recruitment\templates\pipeline\pipeline_tabs.html:83 -#: .\recruitment\templates\recruitment\recruitment_component.html:197 +#: .\recruitment\templates\recruitment\recruitment_component.html:206 #: .\recruitment\templates\skill_zone\skill_zone_card.html:79 #: .\recruitment\templates\skill_zone_cand\skill_zone_cand_card.html:80 #: .\recruitment\templates\skill_zone_cand\skill_zone_cand_list.html:65 #: .\recruitment\templates\survey\survey-card.html:47 -#: .\recruitment\templates\survey\survey_card.html:69 -#: .\recruitment\templates\survey\template_accordion.html:41 +#: .\recruitment\templates\survey\survey_card.html:56 +#: .\recruitment\templates\survey\template_accordion.html:57 #: .\recruitment\templates\survey\templates.html:58 #: .\recruitment\templates\survey\view_single_template.html:75 #: .\recruitment\templates\survey\view_single_template.html:94 @@ -2091,56 +2371,46 @@ msgstr "" msgid "Delete" msgstr "" -#: .\asset\templates\asset\asset_list.html:26 -#: .\asset\templates\asset\asset_report_form.html:48 -#: .\asset\templates\asset\dashboard_allocated_assets.html:9 -#: .\asset\templates\asset_history\asset_history_filter.html:20 -#: .\asset\templates\asset_history\asset_history_list.html:22 -#: .\asset\templates\asset_history\asset_history_single_view.html:88 -#: .\asset\templates\asset_history\group_by.html:31 -#: .\asset\templates\category\asset_category_view.html:111 -#: .\asset\templates\category\asset_filter_export.html:19 -#: .\asset\templates\request_allocation\asset_allocation_creation.html:36 -#: .\asset\templates\request_allocation\asset_approve.html:18 -#: .\asset\templates\request_allocation\asset_request_allocation_list.html:35 -#: .\asset\templates\request_allocation\asset_request_allocation_list.html:341 -#: .\asset\templates\request_allocation\asset_request_allocation_view.html:23 -#: .\asset\templates\request_allocation\asset_request_allocation_view.html:53 -#: .\asset\templates\request_allocation\asset_request_allocation_view.html:113 -#: .\asset\templates\request_allocation\asset_request_allocation_view.html:229 -#: .\asset\templates\request_allocation\group_by.html:11 -#: .\asset\templates\request_allocation\group_by.html:534 -#: .\asset\templates\request_allocation\group_by.html:642 -#: .\asset\templates\request_allocation\group_by.html:733 -#: .\asset\templates\request_allocation\group_by.html:841 -#: ⁨.\asset\templates\request_allocation\individual allocation.html⁩:107 -#: .\employee\templates\asset-tab.html:7 -#: .\employee\templates\tabs\asset-tab.html:21 -#: .\employee\templates\tabs\profile-asset-tab.html:19 -msgid "Asset" -msgstr "" - #: .\asset\templates\asset\asset_list.html:73 #: .\asset\templates\asset\asset_list.html:91 +#: .\asset\templates\asset\asset_update.html:71 #: .\asset\templates\batch\asset_batch_number_list.html:43 +#: .\asset\templates\batch\asset_batch_number_update.html:20 +#: .\asset\templates\category\asset_category_form.html:11 +#: .\base\templates\announcement\announcement_update_form.html:23 #: .\base\templates\base\auth\username_change_form.html:79 +#: .\base\templates\base\company\company_form.html:5 +#: .\base\templates\base\department\department_form.html:4 +#: .\base\templates\base\employee_type\employee_type_form.html:4 +#: .\base\templates\base\job_position\job_position_form.html:4 +#: .\base\templates\base\job_role\job_role_form.html:4 #: .\base\templates\base\rotating_shift\htmx\group_by.html:144 +#: .\base\templates\base\rotating_shift\htmx\rotating_shift_form.html:4 #: .\base\templates\base\rotating_shift\rotating_shift_assign_view.html:138 #: .\base\templates\base\rotating_work_type\htmx\group_by.html:132 +#: .\base\templates\base\rotating_work_type\htmx\rotating_work_type_form.html:4 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_view.html:139 -#: .\employee\templates\employee_nav.html:151 +#: .\base\templates\base\shift\schedule_form.html:4 +#: .\base\templates\base\shift\shift_form.html:4 +#: .\base\templates\base\work_type\work_type_form.html:4 +#: .\employee\templates\employee_nav.html:56 #: .\employee\templates\employee_personal_info\bulk_update.html:26 #: .\employee\templates\tabs\allowance_deduction-tab.html:107 #: .\employee\templates\tabs\allowance_deduction-tab.html:208 #: .\employee\templates\tabs\contract-tab.html:50 #: .\employee\templates\tabs\shift-tab.html:527 #: .\employee\templates\tabs\shift-tab.html:752 -#: .\horilla_views\templates\generic\quick_actions.html:100 +#: .\helpdesk\templates\department_managers\department_managers_form.html:7 +#: .\helpdesk\templates\helpdesk\faq\faq_category_create.html:15 +#: .\helpdesk\templates\helpdesk\faq\faq_create.html:13 +#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:4 +#: .\horilla_views\templates\generic\quick_actions.html:102 #: .\leave\templates\leave\leave_request_view.html:68 #: .\leave\templates\leave\leave_type\leave_type_update.html:254 #: .\leave\templates\leave\leave_type_update.html:187 #: .\onboarding\templates\onboarding\candidate_update.html:96 -#: .\onboarding\templates\onboarding\task_update.html:35 +#: .\onboarding\templates\onboarding\stage_update.html:15 +#: .\onboarding\templates\onboarding\task_update.html:15 #: .\payroll\templates\payroll\allowance\list_allowance.html:110 #: .\payroll\templates\payroll\contract\contract_list.html:129 #: .\payroll\templates\payroll\contract\group_by.html:113 @@ -2149,10 +2419,11 @@ msgstr "" #: .\payroll\templates\payroll\reimbursement\request_cards.html:374 #: .\payroll\templates\payroll\reimbursement\request_cards.html:661 #: .\payroll\templates\payroll\tax\filing_status_list.html:70 -#: .\payroll\templates\payroll\tax\tax_bracket_view.html:46 -#: .\pms\templates\feedback\question_template\question_template_list.html:75 -#: .\pms\templates\period\period_list.html:58 -#: .\project\templates\task\new\task_list_view.html:79 +#: .\payroll\templates\payroll\tax\tax_bracket_view.html:43 +#: .\pms\templates\feedback\question_template\question_template_list.html:54 +#: .\pms\templates\period\period_list.html:53 .\project\cbv\projects.py:294 +#: .\project\templates\task\new\task_list_view.html:67 +#: .\recruitment\templates\skill_zone\skill_zone_form.html:23 msgid "Update" msgstr "" @@ -2163,7 +2434,7 @@ msgstr "" #: .\base\templates\base\rotating_work_type\htmx\group_by.html:137 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_view.html:145 #: .\base\templates\holiday\holiday.html:86 -#: .\base\templates\mail\view_templates.html:44 +#: .\base\templates\mail\view_templates.html:45 #: .\base\templates\shift_request\htmx\group_by.html:112 #: .\base\templates\shift_request\htmx\requests.html:131 #: .\base\templates\work_type_request\htmx\group_by.html:219 @@ -2175,10 +2446,9 @@ msgstr "" #: .\employee\templates\tabs\shift-tab.html:956 #: .\leave\templates\leave\restrict\restrict.html:134 #: .\project\templates\project\new\navbar.html:197 -#: .\recruitment\templates\offerletter\view_templates.html:44 -#: .\recruitment\templates\recruitment\recruitment_component.html:182 +#: .\recruitment\templates\recruitment\recruitment_component.html:191 #: .\recruitment\templates\stage\stage_component.html:155 -#: .\recruitment\templates\survey\survey_card.html:62 +#: .\recruitment\templates\survey\survey_card.html:48 msgid "Duplicate" msgstr "" @@ -2240,8 +2510,8 @@ msgstr "Employee" #: .\attendance\templates\attendance\attendance_activity\group_by.html:117 #: .\attendance\templates\attendance\attendance_activity\group_by.html:159 #: .\attendance\templates\attendance\attendance_activity\group_by.html:163 -#: .\attendance\templates\attendance\dashboard\overtime_table.html:99 -#: .\attendance\templates\attendance\dashboard\to_validate_table.html:117 +#: .\attendance\templates\attendance\dashboard\overtime_table.html:97 +#: .\attendance\templates\attendance\dashboard\to_validate_table.html:116 #: .\attendance\templates\attendance\late_come_early_out\group_by.html:143 #: .\attendance\templates\attendance\late_come_early_out\group_by.html:147 #: .\attendance\templates\attendance\late_come_early_out\group_by.html:209 @@ -2254,8 +2524,8 @@ msgstr "Employee" #: .\attendance\templates\attendance\own_attendance\group_by.html:127 #: .\attendance\templates\attendance\own_attendance\group_by.html:186 #: .\attendance\templates\attendance\own_attendance\group_by.html:190 -#: .\attendance\templates\attendance\work_record\work_record_list.html:132 -#: .\attendance\templates\attendance\work_record\work_record_list.html:137 +#: .\attendance\templates\attendance\work_record\work_record_list.html:197 +#: .\attendance\templates\attendance\work_record\work_record_list.html:202 #: .\attendance\templates\requests\attendance\group_by.html:185 #: .\attendance\templates\requests\attendance\group_by.html:189 #: .\attendance\templates\requests\attendance\group_by.html:248 @@ -2292,11 +2562,8 @@ msgstr "Employee" #: .\base\templates\company_leave\company_leave.html:84 #: .\base\templates\holiday\holiday.html:109 #: .\base\templates\holiday\holiday.html:114 -#: .\base\templates\request_and_approve\feedback_answer.html:79 -#: .\base\templates\request_and_approve\leave_allocation_approve.html:94 -#: .\base\templates\request_and_approve\leave_request_approve.html:80 -#: .\base\templates\request_and_approve\shift_request.html:96 -#: .\base\templates\request_and_approve\work_type_request.html:95 +#: .\base\templates\request_and_approve\shift_request.html:95 +#: .\base\templates\request_and_approve\work_type_request.html:94 #: .\base\templates\shift_request\htmx\allocation_requests.html:166 #: .\base\templates\shift_request\htmx\allocation_requests.html:170 #: .\base\templates\shift_request\htmx\group_by.html:172 @@ -2317,23 +2584,23 @@ msgstr "Employee" #: .\base\templates\work_type_request\htmx\group_by.html:387 #: .\base\templates\work_type_request\htmx\requests.html:206 #: .\base\templates\work_type_request\htmx\requests.html:210 -#: .\biometric\templates\biometric\card_biometric_devices.html:130 -#: .\biometric\templates\biometric\card_biometric_devices.html:134 +#: .\biometric\templates\biometric\card_biometric_devices.html:136 +#: .\biometric\templates\biometric\card_biometric_devices.html:140 #: .\biometric\templates\biometric\list_biometric_devices.html:123 #: .\biometric\templates\biometric\list_biometric_devices.html:127 #: .\biometric\templates\biometric\list_employees_biometric.html:141 #: .\biometric\templates\biometric\list_employees_biometric.html:146 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:145 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:150 -#: .\employee\templates\dashboard\not_in_yet.html:58 +#: .\employee\templates\dashboard\not_in_yet.html:57 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:174 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:178 -#: .\employee\templates\documents\requests.html:245 -#: .\employee\templates\documents\requests.html:251 -#: .\employee\templates\documents\requests.html:321 -#: .\employee\templates\documents\requests.html:327 -#: .\employee\templates\employee_personal_info\employee_card.html:137 -#: .\employee\templates\employee_personal_info\employee_card.html:142 +#: .\employee\templates\documents\requests.html:182 +#: .\employee\templates\documents\requests.html:187 +#: .\employee\templates\documents\requests.html:229 +#: .\employee\templates\documents\requests.html:234 +#: .\employee\templates\employee_personal_info\employee_card.html:138 +#: .\employee\templates\employee_personal_info\employee_card.html:143 #: .\employee\templates\employee_personal_info\employee_list.html:313 #: .\employee\templates\employee_personal_info\employee_list.html:317 #: .\employee\templates\employee_personal_info\group_by.html:256 @@ -2361,10 +2628,10 @@ msgstr "Employee" #: .\horilla_views\templates\generic\group_by.html:219 #: .\horilla_views\templates\generic\group_by.html:285 #: .\horilla_views\templates\generic\group_by.html:290 -#: .\horilla_views\templates\generic\group_by_table.html:245 -#: .\horilla_views\templates\generic\group_by_table.html:251 -#: .\horilla_views\templates\generic\group_by_table.html:317 -#: .\horilla_views\templates\generic\group_by_table.html:322 +#: .\horilla_views\templates\generic\group_by_table.html:249 +#: .\horilla_views\templates\generic\group_by_table.html:255 +#: .\horilla_views\templates\generic\group_by_table.html:321 +#: .\horilla_views\templates\generic\group_by_table.html:326 #: .\horilla_views\templates\generic\horilla_card.html:107 #: .\horilla_views\templates\generic\horilla_card.html:113 #: .\horilla_views\templates\generic\horilla_list.html:230 @@ -2377,6 +2644,8 @@ msgstr "Employee" #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:136 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:320 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:324 +#: .\leave\templates\leave\dashboard\leave_allocation_approve.html:93 +#: .\leave\templates\leave\dashboard\leave_request_approve.html:79 #: .\leave\templates\leave\holiday\holiday.html:134 #: .\leave\templates\leave\holiday\holiday.html:139 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:134 @@ -2427,8 +2696,8 @@ msgstr "Employee" #: .\offboarding\templates\offboarding\resignation\request_list.html:223 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:123 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:127 -#: .\onboarding\templates\onboarding\candidates.html:150 -#: .\onboarding\templates\onboarding\candidates.html:154 +#: .\onboarding\templates\onboarding\candidates.html:170 +#: .\onboarding\templates\onboarding\candidates.html:174 #: .\onboarding\templates\onboarding\group_by.html:141 #: .\onboarding\templates\onboarding\group_by.html:145 #: .\onboarding\templates\onboarding\group_by.html:205 @@ -2473,8 +2742,8 @@ msgstr "Employee" #: .\payroll\templates\payroll\payslip\group_by.html:258 #: .\payroll\templates\payroll\payslip\group_payslips.html:150 #: .\payroll\templates\payroll\payslip\group_payslips.html:155 -#: .\payroll\templates\payroll\payslip\payslip_table.html:193 -#: .\payroll\templates\payroll\payslip\payslip_table.html:198 +#: .\payroll\templates\payroll\payslip\payslip_table.html:162 +#: .\payroll\templates\payroll\payslip\payslip_table.html:166 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:291 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:297 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:627 @@ -2487,6 +2756,7 @@ msgstr "Employee" #: .\payroll\templates\payroll\reimbursement\request_cards.html:554 #: .\payroll\templates\payroll\reimbursement\request_cards.html:835 #: .\payroll\templates\payroll\reimbursement\request_cards.html:841 +#: .\pms\templates\dashboard\feedback_answer.html:78 #: .\pms\templates\feedback\feedback_list.html:200 #: .\pms\templates\feedback\feedback_list.html:334 #: .\pms\templates\feedback\feedback_list.html:497 @@ -2497,10 +2767,10 @@ msgstr "Employee" #: .\pms\templates\okr\group_by.html:244 .\pms\templates\okr\group_by.html:250 #: .\pms\templates\okr\group_by.html:329 .\pms\templates\okr\group_by.html:567 #: .\pms\templates\okr\group_by.html:573 .\pms\templates\okr\group_by.html:649 -#: .\pms\templates\okr\key_result\kr_card.html:89 -#: .\pms\templates\okr\key_result\kr_card.html:94 -#: .\pms\templates\okr\key_result\kr_list.html:155 -#: .\pms\templates\okr\key_result\kr_list.html:160 +#: .\pms\templates\okr\key_result\kr_card.html:74 +#: .\pms\templates\okr\key_result\kr_card.html:78 +#: .\pms\templates\okr\key_result\kr_list.html:126 +#: .\pms\templates\okr\key_result\kr_list.html:130 #: .\pms\templates\okr\kr_list.html:150 .\pms\templates\okr\kr_list.html:156 #: .\pms\templates\okr\objective_list.html:229 #: .\pms\templates\okr\objective_list.html:448 @@ -2524,8 +2794,8 @@ msgstr "Employee" #: .\recruitment\templates\candidate\group_by.html:271 #: .\recruitment\templates\candidate\group_by.html:330 #: .\recruitment\templates\candidate\group_by.html:334 -#: .\recruitment\templates\candidate\interview_list.html:179 -#: .\recruitment\templates\candidate\interview_list.html:183 +#: .\recruitment\templates\candidate\interview_list.html:173 +#: .\recruitment\templates\candidate\interview_list.html:177 #: .\recruitment\templates\pipeline\components\candidate_stage_component.html:327 #: .\recruitment\templates\pipeline\components\candidate_stage_component.html:331 #: .\recruitment\templates\pipeline\components\pipeline_search_components.html:44 @@ -2534,8 +2804,8 @@ msgstr "Employee" #: .\recruitment\templates\pipeline\kanban_components\kanban.html:31 #: .\recruitment\templates\pipeline\pipeline_card.html:383 #: .\recruitment\templates\pipeline\pipeline_card.html:389 -#: .\recruitment\templates\recruitment\recruitment_component.html:222 -#: .\recruitment\templates\recruitment\recruitment_component.html:228 +#: .\recruitment\templates\recruitment\recruitment_component.html:231 +#: .\recruitment\templates\recruitment\recruitment_component.html:237 #: .\recruitment\templates\skill_zone\skill_zone_card.html:94 #: .\recruitment\templates\skill_zone\skill_zone_card.html:99 #: .\recruitment\templates\skill_zone\skill_zone_list.html:197 @@ -2550,12 +2820,12 @@ msgstr "Employee" #: .\recruitment\templates\stage\stage_group.html:133 #: .\recruitment\templates\survey\survey-card.html:60 #: .\recruitment\templates\survey\survey-card.html:65 -#: .\recruitment\templates\survey\survey_card.html:84 -#: .\recruitment\templates\survey\survey_card.html:88 -#: .\recruitment\templates\survey\template_accordion.html:123 +#: .\recruitment\templates\survey\survey_card.html:71 +#: .\recruitment\templates\survey\survey_card.html:75 #: .\recruitment\templates\survey\template_accordion.html:127 -#: .\recruitment\templates\survey\template_accordion.html:189 -#: .\recruitment\templates\survey\template_accordion.html:194 +#: .\recruitment\templates\survey\template_accordion.html:131 +#: .\recruitment\templates\survey\template_accordion.html:179 +#: .\recruitment\templates\survey\template_accordion.html:184 #: .\recruitment\templates\survey\templates.html:72 #: .\recruitment\templates\survey\templates.html:76 #: .\templates\work_info_complete.html:86 @@ -2613,8 +2883,8 @@ msgstr "" #: .\attendance\templates\attendance\attendance_activity\group_by.html:122 #: .\attendance\templates\attendance\attendance_activity\group_by.html:159 #: .\attendance\templates\attendance\attendance_activity\group_by.html:166 -#: .\attendance\templates\attendance\dashboard\overtime_table.html:99 -#: .\attendance\templates\attendance\dashboard\to_validate_table.html:117 +#: .\attendance\templates\attendance\dashboard\overtime_table.html:97 +#: .\attendance\templates\attendance\dashboard\to_validate_table.html:116 #: .\attendance\templates\attendance\late_come_early_out\group_by.html:143 #: .\attendance\templates\attendance\late_come_early_out\group_by.html:158 #: .\attendance\templates\attendance\late_come_early_out\group_by.html:209 @@ -2627,8 +2897,8 @@ msgstr "" #: .\attendance\templates\attendance\own_attendance\group_by.html:138 #: .\attendance\templates\attendance\own_attendance\group_by.html:186 #: .\attendance\templates\attendance\own_attendance\group_by.html:201 -#: .\attendance\templates\attendance\work_record\work_record_list.html:132 -#: .\attendance\templates\attendance\work_record\work_record_list.html:148 +#: .\attendance\templates\attendance\work_record\work_record_list.html:197 +#: .\attendance\templates\attendance\work_record\work_record_list.html:213 #: .\attendance\templates\requests\attendance\group_by.html:185 #: .\attendance\templates\requests\attendance\group_by.html:200 #: .\attendance\templates\requests\attendance\group_by.html:248 @@ -2665,11 +2935,8 @@ msgstr "" #: .\base\templates\company_leave\company_leave.html:87 #: .\base\templates\holiday\holiday.html:110 #: .\base\templates\holiday\holiday.html:117 -#: .\base\templates\request_and_approve\feedback_answer.html:79 -#: .\base\templates\request_and_approve\leave_allocation_approve.html:94 -#: .\base\templates\request_and_approve\leave_request_approve.html:80 -#: .\base\templates\request_and_approve\shift_request.html:96 -#: .\base\templates\request_and_approve\work_type_request.html:95 +#: .\base\templates\request_and_approve\shift_request.html:95 +#: .\base\templates\request_and_approve\work_type_request.html:94 #: .\base\templates\shift_request\htmx\allocation_requests.html:166 #: .\base\templates\shift_request\htmx\allocation_requests.html:173 #: .\base\templates\shift_request\htmx\group_by.html:173 @@ -2690,23 +2957,23 @@ msgstr "" #: .\base\templates\work_type_request\htmx\group_by.html:398 #: .\base\templates\work_type_request\htmx\requests.html:206 #: .\base\templates\work_type_request\htmx\requests.html:213 -#: .\biometric\templates\biometric\card_biometric_devices.html:130 -#: .\biometric\templates\biometric\card_biometric_devices.html:138 +#: .\biometric\templates\biometric\card_biometric_devices.html:136 +#: .\biometric\templates\biometric\card_biometric_devices.html:144 #: .\biometric\templates\biometric\list_biometric_devices.html:123 #: .\biometric\templates\biometric\list_biometric_devices.html:131 #: .\biometric\templates\biometric\list_employees_biometric.html:141 #: .\biometric\templates\biometric\list_employees_biometric.html:156 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:146 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:161 -#: .\employee\templates\dashboard\not_in_yet.html:58 +#: .\employee\templates\dashboard\not_in_yet.html:57 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:174 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:181 -#: .\employee\templates\documents\requests.html:246 -#: .\employee\templates\documents\requests.html:263 -#: .\employee\templates\documents\requests.html:321 -#: .\employee\templates\documents\requests.html:339 -#: .\employee\templates\employee_personal_info\employee_card.html:137 -#: .\employee\templates\employee_personal_info\employee_card.html:152 +#: .\employee\templates\documents\requests.html:183 +#: .\employee\templates\documents\requests.html:192 +#: .\employee\templates\documents\requests.html:229 +#: .\employee\templates\documents\requests.html:237 +#: .\employee\templates\employee_personal_info\employee_card.html:138 +#: .\employee\templates\employee_personal_info\employee_card.html:153 #: .\employee\templates\employee_personal_info\employee_list.html:313 #: .\employee\templates\employee_personal_info\employee_list.html:328 #: .\employee\templates\employee_personal_info\group_by.html:256 @@ -2734,10 +3001,10 @@ msgstr "" #: .\horilla_views\templates\generic\group_by.html:231 #: .\horilla_views\templates\generic\group_by.html:285 #: .\horilla_views\templates\generic\group_by.html:302 -#: .\horilla_views\templates\generic\group_by_table.html:246 -#: .\horilla_views\templates\generic\group_by_table.html:263 -#: .\horilla_views\templates\generic\group_by_table.html:317 -#: .\horilla_views\templates\generic\group_by_table.html:334 +#: .\horilla_views\templates\generic\group_by_table.html:250 +#: .\horilla_views\templates\generic\group_by_table.html:267 +#: .\horilla_views\templates\generic\group_by_table.html:321 +#: .\horilla_views\templates\generic\group_by_table.html:338 #: .\horilla_views\templates\generic\horilla_card.html:107 #: .\horilla_views\templates\generic\horilla_card.html:127 #: .\horilla_views\templates\generic\horilla_list.html:230 @@ -2750,6 +3017,8 @@ msgstr "" #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:139 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:320 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:328 +#: .\leave\templates\leave\dashboard\leave_allocation_approve.html:93 +#: .\leave\templates\leave\dashboard\leave_request_approve.html:79 #: .\leave\templates\leave\holiday\holiday.html:135 #: .\leave\templates\leave\holiday\holiday.html:150 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:134 @@ -2800,8 +3069,8 @@ msgstr "" #: .\offboarding\templates\offboarding\resignation\request_list.html:235 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:123 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:138 -#: .\onboarding\templates\onboarding\candidates.html:150 -#: .\onboarding\templates\onboarding\candidates.html:157 +#: .\onboarding\templates\onboarding\candidates.html:170 +#: .\onboarding\templates\onboarding\candidates.html:177 #: .\onboarding\templates\onboarding\group_by.html:141 #: .\onboarding\templates\onboarding\group_by.html:155 #: .\onboarding\templates\onboarding\group_by.html:205 @@ -2852,8 +3121,8 @@ msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:268 #: .\payroll\templates\payroll\payslip\group_payslips.html:150 #: .\payroll\templates\payroll\payslip\group_payslips.html:165 -#: .\payroll\templates\payroll\payslip\payslip_table.html:193 -#: .\payroll\templates\payroll\payslip\payslip_table.html:208 +#: .\payroll\templates\payroll\payslip\payslip_table.html:162 +#: .\payroll\templates\payroll\payslip\payslip_table.html:169 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:291 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:310 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:627 @@ -2866,6 +3135,7 @@ msgstr "" #: .\payroll\templates\payroll\reimbursement\request_cards.html:567 #: .\payroll\templates\payroll\reimbursement\request_cards.html:835 #: .\payroll\templates\payroll\reimbursement\request_cards.html:854 +#: .\pms\templates\dashboard\feedback_answer.html:78 #: .\pms\templates\feedback\feedback_list.html:204 #: .\pms\templates\feedback\feedback_list.html:338 #: .\pms\templates\feedback\feedback_list.html:501 @@ -2876,10 +3146,10 @@ msgstr "" #: .\pms\templates\okr\group_by.html:245 .\pms\templates\okr\group_by.html:262 #: .\pms\templates\okr\group_by.html:340 .\pms\templates\okr\group_by.html:568 #: .\pms\templates\okr\group_by.html:585 .\pms\templates\okr\group_by.html:660 -#: .\pms\templates\okr\key_result\kr_card.html:89 -#: .\pms\templates\okr\key_result\kr_card.html:104 -#: .\pms\templates\okr\key_result\kr_list.html:155 -#: .\pms\templates\okr\key_result\kr_list.html:170 +#: .\pms\templates\okr\key_result\kr_card.html:74 +#: .\pms\templates\okr\key_result\kr_card.html:81 +#: .\pms\templates\okr\key_result\kr_list.html:126 +#: .\pms\templates\okr\key_result\kr_list.html:133 #: .\pms\templates\okr\kr_list.html:151 .\pms\templates\okr\kr_list.html:168 #: .\pms\templates\okr\objective_list.html:240 #: .\pms\templates\okr\objective_list.html:459 @@ -2903,8 +3173,8 @@ msgstr "" #: .\recruitment\templates\candidate\group_by.html:281 #: .\recruitment\templates\candidate\group_by.html:330 #: .\recruitment\templates\candidate\group_by.html:337 -#: .\recruitment\templates\candidate\interview_list.html:179 -#: .\recruitment\templates\candidate\interview_list.html:193 +#: .\recruitment\templates\candidate\interview_list.html:173 +#: .\recruitment\templates\candidate\interview_list.html:180 #: .\recruitment\templates\pipeline\components\candidate_stage_component.html:327 #: .\recruitment\templates\pipeline\components\candidate_stage_component.html:334 #: .\recruitment\templates\pipeline\components\pipeline_search_components.html:44 @@ -2913,10 +3183,10 @@ msgstr "" #: .\recruitment\templates\pipeline\kanban_components\kanban.html:42 #: .\recruitment\templates\pipeline\pipeline_card.html:383 #: .\recruitment\templates\pipeline\pipeline_card.html:399 -#: .\recruitment\templates\recruitment\open_recruitments.html:78 -#: .\recruitment\templates\recruitment\recruitment_component.html:158 -#: .\recruitment\templates\recruitment\recruitment_component.html:222 -#: .\recruitment\templates\recruitment\recruitment_component.html:238 +#: .\recruitment\templates\recruitment\open_recruitments.html:87 +#: .\recruitment\templates\recruitment\recruitment_component.html:167 +#: .\recruitment\templates\recruitment\recruitment_component.html:231 +#: .\recruitment\templates\recruitment\recruitment_component.html:247 #: .\recruitment\templates\skill_zone\skill_zone_card.html:94 #: .\recruitment\templates\skill_zone\skill_zone_card.html:109 #: .\recruitment\templates\skill_zone\skill_zone_list.html:197 @@ -2931,12 +3201,12 @@ msgstr "" #: .\recruitment\templates\stage\stage_group.html:145 #: .\recruitment\templates\survey\survey-card.html:60 #: .\recruitment\templates\survey\survey-card.html:77 -#: .\recruitment\templates\survey\survey_card.html:84 -#: .\recruitment\templates\survey\survey_card.html:99 -#: .\recruitment\templates\survey\template_accordion.html:123 -#: .\recruitment\templates\survey\template_accordion.html:138 -#: .\recruitment\templates\survey\template_accordion.html:189 -#: .\recruitment\templates\survey\template_accordion.html:206 +#: .\recruitment\templates\survey\survey_card.html:71 +#: .\recruitment\templates\survey\survey_card.html:79 +#: .\recruitment\templates\survey\template_accordion.html:127 +#: .\recruitment\templates\survey\template_accordion.html:135 +#: .\recruitment\templates\survey\template_accordion.html:179 +#: .\recruitment\templates\survey\template_accordion.html:188 #: .\recruitment\templates\survey\templates.html:72 #: .\recruitment\templates\survey\templates.html:88 #: .\templates\work_info_complete.html:86 @@ -2979,7 +3249,7 @@ msgstr "" #: .\attendance\templates\attendance\own_attendance\attendances.html:271 #: .\attendance\templates\attendance\own_attendance\group_by.html:148 #: .\attendance\templates\attendance\own_attendance\group_by.html:211 -#: .\attendance\templates\attendance\work_record\work_record_list.html:158 +#: .\attendance\templates\attendance\work_record\work_record_list.html:224 #: .\attendance\templates\requests\attendance\group_by.html:210 #: .\attendance\templates\requests\attendance\group_by.html:273 #: .\attendance\templates\requests\attendance\group_by.html:489 @@ -3008,14 +3278,14 @@ msgstr "" #: .\base\templates\work_type_request\htmx\group_by.html:344 #: .\base\templates\work_type_request\htmx\group_by.html:408 #: .\base\templates\work_type_request\htmx\requests.html:219 -#: .\biometric\templates\biometric\card_biometric_devices.html:145 +#: .\biometric\templates\biometric\card_biometric_devices.html:151 #: .\biometric\templates\biometric\list_biometric_devices.html:138 #: .\biometric\templates\biometric\list_employees_biometric.html:161 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:171 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:187 -#: .\employee\templates\documents\requests.html:276 -#: .\employee\templates\documents\requests.html:350 -#: .\employee\templates\employee_personal_info\employee_card.html:157 +#: .\employee\templates\documents\requests.html:200 +#: .\employee\templates\documents\requests.html:244 +#: .\employee\templates\employee_personal_info\employee_card.html:158 #: .\employee\templates\employee_personal_info\employee_list.html:338 #: .\employee\templates\employee_personal_info\group_by.html:281 #: .\employee\templates\employee_personal_info\group_by.html:343 @@ -3031,8 +3301,8 @@ msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:1028 #: .\horilla_views\templates\generic\group_by.html:242 #: .\horilla_views\templates\generic\group_by.html:308 -#: .\horilla_views\templates\generic\group_by_table.html:274 -#: .\horilla_views\templates\generic\group_by_table.html:340 +#: .\horilla_views\templates\generic\group_by_table.html:278 +#: .\horilla_views\templates\generic\group_by_table.html:344 #: .\horilla_views\templates\generic\horilla_card.html:140 #: .\horilla_views\templates\generic\horilla_list.html:261 #: .\horilla_views\templates\generic\horilla_list_table.html:245 @@ -3064,6 +3334,7 @@ msgstr "" #: .\offboarding\templates\offboarding\resignation\request_cards.html:125 #: .\offboarding\templates\offboarding\resignation\request_list.html:245 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:148 +#: .\onboarding\templates\onboarding\candidates.html:183 #: .\onboarding\templates\onboarding\group_by.html:165 #: .\onboarding\templates\onboarding\group_by.html:218 #: .\onboarding\templates\onboarding\kanban\kanban.html:191 @@ -3085,7 +3356,7 @@ msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:213 #: .\payroll\templates\payroll\payslip\group_by.html:273 #: .\payroll\templates\payroll\payslip\group_payslips.html:170 -#: .\payroll\templates\payroll\payslip\payslip_table.html:213 +#: .\payroll\templates\payroll\payslip\payslip_table.html:175 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:323 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:660 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:988 @@ -3099,8 +3370,8 @@ msgstr "" #: .\pms\templates\okr\emp_objective\emp_objective_list.html:217 #: .\pms\templates\okr\group_by.html:275 .\pms\templates\okr\group_by.html:350 #: .\pms\templates\okr\group_by.html:598 .\pms\templates\okr\group_by.html:670 -#: .\pms\templates\okr\key_result\kr_card.html:109 -#: .\pms\templates\okr\key_result\kr_list.html:175 +#: .\pms\templates\okr\key_result\kr_card.html:87 +#: .\pms\templates\okr\key_result\kr_list.html:139 #: .\pms\templates\okr\kr_list.html:181 #: .\pms\templates\okr\objective_list.html:250 #: .\pms\templates\okr\objective_list.html:469 @@ -3114,13 +3385,13 @@ msgstr "" #: .\recruitment\templates\candidate\candidate_list.html:328 #: .\recruitment\templates\candidate\group_by.html:291 #: .\recruitment\templates\candidate\group_by.html:343 -#: .\recruitment\templates\candidate\interview_list.html:198 +#: .\recruitment\templates\candidate\interview_list.html:186 #: .\recruitment\templates\pipeline\components\candidate_stage_component.html:339 #: .\recruitment\templates\pipeline\components\pipeline_search_components.html:68 #: .\recruitment\templates\pipeline\kanban_components\candidate_kanban_components.html:249 #: .\recruitment\templates\pipeline\kanban_components\kanban.html:49 #: .\recruitment\templates\pipeline\pipeline_card.html:405 -#: .\recruitment\templates\recruitment\recruitment_component.html:244 +#: .\recruitment\templates\recruitment\recruitment_component.html:253 #: .\recruitment\templates\skill_zone\skill_zone_card.html:114 #: .\recruitment\templates\skill_zone\skill_zone_list.html:222 #: .\recruitment\templates\skill_zone\skill_zone_list.html:284 @@ -3128,9 +3399,9 @@ msgstr "" #: .\recruitment\templates\stage\stage_component.html:223 #: .\recruitment\templates\stage\stage_group.html:156 #: .\recruitment\templates\survey\survey-card.html:88 -#: .\recruitment\templates\survey\survey_card.html:109 -#: .\recruitment\templates\survey\template_accordion.html:148 -#: .\recruitment\templates\survey\template_accordion.html:217 +#: .\recruitment\templates\survey\survey_card.html:86 +#: .\recruitment\templates\survey\template_accordion.html:143 +#: .\recruitment\templates\survey\template_accordion.html:195 #: .\recruitment\templates\survey\templates.html:99 msgid "First" msgstr "" @@ -3171,7 +3442,7 @@ msgstr "" #: .\attendance\templates\attendance\own_attendance\attendances.html:279 #: .\attendance\templates\attendance\own_attendance\group_by.html:156 #: .\attendance\templates\attendance\own_attendance\group_by.html:219 -#: .\attendance\templates\attendance\work_record\work_record_list.html:166 +#: .\attendance\templates\attendance\work_record\work_record_list.html:231 #: .\attendance\templates\requests\attendance\group_by.html:218 #: .\attendance\templates\requests\attendance\group_by.html:281 #: .\attendance\templates\requests\attendance\group_by.html:497 @@ -3200,14 +3471,14 @@ msgstr "" #: .\base\templates\work_type_request\htmx\group_by.html:352 #: .\base\templates\work_type_request\htmx\group_by.html:416 #: .\base\templates\work_type_request\htmx\requests.html:224 -#: .\biometric\templates\biometric\card_biometric_devices.html:150 +#: .\biometric\templates\biometric\card_biometric_devices.html:156 #: .\biometric\templates\biometric\list_biometric_devices.html:143 #: .\biometric\templates\biometric\list_employees_biometric.html:164 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:179 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:192 -#: .\employee\templates\documents\requests.html:286 -#: .\employee\templates\documents\requests.html:358 -#: .\employee\templates\employee_personal_info\employee_card.html:160 +#: .\employee\templates\documents\requests.html:205 +#: .\employee\templates\documents\requests.html:249 +#: .\employee\templates\employee_personal_info\employee_card.html:161 #: .\employee\templates\employee_personal_info\employee_list.html:346 #: .\employee\templates\employee_personal_info\group_by.html:289 #: .\employee\templates\employee_personal_info\group_by.html:352 @@ -3223,15 +3494,15 @@ msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:1036 #: .\horilla_views\templates\generic\group_by.html:250 #: .\horilla_views\templates\generic\group_by.html:311 -#: .\horilla_views\templates\generic\group_by_table.html:282 -#: .\horilla_views\templates\generic\group_by_table.html:343 +#: .\horilla_views\templates\generic\group_by_table.html:286 +#: .\horilla_views\templates\generic\group_by_table.html:347 #: .\horilla_views\templates\generic\horilla_card.html:150 #: .\horilla_views\templates\generic\horilla_list.html:270 #: .\horilla_views\templates\generic\horilla_list_table.html:255 #: .\leave\templates\leave\company_leave\company_leave.html:94 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:150 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:339 -#: .\leave\templates\leave\dashboard.html:82 +#: .\leave\templates\leave\dashboard.html:95 #: .\leave\templates\leave\holiday\holiday.html:168 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:152 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:358 @@ -3257,7 +3528,7 @@ msgstr "" #: .\offboarding\templates\offboarding\resignation\request_cards.html:130 #: .\offboarding\templates\offboarding\resignation\request_list.html:253 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:156 -#: .\onboarding\templates\onboarding\candidates.html:168 +#: .\onboarding\templates\onboarding\candidates.html:188 #: .\onboarding\templates\onboarding\group_by.html:173 #: .\onboarding\templates\onboarding\group_by.html:224 #: .\onboarding\templates\onboarding\kanban\kanban.html:194 @@ -3280,7 +3551,7 @@ msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:221 #: .\payroll\templates\payroll\payslip\group_by.html:276 #: .\payroll\templates\payroll\payslip\group_payslips.html:173 -#: .\payroll\templates\payroll\payslip\payslip_table.html:216 +#: .\payroll\templates\payroll\payslip\payslip_table.html:180 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:333 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:670 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:998 @@ -3294,8 +3565,8 @@ msgstr "" #: .\pms\templates\okr\emp_objective\emp_objective_list.html:225 #: .\pms\templates\okr\group_by.html:285 .\pms\templates\okr\group_by.html:358 #: .\pms\templates\okr\group_by.html:608 .\pms\templates\okr\group_by.html:678 -#: .\pms\templates\okr\key_result\kr_card.html:112 -#: .\pms\templates\okr\key_result\kr_list.html:178 +#: .\pms\templates\okr\key_result\kr_card.html:92 +#: .\pms\templates\okr\key_result\kr_list.html:144 #: .\pms\templates\okr\kr_list.html:191 #: .\pms\templates\okr\objective_list.html:258 #: .\pms\templates\okr\objective_list.html:477 @@ -3309,13 +3580,13 @@ msgstr "" #: .\recruitment\templates\candidate\candidate_list.html:333 #: .\recruitment\templates\candidate\group_by.html:299 #: .\recruitment\templates\candidate\group_by.html:349 -#: .\recruitment\templates\candidate\interview_list.html:201 +#: .\recruitment\templates\candidate\interview_list.html:191 #: .\recruitment\templates\pipeline\components\candidate_stage_component.html:343 #: .\recruitment\templates\pipeline\components\pipeline_search_components.html:72 #: .\recruitment\templates\pipeline\kanban_components\candidate_kanban_components.html:253 #: .\recruitment\templates\pipeline\kanban_components\kanban.html:53 #: .\recruitment\templates\pipeline\pipeline_card.html:408 -#: .\recruitment\templates\recruitment\recruitment_component.html:247 +#: .\recruitment\templates\recruitment\recruitment_component.html:256 #: .\recruitment\templates\skill_zone\skill_zone_card.html:117 #: .\recruitment\templates\skill_zone\skill_zone_list.html:230 #: .\recruitment\templates\skill_zone\skill_zone_list.html:287 @@ -3323,9 +3594,9 @@ msgstr "" #: .\recruitment\templates\stage\stage_component.html:231 #: .\recruitment\templates\stage\stage_group.html:164 #: .\recruitment\templates\survey\survey-card.html:96 -#: .\recruitment\templates\survey\survey_card.html:117 -#: .\recruitment\templates\survey\template_accordion.html:156 -#: .\recruitment\templates\survey\template_accordion.html:225 +#: .\recruitment\templates\survey\survey_card.html:92 +#: .\recruitment\templates\survey\template_accordion.html:149 +#: .\recruitment\templates\survey\template_accordion.html:201 #: .\recruitment\templates\survey\templates.html:107 msgid "Previous" msgstr "" @@ -3366,7 +3637,7 @@ msgstr "" #: .\attendance\templates\attendance\own_attendance\attendances.html:288 #: .\attendance\templates\attendance\own_attendance\group_by.html:165 #: .\attendance\templates\attendance\own_attendance\group_by.html:228 -#: .\attendance\templates\attendance\work_record\work_record_list.html:175 +#: .\attendance\templates\attendance\work_record\work_record_list.html:241 #: .\attendance\templates\requests\attendance\group_by.html:227 #: .\attendance\templates\requests\attendance\group_by.html:290 #: .\attendance\templates\requests\attendance\group_by.html:506 @@ -3395,14 +3666,14 @@ msgstr "" #: .\base\templates\work_type_request\htmx\group_by.html:361 #: .\base\templates\work_type_request\htmx\group_by.html:425 #: .\base\templates\work_type_request\htmx\requests.html:231 -#: .\biometric\templates\biometric\card_biometric_devices.html:156 +#: .\biometric\templates\biometric\card_biometric_devices.html:162 #: .\biometric\templates\biometric\list_biometric_devices.html:149 #: .\biometric\templates\biometric\list_employees_biometric.html:169 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:188 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:198 -#: .\employee\templates\documents\requests.html:297 -#: .\employee\templates\documents\requests.html:367 -#: .\employee\templates\employee_personal_info\employee_card.html:165 +#: .\employee\templates\documents\requests.html:211 +#: .\employee\templates\documents\requests.html:255 +#: .\employee\templates\employee_personal_info\employee_card.html:166 #: .\employee\templates\employee_personal_info\employee_list.html:355 #: .\employee\templates\employee_personal_info\group_by.html:298 #: .\employee\templates\employee_personal_info\group_by.html:362 @@ -3418,8 +3689,8 @@ msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:1045 #: .\horilla_views\templates\generic\group_by.html:259 #: .\horilla_views\templates\generic\group_by.html:316 -#: .\horilla_views\templates\generic\group_by_table.html:291 -#: .\horilla_views\templates\generic\group_by_table.html:348 +#: .\horilla_views\templates\generic\group_by_table.html:295 +#: .\horilla_views\templates\generic\group_by_table.html:352 #: .\horilla_views\templates\generic\horilla_card.html:161 #: .\horilla_views\templates\generic\horilla_list.html:280 #: .\horilla_views\templates\generic\horilla_list_table.html:266 @@ -3451,7 +3722,7 @@ msgstr "" #: .\offboarding\templates\offboarding\resignation\request_cards.html:137 #: .\offboarding\templates\offboarding\resignation\request_list.html:262 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:165 -#: .\onboarding\templates\onboarding\candidates.html:173 +#: .\onboarding\templates\onboarding\candidates.html:195 #: .\onboarding\templates\onboarding\group_by.html:182 #: .\onboarding\templates\onboarding\group_by.html:231 #: .\onboarding\templates\onboarding\kanban\kanban.html:199 @@ -3474,7 +3745,7 @@ msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:231 #: .\payroll\templates\payroll\payslip\group_by.html:281 #: .\payroll\templates\payroll\payslip\group_payslips.html:178 -#: .\payroll\templates\payroll\payslip\payslip_table.html:221 +#: .\payroll\templates\payroll\payslip\payslip_table.html:187 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:344 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:681 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:1009 @@ -3488,8 +3759,8 @@ msgstr "" #: .\pms\templates\okr\emp_objective\emp_objective_list.html:234 #: .\pms\templates\okr\group_by.html:296 .\pms\templates\okr\group_by.html:367 #: .\pms\templates\okr\group_by.html:619 .\pms\templates\okr\group_by.html:687 -#: .\pms\templates\okr\key_result\kr_card.html:117 -#: .\pms\templates\okr\key_result\kr_list.html:183 +#: .\pms\templates\okr\key_result\kr_card.html:99 +#: .\pms\templates\okr\key_result\kr_list.html:151 #: .\pms\templates\okr\kr_list.html:202 #: .\pms\templates\okr\objective_list.html:267 #: .\pms\templates\okr\objective_list.html:486 @@ -3503,13 +3774,13 @@ msgstr "" #: .\recruitment\templates\candidate\candidate_list.html:339 #: .\recruitment\templates\candidate\group_by.html:308 #: .\recruitment\templates\candidate\group_by.html:356 -#: .\recruitment\templates\candidate\interview_list.html:206 +#: .\recruitment\templates\candidate\interview_list.html:198 #: .\recruitment\templates\pipeline\components\candidate_stage_component.html:348 #: .\recruitment\templates\pipeline\components\pipeline_search_components.html:78 #: .\recruitment\templates\pipeline\kanban_components\candidate_kanban_components.html:258 #: .\recruitment\templates\pipeline\kanban_components\kanban.html:59 #: .\recruitment\templates\pipeline\pipeline_card.html:413 -#: .\recruitment\templates\recruitment\recruitment_component.html:252 +#: .\recruitment\templates\recruitment\recruitment_component.html:261 #: .\recruitment\templates\skill_zone\skill_zone_card.html:122 #: .\recruitment\templates\skill_zone\skill_zone_list.html:239 #: .\recruitment\templates\skill_zone\skill_zone_list.html:292 @@ -3517,9 +3788,9 @@ msgstr "" #: .\recruitment\templates\stage\stage_component.html:240 #: .\recruitment\templates\stage\stage_group.html:173 #: .\recruitment\templates\survey\survey-card.html:105 -#: .\recruitment\templates\survey\survey_card.html:126 -#: .\recruitment\templates\survey\template_accordion.html:165 -#: .\recruitment\templates\survey\template_accordion.html:234 +#: .\recruitment\templates\survey\survey_card.html:100 +#: .\recruitment\templates\survey\template_accordion.html:157 +#: .\recruitment\templates\survey\template_accordion.html:209 #: .\recruitment\templates\survey\templates.html:116 msgid "Next" msgstr "" @@ -3560,7 +3831,7 @@ msgstr "" #: .\attendance\templates\attendance\own_attendance\attendances.html:296 #: .\attendance\templates\attendance\own_attendance\group_by.html:173 #: .\attendance\templates\attendance\own_attendance\group_by.html:236 -#: .\attendance\templates\attendance\work_record\work_record_list.html:183 +#: .\attendance\templates\attendance\work_record\work_record_list.html:248 #: .\attendance\templates\requests\attendance\group_by.html:235 #: .\attendance\templates\requests\attendance\group_by.html:298 #: .\attendance\templates\requests\attendance\group_by.html:514 @@ -3589,14 +3860,14 @@ msgstr "" #: .\base\templates\work_type_request\htmx\group_by.html:369 #: .\base\templates\work_type_request\htmx\group_by.html:433 #: .\base\templates\work_type_request\htmx\requests.html:236 -#: .\biometric\templates\biometric\card_biometric_devices.html:161 +#: .\biometric\templates\biometric\card_biometric_devices.html:167 #: .\biometric\templates\biometric\list_biometric_devices.html:154 #: .\biometric\templates\biometric\list_employees_biometric.html:172 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:196 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:203 -#: .\employee\templates\documents\requests.html:307 -#: .\employee\templates\documents\requests.html:375 -#: .\employee\templates\employee_personal_info\employee_card.html:168 +#: .\employee\templates\documents\requests.html:216 +#: .\employee\templates\documents\requests.html:260 +#: .\employee\templates\employee_personal_info\employee_card.html:169 #: .\employee\templates\employee_personal_info\employee_list.html:363 #: .\employee\templates\employee_personal_info\group_by.html:306 #: .\employee\templates\employee_personal_info\group_by.html:371 @@ -3612,8 +3883,8 @@ msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:1053 #: .\horilla_views\templates\generic\group_by.html:267 #: .\horilla_views\templates\generic\group_by.html:319 -#: .\horilla_views\templates\generic\group_by_table.html:299 -#: .\horilla_views\templates\generic\group_by_table.html:351 +#: .\horilla_views\templates\generic\group_by_table.html:303 +#: .\horilla_views\templates\generic\group_by_table.html:355 #: .\horilla_views\templates\generic\horilla_card.html:171 #: .\horilla_views\templates\generic\horilla_list.html:289 #: .\horilla_views\templates\generic\horilla_list_table.html:276 @@ -3645,7 +3916,7 @@ msgstr "" #: .\offboarding\templates\offboarding\resignation\request_cards.html:142 #: .\offboarding\templates\offboarding\resignation\request_list.html:270 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:173 -#: .\onboarding\templates\onboarding\candidates.html:178 +#: .\onboarding\templates\onboarding\candidates.html:200 #: .\onboarding\templates\onboarding\group_by.html:190 #: .\onboarding\templates\onboarding\group_by.html:237 #: .\onboarding\templates\onboarding\kanban\kanban.html:202 @@ -3668,7 +3939,7 @@ msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:239 #: .\payroll\templates\payroll\payslip\group_by.html:284 #: .\payroll\templates\payroll\payslip\group_payslips.html:181 -#: .\payroll\templates\payroll\payslip\payslip_table.html:224 +#: .\payroll\templates\payroll\payslip\payslip_table.html:192 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:354 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:691 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:1019 @@ -3682,8 +3953,8 @@ msgstr "" #: .\pms\templates\okr\emp_objective\emp_objective_list.html:242 #: .\pms\templates\okr\group_by.html:306 .\pms\templates\okr\group_by.html:375 #: .\pms\templates\okr\group_by.html:629 .\pms\templates\okr\group_by.html:695 -#: .\pms\templates\okr\key_result\kr_card.html:120 -#: .\pms\templates\okr\key_result\kr_list.html:186 +#: .\pms\templates\okr\key_result\kr_card.html:104 +#: .\pms\templates\okr\key_result\kr_list.html:156 #: .\pms\templates\okr\kr_list.html:212 #: .\pms\templates\okr\objective_list.html:275 #: .\pms\templates\okr\objective_list.html:494 @@ -3697,13 +3968,13 @@ msgstr "" #: .\recruitment\templates\candidate\candidate_list.html:344 #: .\recruitment\templates\candidate\group_by.html:316 #: .\recruitment\templates\candidate\group_by.html:362 -#: .\recruitment\templates\candidate\interview_list.html:209 +#: .\recruitment\templates\candidate\interview_list.html:203 #: .\recruitment\templates\pipeline\components\candidate_stage_component.html:352 #: .\recruitment\templates\pipeline\components\pipeline_search_components.html:82 #: .\recruitment\templates\pipeline\kanban_components\candidate_kanban_components.html:262 #: .\recruitment\templates\pipeline\kanban_components\kanban.html:63 #: .\recruitment\templates\pipeline\pipeline_card.html:416 -#: .\recruitment\templates\recruitment\recruitment_component.html:255 +#: .\recruitment\templates\recruitment\recruitment_component.html:264 #: .\recruitment\templates\skill_zone\skill_zone_card.html:125 #: .\recruitment\templates\skill_zone\skill_zone_list.html:247 #: .\recruitment\templates\skill_zone\skill_zone_list.html:295 @@ -3711,19 +3982,19 @@ msgstr "" #: .\recruitment\templates\stage\stage_component.html:248 #: .\recruitment\templates\stage\stage_group.html:181 #: .\recruitment\templates\survey\survey-card.html:113 -#: .\recruitment\templates\survey\survey_card.html:134 -#: .\recruitment\templates\survey\template_accordion.html:173 -#: .\recruitment\templates\survey\template_accordion.html:242 +#: .\recruitment\templates\survey\survey_card.html:106 +#: .\recruitment\templates\survey\template_accordion.html:163 +#: .\recruitment\templates\survey\template_accordion.html:215 #: .\recruitment\templates\survey\templates.html:124 msgid "Last" msgstr "" #: .\asset\templates\asset\asset_report_form.html:23 -#: .\templates\dashboard.html:291 +#: .\templates\dashboard.html:283 msgid "Add Asset Report" msgstr "" -#: .\asset\templates\asset\asset_report_form.html:39 +#: .\asset\templates\asset\asset_report_form.html:39 .\attendance\models.py:113 #: .\base\templates\base\action_type\action_type_view.html:6 #: .\base\templates\base\audit_tag\audit_tag_form.html:40 #: .\base\templates\base\audit_tag\audit_tag_view.html:6 @@ -3738,16 +4009,12 @@ msgstr "" #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_view.html:64 #: .\base\templates\base\rotating_work_type\rotating_work_type_view.html:6 #: .\base\templates\base\tags\tags_view.html:6 -#: .\base\templates\mail\htmx\form.html:11 -#: .\base\templates\request_and_approve\feedback_answer.html:8 -#: .\employee\models.py:531 -#: .\employee\templates\documents\document_request_create_form.html:31 +#: .\base\templates\mail\htmx\form.html:21 .\employee\models.py:556 #: .\employee\templates\performance-tab.html:7 #: .\employee\templates\tabs\performance-tab.html:8 #: .\employee\templates\tabs\shift-tab.html:406 -#: .\employee\templates\tabs\shift-tab.html:636 -#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:82 -#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:152 +#: .\employee\templates\tabs\shift-tab.html:636 .\helpdesk\models.py:76 +#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:67 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:43 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:373 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:701 @@ -3757,9 +4024,8 @@ msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:350 #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:743 #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:745 -#: .\leave\forms.py:1276 .\leave\templates\leave\restrict\restrict.html:46 -#: .\leave\templates\leave\restrict\restrict_form.html:27 -#: .\leave\templates\leave\restrict\restrict_update_form.html:27 +#: .\horilla_documents\models.py:46 .\leave\models.py:1253 +#: .\leave\templates\leave\restrict\restrict.html:46 #: .\offboarding\templates\offboarding\resignation\group_by.html:59 #: .\offboarding\templates\offboarding\resignation\group_by.html:64 #: .\offboarding\templates\offboarding\resignation\request_list.html:51 @@ -3771,14 +4037,14 @@ msgstr "" #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:102 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:428 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:765 -#: .\pms\templates\feedback\feedback_creation.html:37 +#: .\pms\forms.py:1206 .\pms\models.py:501 +#: .\pms\templates\dashboard\feedback_answer.html:8 #: .\pms\templates\feedback\feedback_list.html:99 #: .\pms\templates\feedback\feedback_list.html:262 #: .\pms\templates\feedback\feedback_list.html:398 -#: .\pms\templates\feedback\question_template\question_template_empty.html:62 -#: .\pms\templates\feedback\question_template\question_template_list.html:16 +#: .\pms\templates\feedback\question_template\question_template_list.html:10 #: .\pms\templates\meetings\meetings_list.html:27 -#: .\pms\templates\okr\create_period.html:23 +#: .\pms\templates\okr\create_period.html:22 #: .\pms\templates\okr\emp_obj_single.html:86 #: .\pms\templates\okr\key_result\key_result_creation.html:53 #: .\pms\templates\okr\key_result\key_result_creation_htmx.html:32 @@ -3786,8 +4052,8 @@ msgstr "" #: .\pms\templates\okr\key_result\kr_dashboard_view.html:47 #: .\pms\templates\okr\kr_list.html:26 .\pms\templates\okr\okr_list.html:131 #: .\pms\templates\okr\okr_list.html:437 -#: .\pms\templates\period\period_list.html:16 -#: .\project\templates\task\new\task_details.html:19 +#: .\pms\templates\period\period_list.html:16 .\project\models.py:256 +#: .\project\models.py:328 .\project\templates\task\new\task_details.html:19 #: .\recruitment\templates\offerletter\htmx\form.html:12 #: .\recruitment\templates\pipeline\form\recruitment_update.html:25 #: .\recruitment\templates\recruitment\recruitment_duplicate_form.html:12 @@ -3805,44 +4071,19 @@ msgstr "" msgid "File" msgstr "Employee" -#: .\asset\templates\asset\asset_return_form.html:19 +#: .\asset\templates\asset\asset_return_form.html:8 msgid "Asset Return Form" msgstr "" -#: .\asset\templates\asset\asset_return_form.html:32 -#: .\asset\templates\asset_history\asset_history_list.html:26 -#: .\asset\templates\asset_history\group_by.html:51 -msgid "Return Status" -msgstr "" - -#: .\asset\templates\asset\asset_return_form.html:38 -#: .\asset\templates\asset_history\asset_history_filter.html:48 -#: .\asset\templates\request_allocation\asset_request_allocation_list.html:347 -#: .\asset\templates\request_allocation\asset_request_allocation_list.html:349 -#: .\asset\templates\request_allocation\asset_request_allocation_view.html:129 -#: .\asset\templates\request_allocation\group_by.html:536 -#: .\asset\templates\request_allocation\group_by.html:735 -msgid "Return Date" -msgstr "" - -#: .\asset\templates\asset\asset_return_form.html:45 -msgid "Return Condition" -msgstr "" - -#: .\asset\templates\asset\asset_return_form.html:51 -#: .\asset\templates\asset_history\asset_history_single_view.html:126 -msgid "Return Condition Images" -msgstr "" - -#: .\asset\templates\asset\asset_return_form.html:64 -#: .\asset\templates\asset\asset_update.html:215 -#: .\asset\templates\asset\asset_update.html:222 +#: .\asset\templates\asset\asset_return_form.html:42 +#: .\asset\templates\asset\asset_update.html:217 +#: .\asset\templates\asset\asset_update.html:224 #, fuzzy #| msgid "employee" msgid "Add Report" msgstr "Employee" -#: .\asset\templates\asset\asset_return_form.html:76 +#: .\asset\templates\asset\asset_return_form.html:50 msgid "Add Fine" msgstr "" @@ -3853,28 +4094,12 @@ msgstr "" msgid "Report added successfully." msgstr "" -#: .\asset\templates\asset\asset_update.html:70 -msgid "Asset Update" -msgstr "" - -#: .\asset\templates\asset\asset_update.html:98 -msgid "Current User" -msgstr "" - -#: .\asset\templates\asset\asset_update.html:110 -msgid "Asset Description" -msgstr "" - -#: .\asset\templates\asset\asset_update.html:195 -msgid "Notify Before(days)" -msgstr "" - #: .\asset\templates\asset\dashboard.html:23 #: .\leave\templates\leave\accrual_plan_assign_view.html:3 -#: .\leave\templates\leave\dashboard.html:32 +#: .\leave\templates\leave\dashboard.html:41 #: .\leave\templates\leave\leave_request_view_one.html:3 #: .\onboarding\templates\onboarding\dashboard.html:34 -#: .\templates\dashboard.html:125 +#: .\templates\dashboard.html:120 msgid "Back" msgstr "" @@ -3931,7 +4156,7 @@ msgstr "" #: .\employee\templates\asset-tab.html:9 #: .\employee\templates\tabs\asset-tab.html:23 #: .\employee\templates\tabs\profile-asset-tab.html:21 .\leave\filters.py:411 -#: .\leave\models.py:372 +#: .\leave\models.py:365 #: .\leave\templates\leave\leave_assign\assigned-leave.html:13 #: .\leave\templates\leave\leave_assign\assigned_leave.html:43 #: .\leave\templates\leave\leave_assign\assigned_leaves_export_form.html:84 @@ -3939,9 +4164,75 @@ msgstr "" #: .\leave\templates\leave\leave_assign\group_by.html:74 #: .\leave\templates\leave\leave_assign\single_assign_view.html:79 #: .\payroll\templates\payroll\contribution\contribution_deduction_employees.html:25 +#: .\report\templates\report\leave_report.html:169 msgid "Assigned Date" msgstr "" +#: .\asset\templates\asset\dashboard_allocated_assets.html:38 +#: .\asset\templates\asset\dashboard_asset_requests.html:101 +#: .\asset\templates\batch\asset_batch_empty.html:30 +#: .\asset\templates\category\asset_empty.html:56 +#: .\attendance\templates\attendance\attendance\attendance_empty.html:94 +#: .\attendance\templates\attendance\attendance_account\overtime_empty.html:30 +#: .\attendance\templates\attendance\attendance_activity\activity_empty.html:13 +#: .\attendance\templates\attendance\attendance_activity\group_by.html:200 +#: .\attendance\templates\attendance\dashboard\overtime_table.html:72 +#: .\attendance\templates\attendance\dashboard\to_validate_table.html:91 +#: .\attendance\templates\attendance\late_come_early_out\group_by.html:252 +#: .\attendance\templates\attendance\late_come_early_out\reports_empty.html:13 +#: .\attendance\templates\attendance\own_attendance\own_empty.html:13 +#: .\attendance\templates\requests\attendance\requests_empty.html:67 +#: .\base\templates\announcement\announcement_one.html:152 +#: .\base\templates\announcement\announcements_list.html:6 +#: .\base\templates\base\rotating_shift\rotating_shift_assign_empty.html:5 +#: .\base\templates\base\rotating_work_type\rotating_work_type_assign_empty.html:5 +#: .\base\templates\request_and_approve\shift_request.html:69 +#: .\base\templates\request_and_approve\work_type_request.html:68 +#: .\base\templates\shift_request\htmx\empty_request.html:5 +#: .\base\templates\work_type_request\htmx\empty_request.html:5 +#: .\biometric\templates\biometric\card_biometric_devices.html:197 +#: .\biometric\templates\biometric\empty_view_biometric.html:5 +#: .\employee\templates\dashboard\not_in_yet.html:34 +#: .\employee\templates\dashboard\not_out_yet.html:38 +#: .\employee\templates\documents\requests.html:271 +#: .\helpdesk\templates\helpdesk\faq\faq_category_list.html:80 +#: .\leave\templates\leave\dashboard\leave_allocation_approve.html:67 +#: .\leave\templates\leave\dashboard\leave_request_approve.html:53 +#: .\leave\templates\leave\dashboard\on_leave.html:35 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_single_view.html:220 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:286 +#: .\leave\templates\leave\leave_assign\assign_view.html:197 +#: .\leave\templates\leave\leave_request\request_view.html:196 +#: .\leave\templates\leave\leave_type\leave_type_empty_view.html:33 +#: .\leave\templates\leave\user_leave\user_request_view.html:287 +#: .\offboarding\templates\offboarding\note\view_notes.html:93 +#: .\payroll\templates\payroll\allowance\view_allowance.html:119 +#: .\payroll\templates\payroll\allowance\view_single_allowance.html:137 +#: .\payroll\templates\payroll\contract\contract_empty.html:26 +#: .\payroll\templates\payroll\deduction\view_deduction.html:115 +#: .\payroll\templates\payroll\payslip\view_payslips.html:269 +#: .\payroll\templates\payroll\tax\filing_status_view.html:45 +#: .\pms\templates\dashboard\feedback_answer.html:52 +#: .\pms\templates\feedback\feedback_empty.html:61 +#: .\pms\templates\feedback\question_template\question_template_list.html:78 +#: .\pms\templates\meetings\meetings_list.html:259 +#: .\pms\templates\okr\key_result\view_kr.html:16 +#: .\pms\templates\okr\objective_empty.html:39 +#: .\pms\templates\period\period_list.html:80 +#: .\recruitment\templates\candidate\candidate_empty.html:31 +#: .\recruitment\templates\candidate\interview_list.html:212 +#: .\recruitment\templates\pipeline\pipeline_empty.html:63 +#: .\recruitment\templates\recruitment\recruitment_empty.html:29 +#: .\recruitment\templates\skill_zone\empty_skill_zone.html:11 +#: .\recruitment\templates\stage\stage_empty.html:27 +#: .\recruitment\templates\survey\survey_card.html:117 +#: .\recruitment\templates\survey\survey_empty_view.html:72 +#: .\recruitment\templates\survey\template_accordion.html:226 +#, fuzzy +#| msgid "shift-request-view" +msgid "No Records found." +msgstr "Shift Requests" + #: .\asset\templates\asset\dashboard_allocated_assets.html:39 msgid "There is no asset allocation at this moment." msgstr "" @@ -3976,17 +4267,16 @@ msgstr "" #: .\asset\templates\asset\dashboard_asset_requests.html:102 #: .\attendance\views\dashboard.py:358 -#: .\base\templates\request_and_approve\feedback_answer.html:53 -#: .\base\templates\request_and_approve\leave_allocation_approve.html:68 -#: .\base\templates\request_and_approve\leave_request_approve.html:54 #: .\base\templates\request_and_approve\shift_request.html:70 #: .\base\templates\request_and_approve\work_type_request.html:69 #: .\employee\templates\dashboard\not_in_yet.html:35 #: .\employee\templates\dashboard\not_out_yet.html:39 +#: .\leave\templates\leave\dashboard\leave_allocation_approve.html:68 +#: .\leave\templates\leave\dashboard\leave_request_approve.html:54 #: .\onboarding\templates\onboarding\dashboard\task_report.html:54 -#: .\onboarding\views.py:1447 .\pms\views.py:2640 .\pms\views.py:2660 -#: .\pms\views.py:2681 .\recruitment\views\dashboard.py:193 -#: .\recruitment\views\views.py:3232 +#: .\onboarding\views.py:1435 .\pms\templates\dashboard\feedback_answer.html:53 +#: .\pms\views.py:2701 .\pms\views.py:2721 .\pms\views.py:2742 +#: .\recruitment\views\dashboard.py:193 .\recruitment\views\views.py:3269 #, fuzzy #| msgid "shift-request-view" msgid "No records available at the moment." @@ -4027,17 +4317,16 @@ msgstr "" #: .\leave\templates\leave\leave_request\filter_leave_requests.html:99 #: .\leave\templates\leave\leave_request\leave_requests_export_filter.html:132 #: .\leave\templates\leave\leave_type\leave_type_filter.html:61 -#: .\leave\templates\leave\request_view.html:75 #: .\leave\templates\leave\user_leave\user_request_view.html:142 -#: .\leave\templates\leave\user_request_view.html:76 #: .\onboarding\templates\onboarding\filters.html:45 #: .\payroll\templates\payroll\contract\contract_export_filter.html:134 #: .\payroll\templates\payroll\contract\filter_contract.html:100 #: .\payroll\templates\payroll\payslip\filter_payslips.html:59 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:134 -#: .\pms\templates\feedback\feedback_list_view.html:104 +#: .\pms\templates\feedback\feedback_list_view.html:102 #: .\pms\templates\meetings\meetings_filter.html:114 #: .\pms\templates\okr\objective_list_view.html:124 +#: .\project\templates\cbv\timesheet\filter.html:41 #: .\project\templates\time_sheet\filters.html:42 #: .\recruitment\templates\candidate\export_filter.html:174 #: .\recruitment\templates\candidate\filters.html:140 @@ -4078,8 +4367,8 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\nav.html:26 #: .\attendance\templates\attendance\own_attendance\filters.html:4 #: .\attendance\templates\attendance\own_attendance\filters.html:142 -#: .\attendance\templates\attendance\work_record\work_record_list.html:13 #: .\attendance\templates\attendance\work_record\work_record_list.html:32 +#: .\attendance\templates\attendance\work_record\work_record_list.html:52 #: .\attendance\templates\requests\attendance\filter.html:142 #: .\attendance\templates\requests\attendance\nav.html:69 #: .\base\templates\base\rotating_shift\filters.html:95 @@ -4100,19 +4389,20 @@ msgstr "" #: .\employee\templates\disciplinary_actions\disciplinary_nav.html:92 #: .\employee\templates\documents\document_nav.html:59 #: .\employee\templates\documents\document_nav.html:167 -#: .\employee\templates\employee_nav.html:313 -#: .\employee\templates\employee_nav.html:329 -#: .\helpdesk\templates\helpdesk\faq\faq_category_nav.html:67 +#: .\employee\templates\employee_nav.html:178 +#: .\employee\templates\employee_nav.html:187 +#: .\helpdesk\templates\helpdesk\faq\faq_category_nav.html:64 +#: .\helpdesk\templates\helpdesk\faq\faq_nav.html:53 #: .\helpdesk\templates\helpdesk\faq\faq_nav.html:79 #: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:47 #: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:132 #: .\horilla_views\templates\generic\horilla_nav.html:106 #: .\horilla_views\templates\generic\horilla_nav.html:145 #: .\horilla_views\templates\generic\horilla_nav.html:156 -#: .\horilla_views\templates\generic\quick_actions.html:137 +#: .\horilla_views\templates\generic\quick_actions.html:140 #: .\horilla_widgets\templates\horilla_widgets\horilla_multiselect_widget.html:172 -#: .\horilla_widgets\templates\horilla_widgets\multiselect_components\nav.html:38 -#: .\horilla_widgets\templates\horilla_widgets\multiselect_components\nav.html:57 +#: .\horilla_widgets\templates\horilla_widgets\multiselect_components\nav.html:45 +#: .\horilla_widgets\templates\horilla_widgets\multiselect_components\nav.html:65 #: .\leave\templates\leave\company_leave\company_leave_view.html:25 #: .\leave\templates\leave\company_leave\company_leave_view.html:53 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_view.html:70 @@ -4127,18 +4417,12 @@ msgstr "" #: .\leave\templates\leave\leave_request\request_view.html:97 #: .\leave\templates\leave\leave_type\leave_type_view.html:35 #: .\leave\templates\leave\leave_type\leave_type_view.html:43 -#: .\leave\templates\leave\request_view.html:35 -#: .\leave\templates\leave\request_view.html:97 #: .\leave\templates\leave\restrict\restrict_filter.html:50 #: .\leave\templates\leave\restrict\view_restrict.html:32 -#: .\leave\templates\leave\user_leave\user_leave_view.html:22 -#: .\leave\templates\leave\user_leave\user_leave_view.html:46 #: .\leave\templates\leave\user_leave\user_request_view.html:89 #: .\leave\templates\leave\user_leave\user_request_view.html:168 #: .\leave\templates\leave\user_leave_view.html:22 #: .\leave\templates\leave\user_leave_view.html:46 -#: .\leave\templates\leave\user_request_view.html:36 -#: .\leave\templates\leave\user_request_view.html:98 #: .\offboarding\templates\offboarding\pipeline\filter.html:3 #: .\offboarding\templates\offboarding\pipeline\filter.html:112 #: .\offboarding\templates\offboarding\resignation\filter.html:5 @@ -4159,7 +4443,7 @@ msgstr "" #: .\payroll\templates\payroll\payslip\view_payslips.html:70 #: .\payroll\templates\payroll\reimbursement\filter.html:5 #: .\pms\templates\feedback\feedback_list_view.html:39 -#: .\pms\templates\feedback\feedback_list_view.html:132 +#: .\pms\templates\feedback\feedback_list_view.html:130 #: .\pms\templates\meetings\meetings_nav.html:51 #: .\pms\templates\meetings\meetings_nav.html:69 #: .\pms\templates\okr\emp_objective\emp_objective_nav.html:75 @@ -4171,8 +4455,8 @@ msgstr "" #: .\pms\templates\okr\okr_nav.html:75 .\pms\templates\okr\okr_nav.html:128 #: .\project\templates\project\new\filter_project.html:42 #: .\project\templates\project\new\navbar.html:143 -#: .\project\templates\task\new\filter_task.html:40 -#: .\project\templates\task\new\task_navbar.html:78 +#: .\project\templates\task\new\filter_task.html:42 +#: .\project\templates\task\new\task_navbar.html:50 #: .\project\templates\task_all\task_all_filter.html:46 #: .\project\templates\task_all\task_all_navbar.html:91 #: .\project\templates\time_sheet\filters.html:63 @@ -4183,7 +4467,7 @@ msgstr "" #: .\recruitment\templates\candidate\interview_nav.html:85 #: .\recruitment\templates\pipeline\filters.html:175 #: .\recruitment\templates\pipeline\nav.html:169 -#: .\recruitment\templates\pipeline\pipeline_empty.html:40 +#: .\recruitment\templates\pipeline\pipeline_empty.html:38 #: .\recruitment\templates\recruitment\filters.html:71 #: .\recruitment\templates\recruitment\nav.html:23 #: .\recruitment\templates\skill_zone\skill_zone_nav.html:28 @@ -4193,6 +4477,20 @@ msgstr "" #: .\recruitment\templates\stage\nav.html:48 #: .\recruitment\templates\survey\filter.html:42 #: .\recruitment\templates\survey\view_question_templates.html:82 +#: .\report\templates\report\asset_report.html:31 +#: .\report\templates\report\asset_report.html:95 +#: .\report\templates\report\attendance_report.html:29 +#: .\report\templates\report\attendance_report.html:154 +#: .\report\templates\report\employee_report.html:26 +#: .\report\templates\report\employee_report.html:119 +#: .\report\templates\report\leave_report.html:29 +#: .\report\templates\report\leave_report.html:239 +#: .\report\templates\report\payroll_report.html:28 +#: .\report\templates\report\payroll_report.html:222 +#: .\report\templates\report\pms_report.html:27 +#: .\report\templates\report\pms_report.html:172 +#: .\report\templates\report\recruitment_report.html:26 +#: .\report\templates\report\recruitment_report.html:224 msgid "Filter" msgstr "" @@ -4234,15 +4532,16 @@ msgstr "" #: .\biometric\templates\biometric\nav_employees_biometric.html:34 #: .\biometric\templates\biometric\nav_employees_cosec_biometric.html:32 #: .\biometric\templates\biometric_users\dahua\nav_dahua_employees.html:17 +#: .\biometric\templates\biometric_users\etimeoffice\nav_etimeoffice_employees.html:17 #: .\employee\templates\documents\document_nav.html:44 -#: .\employee\templates\employee_nav.html:202 -#: .\employee\templates\employee_nav.html:228 -#: .\employee\templates\employee_nav.html:234 -#: .\employee\templates\employee_nav.html:240 -#: .\employee\templates\employee_nav.html:246 -#: .\employee\templates\employee_nav.html:252 -#: .\employee\templates\employee_nav.html:258 -#: .\employee\templates\employee_nav.html:264 +#: .\employee\templates\employee_nav.html:83 +#: .\employee\templates\employee_nav.html:104 +#: .\employee\templates\employee_nav.html:111 +#: .\employee\templates\employee_nav.html:118 +#: .\employee\templates\employee_nav.html:125 +#: .\employee\templates\employee_nav.html:131 +#: .\employee\templates\employee_nav.html:138 +#: .\employee\templates\employee_nav.html:145 #: .\helpdesk\templates\helpdesk\faq\faq_nav.html:28 #: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:24 #: .\horilla_views\templates\generic\horilla_nav.html:72 @@ -4254,19 +4553,16 @@ msgstr "" #: .\leave\templates\leave\leave_assign\assign_view.html:76 #: .\leave\templates\leave\leave_request\request_view.html:77 #: .\leave\templates\leave\leave_type\leave_type_view.html:30 -#: .\leave\templates\leave\request_view.html:29 #: .\leave\templates\leave\restrict\view_restrict.html:22 -#: .\leave\templates\leave\user_leave\user_leave_view.html:16 #: .\leave\templates\leave\user_leave\user_request_view.html:77 #: .\leave\templates\leave\user_leave_view.html:16 -#: .\leave\templates\leave\user_request_view.html:29 #: .\onboarding\templates\onboarding\candidates_view.html:58 #: .\onboarding\templates\onboarding\onboarding_view_nav.html:15 #: .\payroll\templates\payroll\allowance\view_allowance.html:32 #: .\payroll\templates\payroll\contract\contract_view.html:42 #: .\payroll\templates\payroll\deduction\view_deduction.html:33 #: .\payroll\templates\payroll\payslip\view_payslips.html:54 -#: .\payroll\templates\payroll\tax\filing_status_view.html:36 +#: .\payroll\templates\payroll\tax\filing_status_view.html:19 #: .\pms\templates\feedback\feedback_list_view.html:33 #: .\pms\templates\meetings\meetings_nav.html:41 #: .\pms\templates\okr\emp_objective\emp_objective_nav.html:64 @@ -4274,7 +4570,7 @@ msgstr "" #: .\pms\templates\okr\objective_list_view.html:45 #: .\pms\templates\okr\okr_nav.html:64 #: .\project\templates\project\new\navbar.html:105 -#: .\project\templates\task\new\task_navbar.html:40 +#: .\project\templates\task\new\task_navbar.html:22 #: .\project\templates\task_all\task_all_navbar.html:49 #: .\project\templates\time_sheet\time_sheet_navbar.html:36 #: .\recruitment\templates\candidate\candidate_nav.html:51 @@ -4308,8 +4604,8 @@ msgstr "" #: .\base\templates\shift_request\shift_request_nav.html:238 #: .\base\templates\work_type_request\work_type_request_nav.html:169 #: .\base\templates\work_type_request\work_type_request_nav.html:179 -#: .\employee\templates\employee_nav.html:341 -#: .\employee\templates\employee_nav.html:351 +#: .\employee\templates\employee_nav.html:195 +#: .\employee\templates\employee_nav.html:201 #: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:145 #: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:154 #: .\horilla_views\templates\generic\horilla_nav.html:163 @@ -4350,7 +4646,7 @@ msgstr "" #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_nav.html:77 #: .\base\templates\shift_request\shift_request_nav.html:242 #: .\base\templates\work_type_request\work_type_request_nav.html:183 -#: .\employee\templates\employee_nav.html:356 +#: .\employee\templates\employee_nav.html:205 #: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:158 #: .\horilla_views\templates\generic\horilla_nav.html:172 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:179 @@ -4393,196 +4689,31 @@ msgstr "" msgid "Return Description" msgstr "" -#: .\asset\templates\asset_history\asset_history_single_view.html:105 -#: .\asset\templates\request_allocation\asset_allocation_creation.html:50 -#: .\asset\templates\request_allocation\asset_approve.html:25 -msgid "Assign Condition Images" -msgstr "" - #: .\asset\templates\asset_history\asset_history_view.html:6 #, fuzzy #| msgid "recruitment" msgid "Selected Assets" msgstr "Recruitment" -#: .\asset\templates\batch\asset_batch_empty.html:22 +#: .\asset\templates\batch\asset_batch_empty.html:7 #: .\asset\templates\batch\asset_batch_number_view.html:22 #: .\asset\templates\category\asset_category_view.html:139 +#: .\report\templates\report\asset_report.html:68 msgid "Asset Batch Number" msgstr "" -#: .\asset\templates\batch\asset_batch_empty.html:32 -#: .\asset\templates\batch\asset_batch_number_view.html:44 -#: .\asset\templates\category\asset_category.html:60 -#: .\asset\templates\category\asset_category_view.html:198 -#: .\asset\templates\category\asset_empty.html:80 -#: .\attendance\templates\attendance\attendance\attendance_empty.html:84 -#: .\attendance\templates\attendance\attendance\attendance_nav.html:255 -#: .\attendance\templates\attendance\attendance_account\nav.html:159 -#: .\attendance\templates\attendance\attendance_account\overtime_empty.html:23 -#: .\attendance\templates\attendance\break_point\condition.html:13 -#: .\attendance\templates\attendance\grace_time\grace_time_table.html:22 -#: .\attendance\templates\attendance\grace_time\grace_time_table.html:137 -#: .\attendance\templates\requests\attendance\nav.html:145 -#: .\attendance\templates\requests\attendance\requests_empty.html:61 -#: .\base\templates\base\action_type\action_type.html:15 -#: .\base\templates\base\auth\group_accordion.html:49 -#: .\base\templates\base\company\company.html:17 -#: .\base\templates\base\department\department.html:17 -#: .\base\templates\base\employee_type\employee_type.html:17 -#: .\base\templates\base\job_position\job_position.html:15 -#: .\base\templates\base\job_role\job_role.html:15 -#: .\base\templates\base\mail_server\mail_server.html:17 -#: .\base\templates\base\rotating_shift\rotating_shift.html:18 -#: .\base\templates\base\rotating_work_type\rotating_work_type.html:18 -#: .\base\templates\base\shift\schedule.html:17 -#: .\base\templates\base\shift\shift.html:17 -#: .\base\templates\base\tags\employee_tags.html:20 -#: .\base\templates\base\tags\helpdesk_tags.html:20 -#: .\base\templates\base\tags\tags.html:21 -#: .\base\templates\base\ticket_type\ticket_type.html:17 -#: .\base\templates\base\work_type\work_type.html:17 -#: .\base\templates\company_leave\company_leave_view.html:67 -#: .\base\templates\holiday\holiday_view.html:87 -#: .\base\templates\mail\view_templates.html:32 -#: .\base\templates\multi_approval_condition\condition.html:31 -#: .\base\templates\shift_request\shift_request_nav.html:342 -#: .\base\templates\work_type_request\work_type_request_nav.html:271 -#: .\employee\templates\documents\document_nav.html:233 -#: .\employee\templates\employee_nav.html:483 -#: .\employee\templates\policies\nav.html:18 -#: .\employee\templates\tabs\document_tab.html:16 -#: .\employee\templates\tabs\profile-asset-tab.html:9 -#: .\employee\templates\tabs\profile-attendance-tab.html:9 -#: .\employee\templates\tabs\resignation.html:6 -#: .\helpdesk\templates\department_managers\department_managers.html:17 -#: .\helpdesk\templates\helpdesk\faq\faq_category_nav.html:83 -#: .\helpdesk\templates\helpdesk\faq\faq_nav.html:97 -#: .\helpdesk\templates\helpdesk\ticket\ticket_nav.html:100 -#: .\horilla_views\templates\generic\horilla_nav.html:229 -#: .\leave\templates\leave\accrual_plan_view.html:3 -#: .\leave\templates\leave\company_leave\company_leave_view.html:65 -#: .\leave\templates\leave\compensatory_leave\compensatory_leave_view.html:207 -#: .\leave\templates\leave\holiday\holiday_view.html:128 -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:220 -#: .\leave\templates\leave\leave_my_requests_view.html:3 -#: .\leave\templates\leave\leave_request\request_view.html:172 -#: .\leave\templates\leave\leave_request_view.html:3 -#: .\leave\templates\leave\leave_type\leave_type_creation.html:263 -#: .\leave\templates\leave\leave_type\leave_type_empty_view.html:33 -#: .\leave\templates\leave\leave_type\leave_type_view.html:55 -#: .\leave\templates\leave\leave_type_creation.html:185 -#: .\leave\templates\leave\request_view.html:108 -#: .\leave\templates\leave\restrict\view_restrict.html:67 -#: .\leave\templates\leave\user_eave_type_empty_view.html:32 -#: .\leave\templates\leave\user_leave\user_request_view.html:261 -#: .\leave\templates\leave\user_leave_type_empty_view.html:32 -#: .\offboarding\templates\offboarding\pipeline\nav.html:21 -#: .\offboarding\templates\offboarding\resignation\nav.html:88 -#: .\onboarding\templates\onboarding\candidate_creation.html:82 -#: .\onboarding\templates\onboarding\candidates_view.html:207 -#: .\payroll\templates\payroll\allowance\allowance_empty.html:24 -#: .\payroll\templates\payroll\allowance\view_allowance.html:72 -#: .\payroll\templates\payroll\contract\contract_empty.html:30 -#: .\payroll\templates\payroll\contract\contract_view.html:179 -#: .\payroll\templates\payroll\contribution\contribution_deduction_view.html:31 -#: .\payroll\templates\payroll\deduction\deduction_empty.html:25 -#: .\payroll\templates\payroll\deduction\view_deduction.html:73 -#: .\payroll\templates\payroll\loan\nav.html:83 -#: .\payroll\templates\payroll\payslip\payslips_empty.html:33 -#: .\payroll\templates\payroll\payslip\view_payslips.html:236 -#: .\payroll\templates\payroll\reimbursement\nav.html:52 -#: .\payroll\templates\payroll\settings\auto_payslip_settings.html:18 -#: .\payroll\templates\payroll\tax\filing_status_empty.html:20 -#: .\payroll\templates\payroll\tax\filing_status_list.html:56 -#: .\payroll\templates\payroll\tax\filing_status_view.html:54 -#: .\pms\templates\bonus\view_bonus_settings.html:17 -#: .\pms\templates\feedback\feedback_empty.html:31 -#: .\pms\templates\feedback\feedback_list_view.html:188 -#: .\pms\templates\feedback\question_template\question_template_empty.html:36 -#: .\pms\templates\feedback\question_template\question_template_view.html:38 -#: .\pms\templates\meetings\meetings_nav.html:93 -#: .\pms\templates\okr\key_result\kr_nav.html:124 -#: .\pms\templates\okr\objective_empty.html:28 -#: .\pms\templates\okr\objective_list_view.html:281 -#: .\pms\templates\okr\okr_nav.html:235 -#: .\pms\templates\period\period_empty.html:38 -#: .\pms\templates\period\period_view.html:28 -#: .\project\templates\project\new\navbar.html:249 -#: .\project\templates\task\new\task_navbar.html:103 -#: .\project\templates\time_sheet\time_sheet_navbar.html:147 -#: .\recruitment\templates\candidate\candidate_empty.html:33 -#: .\recruitment\templates\candidate\candidate_nav.html:253 -#: .\recruitment\templates\candidate\document.html:59 -#: .\recruitment\templates\candidate\interview_nav.html:100 -#: .\recruitment\templates\offerletter\view_templates.html:32 -#: .\recruitment\templates\recruitment\nav.html:35 -#: .\recruitment\templates\recruitment\recruitment_empty.html:18 -#: .\recruitment\templates\settings\reject_reasons.html:10 -#: .\recruitment\templates\settings\skills\skills_view.html:10 -#: .\recruitment\templates\skill_zone\skill_zone_nav.html:140 -#: .\recruitment\templates\skill_zone_cand\skill_zone_cand_nav.html:195 -#: .\recruitment\templates\stage\nav.html:69 -#: .\recruitment\templates\stage\stage_empty.html:23 -msgid "Create" -msgstr "" - -#: .\asset\templates\batch\asset_batch_empty.html:53 +#: .\asset\templates\batch\asset_batch_empty.html:31 msgid "No Asset Batches have been created." msgstr "" -#: .\asset\templates\batch\asset_batch_number_creation.html:20 -#, fuzzy -#| msgid "recruitment" -msgid "Create Batch Number" -msgstr "Recruitment" - -#: .\asset\templates\batch\asset_batch_number_creation.html:47 -#: .\asset\templates\batch\asset_batch_number_list.html:18 -#: .\asset\templates\batch\asset_batch_number_update.html:32 -#: .\asset\templates\category\asset_filter_export.html:50 -msgid "Batch Number" -msgstr "" - #: .\asset\templates\batch\asset_batch_number_list.html:52 msgid "Do you want to delete this batch number ?" msgstr "" -#: .\asset\templates\batch\asset_batch_number_update.html:23 -msgid "Batch Number Update" -msgstr "" - #: .\asset\templates\category\asset_category.html:81 msgid "Do you want to delete this category?" msgstr "" -#: .\asset\templates\category\asset_category_creation.html:32 -msgid "Asset Category Creation" -msgstr "" - -#: .\asset\templates\category\asset_category_creation.html:40 -#: .\asset\templates\category\asset_category_update.html:38 -#: .\base\forms.py:2634 .\base\models.py:1675 -#: .\biometric\templates\biometric\add_biometric_device.html:21 -#: .\biometric\templates\biometric\edit_biometric_device.html:20 -#: .\biometric\templates\biometric\edit_cosec_user.html:26 .\leave\forms.py:183 -#: .\leave\models.py:318 -#: .\leave\templates\leave\leave_type\leave_type_creation.html:32 -#: .\leave\templates\leave\leave_type\leave_type_filter.html:9 -#: .\leave\templates\leave\leave_type\leave_type_update.html:28 -#: .\leave\templates\leave\leave_type_creation.html:38 -#: .\leave\templates\leave\leave_type_update.html:40 -#: .\onboarding\templates\onboarding\table.html:10 .\recruitment\forms.py:402 -#: .\recruitment\models.py:339 -#: .\recruitment\templates\candidate\application_form.html:101 -#: .\recruitment\templates\pipeline\form\candidate_drop_down_form.html:19 -msgid "Name" -msgstr "" - -#: .\asset\templates\category\asset_category_update.html:29 -msgid "Asset Category Update" -msgstr "" - #: .\asset\templates\category\asset_category_view.html:70 msgid "Search in :Asset" msgstr "" @@ -4596,25 +4727,26 @@ msgid "Category Name" msgstr "" #: .\asset\templates\category\asset_category_view.html:133 +#: .\report\templates\report\asset_report.html:62 msgid "Purchase Cost" msgstr "" #: .\asset\templates\category\asset_category_view.html:178 -#: .\asset\templates\category\asset_empty.html:47 +#: .\asset\templates\category\asset_empty.html:27 msgid "Do you want to download template ?" msgstr "" #: .\asset\templates\category\asset_category_view.html:179 -#: .\asset\templates\category\asset_empty.html:47 +#: .\asset\templates\category\asset_empty.html:28 #: .\attendance\templates\attendance\attendance\attendance_empty.html:75 #: .\attendance\templates\attendance\attendance\attendance_nav.html:223 #: .\attendance\templates\attendance\attendance_activity\nav.html:76 #: .\base\templates\base\rotating_shift\rotating_shift_assign_nav.html:136 #: .\base\templates\holiday\holiday_view.html:52 -#: .\employee\templates\employee_nav.html:404 +#: .\employee\templates\employee_nav.html:237 #: .\leave\templates\leave\holiday\holiday_view.html:82 #: .\leave\templates\leave\leave_assign\assign_view.html:132 -#: .\project\templates\project\new\navbar.html:177 +#: .\project\cbv\projects.py:71 .\project\templates\project\new\navbar.html:177 msgid "Import" msgstr "" @@ -4628,7 +4760,7 @@ msgstr "" #: .\attendance\templates\attendance\attendance_activity\nav.html:82 #: .\attendance\templates\attendance\late_come_early_out\export_filter.html:185 #: .\attendance\templates\attendance\late_come_early_out\nav.html:74 -#: .\attendance\templates\attendance\work_record\work_record_list.html:5 +#: .\attendance\templates\attendance\work_record\work_record_list.html:22 #: .\base\templates\base\rotating_shift\rotating_shift_assign_export.html:125 #: .\base\templates\base\rotating_shift\rotating_shift_assign_nav.html:149 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_export.html:126 @@ -4640,15 +4772,15 @@ msgstr "" #: .\base\templates\work_type_request\work_type_request_export.html:142 #: .\base\templates\work_type_request\work_type_request_nav.html:226 #: .\employee\templates\employee_export_filter.html:101 -#: .\employee\templates\employee_nav.html:420 +#: .\employee\templates\employee_nav.html:247 #: .\horilla_views\templates\generic\export_fields_modal.html:13 -#: .\horilla_views\templates\generic\quick_actions.html:77 +#: .\horilla_views\templates\generic\quick_actions.html:78 #: .\leave\templates\leave\holiday\holiday_export_filter_form.html:74 #: .\leave\templates\leave\holiday\holiday_view.html:95 #: .\leave\templates\leave\leave_assign\assign_view.html:140 #: .\leave\templates\leave\leave_assign\assigned_leaves_export_form.html:153 #: .\leave\templates\leave\leave_request\leave_requests_export_filter.html:156 -#: .\leave\templates\leave\leave_request\request_view.html:153 +#: .\leave\templates\leave\leave_request\request_view.html:156 #: .\onboarding\templates\onboarding\candidates_view.html:149 #: .\payroll\templates\payroll\contract\contract_export_filter.html:184 #: .\payroll\templates\payroll\contract\contract_view.html:141 @@ -4656,16 +4788,18 @@ msgstr "" #: .\payroll\templates\payroll\dashboard.html:123 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:258 #: .\payroll\templates\payroll\payslip\view_payslips.html:202 -#: .\project\templates\project\new\navbar.html:188 +#: .\project\cbv\projects.py:80 .\project\templates\project\new\navbar.html:188 #: .\recruitment\templates\candidate\candidate_nav.html:157 #: .\recruitment\templates\candidate\export_filter.html:201 #: .\recruitment\templates\skill_zone_cand\skill_zone_cand_nav.html:30 msgid "Export" msgstr "" -#: .\asset\templates\category\asset_empty.html:96 -msgid "There is no Asset category and no Assets has been created." -msgstr "" +#: .\asset\templates\category\asset_empty.html:57 +#, fuzzy +#| msgid "attendance" +msgid "No Asset Categories or Assets have been created." +msgstr "Attendance" #: .\asset\templates\category\asset_filter_export.html:8 msgid "Export Assets" @@ -4675,26 +4809,6 @@ msgstr "" msgid "Purchased Date" msgstr "" -#: .\asset\templates\request_allocation\asset_allocation_creation.html:19 -#: .\asset\templates\request_allocation\asset_request_allocation_view.html:103 -#: .\asset\templates\request_allocation\asset_request_allocation_view.html:187 -#: .\asset\templates\request_allocation\asset_request_allocation_view.html:241 -msgid "Asset Allocation" -msgstr "" - -#: .\asset\templates\request_allocation\asset_allocation_creation.html:29 -msgid "Assigned To" -msgstr "" - -#: .\asset\templates\request_allocation\asset_allocation_creation.html:43 -#: .\asset\templates\request_allocation\individual_own.html:71 -msgid "Assigned By" -msgstr "" - -#: .\asset\templates\request_allocation\asset_approve.html:7 -msgid "Asset Approve" -msgstr "" - #: .\asset\templates\request_allocation\asset_request_allocation_list.html:69 #: .\asset\templates\request_allocation\asset_request_allocation_list.html:401 #: .\asset\templates\request_allocation\group_by.html:42 @@ -4776,8 +4890,6 @@ msgstr "Configuration" #: .\attendance\templates\attendance\attendance\group_by.html:193 #: .\attendance\templates\attendance\attendance\tab_content.html:791 #: .\attendance\templates\requests\attendance\individual_view.html:100 -#: .\base\templates\request_and_approve\leave_allocation_approve.html:35 -#: .\base\templates\request_and_approve\leave_request_approve.html:34 #: .\base\templates\shift_request\htmx\allocation_details.html:125 #: .\base\templates\shift_request\htmx\allocation_details.html:126 #: .\base\templates\shift_request\htmx\allocation_requests.html:144 @@ -4795,7 +4907,7 @@ msgstr "Configuration" #: .\base\templates\work_type_request\htmx\requests.html:170 #: .\base\templates\work_type_request\htmx\requests.html:177 #: .\base\templates\work_type_request\htmx\work_type_request_single_view.html:103 -#: .\employee\templates\documents\requests.html:190 +#: .\employee\templates\documents\requests.html:143 #: .\employee\templates\leave-tab.html:224 #: .\employee\templates\leave-tab.html:229 #: .\employee\templates\tabs\asset_request_tab.html:57 @@ -4811,6 +4923,8 @@ msgstr "Configuration" #: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:149 #: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:151 #: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:158 +#: .\leave\templates\leave\dashboard\leave_allocation_approve.html:35 +#: .\leave\templates\leave\dashboard\leave_request_approve.html:34 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:300 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:305 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_list.html:266 @@ -4864,9 +4978,6 @@ msgstr "" #: .\asset\templates\request_allocation\group_by.html:454 #: .\asset\templates\request_allocation\individual_request.html:125 #: .\attendance\templates\requests\attendance\individual_view.html:95 -#: .\base\templates\request_and_approve\leave_allocation_approve.html:46 -#: .\base\templates\request_and_approve\leave_allocation_approve.html:51 -#: .\base\templates\request_and_approve\leave_request_approve.html:40 #: .\base\templates\shift_request\htmx\group_by.html:148 #: .\base\templates\shift_request\htmx\group_by.html:154 #: .\base\templates\shift_request\htmx\group_by.html:521 @@ -4879,8 +4990,8 @@ msgstr "" #: .\base\templates\work_type_request\htmx\requests.html:190 #: .\base\templates\work_type_request\htmx\work_type_request_single_view.html:107 #: .\base\templates\work_type_request\htmx\work_type_request_single_view.html:108 -#: .\employee\templates\documents\requests.html:39 -#: .\employee\templates\documents\requests.html:208 +#: .\employee\templates\documents\requests.html:19 +#: .\employee\templates\documents\requests.html:156 #: .\employee\templates\tabs\asset_request_tab.html:67 #: .\employee\templates\tabs\document_tab.html:101 #: .\employee\templates\tabs\document_tab.html:219 @@ -4897,6 +5008,9 @@ msgstr "" #: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:168 #: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:171 #: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:178 +#: .\leave\templates\leave\dashboard\leave_allocation_approve.html:46 +#: .\leave\templates\leave\dashboard\leave_allocation_approve.html:51 +#: .\leave\templates\leave\dashboard\leave_request_approve.html:40 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:315 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:320 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_list.html:281 @@ -4941,13 +5055,6 @@ msgstr "" msgid "There is no asset allocation has been created." msgstr "" -#: .\asset\templates\request_allocation\asset_request_allocation_view.html:73 -#: .\asset\templates\request_allocation\asset_request_allocation_view.html:161 -#: .\asset\templates\request_allocation\asset_request_allocation_view.html:231 -#: .\asset\templates\request_allocation\asset_request_creation.html:12 -msgid "Asset Request" -msgstr "" - #: .\asset\templates\request_allocation\asset_request_allocation_view.html:79 msgid "Requested Employee" msgstr "" @@ -4964,10 +5071,6 @@ msgstr "" msgid "Create allocation" msgstr "" -#: .\asset\templates\request_allocation\asset_request_creation.html:36 -msgid "Requesting User" -msgstr "" - #: .\asset\templates\request_allocation\group_by.html:34 #: .\asset\templates\request_allocation\group_by.html:572 msgid "In use" @@ -4983,7 +5086,7 @@ msgstr "Update" #: .\asset\templates\request_allocation\group_by.html:224 #: .\asset\templates\request_allocation\group_by.html:422 #: .\asset\templates\request_allocation\individual_request.html:80 -#: .\base\models.py:858 .\base\models.py:1014 +#: .\base\models.py:861 .\base\models.py:1017 #: .\base\templates\shift_request\htmx\allocation_requests.html:50 #: .\base\templates\shift_request\htmx\group_by.html:44 #: .\base\templates\shift_request\htmx\group_by.html:346 @@ -5006,6 +5109,7 @@ msgstr "" #: .\asset\templates\request_allocation\group_by.html:235 #: .\asset\templates\request_allocation\group_by.html:433 #: .\asset\templates\request_allocation\individual_request.html:97 +#: .\attendance\models.py:218 msgid "Request Description" msgstr "" @@ -5029,16 +5133,17 @@ msgstr "" #: .\leave\templates\leave\leave_request\one_request_view.html:21 #: .\leave\templates\leave\leave_type\leave_type_individual_view.html:32 #: .\leave\templates\leave\user_leave\group_by.html:331 -#: .\leave\templates\leave\user_leave\user_request_one.html:7 +#: .\leave\templates\leave\user_leave\user_request_one.html:4 #: .\leave\templates\leave\user_leave\user_requests.html:270 #: .\offboarding\templates\offboarding\pipeline\individual_view.html:6 #: .\payroll\templates\payroll\loan\installments.html:5 #: .\payroll\templates\payroll\reimbursement\reimbursenent_individual.html:7 #: .\pms\templates\meetings\meeting_single_view.html:21 -#: .\pms\templates\okr\emp_obj_single.html:19 -#: .\recruitment\templates\recruitment\open_recruitments.html:93 +#: .\pms\templates\okr\emp_obj_single.html:19 .\project\cbv\dashboard.py:71 +#: .\project\cbv\timesheet.py:482 +#: .\recruitment\templates\recruitment\open_recruitments.html:102 #: .\recruitment\templates\survey\view_single_template.html:4 -#: .\templates\dashboard.html:276 +#: .\templates\dashboard.html:268 msgid "Details" msgstr "" @@ -5078,111 +5183,115 @@ msgstr "" msgid "Asset category created successfully" msgstr "" -#: .\asset\views.py:430 +#: .\asset\views.py:431 msgid "Asset category updated successfully" msgstr "" -#: .\asset\views.py:446 +#: .\asset\views.py:447 msgid "Asset category deleted." msgstr "" -#: .\asset\views.py:448 +#: .\asset\views.py:449 msgid "Assets are located within this category." msgstr "" -#: .\asset\views.py:597 +#: .\asset\views.py:599 msgid "Asset request created!" msgstr "" -#: .\asset\views.py:617 +#: .\asset\views.py:619 #, fuzzy #| msgid "recruitment" msgid "Asset request does not exist." msgstr "Recruitment" -#: .\asset\views.py:643 +#: .\asset\views.py:645 #, fuzzy #| msgid "shift-request-view" msgid "Your asset request has been approved!" msgstr "Shift Requests" -#: .\asset\views.py:650 +#: .\asset\views.py:652 #, fuzzy #| msgid "shift-request-view" msgid "Asset request approved successfully!" msgstr "Shift Requests" -#: .\asset\views.py:653 +#: .\asset\views.py:655 msgid "An error occurred: " msgstr "" -#: .\asset\views.py:713 +#: .\asset\views.py:715 #, fuzzy #| msgid "attendance" msgid "Asset request has been rejected." msgstr "Attendance" -#: .\asset\views.py:763 +#: .\asset\views.py:765 msgid "Asset allocated successfully!." msgstr "" -#: .\asset\views.py:777 +#: .\asset\views.py:779 msgid "Return request for {} initiated." msgstr "" -#: .\asset\views.py:850 +#: .\asset\views.py:852 msgid "Asset Return Successful !." msgstr "" -#: .\asset\views.py:871 +#: .\asset\views.py:873 msgid "Asset Return Successful!." msgstr "" -#: .\asset\views.py:1240 .\asset\views.py:1251 +#: .\asset\views.py:1242 .\asset\views.py:1253 msgid "Successfully imported Assets" msgstr "" -#: .\asset\views.py:1255 +#: .\asset\views.py:1257 msgid "File Error" msgstr "" -#: .\asset\views.py:1296 +#: .\asset\views.py:1298 msgid "There are no assets to export." msgstr "" -#: .\asset\views.py:1409 +#: .\asset\views.py:1412 msgid "Batch number created successfully." msgstr "" -#: .\asset\views.py:1476 +#: .\asset\views.py:1479 msgid "This batch number is already in-use" msgstr "" -#: .\asset\views.py:1484 +#: .\asset\views.py:1487 msgid "Batch updated successfully." msgstr "" -#: .\asset\views.py:1506 +#: .\asset\views.py:1510 msgid "Batch number in-use" msgstr "" -#: .\asset\views.py:1509 +#: .\asset\views.py:1513 msgid "Batch number deleted" msgstr "" -#: .\asset\views.py:1511 +#: .\asset\views.py:1515 msgid "Batch number not found" msgstr "" -#: .\asset\views.py:1513 +#: .\asset\views.py:1517 msgid "You cannot delete this Batch number." msgstr "" -#: .\asset\views.py:1643 .\asset\views.py:1673 +#: .\asset\views.py:1639 .\base\translator.py:249 +msgid "asset" +msgstr "Asset" + +#: .\asset\views.py:1647 .\asset\views.py:1677 msgid "Oops!! No Asset found..." msgstr "" -#: .\asset\views.py:1665 +#: .\asset\views.py:1669 msgid "assets in use" msgstr "" @@ -5212,7 +5321,7 @@ msgstr "" #: .\attendance\filters.py:69 .\base\translator.py:54 .\base\translator.py:109 #: .\horillavenv\Lib\site-packages\django\utils\dates.py:29 -#: .\leave\models.py:74 .\recruitment\views\dashboard.py:226 +#: .\leave\models.py:68 .\recruitment\views\dashboard.py:226 msgid "May" msgstr "" @@ -5258,36 +5367,22 @@ msgstr "" msgid "December" msgstr "" -#: .\attendance\forms.py:104 .\base\forms.py:214 .\base\forms.py:270 -#: .\employee\forms.py:337 .\payroll\forms\tax_forms.py:49 -#: .\recruitment\forms.py:94 .\recruitment\forms.py:150 -#, python-brace-format -msgid "---Choose {label}---" -msgstr "" - -#: .\attendance\forms.py:250 -msgid "Approve overtime?" -msgstr "" - -#: .\attendance\forms.py:251 -msgid "Validate Attendance?" -msgstr "" - -#: .\attendance\forms.py:292 +#: .\attendance\forms.py:218 #: .\base\templates\base\auth\group_assign_view.html:10 #: .\base\templates\base\auth\group_assign_view.html:37 -#: .\base\templates\base\auth\permission_assign.html:3 .\biometric\forms.py:101 -#: .\biometric\forms.py:127 +#: .\base\templates\base\auth\permission_assign.html:3 .\biometric\forms.py:103 +#: .\biometric\forms.py:136 #: .\biometric\templates\biometric\add_biometric_user.html:15 #: .\biometric\templates\biometric\list_biometric_devices.html:58 #: .\biometric\templates\biometric\nav_employees_biometric.html:7 #: .\biometric\templates\biometric\nav_employees_cosec_biometric.html:5 #: .\biometric\templates\biometric_users\dahua\nav_dahua_employees.html:5 -#: .\employee\models.py:884 +#: .\biometric\templates\biometric_users\etimeoffice\nav_etimeoffice_employees.html:5 +#: .\employee\models.py:911 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:69 -#: .\employee\templates\documents\document_request_create_form.html:40 -#: .\employee\templates\employee_nav.html:168 .\employee\views.py:2897 -#: .\employee\views.py:2920 +#: .\employee\templates\employee_nav.html:69 .\employee\views.py:2593 +#: .\employee\views.py:2851 .\employee\views.py:2874 +#: .\horilla_documents\models.py:47 #: .\leave\templates\leave\leave_assign\assigned_leaves_export_form.html:50 #: .\leave\templates\leave\leave_assign\assigned_leaves_filter.html:15 #: .\leave\templates\leave\leave_assign\leave_assign_one_form.html:28 @@ -5295,53 +5390,57 @@ msgstr "" #: .\leave\templates\leave\leave_assign_one_form.html:18 #: .\leave\templates\leave\leave_request\filter_leave_requests.html:15 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:15 -#: .\pms\forms.py:1093 .\pms\templates\meetings\meeting_single_view.html:60 +#: .\pms\forms.py:1078 .\pms\forms.py:1184 .\pms\forms.py:1290 +#: .\pms\models.py:535 .\pms\templates\meetings\meeting_single_view.html:60 #: .\pms\templates\meetings\meetings_list.html:28 #: .\pms\templates\meetings\meetings_list.html:29 #: .\pms\templates\meetings\meetings_list.html:85 #: .\pms\templates\meetings\view_meetings.html:33 +#: .\report\templates\report\leave_report.html:46 +#: .\report\templates\report\leave_report.html:135 +#: .\report\templates\report\pms_report.html:75 msgid "Employees" msgstr "" -#: .\attendance\forms.py:441 .\base\forms.py:823 .\base\forms.py:833 -#: .\base\forms.py:1473 .\base\forms.py:1483 .\base\models.py:1235 -#: .\payroll\models\models.py:314 .\payroll\models\models.py:1027 -#: .\payroll\models\models.py:1038 .\payroll\models\models.py:1319 -#: .\pms\templates\feedback\feedback_creation.html:49 -#: .\pms\templates\feedback\feedback_creation.html:61 -#: .\pms\templates\feedback\feedback_creation.html:123 -#: .\recruitment\forms.py:443 .\recruitment\forms.py:445 -#: .\recruitment\forms.py:452 .\recruitment\forms.py:528 -#: .\recruitment\forms.py:530 .\recruitment\models.py:209 -#: .\recruitment\models.py:229 +#: .\attendance\forms.py:368 .\base\forms.py:849 .\base\forms.py:859 +#: .\base\forms.py:1500 .\base\forms.py:1510 .\base\models.py:1244 +#: .\payroll\models\models.py:312 .\payroll\models\models.py:1025 +#: .\payroll\models\models.py:1036 .\payroll\models\models.py:1310 +#: .\pms\templates\feedback\feedback_creation.html:47 +#: .\pms\templates\feedback\feedback_creation.html:60 +#: .\pms\templates\feedback\feedback_creation.html:128 +#: .\recruitment\forms.py:456 .\recruitment\forms.py:458 +#: .\recruitment\forms.py:465 .\recruitment\forms.py:541 +#: .\recruitment\forms.py:543 .\recruitment\models.py:228 +#: .\recruitment\models.py:251 msgid "This field is required" msgstr "" -#: .\attendance\forms.py:475 .\base\forms.py:1258 +#: .\attendance\forms.py:402 .\base\forms.py:1284 msgid "Employee not chosen" msgstr "" -#: .\attendance\forms.py:533 .\attendance\models.py:601 +#: .\attendance\forms.py:460 .\attendance\models.py:604 #: .\attendance\templates\attendance\attendance_account\attendance_account_export_filter.html:97 #: .\attendance\templates\attendance\attendance_account\attendance_account_filter.html:52 #: .\attendance\templates\attendance\attendance_account\group_by.html:46 #: .\attendance\templates\attendance\attendance_account\overtime_list.html:40 #: .\attendance\templates\attendance\work_record\work_record_view.html:57 -#: .\employee\templates\tabs\attendance-tab.html:169 .\leave\models.py:120 +#: .\employee\templates\tabs\attendance-tab.html:169 .\leave\models.py:114 msgid "Month" msgstr "" -#: .\attendance\forms.py:551 .\attendance\models.py:608 +#: .\attendance\forms.py:478 .\attendance\models.py:611 #: .\attendance\templates\attendance\attendance_account\attendance_account_export_filter.html:107 #: .\attendance\templates\attendance\attendance_account\attendance_account_filter.html:62 #: .\attendance\templates\attendance\attendance_account\group_by.html:47 #: .\attendance\templates\attendance\attendance_account\overtime_list.html:41 -#: .\employee\templates\tabs\attendance-tab.html:170 .\leave\models.py:120 +#: .\employee\templates\tabs\attendance-tab.html:170 .\leave\models.py:114 msgid "Year" msgstr "" -#: .\attendance\forms.py:552 .\attendance\models.py:178 -#: .\attendance\models.py:615 +#: .\attendance\forms.py:479 .\attendance\models.py:178 +#: .\attendance\models.py:618 #: .\attendance\templates\attendance\attendance_account\attendance_account_export_filter.html:92 #: .\attendance\templates\attendance\attendance_account\attendance_account_export_filter.html:111 #: .\attendance\templates\attendance\attendance_account\attendance_account_filter.html:47 @@ -5351,7 +5450,7 @@ msgstr "" msgid "Worked Hours" msgstr "" -#: .\attendance\forms.py:553 .\attendance\models.py:622 +#: .\attendance\forms.py:480 .\attendance\models.py:625 #: .\attendance\templates\attendance\attendance\group_by.html:86 #: .\attendance\templates\attendance\attendance\group_by.html:386 #: .\attendance\templates\attendance\attendance\group_by.html:678 @@ -5361,7 +5460,7 @@ msgstr "" msgid "Pending Hours" msgstr "" -#: .\attendance\forms.py:554 .\attendance\models.py:197 +#: .\attendance\forms.py:481 .\attendance\models.py:197 #: .\attendance\templates\attendance\attendance\attendance_on_time.html:35 #: .\attendance\templates\attendance\attendance\attendance_request_one.html:110 #: .\attendance\templates\attendance\attendance\group_by.html:87 @@ -5392,114 +5491,108 @@ msgstr "" #: .\employee\templates\tabs\attendance-tab.html:172 #: .\employee\templates\tabs\attendance-tab.html:249 #: .\employee\templates\tabs\profile-attendance-tab.html:29 -#: .\payroll\models\models.py:725 +#: .\payroll\models\models.py:723 msgid "Overtime" msgstr "" -#: .\attendance\forms.py:597 +#: .\attendance\forms.py:525 msgid "" "{}" msgstr "" -#: .\attendance\forms.py:599 +#: .\attendance\forms.py:527 msgid "Worked Hours(At Work) Auto Approve Till" msgstr "" -#: .\attendance\forms.py:608 +#: .\attendance\forms.py:536 msgid "Minimum Hour to Approve Overtime" msgstr "" -#: .\attendance\forms.py:616 +#: .\attendance\forms.py:544 msgid "Maximum Allowed Overtime Per Day" msgstr "" -#: .\attendance\forms.py:762 .\attendance\forms.py:1119 +#: .\attendance\forms.py:694 .\attendance\forms.py:1052 #, fuzzy #| msgid "recruitment" msgid "Create Bulk" msgstr "Recruitment" -#: .\attendance\forms.py:772 .\base\translator.py:99 -msgid "Request description" -msgstr "" - -#: .\attendance\forms.py:797 .\attendance\forms.py:1234 +#: .\attendance\forms.py:729 .\attendance\forms.py:1167 #, fuzzy #| msgid "employee" msgid "Employee work info not found" msgstr "Employee" -#: .\attendance\forms.py:996 .\attendance\models.py:843 +#: .\attendance\forms.py:928 .\attendance\models.py:849 msgid "Allcocate this grace time for Check-In Attendance" msgstr "" -#: .\attendance\forms.py:1022 +#: .\attendance\forms.py:954 #, fuzzy #| msgid "assign-view" msgid "Assign Shifts" msgstr "Assigned Leaves" -#: .\attendance\forms.py:1130 +#: .\attendance\forms.py:1063 #: .\base\templates\holiday\holiday_export_filter_form.html:43 #: .\base\templates\holiday\holiday_filter.html:16 #: .\leave\templates\leave\holiday\holiday_export_filter_form.html:43 #: .\leave\templates\leave\holiday\holiday_filter.html:16 #: .\leave\templates\leave\leave_request\filter_leave_requests.html:105 -#: .\leave\templates\leave\request_view.html:80 #: .\leave\templates\leave\restrict\restrict_filter.html:12 #: .\leave\templates\leave\user_leave\user_request_view.html:148 -#: .\leave\templates\leave\user_request_view.html:81 +#: .\report\templates\report\leave_report.html:77 msgid "From Date" msgstr "" -#: .\attendance\forms.py:1135 +#: .\attendance\forms.py:1068 #: .\base\templates\holiday\holiday_export_filter_form.html:53 #: .\base\templates\holiday\holiday_filter.html:22 #: .\leave\templates\leave\holiday\holiday_export_filter_form.html:53 #: .\leave\templates\leave\holiday\holiday_filter.html:22 #: .\leave\templates\leave\leave_request\filter_leave_requests.html:112 #: .\leave\templates\leave\leave_request\leave_requests_export_filter.html:145 -#: .\leave\templates\leave\request_view.html:87 #: .\leave\templates\leave\restrict\restrict_filter.html:18 #: .\leave\templates\leave\user_leave\user_request_view.html:155 -#: .\leave\templates\leave\user_request_view.html:88 +#: .\report\templates\report\leave_report.html:84 msgid "To Date" msgstr "" -#: .\attendance\forms.py:1224 +#: .\attendance\forms.py:1157 msgid "To date should be after from date" msgstr "" -#: .\attendance\forms.py:1238 +#: .\attendance\forms.py:1171 msgid "" "There is no valid date to create attendance request between this date range" msgstr "" -#: .\attendance\forms.py:1320 +#: .\attendance\forms.py:1253 #, fuzzy #| msgid "create-allowance" msgid "Create attendance batch" msgstr "Creation" -#: .\attendance\forms.py:1343 +#: .\attendance\forms.py:1277 #, fuzzy -#| msgid "attendance" -msgid "Update batch attendance" -msgstr "Attendance" +#| msgid "create-allowance" +msgid "Update attendance batch" +msgstr "Creation" #: .\attendance\methods\utils.py:234 msgid "Invalid format, it should be HH:MM:SS format" msgstr "" #: .\attendance\methods\utils.py:247 .\base\forms.py:89 .\base\forms.py:95 -#: .\base\forms.py:97 .\base\models.py:55 .\biometric\models.py:22 -#: .\biometric\models.py:32 .\project\models.py:25 .\project\models.py:30 +#: .\base\forms.py:97 .\base\models.py:52 .\biometric\models.py:24 +#: .\biometric\models.py:34 .\project\models.py:33 .\project\models.py:38 msgid "Invalid format, it should be HH:MM format" msgstr "" -#: .\attendance\methods\utils.py:251 .\biometric\models.py:28 -#: .\project\models.py:34 +#: .\attendance\methods\utils.py:251 .\biometric\models.py:30 +#: .\project\models.py:42 msgid "Invalid time" msgstr "" @@ -5508,7 +5601,7 @@ msgstr "" msgid "Invalid time, excepted MM:SS" msgstr "" -#: .\attendance\methods\utils.py:257 .\project\models.py:36 +#: .\attendance\methods\utils.py:257 .\project\models.py:44 msgid "Invalid format" msgstr "" @@ -5516,7 +5609,7 @@ msgstr "" msgid "Check date format." msgstr "" -#: .\attendance\methods\utils.py:271 +#: .\attendance\methods\utils.py:271 .\project\models.py:587 msgid "You cannot choose a future date." msgstr "" @@ -5528,7 +5621,7 @@ msgstr "" msgid "Invalid format, excepted MM:SS" msgstr "" -#: .\attendance\models.py:65 +#: .\attendance\models.py:63 #: .\attendance\templates\attendance\attendance\attendance_activites_view.html:18 #: .\attendance\templates\attendance\attendance\attendance_filters.html:54 #: .\attendance\templates\attendance\attendance\export_filter.html:92 @@ -5544,17 +5637,18 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\single_report.html:60 #: .\attendance\templates\attendance\own_attendance\filters.html:20 #: .\attendance\templates\requests\attendance\filter.html:56 +#: .\report\templates\report\attendance_report.html:76 msgid "Attendance Date" msgstr "" -#: .\attendance\models.py:71 +#: .\attendance\models.py:69 #: .\attendance\templates\attendance\attendance_activity\activity_filters.html:66 #: .\attendance\templates\attendance\attendance_activity\export_filter.html:104 -#: .\base\models.py:578 +#: .\base\models.py:581 msgid "Shift Day" msgstr "" -#: .\attendance\models.py:74 +#: .\attendance\models.py:72 #: .\attendance\templates\attendance\attendance\attendance_activites_view.html:19 #: .\attendance\templates\attendance\attendance\attendance_on_time.html:28 #: .\attendance\templates\attendance\attendance\group_by.html:79 @@ -5591,7 +5685,7 @@ msgstr "" msgid "In Date" msgstr "" -#: .\attendance\models.py:75 +#: .\attendance\models.py:73 #: .\attendance\templates\attendance\attendance\attendance_request_one.html:63 #: .\attendance\templates\attendance\attendance_activity\activity_list.html:79 #: .\attendance\templates\attendance\attendance_activity\group_by.html:56 @@ -5600,7 +5694,7 @@ msgstr "" msgid "Check In" msgstr "" -#: .\attendance\models.py:76 +#: .\attendance\models.py:74 #: .\attendance\templates\attendance\attendance\attendance_activites_view.html:22 #: .\attendance\templates\attendance\attendance\attendance_on_time.html:30 #: .\attendance\templates\attendance\attendance\group_by.html:81 @@ -5637,7 +5731,7 @@ msgstr "" msgid "Out Date" msgstr "" -#: .\attendance\models.py:78 +#: .\attendance\models.py:76 #: .\attendance\templates\attendance\attendance\attendance_request_one.html:76 #: .\attendance\templates\attendance\attendance_activity\activity_list.html:80 #: .\attendance\templates\attendance\attendance_activity\group_by.html:57 @@ -5652,10 +5746,8 @@ msgstr "" #: .\attendance\models.py:129 #: .\base\templates\shift_request\shift_request_view.html:100 -#: .\base\templates\work_type_request\work_type_request_view.html:62 -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:319 -#: .\leave\templates\leave\user_leave\user_request_view.html:320 -#: .\leave\templates\leave\user_request_view.html:128 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:303 +#: .\leave\templates\leave\user_leave\user_request_view.html:304 msgid "Update Request" msgstr "" @@ -5759,16 +5851,17 @@ msgstr "" msgid "Batch Attendance" msgstr "Biometric Attendance" -#: .\attendance\models.py:200 .\attendance\views.py:1168 -#: .\attendance\views\views.py:1451 -msgid "Overtime approved" -msgstr "" +#: .\attendance\models.py:200 +#, fuzzy +#| msgid "shift-request-view" +msgid "Overtime Approve" +msgstr "Shift Requests" #: .\attendance\models.py:203 -#: .\attendance\templates\attendance\late_come_early_out\single_report.html:112 -#: .\base\translator.py:100 -msgid "Attendance validated" -msgstr "" +#, fuzzy +#| msgid "attendance-view" +msgid "Attendance Validate" +msgstr "Attendances" #: .\attendance\models.py:207 msgid "Overtime In Second" @@ -5782,13 +5875,37 @@ msgstr "" msgid "Is validate request approved" msgstr "" -#: .\attendance\models.py:582 +#: .\attendance\models.py:250 .\attendance\models.py:764 +#: .\attendance\sidebar.py:14 +#: .\attendance\templates\attendance\attendance\attendance_filters.html:49 +#: .\attendance\templates\attendance\attendance\export_filter.html:87 +#: .\attendance\templates\attendance\own_attendance\filters.html:15 +#: .\attendance\templates\requests\attendance\filter.html:51 +#: .\attendance\views\views.py:304 +#: .\employee\templates\employee\profile\profile_view.html:139 +#: .\employee\templates\employee\profile\profile_view.html:148 +#: .\employee\templates\employee\view\individual.html:333 +#: .\employee\templates\employee\view\individual.html:336 +#: .\payroll\models\models.py:726 +#: .\report\templates\report\attendance_report.html:40 +#: .\templates\settings.html:378 +msgid "Attendance" +msgstr "" + +#: .\attendance\models.py:251 .\attendance\sidebar.py:25 +#: .\attendance\templates\attendance\attendance\attendance_empty.html:60 +#: .\attendance\templates\attendance\attendance\attendance_nav.html:121 +#: .\attendance\templates\requests\attendance\nav.html:49 +msgid "Attendances" +msgstr "" + +#: .\attendance\models.py:585 #: .\attendance\templates\requests\attendance\attendance_comment.html:27 #: .\attendance\templates\requests\attendance\comment_view.html:27 #: .\attendance\templates\requests\attendance\group_by.html:60 #: .\attendance\templates\requests\attendance\request_lines.html:79 -#: .\base\models.py:979 .\base\models.py:1143 .\base\models.py:1543 -#: .\base\templates\announcement\comment_view.html:35 +#: .\base\models.py:982 .\base\models.py:1146 .\base\models.py:1577 +#: .\base\templates\announcement\comment_view.html:31 #: .\base\templates\shift_request\htmx\allocation_requests.html:53 #: .\base\templates\shift_request\htmx\comment_view.html:21 #: .\base\templates\shift_request\htmx\group_by.html:47 @@ -5799,7 +5916,7 @@ msgstr "" #: .\base\templates\work_type_request\htmx\group_by.html:102 #: .\base\templates\work_type_request\htmx\requests.html:74 #: .\base\templates\work_type_request\htmx\work_type_comment.html:36 -#: .\leave\models.py:1003 .\leave\models.py:1076 .\leave\models.py:1232 +#: .\leave\models.py:1158 .\leave\models.py:1238 .\leave\models.py:1396 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_comment.html:46 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:43 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:197 @@ -5815,7 +5932,7 @@ msgstr "" #: .\leave\templates\leave\leave_request\leave_requests.html:100 #: .\leave\templates\leave\user_leave\group_by.html:77 #: .\leave\templates\leave\user_leave\user_requests.html:71 -#: .\payroll\models\models.py:1912 +#: .\payroll\models\models.py:1792 #: .\payroll\templates\payroll\reimbursement\comment_view.html:21 #: .\payroll\templates\payroll\reimbursement\reimbursement_comment.html:33 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:115 @@ -5826,56 +5943,55 @@ msgstr "" msgid "Comment" msgstr "" -#: .\attendance\models.py:628 +#: .\attendance\models.py:631 #: .\attendance\templates\attendance\attendance_account\overtime_list.html:45 msgid "Overtime Hours" msgstr "" -#: .\attendance\models.py:633 +#: .\attendance\models.py:636 msgid "Worked Seconds" msgstr "" -#: .\attendance\models.py:638 +#: .\attendance\models.py:641 msgid "Pending Seconds" msgstr "" -#: .\attendance\models.py:643 +#: .\attendance\models.py:646 msgid "Overtime Seconds" msgstr "" -#: .\attendance\models.py:662 .\attendance\models.py:666 +#: .\attendance\models.py:659 .\attendance\sidebar.py:34 +#: .\attendance\templates\attendance\attendance_account\nav.html:8 +#: .\attendance\templates\attendance\attendance_account\overtime_empty.html:7 +#: .\attendance\templates\attendance\attendance_account\update_form.html:4 +#: .\employee\templates\tabs\attendance-tab.html:37 +#: .\employee\templates\tabs\attendance-tab.html:171 +msgid "Hour Account" +msgstr "" + +#: .\attendance\models.py:660 +msgid "Hour Accounts" +msgstr "" + +#: .\attendance\models.py:667 .\attendance\models.py:671 msgid "Year must be an integer value between 1900 and 2100" msgstr "" -#: .\attendance\models.py:751 +#: .\attendance\models.py:756 #: .\attendance\templates\attendance\dashboard\dashboard.html:50 #: .\attendance\templates\attendance\late_come_early_out\group_by.html:87 #: .\attendance\views.py:1338 .\attendance\views\dashboard.py:337 -#: .\base\methods.py:480 +#: .\base\methods.py:539 msgid "Late Come" msgstr "" -#: .\attendance\models.py:752 +#: .\attendance\models.py:757 #: .\attendance\templates\attendance\late_come_early_out\group_by.html:89 -#: .\attendance\views\dashboard.py:338 .\base\methods.py:481 +#: .\attendance\views\dashboard.py:338 .\base\methods.py:540 msgid "Early Out" msgstr "" -#: .\attendance\models.py:759 .\attendance\sidebar.py:14 -#: .\attendance\templates\attendance\attendance\attendance_filters.html:49 -#: .\attendance\templates\attendance\attendance\export_filter.html:87 -#: .\attendance\templates\attendance\own_attendance\filters.html:15 -#: .\attendance\templates\requests\attendance\filter.html:51 -#: .\attendance\views\views.py:305 -#: .\employee\templates\employee\profile\profile_view.html:227 -#: .\employee\templates\employee\profile\profile_view.html:236 -#: .\employee\templates\employee\view\individual.html:333 -#: .\employee\templates\employee\view\individual.html:336 -#: .\payroll\models\models.py:728 .\templates\settings.html:346 -msgid "Attendance" -msgstr "" - -#: .\attendance\models.py:769 +#: .\attendance\models.py:774 #: .\attendance\templates\attendance\late_come_early_out\export_filter.html:94 #: .\attendance\templates\attendance\late_come_early_out\group_by.html:46 #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:57 @@ -5883,7 +5999,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\single_report.html:56 #: .\base\templates\base\action_type\action_type_view.html:7 #: .\base\templates\base\ticket_type\ticket_type_view.html:7 -#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:162 +#: .\helpdesk\models.py:77 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:45 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:375 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:703 @@ -5899,106 +6015,100 @@ msgstr "" #: .\leave\templates\leave\leave_request_view.html:10 #: .\payroll\templates\payroll\loan\filter.html:27 #: .\payroll\templates\payroll\reimbursement\filter.html:37 -#: .\recruitment\forms.py:754 +#: .\recruitment\forms.py:767 #: .\recruitment\templates\stage\stage_component.html:54 #: .\recruitment\templates\stage\stage_component.html:57 -#: .\recruitment\templates\survey\template_accordion.html:58 +#: .\recruitment\templates\survey\template_accordion.html:73 msgid "Type" msgstr "" -#: .\attendance\models.py:807 +#: .\attendance\models.py:812 #, fuzzy #| msgid "shift-request-view" msgid "Worked Hours Auto Approve Till" msgstr "Shift Requests" -#: .\attendance\models.py:816 +#: .\attendance\models.py:821 #: .\attendance\templates\attendance\break_point\condition.html:32 #, fuzzy #| msgid "type-update" msgid "Auto Approve OT" msgstr "Update" -#: .\attendance\models.py:827 +#: .\attendance\models.py:832 msgid "You cannot add more conditions." msgstr "" -#: .\attendance\models.py:839 -#: .\attendance\templates\attendance\grace_time\grace_time_table.html:32 -#: .\attendance\templates\attendance\grace_time\grace_time_table.html:147 -msgid "Allowed time" -msgstr "" +#: .\attendance\models.py:844 +#, fuzzy +#| msgid "employee" +msgid "Allowed Time" +msgstr "Employee" -#: .\attendance\models.py:846 +#: .\attendance\models.py:850 +#, fuzzy +#| msgid "view-allowance" +msgid "Allowed Clock-In" +msgstr "Allowances" + +#: .\attendance\models.py:854 msgid "Allcocate this grace time for Check-Out Attendance" msgstr "" -#: .\attendance\models.py:864 +#: .\attendance\models.py:855 +msgid "Allowed Clock-Out" +msgstr "" + +#: .\attendance\models.py:873 msgid "There is already a default grace time that exists." msgstr "" -#: .\attendance\models.py:880 +#: .\attendance\models.py:889 msgid "There is already an existing grace time with this allowed time." msgstr "" -#: .\attendance\models.py:910 +#: .\attendance\models.py:919 msgid "Enable Check in/Check out" msgstr "" -#: .\attendance\models.py:912 +#: .\attendance\models.py:921 msgid "" "Enabling this feature allows employees to record their attendance using the " "Check-In/Check-Out button." msgstr "" -#: .\attendance\models.py:958 .\base\models.py:1759 -msgid "Specify the leave type to deduct the leave." -msgstr "" - -#: .\attendance\models.py:964 .\base\models.py:1765 -msgid "If a leave type is chosen for a penalty, minus leaves are required." -msgstr "" - -#: .\attendance\models.py:972 .\base\models.py:1773 -msgid "Either minus leaves or a penalty amount is required" -msgstr "" - -#: .\attendance\models.py:980 .\base\models.py:1781 -msgid "Leave type is required" -msgstr "" - -#: .\attendance\models.py:1044 .\attendance\models.py:1188 -#: .\attendance\templates\attendance\work_record\work_record_list.html:62 -#: .\payroll\models\models.py:389 .\payroll\models\models.py:514 +#: .\attendance\models.py:934 .\attendance\signals.py:31 +#: .\attendance\templates\attendance\work_record\work_record_list.html:101 +#: .\payroll\models\models.py:387 msgid "Present" msgstr "" -#: .\attendance\models.py:1045 -#: .\attendance\templates\attendance\work_record\work_record_list.html:58 -#: .\payroll\models\models.py:390 +#: .\attendance\models.py:935 +#: .\attendance\templates\attendance\work_record\work_record_list.html:94 +#: .\payroll\models\models.py:388 msgid "Half Day Present" msgstr "" -#: .\attendance\models.py:1046 -#: .\attendance\templates\attendance\work_record\work_record_list.html:50 -#: .\payroll\models\models.py:391 +#: .\attendance\models.py:936 +#: .\attendance\templates\attendance\work_record\work_record_list.html:73 +#: .\payroll\models\models.py:389 msgid "Absent" msgstr "" -#: .\attendance\models.py:1047 .\payroll\models\models.py:392 +#: .\attendance\models.py:937 .\payroll\models\models.py:390 msgid "Holiday/Company Leave" msgstr "" -#: .\attendance\models.py:1048 -#: .\attendance\templates\attendance\work_record\work_record_list.html:42 -#: .\payroll\models\models.py:393 +#: .\attendance\models.py:938 +#: .\attendance\templates\attendance\work_record\work_record_list.html:66 +#: .\payroll\models\models.py:391 msgid "Conflict" msgstr "" -#: .\attendance\models.py:1049 .\base\methods.py:461 +#: .\attendance\models.py:939 .\base\methods.py:520 #: .\employee\templates\payroll-tab.html:12 -#: .\employee\templates\tabs\payroll-tab.html:11 .\payroll\models\models.py:146 -#: .\payroll\models\models.py:394 .\payroll\models\models.py:1350 +#: .\employee\templates\tabs\payroll-tab.html:11 .\payroll\models\models.py:144 +#: .\payroll\models\models.py:392 .\payroll\models\models.py:1334 #: .\payroll\templates\payroll\contract\contract_view.html:152 #: .\payroll\templates\payroll\contract\contract_view.html:228 #: .\payroll\templates\payroll\dashboard.html:51 @@ -6006,47 +6116,24 @@ msgstr "" #: .\payroll\templates\payroll\payslip\group_payslips.html:25 #: .\payroll\templates\payroll\payslip\payslips_quick_filter.html:39 #: .\payroll\templates\payroll\payslip\view_payslips.html:184 -#: .\payroll\views\component_views.py:1107 -#: .\payroll\views\component_views.py:1928 .\payroll\views\views.py:68 +#: .\payroll\views\component_views.py:1100 +#: .\payroll\views\component_views.py:1921 .\payroll\views\views.py:68 msgid "Draft" msgstr "" -#: .\attendance\models.py:1115 .\payroll\models\models.py:439 +#: .\attendance\models.py:1004 .\payroll\models\models.py:437 msgid "Day percentage must be between 0.0 and 1.0" msgstr "" -#: .\attendance\models.py:1144 .\payroll\models\models.py:471 -msgid "Validate the attendance" -msgstr "" +#: .\attendance\models.py:1014 +#, fuzzy +#| msgid "work-records" +msgid "Work Record" +msgstr "Work Records" -#: .\attendance\models.py:1144 -#: .\attendance\templates\attendance\own_attendance\attendances.html:74 -#: .\attendance\templates\requests\attendance\view-requests.html:34 -#: .\payroll\models\models.py:471 -msgid "Validated" -msgstr "" - -#: .\attendance\models.py:1148 .\payroll\models\models.py:475 -msgid "Incomplete minimum hour" -msgstr "" - -#: .\attendance\models.py:1184 .\payroll\models\models.py:511 -msgid "Half day leave" -msgstr "" - -#: .\attendance\models.py:1186 -msgid "An approved leave exists" -msgstr "" - -#: .\attendance\models.py:1197 .\payroll\models\models.py:523 -msgid "Currently working" -msgstr "" - -#: .\attendance\sidebar.py:25 -#: .\attendance\templates\attendance\attendance\attendance_empty.html:60 -#: .\attendance\templates\attendance\attendance\attendance_nav.html:121 -#: .\attendance\templates\requests\attendance\nav.html:49 -msgid "Attendances" +#: .\attendance\models.py:1015 .\attendance\sidebar.py:39 +#: .\attendance\templates\attendance\work_record\work_record_view.html:51 +msgid "Work Records" msgstr "" #: .\attendance\sidebar.py:30 @@ -6055,22 +6142,6 @@ msgstr "" msgid "Attendance Requests" msgstr "Attendance" -#: .\attendance\sidebar.py:34 -#: .\attendance\templates\attendance\attendance_account\form.html:4 -#: .\attendance\templates\attendance\attendance_account\nav.html:8 -#: .\attendance\templates\attendance\attendance_account\overtime_empty.html:7 -#: .\attendance\templates\attendance\attendance_account\update_form.html:4 -#: .\employee\templates\tabs\attendance-tab.html:37 -#: .\employee\templates\tabs\attendance-tab.html:171 -msgid "Hour Account" -msgstr "" - -#: .\attendance\sidebar.py:39 -#: .\attendance\templates\attendance\work_record\work_record_employees_view.html:43 -#: .\attendance\templates\attendance\work_record\work_record_view.html:51 -msgid "Work Records" -msgstr "" - #: .\attendance\sidebar.py:44 #, fuzzy #| msgid "attendance-activity-view" @@ -6089,6 +6160,30 @@ msgstr "Track Late Come & Early Out" msgid "My Attendances" msgstr "" +#: .\attendance\signals.py:29 +msgid "Validate the attendance" +msgstr "" + +#: .\attendance\signals.py:33 +msgid "Incomplete minimum hour" +msgstr "" + +#: .\attendance\signals.py:35 +msgid "Incomplete half minimum hour" +msgstr "" + +#: .\attendance\signals.py:70 +msgid "Half day leave" +msgstr "" + +#: .\attendance\signals.py:70 +msgid "An approved leave exists" +msgstr "" + +#: .\attendance\signals.py:74 +msgid "Currently working" +msgstr "" + #: .\attendance\templates\attendance\attendance\attendance_activites_view.html:4 #: .\attendance\templates\attendance\attendance\attendance_request_one.html:120 #: .\pms\templates\okr\objective_detailed_view_activity.html:23 @@ -6125,12 +6220,14 @@ msgstr "Offboarding" #: .\attendance\templates\requests\attendance\request_lines.html:41 #: .\attendance\templates\requests\attendance\request_lines.html:268 #: .\attendance\templates\requests\attendance\request_lines.html:272 -#: .\payroll\forms\component_forms.py:487 +#: .\payroll\forms\component_forms.py:497 #: .\payroll\templates\payroll\payslip\filter_payslips.html:43 #: .\payroll\templates\payroll\payslip\generate_payslip_list.html:43 #: .\payroll\templates\payroll\payslip\group_by.html:87 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:124 -#: .\payroll\templates\payroll\payslip\payslip_table.html:84 +#: .\payroll\templates\payroll\payslip\payslip_table.html:61 +#: .\report\templates\report\attendance_report.html:90 +#: .\report\templates\report\payroll_report.html:60 msgid "Batch" msgstr "" @@ -6155,20 +6252,20 @@ msgstr "" #: .\attendance\templates\attendance\attendance_activity\import_activity.html:19 #: .\base\templates\base\rotating_shift\rotating_shift_assign_nav.html:240 #: .\base\templates\holiday\holiday_view.html:144 -#: .\employee\templates\employee_nav.html:62 +#: .\employee\templates\employee\employee_import.html:15 #: .\leave\templates\leave\holiday\holiday_view.html:213 #: .\leave\templates\leave\leave_assign\assign_view.html:23 +#: .\project\templates\cbv\projects\projects.html:113 #: .\project\templates\project\new\navbar.html:28 msgid "Uploading..." msgstr "" -#: .\attendance\templates\attendance\attendance\attendance_empty.html:99 -#: .\attendance\templates\attendance\attendance_account\overtime_empty.html:40 +#: .\attendance\templates\attendance\attendance\attendance_empty.html:95 +#: .\attendance\templates\attendance\attendance_account\overtime_empty.html:31 #: .\attendance\templates\attendance\attendance_activity\single_attendance_activity.html:129 -#: .\attendance\templates\attendance\late_come_early_out\reports_empty.html:18 +#: .\attendance\templates\attendance\late_come_early_out\reports_empty.html:14 #: .\attendance\templates\attendance\late_come_early_out\single_report.html:165 -#: .\attendance\templates\attendance\own_attendance\own_empty.html:18 -#: .\attendance\templates\requests\attendance\requests_empty.html:73 +#: .\attendance\templates\attendance\own_attendance\own_empty.html:14 msgid "There are no attendance records to display." msgstr "" @@ -6210,7 +6307,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\export_filter.html:59 #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:22 #: .\attendance\templates\requests\attendance\filter.html:23 -#: .\base\forms.py:2269 .\base\templates\base\rotating_shift\filters.html:59 +#: .\base\forms.py:2315 .\base\templates\base\rotating_shift\filters.html:59 #: .\base\templates\base\rotating_shift\rotating_shift_assign_export.html:91 #: .\base\templates\base\rotating_work_type\filters.html:59 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_export.html:92 @@ -6218,14 +6315,14 @@ msgstr "" #: .\base\templates\shift_request\shift_request_nav.html:132 #: .\base\templates\work_type_request\work_type_request_export.html:75 #: .\base\templates\work_type_request\work_type_request_nav.html:98 -#: .\base\translator.py:103 .\base\views.py:5797 .\base\views.py:5899 -#: .\employee\models.py:592 +#: .\base\translator.py:103 .\base\views.py:5827 .\base\views.py:5929 +#: .\employee\models.py:603 #: .\employee\templates\disciplinary_actions\disciplinary_nav.html:73 #: .\employee\templates\documents\document_nav.html:113 #: .\employee\templates\employee\profile\work_info.html:49 #: .\employee\templates\employee_export_filter.html:81 #: .\employee\templates\employee_filters.html:65 -#: .\employee\templates\employee_nav.html:228 +#: .\employee\templates\employee_nav.html:104 #: .\employee\templates\employee_personal_info\employee_list.html:103 #: .\employee\templates\employee_personal_info\employee_list.html:107 #: .\employee\templates\employee_personal_info\group_by.html:83 @@ -6234,7 +6331,11 @@ msgstr "" #: .\leave\filters.py:414 .\leave\filters.py:436 #: .\leave\templates\leave\leave_request\filter_leave_requests.html:63 #: .\leave\templates\leave\leave_request\leave_requests_export_filter.html:97 -#: .\payroll\filters.py:373 .\pms\templates\meetings\meetings_filter.html:89 +#: .\payroll\filters.py:444 .\pms\cbvs.py:179 +#: .\pms\templates\meetings\meetings_filter.html:89 +#: .\project\cbv\timesheet.py:115 +#: .\report\templates\report\employee_report.html:91 +#: .\report\templates\report\leave_report.html:97 msgid "Reporting Manager" msgstr "" @@ -6247,7 +6348,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\export_filter.html:81 #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:42 #: .\attendance\templates\requests\attendance\filter.html:43 -#: .\employee\models.py:605 +#: .\employee\models.py:631 #: .\employee\templates\employee\profile\work_info.html:63 #: .\employee\templates\personal-tab.html:187 #: .\employee\templates\tabs\personal_tab.html:194 @@ -6260,6 +6361,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:79 #: .\attendance\templates\attendance\own_attendance\filters.html:24 #: .\attendance\templates\requests\attendance\filter.html:60 +#: .\report\templates\report\attendance_report.html:80 msgid "In Time" msgstr "" @@ -6303,6 +6405,7 @@ msgstr "" #: .\employee\templates\tabs\attendance-tab.html:58 #: .\employee\templates\tabs\attendance-tab.html:247 #: .\employee\templates\tabs\profile-attendance-tab.html:27 +#: .\report\templates\report\attendance_report.html:84 msgid "Min Hour" msgstr "" @@ -6312,6 +6415,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:65 #: .\attendance\templates\attendance\own_attendance\filters.html:42 #: .\attendance\templates\requests\attendance\filter.html:78 +#: .\report\templates\report\attendance_report.html:94 msgid "Out Time" msgstr "" @@ -6332,6 +6436,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:96 #: .\attendance\templates\attendance\own_attendance\filters.html:63 #: .\attendance\templates\requests\attendance\filter.html:95 +#: .\report\templates\report\attendance_report.html:100 msgid "Attendance From" msgstr "" @@ -6343,6 +6448,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:100 #: .\attendance\templates\attendance\own_attendance\filters.html:67 #: .\attendance\templates\requests\attendance\filter.html:99 +#: .\report\templates\report\attendance_report.html:104 msgid "In From" msgstr "" @@ -6354,6 +6460,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:104 #: .\attendance\templates\attendance\own_attendance\filters.html:71 #: .\attendance\templates\requests\attendance\filter.html:103 +#: .\report\templates\report\attendance_report.html:108 msgid "Out From" msgstr "" @@ -6363,6 +6470,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:108 #: .\attendance\templates\attendance\own_attendance\filters.html:75 #: .\attendance\templates\requests\attendance\filter.html:107 +#: .\report\templates\report\attendance_report.html:112 msgid "At Work Greater or Equal" msgstr "" @@ -6376,6 +6484,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:112 #: .\attendance\templates\attendance\own_attendance\filters.html:79 #: .\attendance\templates\requests\attendance\filter.html:111 +#: .\report\templates\report\attendance_report.html:116 msgid "OT Greater or Equal" msgstr "" @@ -6387,6 +6496,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:118 #: .\attendance\templates\attendance\own_attendance\filters.html:85 #: .\attendance\templates\requests\attendance\filter.html:117 +#: .\report\templates\report\attendance_report.html:123 msgid "Attendance Till" msgstr "" @@ -6398,6 +6508,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:122 #: .\attendance\templates\attendance\own_attendance\filters.html:89 #: .\attendance\templates\requests\attendance\filter.html:121 +#: .\report\templates\report\attendance_report.html:127 msgid "In Till" msgstr "" @@ -6409,6 +6520,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:126 #: .\attendance\templates\attendance\own_attendance\filters.html:93 #: .\attendance\templates\requests\attendance\filter.html:125 +#: .\report\templates\report\attendance_report.html:131 msgid "Out Till" msgstr "" @@ -6418,6 +6530,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:130 #: .\attendance\templates\attendance\own_attendance\filters.html:97 #: .\attendance\templates\requests\attendance\filter.html:129 +#: .\report\templates\report\attendance_report.html:135 msgid "At Work Less Than or Equal" msgstr "" @@ -6431,6 +6544,7 @@ msgstr "" #: .\attendance\templates\attendance\late_come_early_out\late_come_early_out_filters.html:134 #: .\attendance\templates\attendance\own_attendance\filters.html:101 #: .\attendance\templates\requests\attendance\filter.html:133 +#: .\report\templates\report\attendance_report.html:139 msgid "OT Less Than or Equal" msgstr "" @@ -6522,20 +6636,20 @@ msgstr "" #: .\leave\templates\leave\restrict\restrict.html:40 #: .\leave\templates\leave\user_leave\group_by.html:67 #: .\leave\templates\leave\user_leave\user_requests.html:61 -#: .\onboarding\templates\onboarding\candidates.html:49 +#: .\onboarding\templates\onboarding\candidates.html:44 #: .\payroll\templates\payroll\contract\contract_export_filter.html:23 #: .\payroll\templates\payroll\contract\contract_list.html:40 #: .\payroll\templates\payroll\contract\group_by.html:44 #: .\payroll\templates\payroll\payslip\group_by.html:80 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:48 -#: .\payroll\templates\payroll\payslip\payslip_table.html:65 +#: .\payroll\templates\payroll\payslip\payslip_table.html:50 #: .\pms\templates\feedback\feedback_list.html:94 #: .\pms\templates\feedback\feedback_list.html:257 #: .\pms\templates\feedback\feedback_list.html:393 #: .\pms\templates\feedback\feedback_list.html:551 #: .\pms\templates\okr\group_by.html:106 .\pms\templates\okr\group_by.html:427 #: .\pms\templates\okr\key_result\kr_dashboard_view.html:41 -#: .\pms\templates\okr\key_result\kr_list.html:52 +#: .\pms\templates\okr\key_result\kr_list.html:50 #: .\pms\templates\okr\kr_list.html:20 #: .\pms\templates\okr\objective_list.html:86 #: .\pms\templates\okr\objective_list.html:305 @@ -6585,6 +6699,9 @@ msgstr "" #: .\pms\templates\meetings\meetings_filter.html:37 #: .\pms\templates\meetings\meetings_list.html:32 #: .\pms\templates\meetings\meetings_list.html:33 +#: .\project\cbv\timesheet.py:111 .\project\cbv\timesheet.py:163 +#: .\project\cbv\timesheet.py:491 +#: .\project\templates\cbv\timesheet\filter.html:24 #: .\project\templates\task\new\task_timesheet.html:58 #: .\project\templates\time_sheet\filters.html:25 #: .\project\templates\time_sheet\time_sheet_list_view.html:38 @@ -6619,7 +6736,7 @@ msgstr "" #: .\employee\templates\tabs\attendance-tab.html:51 #: .\employee\templates\tabs\attendance-tab.html:240 #: .\employee\templates\tabs\profile-attendance-tab.html:20 -#: .\leave\models.py:120 .\templates\dashboard_tile_container.html:141 +#: .\leave\models.py:114 .\templates\dashboard_tile_container.html:141 msgid "Day" msgstr "" @@ -6694,6 +6811,7 @@ msgstr "" #: .\base\templates\base\employee_type\type_view.html:30 #: .\base\templates\base\job_position\job_position_view.html:70 #: .\base\templates\base\job_role\job_role_view.html:68 +#: .\base\templates\base\mail_server\mail_server_view.html:74 #: .\base\templates\base\rotating_shift\htmx\group_by.html:190 #: .\base\templates\base\rotating_shift\rotating_shift_assign_view.html:180 #: .\base\templates\base\rotating_shift\rotating_shift_view.html:43 @@ -6736,12 +6854,11 @@ msgstr "" #: .\leave\templates\leave\leave_assign\single_assign_view.html:102 #: .\payroll\templates\payroll\payslip\group_by.html:174 #: .\payroll\templates\payroll\payslip\group_payslips.html:129 -#: .\payroll\templates\payroll\payslip\payslip_table.html:177 +#: .\payroll\templates\payroll\payslip\payslip_table.html:149 #: .\payroll\templates\payroll\settings\payslip_auto_generate_table.html:64 #: .\pms\templates\okr\okr_list.html:188 .\pms\templates\okr\okr_list.html:221 #: .\pms\templates\okr\okr_list.html:253 -#: .\recruitment\templates\candidate\interview_list.html:93 -#: .\recruitment\templates\recruitment\recruitment_component.html:125 +#: .\recruitment\templates\recruitment\recruitment_component.html:134 #: .\recruitment\templates\settings\reject_reason_lines.html:38 #: .\recruitment\templates\settings\skills\skills_list.html:38 #: .\recruitment\templates\skill_zone\skill_zone_list.html:86 @@ -6847,7 +6964,7 @@ msgid "No of Attendances" msgstr "Attendance" #: .\attendance\templates\attendance\attendance\batches_list.html:39 -#: .\employee\forms.py:693 +#: .\employee\forms.py:703 #: .\helpdesk\templates\helpdesk\ticket\ticket_claim_requests.html:34 #, fuzzy #| msgid "update-deduction" @@ -6898,8 +7015,6 @@ msgstr "" #: .\attendance\templates\attendance\attendance\group_by.html:633 #: .\attendance\templates\attendance\attendance\group_by.html:913 #: .\attendance\templates\attendance\attendance_account\group_by.html:227 -#: .\attendance\templates\attendance\attendance_activity\group_by.html:204 -#: .\attendance\templates\attendance\late_come_early_out\group_by.html:257 #: .\attendance\templates\requests\attendance\group_by.html:316 #: .\attendance\templates\requests\attendance\group_by.html:596 #: .\base\templates\base\rotating_shift\htmx\group_by.html:347 @@ -6943,8 +7058,7 @@ msgstr "" #: .\base\templates\shift_request\htmx\requests.html:570 #: .\base\templates\work_type_request\htmx\requests.html:249 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:216 -#: .\employee\templates\documents\requests.html:392 -#: .\employee\templates\employee_personal_info\employee_card.html:184 +#: .\employee\templates\employee_personal_info\employee_card.html:185 #: .\employee\templates\employee_personal_info\employee_list.html:379 #: .\employee\templates\policies\records.html:74 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:277 @@ -6958,7 +7072,7 @@ msgstr "" #: .\leave\templates\leave\user_leave\user_requests.html:237 #: .\offboarding\templates\offboarding\pipeline\offboardings.html:189 #: .\offboarding\templates\offboarding\resignation\request_list.html:287 -#: .\onboarding\templates\onboarding\candidates.html:195 +#: .\onboarding\templates\onboarding\candidates.html:213 #: .\payroll\templates\payroll\allowance\card_allowance.html:165 #: .\payroll\templates\payroll\allowance\list_allowance.html:186 #: .\payroll\templates\payroll\contract\contract_list.html:214 @@ -6972,19 +7086,21 @@ msgstr "" #: .\payroll\templates\payroll\loan\records_list.html:493 #: .\payroll\templates\payroll\loan\records_list.html:735 #: .\payroll\templates\payroll\payslip\group_by.html:302 -#: .\payroll\templates\payroll\payslip\payslip_table.html:240 +#: .\payroll\templates\payroll\payslip\payslip_table.html:204 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:373 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:710 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:1038 #: .\payroll\templates\payroll\reimbursement\request_cards.html:341 #: .\payroll\templates\payroll\reimbursement\request_cards.html:628 #: .\payroll\templates\payroll\reimbursement\request_cards.html:915 -#: .\pms\templates\okr\key_result\kr_card.html:136 -#: .\pms\templates\okr\key_result\kr_list.html:204 +#: .\pms\templates\okr\key_result\kr_card.html:116 +#: .\pms\templates\okr\key_result\kr_list.html:170 #: .\pms\templates\okr\okr_list.html:397 .\pms\templates\okr\okr_list.html:636 +#: .\project\templates\task\new\task_kanban_view.html:165 +#: .\project\templates\task\new\task_list_view.html:210 #: .\recruitment\templates\candidate\candidate_card.html:318 #: .\recruitment\templates\candidate\candidate_list.html:363 -#: .\recruitment\templates\recruitment\recruitment_component.html:273 +#: .\recruitment\templates\recruitment\recruitment_component.html:282 #: .\recruitment\templates\skill_zone\skill_zone_card.html:141 #: .\recruitment\templates\skill_zone\skill_zone_list.html:310 #: .\recruitment\templates\stage\stage_component.html:264 @@ -7001,7 +7117,7 @@ msgstr "" msgid "No validated attendance to show." msgstr "" -#: .\attendance\templates\attendance\attendance\validate_attendance_empty.html:13 +#: .\attendance\templates\attendance\attendance\validate_attendance_empty.html:7 #, python-format msgid "" "The attendances for this employee in %(month_name)s has not been validated." @@ -7049,13 +7165,13 @@ msgstr "" #: .\attendance\templates\attendance\attendance_account\attendance_overtime_view.html:11 #: .\attendance\templates\requests\attendance\view-requests.html:39 -#: .\horilla_views\templates\generic\as_list.html:7 +#: .\horilla_views\templates\generic\as_list.html:11 msgid "Select All Records" msgstr "" #: .\attendance\templates\attendance\attendance_account\attendance_overtime_view.html:14 #: .\attendance\templates\requests\attendance\view-requests.html:42 -#: .\horilla_views\templates\generic\as_list.html:10 +#: .\horilla_views\templates\generic\as_list.html:18 msgid "Unselect All Records" msgstr "" @@ -7080,11 +7196,11 @@ msgstr "" #: .\attendance\templates\attendance\attendance_activity\activity_filters.html:47 #: .\attendance\templates\attendance\attendance_activity\export_filter.html:85 #: .\attendance\templates\attendance\attendance_activity\nav.html:6 -#: .\attendance\views\views.py:1018 +#: .\attendance\views\views.py:1017 msgid "Attendance Activity" msgstr "" -#: .\attendance\templates\attendance\attendance_activity\activity_empty.html:16 +#: .\attendance\templates\attendance\attendance_activity\activity_empty.html:14 #, fuzzy #| msgid "shift-request-view" msgid "There are no attendance activity records to display." @@ -7115,6 +7231,13 @@ msgstr "Attendance Activities" msgid "Attendnace Date" msgstr "" +#: .\attendance\templates\attendance\attendance_activity\group_by.html:201 +#: .\attendance\templates\attendance\late_come_early_out\group_by.html:253 +#, fuzzy +#| msgid "shift-request-view" +msgid "No group result found." +msgstr "Shift Requests" + #: .\attendance\templates\attendance\attendance_activity\import_activity.html:4 #, fuzzy #| msgid "attendance-activity-view" @@ -7130,7 +7253,8 @@ msgid "Do you want to download the template?" msgstr "" #: .\attendance\templates\attendance\attendance_activity\import_activity.html:50 -#: .\templates\index.html:103 +#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:67 +#: .\templates\index.html:100 #, fuzzy #| msgid "configuration" msgid "Confirm" @@ -7188,16 +7312,16 @@ msgstr "" #: .\attendance\templates\attendance\dashboard\dashboard.html:81 #: .\attendance\templates\attendance\dashboard\dashboard.html:197 -#: .\base\methods.py:465 .\leave\models.py:67 .\payroll\models\models.py:133 +#: .\base\methods.py:524 .\leave\models.py:61 .\payroll\models\models.py:131 #: .\templates\dashboard_tile_container.html:142 msgid "Weekly" msgstr "" #: .\attendance\templates\attendance\dashboard\dashboard.html:84 #: .\attendance\templates\attendance\dashboard\dashboard.html:200 -#: .\base\methods.py:466 .\base\methods.py:471 .\base\models.py:336 -#: .\leave\models.py:66 .\payroll\models\models.py:134 -#: .\payroll\models\models.py:139 .\templates\dashboard_tile_container.html:143 +#: .\base\methods.py:525 .\base\methods.py:530 .\base\models.py:339 +#: .\leave\models.py:60 .\payroll\models\models.py:132 +#: .\payroll\models\models.py:137 .\templates\dashboard_tile_container.html:143 msgid "Monthly" msgstr "" @@ -7210,14 +7334,14 @@ msgid "Date range" msgstr "Update" #: .\attendance\templates\attendance\dashboard\dashboard.html:106 -#: .\base\views.py:6637 .\templates\dashboard_tile_container.html:9 +#: .\base\views.py:6667 .\templates\dashboard_tile_container.html:9 #, fuzzy #| msgid "employee" msgid "Offline Employees" msgstr "Employee" #: .\attendance\templates\attendance\dashboard\dashboard.html:123 -#: .\base\views.py:6644 .\templates\dashboard_tile_container.html:165 +#: .\base\views.py:6674 .\templates\dashboard_tile_container.html:165 msgid "Hours Chart" msgstr "" @@ -7249,13 +7373,15 @@ msgstr "Update" #: .\attendance\templates\attendance\dashboard\dashboard.html:225 #: .\employee\templates\dashboard\not_in_yet.html:22 #: .\employee\templates\dashboard\not_out_yet.html:26 -#: .\employee\templates\employee\send_mail.html:78 +#: .\employee\templates\employee\send_mail.html:95 #: .\employee\templates\employee_personal_info\employee_list.html:246 #: .\employee\templates\employee_personal_info\employee_list.html:390 #: .\employee\templates\employee_personal_info\employee_view.html:42 +#: .\offboarding\templates\offboarding\dashboard\asset_returned_table.html:57 +#: .\offboarding\templates\offboarding\dashboard\dashboard.html:196 #: .\offboarding\templates\offboarding\task\table_body.html:66 -#: .\onboarding\templates\onboarding\candidates.html:116 -#: .\onboarding\templates\onboarding\candidates.html:260 +#: .\onboarding\templates\onboarding\candidates.html:123 +#: .\onboarding\templates\onboarding\candidates.html:307 #: .\onboarding\templates\onboarding\dashboard\task_report.html:43 #: .\onboarding\templates\onboarding\group_by.html:107 #: .\onboarding\templates\onboarding\kanban\kanban.html:113 @@ -7266,9 +7392,9 @@ msgstr "Update" #: .\recruitment\templates\pipeline\footer_components.html:10 #: .\recruitment\templates\pipeline\kanban_components\candidate_kanban_components.html:125 #: .\recruitment\templates\pipeline\pipeline_card.html:200 -#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:5 -#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:99 -#: .\templates\dashboard.html:264 +#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:10 +#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:115 +#: .\templates\dashboard.html:256 msgid "Send Mail" msgstr "" @@ -7276,13 +7402,15 @@ msgstr "" msgid "No employees are currently taking a break." msgstr "" -#: .\attendance\templates\attendance\dashboard\overtime_table.html:74 -msgid "No Overtime to Validate...." +#: .\attendance\templates\attendance\dashboard\overtime_table.html:73 +msgid "No overtime records pending validation." msgstr "" #: .\attendance\templates\attendance\dashboard\to_validate_table.html:92 -msgid "All Attendance Validated." -msgstr "" +#, fuzzy +#| msgid "attendance-view" +msgid "No pending attendance to validate." +msgstr "Attendances" #: .\attendance\templates\attendance\grace_time\grace_time_form.html:7 msgid "Update grace time" @@ -7292,22 +7420,6 @@ msgstr "" msgid "Create grace time" msgstr "" -#: .\attendance\templates\attendance\grace_time\grace_time_form.html:43 -#, fuzzy -#| msgid "employee" -msgid "Allowed Time" -msgstr "Employee" - -#: .\attendance\templates\attendance\grace_time\grace_time_form.html:53 -#, fuzzy -#| msgid "view-allowance" -msgid "Allowed Clock-In" -msgstr "Allowances" - -#: .\attendance\templates\attendance\grace_time\grace_time_form.html:65 -msgid "Allowed Clock-Out" -msgstr "" - #: .\attendance\templates\attendance\grace_time\grace_time_form.html:79 #, fuzzy #| msgid "shift" @@ -7318,11 +7430,17 @@ msgstr "Shift" msgid "Default Grace Time" msgstr "" +#: .\attendance\templates\attendance\grace_time\grace_time_table.html:32 +#: .\attendance\templates\attendance\grace_time\grace_time_table.html:147 +msgid "Allowed time" +msgstr "" + #: .\attendance\templates\attendance\grace_time\grace_time_table.html:35 #: .\attendance\templates\attendance\grace_time\grace_time_table.html:150 #: .\base\translator.py:119 #: .\payroll\templates\payroll\settings\payslip_auto_generate_table.html:9 #: .\pms\templates\meetings\meetings_filter.html:27 +#: .\project\cbv\projects.py:139 msgid "Is active" msgstr "" @@ -7338,7 +7456,7 @@ msgstr "" #: .\attendance\templates\attendance\grace_time\grace_time_table.html:50 #: .\attendance\templates\attendance\grace_time\grace_time_table.html:169 -#: .\employee\models.py:883 +#: .\employee\models.py:910 msgid "Hours" msgstr "" @@ -7352,8 +7470,8 @@ msgid "There is no default grace time at this moment." msgstr "" #: .\attendance\templates\attendance\grace_time\grace_time_table.html:131 -#: .\base\models.py:526 .\base\templates\base\shift\shift_view.html:11 -#: .\templates\settings.html:387 +#: .\base\models.py:529 .\base\templates\base\shift\shift_view.html:11 +#: .\templates\settings.html:419 msgid "Grace Time" msgstr "" @@ -7383,7 +7501,7 @@ msgid "Add more IP address.." msgstr "" #: .\attendance\templates\attendance\ip_restriction\ip_restriction.html:8 -#: .\templates\settings.html:410 +#: .\templates\settings.html:442 #, fuzzy #| msgid "feedback-creation" msgid "IP Restriction" @@ -7458,6 +7576,11 @@ msgstr "" msgid "Details 123231" msgstr "" +#: .\attendance\templates\attendance\late_come_early_out\single_report.html:112 +#: .\base\translator.py:100 +msgid "Attendance validated" +msgstr "" + #: .\attendance\templates\attendance\late_come_early_out\single_report.html:123 msgid "Penalties " msgstr "" @@ -7478,6 +7601,11 @@ msgstr "" msgid "Not validated" msgstr "" +#: .\attendance\templates\attendance\own_attendance\attendances.html:74 +#: .\attendance\templates\requests\attendance\view-requests.html:34 +msgid "Validated" +msgstr "" + #: .\attendance\templates\attendance\own_attendance\filters.html:32 msgid "Requested?" msgstr "" @@ -7488,15 +7616,15 @@ msgstr "" #: .\attendance\templates\attendance\penalty\form.html:57 #: .\base\templates\penalty\penalty_view.html:7 -#: .\base\templates\request_and_approve\leave_allocation_approve.html:8 #: .\employee\templates\leave-tab.html:178 #: .\employee\templates\tabs\leave-tab.html:201 .\leave\filters.py:371 #: .\leave\filters.py:393 .\leave\filters.py:407 .\leave\filters.py:431 -#: .\leave\models.py:537 .\leave\templates\leave\accrual_plan_view.html:9 +#: .\leave\models.py:578 .\leave\templates\leave\accrual_plan_view.html:9 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:37 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:191 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_view.html:91 #: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:63 +#: .\leave\templates\leave\dashboard\leave_allocation_approve.html:8 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:44 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:214 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_list.html:25 @@ -7520,30 +7648,29 @@ msgstr "" #: .\leave\templates\leave\leave_request\penalty\form.html:47 #: .\leave\templates\leave\leave_type\leave_type_filter.html:4 #: .\leave\templates\leave\one_request_view.html:38 -#: .\leave\templates\leave\request_view.html:48 #: .\leave\templates\leave\user_leave\group_by.html:72 -#: .\leave\templates\leave\user_leave\user_leave_view.html:34 -#: .\leave\templates\leave\user_leave\user_request_one.html:62 +#: .\leave\templates\leave\user_leave\user_request_one.html:45 #: .\leave\templates\leave\user_leave\user_request_view.html:110 #: .\leave\templates\leave\user_leave\user_requests.html:66 #: .\leave\templates\leave\user_leave_view.html:34 -#: .\leave\templates\leave\user_request_view.html:48 #: .\payroll\templates\payroll\reimbursement\form.html:25 +#: .\report\templates\report\leave_report.html:52 +#: .\report\templates\report\leave_report.html:141 msgid "Leave Type" msgstr "" #: .\attendance\templates\attendance\penalty\form.html:58 -#: .\leave\filters.py:408 .\leave\models.py:366 +#: .\leave\filters.py:408 .\leave\models.py:359 #: .\leave\templates\leave\leave_assign\assigned-leave.html:10 #: .\leave\templates\leave\leave_assign\assigned_leave.html:39 #: .\leave\templates\leave\leave_assign\assigned_leaves_export_form.html:64 #: .\leave\templates\leave\leave_assign\assigned_leaves_filter.html:29 -#: .\leave\templates\leave\leave_assign\available_update_form.html:48 #: .\leave\templates\leave\leave_assign\group_by.html:62 #: .\leave\templates\leave\leave_assign\single_assign_view.html:61 #: .\leave\templates\leave\leave_request\penalty\form.html:48 #: .\leave\templates\leave\leave_request_view.html:13 #: .\payroll\templates\payroll\reimbursement\form.html:26 +#: .\report\templates\report\leave_report.html:149 msgid "Available Days" msgstr "" @@ -7602,28 +7729,16 @@ msgstr "" msgid "save" msgstr "" -#: .\attendance\templates\attendance\work_record\work_record_employees_view.html:37 -#: .\attendance\templates\attendance\work_record\work_record_view.html:54 -msgid "Date:" +#: .\attendance\templates\attendance\work_record\work_record_list.html:80 +#: .\employee\templates\employee\profile\profile_view.html:155 +#: .\employee\templates\employee\profile\profile_view.html:163 +#: .\employee\templates\employee\view\individual.html:343 +#: .\employee\templates\employee\view\individual.html:346 +#: .\templates\settings.html:470 +msgid "Leave" msgstr "" -#: .\attendance\templates\attendance\work_record\work_record_employees_view.html:38 -msgid "Month:" -msgstr "" - -#: .\attendance\templates\attendance\work_record\work_record_employees_view.html:59 -msgid "A" -msgstr "" - -#: .\attendance\templates\attendance\work_record\work_record_employees_view.html:61 -msgid "P" -msgstr "" - -#: .\attendance\templates\attendance\work_record\work_record_list.html:46 -msgid "Expected Working" -msgstr "" - -#: .\attendance\templates\attendance\work_record\work_record_list.html:54 +#: .\attendance\templates\attendance\work_record\work_record_list.html:87 #, fuzzy #| msgid "attendance" msgid "On leave, But attendance exist" @@ -7633,6 +7748,10 @@ msgstr "Attendance" msgid "record_type_name" msgstr "" +#: .\attendance\templates\attendance\work_record\work_record_view.html:54 +msgid "Date:" +msgstr "" + #: .\attendance\templates\requests\attendance\attendance_comment.html:16 #: .\base\templates\shift_request\htmx\shift_comment.html:25 #: .\base\templates\work_type_request\htmx\work_type_comment.html:25 @@ -7671,7 +7790,6 @@ msgid "'s attendance request" msgstr "Attendance" #: .\attendance\templates\requests\attendance\attendance_comment.html:89 -#: .\base\templates\announcement\comment_view.html:48 #: .\base\templates\shift_request\htmx\shift_comment.html:99 #: .\base\templates\work_type_request\htmx\work_type_comment.html:105 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_comment.html:137 @@ -7707,7 +7825,7 @@ msgid "Delete Comment" msgstr "" #: .\attendance\templates\requests\attendance\comment_view.html:45 -#: .\base\templates\announcement\comment_view.html:74 +#: .\base\templates\announcement\comment_view.html:68 #: .\base\templates\shift_request\htmx\comment_view.html:34 #: .\leave\templates\leave\leave_allocation_request\comment_view.html:46 #: .\leave\templates\leave\leave_request\comment_view.html:45 @@ -7716,7 +7834,7 @@ msgid "By" msgstr "" #: .\attendance\templates\requests\attendance\comment_view.html:51 -#: .\base\templates\announcement\comment_view.html:86 +#: .\base\templates\announcement\comment_view.html:80 #: .\base\templates\shift_request\htmx\comment_view.html:40 #: .\leave\templates\leave\leave_allocation_request\comment_view.html:52 #: .\leave\templates\leave\leave_request\comment_view.html:51 @@ -7725,7 +7843,7 @@ msgid "Date & Time" msgstr "" #: .\attendance\templates\requests\attendance\comment_view.html:53 -#: .\base\templates\announcement\comment_view.html:88 +#: .\base\templates\announcement\comment_view.html:82 #: .\base\templates\shift_request\htmx\comment_view.html:42 #: .\leave\templates\leave\leave_allocation_request\comment_view.html:54 #: .\leave\templates\leave\leave_request\comment_view.html:53 @@ -7735,7 +7853,7 @@ msgstr "" #: .\attendance\templates\requests\attendance\comment_view.html:54 #: .\base\templates\announcement\announcement_one.html:85 -#: .\base\templates\announcement\comment_view.html:89 +#: .\base\templates\announcement\comment_view.html:84 #: .\base\templates\shift_request\htmx\comment_view.html:43 #: .\employee\templates\tabs\note_tab.html:124 #: .\leave\templates\leave\leave_allocation_request\comment_view.html:55 @@ -7804,22 +7922,22 @@ msgstr "" #: .\attendance\templates\requests\attendance\nav.html:19 #: .\attendance\templates\requests\attendance\nav.html:35 -#: .\attendance\templates\requests\attendance\requests_empty.html:22 -#: .\attendance\templates\requests\attendance\requests_empty.html:37 +#: .\attendance\templates\requests\attendance\requests_empty.html:20 +#: .\attendance\templates\requests\attendance\requests_empty.html:35 #: .\employee\templates\tabs\attendance-tab.html:384 #: .\employee\templates\tabs\attendance-tab.html:407 msgid "Validate Attendances Request" msgstr "" #: .\attendance\templates\requests\attendance\nav.html:127 -#: .\leave\templates\leave\leave_request\request_view.html:143 +#: .\leave\templates\leave\leave_request\request_view.html:146 #, fuzzy #| msgid "type-update" msgid "Bulk Approve" msgstr "Update" #: .\attendance\templates\requests\attendance\nav.html:133 -#: .\leave\templates\leave\leave_request\request_view.html:146 +#: .\leave\templates\leave\leave_request\request_view.html:149 #, fuzzy #| msgid "update-deduction" msgid "Bulk Reject" @@ -7838,7 +7956,7 @@ msgstr "Update" #: .\leave\templates\leave\leave_request_creation.html:3 #: .\leave\templates\leave\user_leave_request.html:3 #: .\payroll\templates\payroll\payslip\group_payslips.html:118 -#: .\pms\templates\dashboard\pms_dashboard.html:149 +#: .\pms\templates\dashboard\pms_dashboard.html:153 #: .\pms\templates\okr\emp_objective\emp_objective_list.html:80 #: .\project\templates\dashboard\project_details.html:67 #: .\recruitment\templates\candidate\candidate_list.html:183 @@ -7865,11 +7983,17 @@ msgstr "" msgid "Request" msgstr "" -#: .\attendance\templates\requests\attendance\requests_empty.html:51 +#: .\attendance\templates\requests\attendance\requests_empty.html:49 #: .\attendance\templates\requests\attendance\view-requests.html:54 msgid "All Attendances" msgstr "" +#: .\attendance\templates\requests\attendance\requests_empty.html:68 +#, fuzzy +#| msgid "shift-request-view" +msgid "There are no attendance requests to display." +msgstr "Shift Requests" + #: .\attendance\templates\requests\attendance\view-requests.html:26 #, fuzzy #| msgid "update-deduction" @@ -7885,15 +8009,15 @@ msgstr "" msgid "Requested Attendances" msgstr "" -#: .\attendance\views.py:183 .\attendance\views\views.py:236 +#: .\attendance\views.py:183 .\attendance\views\views.py:235 msgid "Attendance added." msgstr "" -#: .\attendance\views.py:329 .\attendance\views\views.py:454 +#: .\attendance\views.py:329 .\attendance\views\views.py:453 msgid "Attendance Updated." msgstr "" -#: .\attendance\views.py:373 .\attendance\views\views.py:500 +#: .\attendance\views.py:373 .\attendance\views\views.py:499 msgid "Attendance deleted." msgstr "" @@ -7910,11 +8034,11 @@ msgstr "" msgid "You cannot delete this %(attendance)s" msgstr "" -#: .\attendance\views.py:495 .\attendance\views\views.py:623 +#: .\attendance\views.py:495 .\attendance\views\views.py:622 msgid "Attendance account added." msgstr "" -#: .\attendance\views.py:581 .\attendance\views\views.py:706 +#: .\attendance\views.py:581 .\attendance\views\views.py:705 msgid "Attendance account updated successfully." msgstr "" @@ -7928,35 +8052,39 @@ msgstr "Onboarding" msgid "You cannot delete this attendance OT" msgstr "" -#: .\attendance\views.py:677 .\attendance\views\views.py:861 +#: .\attendance\views.py:677 .\attendance\views\views.py:860 msgid "Attendance activity deleted" msgstr "" -#: .\attendance\views.py:680 .\attendance\views\views.py:865 +#: .\attendance\views.py:680 .\attendance\views\views.py:864 msgid "You cannot delete this activity" msgstr "" -#: .\attendance\views.py:972 .\attendance\views\views.py:1169 +#: .\attendance\views.py:972 .\attendance\views\views.py:1168 msgid "Late-in early-out deleted" msgstr "" -#: .\attendance\views.py:975 .\attendance\views\views.py:1173 +#: .\attendance\views.py:975 .\attendance\views\views.py:1172 msgid "You cannot delete this Late-in early-out" msgstr "" -#: .\attendance\views.py:1032 .\attendance\views\views.py:1254 +#: .\attendance\views.py:1032 .\attendance\views\views.py:1253 msgid "validation condition deleted." msgstr "" -#: .\attendance\views.py:1035 .\attendance\views\views.py:1258 +#: .\attendance\views.py:1035 .\attendance\views\views.py:1257 msgid "You cannot delete this validation condition." msgstr "" #: .\attendance\views.py:1052 .\attendance\views.py:1081 -#: .\attendance\views\views.py:1341 +#: .\attendance\views\views.py:1340 msgid "Attendance validated." msgstr "" +#: .\attendance\views.py:1168 .\attendance\views\views.py:1450 +msgid "Overtime approved" +msgstr "" + #: .\attendance\views\clock_in_out.py:247 msgid "You cannot mark attendance from this network" msgstr "" @@ -8004,19 +8132,19 @@ msgstr "Shift Requests" msgid "Batch attendance title updated sucessfully." msgstr "" -#: .\attendance\views\requests.py:269 .\helpdesk\views.py:537 -#: .\helpdesk\views.py:583 .\helpdesk\views.py:915 .\helpdesk\views.py:952 -#: .\helpdesk\views.py:987 .\helpdesk\views.py:1020 .\helpdesk\views.py:1078 -#: .\helpdesk\views.py:1580 .\pms\views.py:1105 .\project\views.py:1304 +#: .\attendance\views\requests.py:269 .\helpdesk\views.py:530 +#: .\helpdesk\views.py:576 .\helpdesk\views.py:908 .\helpdesk\views.py:945 +#: .\helpdesk\views.py:980 .\helpdesk\views.py:1013 .\helpdesk\views.py:1071 +#: .\helpdesk\views.py:1558 .\pms\views.py:1139 .\project\views.py:1397 msgid "You don't have permission." msgstr "" #: .\attendance\views\requests.py:274 .\attendance\views\requests.py:302 -#: .\attendance\views\views.py:1495 .\attendance\views\views.py:1500 +#: .\attendance\views\views.py:1494 .\attendance\views\views.py:1499 msgid "Something went wrong." msgstr "" -#: .\attendance\views\requests.py:297 .\base\views.py:1215 +#: .\attendance\views\requests.py:297 .\base\views.py:1224 msgid "This {} is already in use for {}." msgstr "" @@ -8052,308 +8180,314 @@ msgstr "Attendance" msgid "The requested attendance is rejected." msgstr "Attendance Requests" -#: .\attendance\views\views.py:515 +#: .\attendance\views\views.py:514 msgid "Attendance Does not exists.." msgstr "" -#: .\attendance\views\views.py:735 +#: .\attendance\views\views.py:734 msgid "Hour account deleted." msgstr "" -#: .\attendance\views\views.py:738 +#: .\attendance\views\views.py:737 msgid "Hour account not found" msgstr "" -#: .\attendance\views\views.py:741 +#: .\attendance\views\views.py:740 msgid "You cannot delete this hour account" msgstr "" -#: .\attendance\views\views.py:766 +#: .\attendance\views\views.py:765 #, python-brace-format msgid "{employee} hour account deleted." msgstr "" -#: .\attendance\views\views.py:771 +#: .\attendance\views\views.py:770 msgid "Hour account not found." msgstr "" -#: .\attendance\views\views.py:775 +#: .\attendance\views\views.py:774 #, python-brace-format msgid "You cannot delete {hour_account}" msgstr "" -#: .\attendance\views\views.py:863 +#: .\attendance\views\views.py:862 msgid "Attendance activity Does not exists.." msgstr "" -#: .\attendance\views\views.py:896 +#: .\attendance\views\views.py:895 #, python-brace-format msgid "{employee} activity deleted." msgstr "" -#: .\attendance\views\views.py:900 .\attendance\views\views.py:1209 +#: .\attendance\views\views.py:899 .\attendance\views\views.py:1208 msgid "Attendance not found." msgstr "" -#: .\attendance\views\views.py:1022 +#: .\attendance\views\views.py:1021 msgid "Attendance activity imported successfully" msgstr "" -#: .\attendance\views\views.py:1171 +#: .\attendance\views\views.py:1170 msgid "Late-in early-out does not exists.." msgstr "" -#: .\attendance\views\views.py:1204 +#: .\attendance\views\views.py:1203 #, python-brace-format msgid "{employee} Late-in early-out deleted." msgstr "" -#: .\attendance\views\views.py:1256 +#: .\attendance\views\views.py:1255 msgid "validation condition Does not exists.." msgstr "" -#: .\attendance\views\views.py:1281 +#: .\attendance\views\views.py:1280 msgid "Pending attendance update request for {}'s attendance on {}!" msgstr "" -#: .\attendance\views\views.py:1304 .\attendance\views\views.py:1356 -#: .\attendance\views\views.py:1434 .\attendance\views\views.py:1469 +#: .\attendance\views\views.py:1303 .\attendance\views\views.py:1355 +#: .\attendance\views\views.py:1433 .\attendance\views\views.py:1468 #, fuzzy #| msgid "attendance-view" msgid "Attendance not found" msgstr "Attendances" -#: .\attendance\views\views.py:1306 +#: .\attendance\views\views.py:1305 #, fuzzy #| msgid "attendance" msgid "Invalid attendance ID" msgstr "Attendance" -#: .\attendance\views\views.py:1311 +#: .\attendance\views\views.py:1310 #, fuzzy #| msgid "attendance-view" msgid "{} Attendances validated." msgstr "Attendances" -#: .\attendance\views\views.py:1909 +#: .\attendance\views\views.py:1908 msgid "Grace time created successfully." msgstr "" -#: .\attendance\views\views.py:1933 +#: .\attendance\views\views.py:1932 msgid "Grace time added to shifts successfully." msgstr "" -#: .\attendance\views\views.py:1962 +#: .\attendance\views\views.py:1961 msgid "Grace time updated successfully." msgstr "" -#: .\attendance\views\views.py:1987 +#: .\attendance\views\views.py:1986 msgid "Grace time deleted successfully." msgstr "" -#: .\attendance\views\views.py:1989 +#: .\attendance\views\views.py:1988 msgid "Grace Time Does not exists.." msgstr "" -#: .\attendance\views\views.py:1991 +#: .\attendance\views\views.py:1990 msgid "Related datas exists." msgstr "" -#: .\attendance\views\views.py:2017 +#: .\attendance\views\views.py:2016 #, fuzzy #| msgid "shift-request-view" msgid "Gracetime activated successfully." msgstr "Shift Requests" -#: .\attendance\views\views.py:2023 +#: .\attendance\views\views.py:2022 #, fuzzy #| msgid "shift-request-view" msgid "Gracetime deactivated successfully." msgstr "Shift Requests" -#: .\attendance\views\views.py:2047 +#: .\attendance\views\views.py:2046 msgid "Gracetime applicable on clock-In successfully." msgstr "" -#: .\attendance\views\views.py:2053 +#: .\attendance\views\views.py:2052 msgid "Gracetime unapplicable on clock-In successfully." msgstr "" -#: .\attendance\views\views.py:2060 +#: .\attendance\views\views.py:2059 msgid "Gracetime applicable on clock-out successfully." msgstr "" -#: .\attendance\views\views.py:2066 +#: .\attendance\views\views.py:2065 msgid "Gracetime unapplicable on clock-out successfully." msgstr "" -#: .\attendance\views\views.py:2071 +#: .\attendance\views\views.py:2070 msgid "Something went wrong ." msgstr "" -#: .\attendance\views\views.py:2104 .\base\views.py:6006 .\base\views.py:6261 -#: .\leave\views.py:3914 .\leave\views.py:4080 .\leave\views.py:4882 -#: .\payroll\views\views.py:1672 +#: .\attendance\views\views.py:2103 .\base\views.py:6036 .\base\views.py:6291 +#: .\leave\views.py:4032 .\leave\views.py:4198 .\leave\views.py:5000 +#: .\payroll\views\views.py:1675 msgid "Comment added successfully!" msgstr "" -#: .\attendance\views\views.py:2236 .\base\announcement.py:327 -#: .\base\views.py:6227 .\base\views.py:6367 .\leave\views.py:4229 -#: .\leave\views.py:4373 .\leave\views.py:4484 .\payroll\views\views.py:1799 +#: .\attendance\views\views.py:2235 .\base\announcement.py:354 +#: .\base\views.py:6257 .\base\views.py:6397 .\leave\views.py:4347 +#: .\leave\views.py:4491 .\leave\views.py:4602 .\payroll\views\views.py:1802 msgid "Comment deleted successfully!" msgstr "" -#: .\attendance\views\views.py:2248 .\base\views.py:6145 .\base\views.py:6205 -#: .\leave\views.py:4254 .\leave\views.py:4398 .\offboarding\views.py:524 -#: .\payroll\views\views.py:1814 .\recruitment\views\views.py:1082 -#: .\recruitment\views\views.py:1098 +#: .\attendance\views\views.py:2247 .\base\views.py:6175 .\base\views.py:6235 +#: .\leave\views.py:4372 .\leave\views.py:4516 .\offboarding\views.py:549 +#: .\payroll\views\views.py:1817 .\recruitment\views\views.py:1109 +#: .\recruitment\views\views.py:1125 msgid "File deleted successfully" msgstr "" -#: .\attendance\views\views.py:2463 .\attendance\views\views.py:2501 -#: .\base\models.py:1670 .\base\views.py:5382 .\base\views.py:5418 +#: .\attendance\views\views.py:2439 .\attendance\views\views.py:2477 +#: .\base\models.py:1704 .\base\views.py:5406 .\base\views.py:5448 msgid "enabled" msgstr "" -#: .\attendance\views\views.py:2463 .\attendance\views\views.py:2501 -#: .\base\models.py:1670 +#: .\attendance\views\views.py:2439 .\attendance\views\views.py:2477 +#: .\base\models.py:1704 msgid "disabled" msgstr "" -#: .\attendance\views\views.py:2465 +#: .\attendance\views\views.py:2441 msgid "Tracking late come early out {} successfully" msgstr "" -#: .\attendance\views\views.py:2500 +#: .\attendance\views\views.py:2476 msgid "Check In/Check Out has been successfully {}." msgstr "" -#: .\attendance\views\views.py:2558 +#: .\attendance\views\views.py:2534 msgid "Attendance Break-point settings created." msgstr "" -#: .\attendance\views\views.py:2582 +#: .\attendance\views\views.py:2558 msgid "Attendance Break-point settings updated." msgstr "" -#: .\base\announcement.py:104 +#: .\base\announcement.py:105 msgid "Announcement created successfully." msgstr "" -#: .\base\announcement.py:156 +#: .\base\announcement.py:157 msgid "Announcement deleted successfully." msgstr "" -#: .\base\announcement.py:198 +#: .\base\announcement.py:209 msgid "Announcement updated successfully." msgstr "" -#: .\base\announcement.py:271 +#: .\base\announcement.py:266 +#, fuzzy +#| msgid "user-request-view" +msgid "The file has been successfully deleted." +msgstr "My Leave Requests" + +#: .\base\announcement.py:297 msgid "You commented a post." msgstr "" -#: .\base\context_processors.py:113 +#: .\base\context_processors.py:113 .\employee\views.py:1392 msgid "Employee is not working in the selected company." msgstr "" -#: .\base\context_processors.py:282 .\base\views.py:5412 +#: .\base\context_processors.py:282 .\base\views.py:5442 msgid "Profile Edit Access" msgstr "" -#: .\base\forms.py:521 +#: .\base\forms.py:222 .\base\forms.py:294 .\employee\forms.py:347 +#: .\recruitment\forms.py:96 .\recruitment\forms.py:152 +#, python-brace-format +msgid "---Choose {label}---" +msgstr "" + +#: .\base\forms.py:546 msgid "Job position already exists under {}" msgstr "" -#: .\base\forms.py:645 .\base\urls.py:297 +#: .\base\forms.py:671 .\base\urls.py:297 #, fuzzy #| msgid "employee" msgid "---Choose Work Type---" msgstr "Employee" -#: .\base\forms.py:1124 .\base\forms.py:1213 +#: .\base\forms.py:1150 .\base\forms.py:1239 msgid "" "Automatic punch out time is required when automatic punch out is enabled." msgstr "" -#: .\base\forms.py:1132 .\base\forms.py:1222 +#: .\base\forms.py:1158 .\base\forms.py:1248 msgid "Automatic punch out time cannot be earlier than the end time." msgstr "" -#: .\base\forms.py:1253 +#: .\base\forms.py:1279 #, python-brace-format msgid "Shift schedule is already exist for {day}" msgstr "" -#: .\base\forms.py:1294 .\base\urls.py:469 +#: .\base\forms.py:1320 .\base\urls.py:469 #, fuzzy #| msgid "employee" msgid "---Choose Shift---" msgstr "Employee" -#: .\base\forms.py:1406 +#: .\base\forms.py:1433 .\project\cbv\dashboard.py:78 msgid "Start date" msgstr "" -#: .\base\forms.py:1829 +#: .\base\forms.py:1856 msgid "Old password" msgstr "" -#: .\base\forms.py:1834 +#: .\base\forms.py:1861 msgid "Enter Old Password" msgstr "" -#: .\base\forms.py:1838 +#: .\base\forms.py:1865 msgid "Enter your old password." msgstr "" -#: .\base\forms.py:1841 .\base\forms.py:1950 +#: .\base\forms.py:1868 .\base\forms.py:1977 msgid "New password" msgstr "" -#: .\base\forms.py:1846 +#: .\base\forms.py:1873 msgid "Enter New Password" msgstr "" -#: .\base\forms.py:1852 .\base\forms.py:1962 +#: .\base\forms.py:1879 .\base\forms.py:1989 msgid "New password confirmation" msgstr "" -#: .\base\forms.py:1857 .\base\forms.py:1967 +#: .\base\forms.py:1884 .\base\forms.py:1994 msgid "Re-Enter Password" msgstr "" -#: .\base\forms.py:1888 +#: .\base\forms.py:1915 msgid "New password and confirm password do not match" msgstr "" -#: .\base\forms.py:1896 +#: .\base\forms.py:1923 msgid "Old Username" msgstr "" -#: .\base\forms.py:1907 .\base\templates\base\auth\username_change_form.html:44 -#: .\biometric\models.py:63 -#: .\biometric\templates\biometric\add_biometric_device.html:44 -#: .\biometric\templates\biometric\edit_biometric_device.html:43 -#: .\templates\forgot_password.html:30 +#: .\base\forms.py:1934 .\base\templates\base\auth\username_change_form.html:44 +#: .\biometric\models.py:68 .\templates\forgot_password.html:30 #: .\templates\initialize_database\horilla_user_signup.html:77 #: .\templates\login.html:40 msgid "Username" msgstr "" -#: .\base\forms.py:1911 +#: .\base\forms.py:1938 msgid "Enter New Username" msgstr "" -#: .\base\forms.py:1915 +#: .\base\forms.py:1942 msgid "Enter your username." msgstr "" -#: .\base\forms.py:1919 .\base\templates\base\auth\username_change_form.html:53 -#: .\biometric\forms.py:232 .\biometric\models.py:66 -#: .\biometric\templates\biometric\add_biometric_device.html:39 -#: .\biometric\templates\biometric\add_biometric_device.html:49 -#: .\biometric\templates\biometric\edit_biometric_device.html:38 -#: .\biometric\templates\biometric\edit_biometric_device.html:48 +#: .\base\forms.py:1946 .\base\templates\base\auth\username_change_form.html:53 +#: .\biometric\forms.py:245 .\biometric\models.py:65 .\biometric\models.py:71 +#: .\horillavenv\Lib\site-packages\microsoft_auth\templates\microsoft\admin_login.html:51 #: .\onboarding\templates\onboarding\user_creation.html:89 #: .\templates\demo_database\auth_load_data.html:20 #: .\templates\initialize_database\horilla_user.html:111 @@ -8362,104 +8496,117 @@ msgstr "" msgid "Password" msgstr "" -#: .\base\forms.py:1923 +#: .\base\forms.py:1950 msgid "Enter Password" msgstr "" -#: .\base\forms.py:1927 +#: .\base\forms.py:1954 msgid "Enter your password." msgstr "" -#: .\base\forms.py:1955 +#: .\base\forms.py:1982 msgid "Enter Strong Password" msgstr "" -#: .\base\forms.py:1959 +#: .\base\forms.py:1986 msgid "Enter your new password." msgstr "" -#: .\base\forms.py:1971 +#: .\base\forms.py:1998 msgid "Enter the same password as before, for verification." msgstr "" -#: .\base\forms.py:1978 .\base\views.py:754 +#: .\base\forms.py:2005 .\base\views.py:763 msgid "Password changed successfully" msgstr "" -#: .\base\forms.py:1989 +#: .\base\forms.py:2016 msgid "Password must be same." msgstr "" -#: .\base\forms.py:2232 .\base\models.py:1265 .\payroll\models\models.py:658 -#: .\payroll\models\models.py:667 +#: .\base\forms.py:2278 .\base\models.py:1274 .\payroll\models\models.py:656 +#: .\payroll\models\models.py:665 msgid "Equal (==)" msgstr "" -#: .\base\forms.py:2233 .\base\models.py:1266 .\payroll\models\models.py:659 -#: .\payroll\models\models.py:668 +#: .\base\forms.py:2279 .\base\models.py:1275 .\payroll\models\models.py:657 +#: .\payroll\models\models.py:666 msgid "Not Equal (!=)" msgstr "" -#: .\base\forms.py:2234 .\base\models.py:1267 .\payroll\models\models.py:673 +#: .\base\forms.py:2280 .\base\models.py:1276 .\payroll\models\models.py:671 msgid "Range" msgstr "" -#: .\base\forms.py:2235 .\base\models.py:1268 .\payroll\models\models.py:660 -#: .\payroll\models\models.py:669 +#: .\base\forms.py:2281 .\base\models.py:1277 .\payroll\models\models.py:658 +#: .\payroll\models\models.py:667 msgid "Less Than (<)" msgstr "" -#: .\base\forms.py:2236 .\base\models.py:1269 .\payroll\models\models.py:661 -#: .\payroll\models\models.py:670 +#: .\base\forms.py:2282 .\base\models.py:1278 .\payroll\models\models.py:659 +#: .\payroll\models\models.py:668 msgid "Greater Than (>)" msgstr "" -#: .\base\forms.py:2237 .\base\models.py:1270 .\payroll\models\models.py:662 -#: .\payroll\models\models.py:671 +#: .\base\forms.py:2283 .\base\models.py:1279 .\payroll\models\models.py:660 +#: .\payroll\models\models.py:669 msgid "Less Than or Equal To (<=)" msgstr "" -#: .\base\forms.py:2238 .\base\models.py:1271 .\payroll\models\models.py:663 -#: .\payroll\models\models.py:672 +#: .\base\forms.py:2284 .\base\models.py:1280 .\payroll\models\models.py:661 +#: .\payroll\models\models.py:670 msgid "Greater Than or Equal To (>=)" msgstr "" -#: .\base\forms.py:2239 .\base\models.py:1272 .\payroll\models\models.py:664 +#: .\base\forms.py:2285 .\base\models.py:1281 .\payroll\models\models.py:662 msgid "Contains" msgstr "" -#: .\base\forms.py:2245 +#: .\base\forms.py:2291 msgid "Approval Manager" msgstr "" -#: .\base\forms.py:2620 .\leave\forms.py:1266 +#: .\base\forms.py:2392 +#: .\employee\templates\disciplinary_actions\disciplinary_records.html:45 +#: .\onboarding\templates\onboarding\candidates_view.html:298 +#: .\payroll\templates\payroll\reimbursement\attachments.html:2 +#: .\payroll\templates\payroll\reimbursement\reimbursenent_individual.html:85 +#, fuzzy +#| msgid "recruitment" +msgid "Attachments" +msgstr "Recruitment" + +#: .\base\forms.py:2697 .\leave\forms.py:852 msgid "End date should not be earlier than the start date." msgstr "" -#: .\base\methods.py:458 .\employee\views.py:2914 .\recruitment\models.py:326 +#: .\base\methods.py:517 .\employee\views.py:2868 .\recruitment\models.py:327 msgid "Male" msgstr "" -#: .\base\methods.py:459 .\employee\views.py:2914 .\recruitment\models.py:326 +#: .\base\methods.py:518 .\employee\views.py:2868 .\recruitment\models.py:327 msgid "Female" msgstr "" -#: .\base\methods.py:460 .\employee\views.py:2914 .\offboarding\models.py:71 -#: .\recruitment\models.py:326 .\recruitment\models.py:337 +#: .\base\methods.py:519 .\employee\views.py:2868 .\offboarding\models.py:71 +#: .\recruitment\models.py:327 .\recruitment\models.py:338 msgid "Other" msgstr "" -#: .\base\methods.py:462 +#: .\base\methods.py:521 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:20 -#: .\employee\views.py:2890 .\payroll\models\models.py:147 +#: .\employee\views.py:2844 .\payroll\models\models.py:145 #: .\payroll\templates\payroll\contract\contract_view.html:153 #: .\payroll\templates\payroll\contract\contract_view.html:239 msgid "Active" msgstr "" -#: .\base\methods.py:463 .\payroll\models\models.py:148 +#: .\base\methods.py:522 .\payroll\models\models.py:146 #: .\payroll\templates\payroll\contract\contract_view.html:154 #: .\payroll\templates\payroll\contract\contract_view.html:217 +#: .\project\cbv\projects.py:254 .\project\cbv\projects.py:452 +#: .\project\cbv\tasks.py:140 .\project\cbv\tasks.py:547 +#: .\project\models.py:326 #: .\project\templates\project\new\project_kanban_view.html:44 #: .\project\templates\project\new\project_list_view.html:46 #: .\project\templates\task_all\task_all_card.html:33 @@ -8467,64 +8614,64 @@ msgstr "" msgid "Expired" msgstr "" -#: .\base\methods.py:464 .\payroll\models\models.py:149 +#: .\base\methods.py:523 .\payroll\models\models.py:147 #: .\payroll\templates\payroll\contract\contract_view.html:155 #: .\payroll\templates\payroll\contract\contract_view.html:206 msgid "Terminated" msgstr "" -#: .\base\methods.py:467 .\base\models.py:334 +#: .\base\methods.py:526 .\base\models.py:337 msgid "After" msgstr "" -#: .\base\methods.py:468 .\payroll\models\models.py:135 +#: .\base\methods.py:527 .\payroll\models\models.py:133 msgid "Semi-Monthly" msgstr "" -#: .\base\methods.py:469 .\payroll\models\models.py:128 -#: .\payroll\models\models.py:143 +#: .\base\methods.py:528 .\payroll\models\models.py:126 +#: .\payroll\models\models.py:141 msgid "Hourly" msgstr "" -#: .\base\methods.py:470 .\payroll\models\models.py:138 +#: .\base\methods.py:529 .\payroll\models\models.py:136 msgid "Daily" msgstr "" -#: .\base\methods.py:472 .\leave\models.py:58 +#: .\base\methods.py:531 .\leave\models.py:52 msgid "Full Day" msgstr "" -#: .\base\methods.py:473 .\leave\models.py:59 +#: .\base\methods.py:532 .\leave\models.py:53 msgid "First Half" msgstr "" -#: .\base\methods.py:474 .\leave\models.py:60 +#: .\base\methods.py:533 .\leave\models.py:54 msgid "Second Half" msgstr "" -#: .\base\methods.py:477 .\employee\templates\leave-tab.html:45 -#: .\employee\templates\tabs\leave-tab.html:54 .\leave\models.py:136 +#: .\base\methods.py:536 .\employee\templates\leave-tab.html:45 +#: .\employee\templates\tabs\leave-tab.html:54 .\leave\models.py:130 #: .\leave\templates\leave\leave_request\leave-requests.html:19 #: .\leave\templates\leave\leave_request\leave_requests.html:30 #: .\leave\templates\leave\user_leave\user_requests.html:22 #: .\project\templates\project\new\project_kanban_view.html:40 #: .\project\templates\project\new\project_list_view.html:42 -#: .\recruitment\models.py:281 +#: .\recruitment\models.py:282 #: .\recruitment\templates\dashboard\dashboard.html:287 msgid "Cancelled" msgstr "" -#: .\base\methods.py:479 +#: .\base\methods.py:538 msgid "Cancelled & Rejected" msgstr "" -#: .\base\methods.py:520 .\base\templatetags\horillafilters.py:283 -#: .\base\templatetags\horillafilters.py:291 +#: .\base\methods.py:581 .\base\templatetags\horillafilters.py:272 +#: .\base\templatetags\horillafilters.py:280 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:64 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:81 -#: .\employee\views.py:2749 +#: .\employee\views.py:2704 #: .\horillavenv\Lib\site-packages\django\forms\widgets.py:796 -#: .\leave\forms.py:50 .\leave\templates\leave\holiday\holiday.html:94 +#: .\leave\forms.py:46 .\leave\templates\leave\holiday\holiday.html:94 #: .\leave\templates\leave\user_leave\user_leave_confirm.html:98 #: .\payroll\templates\payroll\allowance\card_allowance.html:60 #: .\payroll\templates\payroll\allowance\view_single_allowance.html:58 @@ -8538,137 +8685,137 @@ msgstr "" msgid "No" msgstr "" -#: .\base\models.py:31 .\leave\models.py:147 +#: .\base\models.py:28 .\leave\models.py:141 msgid "First Week" msgstr "" -#: .\base\models.py:32 .\leave\models.py:148 +#: .\base\models.py:29 .\leave\models.py:142 msgid "Second Week" msgstr "" -#: .\base\models.py:33 .\leave\models.py:149 +#: .\base\models.py:30 .\leave\models.py:143 msgid "Third Week" msgstr "" -#: .\base\models.py:34 .\leave\models.py:150 +#: .\base\models.py:31 .\leave\models.py:144 msgid "Fourth Week" msgstr "" -#: .\base\models.py:35 .\leave\models.py:151 +#: .\base\models.py:32 .\leave\models.py:145 msgid "Fifth Week" msgstr "" -#: .\base\models.py:40 .\base\models.py:325 +#: .\base\models.py:37 .\base\models.py:328 #: .\horillavenv\Lib\site-packages\django\utils\dates.py:7 -#: .\leave\models.py:156 +#: .\leave\models.py:150 msgid "Monday" msgstr "" -#: .\base\models.py:41 .\base\models.py:326 +#: .\base\models.py:38 .\base\models.py:329 #: .\horillavenv\Lib\site-packages\django\utils\dates.py:8 -#: .\leave\models.py:157 +#: .\leave\models.py:151 msgid "Tuesday" msgstr "" -#: .\base\models.py:42 .\base\models.py:327 +#: .\base\models.py:39 .\base\models.py:330 #: .\horillavenv\Lib\site-packages\django\utils\dates.py:9 -#: .\leave\models.py:158 +#: .\leave\models.py:152 msgid "Wednesday" msgstr "" -#: .\base\models.py:43 .\base\models.py:328 +#: .\base\models.py:40 .\base\models.py:331 #: .\horillavenv\Lib\site-packages\django\utils\dates.py:10 -#: .\leave\models.py:159 +#: .\leave\models.py:153 msgid "Thursday" msgstr "" -#: .\base\models.py:44 .\base\models.py:329 +#: .\base\models.py:41 .\base\models.py:332 #: .\horillavenv\Lib\site-packages\django\utils\dates.py:11 -#: .\leave\models.py:160 +#: .\leave\models.py:154 msgid "Friday" msgstr "" -#: .\base\models.py:45 .\base\models.py:330 +#: .\base\models.py:42 .\base\models.py:333 #: .\horillavenv\Lib\site-packages\django\utils\dates.py:12 -#: .\leave\models.py:161 +#: .\leave\models.py:155 msgid "Saturday" msgstr "" -#: .\base\models.py:46 .\base\models.py:331 +#: .\base\models.py:43 .\base\models.py:334 #: .\horillavenv\Lib\site-packages\django\utils\dates.py:13 -#: .\leave\models.py:162 +#: .\leave\models.py:156 msgid "Sunday" msgstr "" -#: .\base\models.py:61 +#: .\base\models.py:58 msgid "Invalid time, excepted HH:MM" msgstr "" -#: .\base\models.py:63 +#: .\base\models.py:60 msgid "Invalid format, excepted HH:MM" msgstr "" -#: .\base\models.py:98 +#: .\base\models.py:95 #: .\base\templates\base\navbar_components\company_selection.html:3 msgid "Companies" msgstr "" -#: .\base\models.py:118 +#: .\base\models.py:117 msgid "Departments" msgstr "" -#: .\base\models.py:167 +#: .\base\models.py:168 #: .\base\templates\base\job_position\job_position_view.html:35 #: .\recruitment\models.py:733 #: .\recruitment\templates\dashboard\dashboard.html:282 -#: .\templates\settings.html:166 +#: .\templates\settings.html:186 msgid "Job Positions" msgstr "" -#: .\base\models.py:190 .\base\templates\base\job_role\job_role_view.html:35 +#: .\base\models.py:193 .\base\templates\base\job_role\job_role_view.html:35 msgid "Job Roles" msgstr "" -#: .\base\models.py:213 +#: .\base\models.py:216 msgid "Work Types" msgstr "" -#: .\base\models.py:248 +#: .\base\models.py:251 #: .\base\templates\base\rotating_work_type\rotating_work_type_view.html:7 msgid "Work Type 1" msgstr "" -#: .\base\models.py:254 +#: .\base\models.py:257 #: .\base\templates\base\rotating_work_type\rotating_work_type_view.html:8 msgid "Work Type 2" msgstr "" -#: .\base\models.py:273 .\base\models.py:352 +#: .\base\models.py:276 .\base\models.py:355 #: .\base\templates\base\rotating_work_type\filters.html:5 #: .\base\templates\base\rotating_work_type\rotating_work_type.html:8 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_export.html:35 -#: .\templates\settings.html:270 +#: .\templates\settings.html:302 msgid "Rotating Work Type" msgstr "" -#: .\base\models.py:274 +#: .\base\models.py:277 msgid "Rotating Work Types" msgstr "" -#: .\base\models.py:281 .\base\models.py:293 .\base\models.py:299 -#: .\base\models.py:304 +#: .\base\models.py:284 .\base\models.py:296 .\base\models.py:302 +#: .\base\models.py:307 msgid "Select different work type continuously" msgstr "" -#: .\base\models.py:323 .\leave\models.py:85 .\payroll\models\models.py:1948 +#: .\base\models.py:326 .\leave\models.py:79 .\payroll\models\models.py:1828 msgid "Last Day" msgstr "" -#: .\base\models.py:335 +#: .\base\models.py:338 msgid "Weekend" msgstr "" -#: .\base\models.py:355 .\base\models.py:749 .\base\models.py:1676 +#: .\base\models.py:358 .\base\models.py:752 .\base\models.py:1717 #: .\base\templates\base\rotating_shift\htmx\group_by.html:76 #: .\base\templates\base\rotating_shift\individual_view.html:93 #: .\base\templates\base\rotating_shift\rotating_shift_assign_view.html:66 @@ -8679,7 +8826,7 @@ msgstr "" #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_view.html:71 #: .\base\templates\holiday\holiday.html:41 #: .\base\templates\holiday\holiday_form.html:37 -#: .\base\templates\holiday\holiday_update_form.html:23 +#: .\base\templates\holiday\holiday_update_form.html:26 #: .\employee\templates\leave-tab.html:179 #: .\employee\templates\personal-tab.html:247 #: .\employee\templates\tabs\contract-tab.html:15 @@ -8687,7 +8834,7 @@ msgstr "" #: .\employee\templates\tabs\payroll-tab.html:32 #: .\employee\templates\tabs\shift-tab.html:415 #: .\employee\templates\tabs\shift-tab.html:645 .\leave\filters.py:372 -#: .\leave\models.py:319 .\leave\models.py:539 .\leave\models.py:1092 +#: .\leave\models.py:315 .\leave\models.py:580 .\leave\models.py:1254 #: .\leave\templates\leave\holiday\holiday.html:55 #: .\leave\templates\leave\holiday\holiday_form.html:46 #: .\leave\templates\leave\holiday\holiday_update_form.html:44 @@ -8703,20 +8850,16 @@ msgstr "" #: .\leave\templates\leave\leave_request\one_request_view.html:67 #: .\leave\templates\leave\leave_request_view.html:11 #: .\leave\templates\leave\one_request_view.html:23 -#: .\leave\templates\leave\request_view.html:54 #: .\leave\templates\leave\restrict\restrict.html:50 -#: .\leave\templates\leave\restrict\restrict_form.html:32 -#: .\leave\templates\leave\restrict\restrict_update_form.html:32 #: .\leave\templates\leave\user_leave\group_by.html:73 -#: .\leave\templates\leave\user_leave\user_request_one.html:73 +#: .\leave\templates\leave\user_leave\user_request_one.html:56 #: .\leave\templates\leave\user_leave\user_request_view.html:116 #: .\leave\templates\leave\user_leave\user_requests.html:67 #: .\leave\templates\leave\user_request_form.html:14 #: .\leave\templates\leave\user_request_one.html:22 -#: .\leave\templates\leave\user_request_view.html:54 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:67 -#: .\onboarding\templates\onboarding\filters.html:16 .\payroll\filters.py:388 -#: .\payroll\forms\component_forms.py:488 .\payroll\models\models.py:168 +#: .\onboarding\templates\onboarding\filters.html:16 .\payroll\filters.py:459 +#: .\payroll\forms\component_forms.py:498 .\payroll\models\models.py:166 #: .\payroll\templates\payroll\contract\contract_export_filter.html:45 #: .\payroll\templates\payroll\contract\contract_list.html:49 #: .\payroll\templates\payroll\contract\contract_list.html:52 @@ -8730,15 +8873,14 @@ msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:85 #: .\payroll\templates\payroll\payslip\group_payslips.html:48 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:92 -#: .\payroll\templates\payroll\payslip\payslip_table.html:74 -#: .\payroll\templates\payroll\payslip\payslip_table.html:78 -#: .\pms\templates\feedback\feedback_creation.html:100 -#: .\pms\templates\feedback\feedback_list.html:101 +#: .\payroll\templates\payroll\payslip\payslip_table.html:55 +#: .\payroll\templates\payroll\payslip\payslip_table.html:57 +#: .\pms\models.py:549 .\pms\templates\feedback\feedback_list.html:101 #: .\pms\templates\feedback\feedback_list.html:264 #: .\pms\templates\feedback\feedback_list.html:400 #: .\pms\templates\feedback\feedback_list_view.html:77 #: .\pms\templates\feedback\feedback_update.html:67 -#: .\pms\templates\okr\create_period.html:31 +#: .\pms\templates\okr\create_period.html:29 #: .\pms\templates\okr\emp_obj_single.html:112 #: .\pms\templates\okr\key_result\key_result_creation.html:100 #: .\pms\templates\okr\key_result\key_result_creation_htmx.html:77 @@ -8746,7 +8888,8 @@ msgstr "" #: .\pms\templates\okr\key_result\kr_dashboard_view.html:52 #: .\pms\templates\okr\kr_list.html:31 #: .\pms\templates\okr\objective_list_view.html:95 -#: .\pms\templates\period\period_list.html:17 +#: .\pms\templates\period\period_list.html:17 .\project\models.py:72 +#: .\project\models.py:350 #: .\project\templates\dashboard\project_details.html:38 #: .\project\templates\project\new\project_list_view.html:74 #: .\recruitment\templates\candidate\export_filter.html:126 @@ -8759,10 +8902,13 @@ msgstr "" #: .\recruitment\templates\recruitment\recruitment_duplicate_form.html:70 #: .\recruitment\templates\recruitment\recruitment_form.html:114 #: .\recruitment\templates\recruitment\recruitment_update_form.html:105 +#: .\report\templates\report\leave_report.html:58 +#: .\report\templates\report\pms_report.html:146 +#: .\report\templates\report\recruitment_report.html:125 msgid "Start Date" msgstr "" -#: .\base\models.py:357 .\base\models.py:751 +#: .\base\models.py:360 .\base\models.py:754 #: .\base\templates\base\rotating_shift\filters.html:28 #: .\base\templates\base\rotating_shift\htmx\group_by.html:78 #: .\base\templates\base\rotating_shift\rotating_shift_assign_export.html:58 @@ -8778,7 +8924,7 @@ msgstr "" msgid "Next Switch" msgstr "" -#: .\base\models.py:363 +#: .\base\models.py:366 #: .\base\templates\base\rotating_work_type\htmx\group_by.html:67 #: .\base\templates\base\rotating_work_type\individual_view.html:116 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_view.html:73 @@ -8786,7 +8932,7 @@ msgstr "" msgid "Current Work Type" msgstr "" -#: .\base\models.py:370 +#: .\base\models.py:373 #: .\base\templates\base\rotating_work_type\htmx\group_by.html:71 #: .\base\templates\base\rotating_work_type\individual_view.html:120 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_view.html:78 @@ -8794,7 +8940,7 @@ msgstr "" msgid "Next Work Type" msgstr "" -#: .\base\models.py:377 .\base\models.py:771 +#: .\base\models.py:380 .\base\models.py:774 #: .\base\templates\base\rotating_shift\filters.html:14 #: .\base\templates\base\rotating_shift\htmx\group_by.html:74 #: .\base\templates\base\rotating_shift\individual_view.html:63 @@ -8818,111 +8964,111 @@ msgstr "" msgid "Based On" msgstr "" -#: .\base\models.py:380 .\base\models.py:774 +#: .\base\models.py:383 .\base\models.py:777 msgid "Rotate After Day" msgstr "" -#: .\base\models.py:388 .\base\models.py:782 +#: .\base\models.py:391 .\base\models.py:785 msgid "Rotate Every Weekend" msgstr "" -#: .\base\models.py:394 .\base\models.py:790 +#: .\base\models.py:397 .\base\models.py:793 msgid "Rotate Every Month" msgstr "" -#: .\base\models.py:414 +#: .\base\models.py:417 #: .\base\templates\base\rotating_work_type\htmx\rotating_work_type_assign_form.html:4 #: .\base\templates\base\rotating_work_type\htmx\rotating_work_type_assign_update_form.html:4 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_nav.html:5 msgid "Rotating Work Type Assign" msgstr "" -#: .\base\models.py:415 +#: .\base\models.py:418 msgid "Rotating Work Type Assigns" msgstr "" -#: .\base\models.py:425 .\base\models.py:821 +#: .\base\models.py:428 .\base\models.py:824 msgid "Only one active record allowed per employee" msgstr "" -#: .\base\models.py:427 .\base\models.py:823 .\base\models.py:945 -#: .\base\models.py:1064 +#: .\base\models.py:430 .\base\models.py:826 .\base\models.py:948 +#: .\base\models.py:1067 msgid "Date must be greater than or equal to today" msgstr "" -#: .\base\models.py:446 +#: .\base\models.py:449 msgid "Employee Types" msgstr "" -#: .\base\models.py:490 +#: .\base\models.py:493 msgid "Employee Shift Day" msgstr "" -#: .\base\models.py:491 +#: .\base\models.py:494 msgid "Employee Shift Days" msgstr "" -#: .\base\models.py:536 .\templates\settings.html:280 +#: .\base\models.py:539 .\templates\settings.html:312 msgid "Employee Shift" msgstr "" -#: .\base\models.py:537 +#: .\base\models.py:540 msgid "Employee Shifts" msgstr "" -#: .\base\models.py:587 +#: .\base\models.py:590 msgid "Minimum Working Hours" msgstr "" -#: .\base\models.py:589 +#: .\base\models.py:592 msgid "Start Time" msgstr "" -#: .\base\models.py:590 +#: .\base\models.py:593 msgid "End Time" msgstr "" -#: .\base\models.py:591 +#: .\base\models.py:594 msgid "Night Shift" msgstr "" -#: .\base\models.py:594 +#: .\base\models.py:597 msgid "Enable Automatic Check Out" msgstr "" -#: .\base\models.py:595 +#: .\base\models.py:598 msgid "Enable this to trigger automatic check out." msgstr "" -#: .\base\models.py:600 +#: .\base\models.py:603 msgid "Automatic Check Out Time" msgstr "" -#: .\base\models.py:602 +#: .\base\models.py:605 msgid "" "Time at which the horilla will automatically check out the employee " "attendance if they forget." msgstr "" -#: .\base\models.py:614 .\templates\settings.html:300 +#: .\base\models.py:617 .\templates\settings.html:332 msgid "Employee Shift Schedule" msgstr "" -#: .\base\models.py:615 +#: .\base\models.py:618 msgid "Employee Shift Schedules" msgstr "" -#: .\base\models.py:652 +#: .\base\models.py:655 #: .\base\templates\base\rotating_shift\rotating_shift_view.html:7 msgid "Shift 1" msgstr "" -#: .\base\models.py:660 +#: .\base\models.py:663 #: .\base\templates\base\rotating_shift\rotating_shift_view.html:8 msgid "Shift 2" msgstr "" -#: .\base\models.py:676 .\base\models.py:746 +#: .\base\models.py:679 .\base\models.py:749 #: .\base\templates\base\rotating_shift\filters.html:5 #: .\base\templates\base\rotating_shift\filters.html:24 #: .\base\templates\base\rotating_shift\rotating_shift.html:8 @@ -8930,19 +9076,19 @@ msgstr "" #: .\base\templates\base\rotating_shift\rotating_shift_assign_export.html:54 #: .\base\templates\base\rotating_work_type\filters.html:24 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_export.html:55 -#: .\employee\templates\tabs\shift-tab.html:134 .\templates\settings.html:290 +#: .\employee\templates\tabs\shift-tab.html:134 .\templates\settings.html:322 msgid "Rotating Shift" msgstr "" -#: .\base\models.py:677 +#: .\base\models.py:680 msgid "Rotating Shifts" msgstr "" -#: .\base\models.py:691 +#: .\base\models.py:694 msgid "Select different shift continuously" msgstr "" -#: .\base\models.py:757 .\base\templates\base\rotating_shift\filters.html:18 +#: .\base\models.py:760 .\base\templates\base\rotating_shift\filters.html:18 #: .\base\templates\base\rotating_shift\htmx\group_by.html:77 #: .\base\templates\base\rotating_shift\individual_view.html:99 #: .\base\templates\base\rotating_shift\rotating_shift_assign_export.html:48 @@ -8955,7 +9101,7 @@ msgstr "" msgid "Current Shift" msgstr "" -#: .\base\models.py:764 .\base\templates\base\rotating_shift\filters.html:32 +#: .\base\models.py:767 .\base\templates\base\rotating_shift\filters.html:32 #: .\base\templates\base\rotating_shift\htmx\group_by.html:79 #: .\base\templates\base\rotating_shift\individual_view.html:103 #: .\base\templates\base\rotating_shift\rotating_shift_assign_export.html:62 @@ -8967,27 +9113,27 @@ msgstr "" msgid "Next Shift" msgstr "" -#: .\base\models.py:810 +#: .\base\models.py:813 #: .\base\templates\base\rotating_shift\htmx\rotating_shift_assign_form.html:4 #: .\base\templates\base\rotating_shift\rotating_shift_assign_nav.html:6 msgid "Rotating Shift Assign" msgstr "" -#: .\base\models.py:811 +#: .\base\models.py:814 msgid "Rotating Shift Assigns" msgstr "" -#: .\base\models.py:847 +#: .\base\models.py:850 msgid "Requesting Work Type" msgstr "" -#: .\base\models.py:855 +#: .\base\models.py:858 #: .\base\templates\work_type_request\work_type_request_export.html:112 #: .\base\templates\work_type_request\work_type_request_nav.html:133 msgid "Previous Work Type" msgstr "" -#: .\base\models.py:861 .\base\models.py:1027 +#: .\base\models.py:864 .\base\models.py:1030 #: .\base\templates\shift_request\htmx\allocation_requests.html:51 #: .\base\templates\shift_request\htmx\group_by.html:45 #: .\base\templates\shift_request\htmx\group_by.html:347 @@ -9003,141 +9149,145 @@ msgstr "" msgid "Requested Till" msgstr "" -#: .\base\models.py:865 .\base\models.py:1031 +#: .\base\models.py:868 .\base\models.py:1034 msgid "Permanent Request" msgstr "" -#: .\base\models.py:868 .\base\models.py:1025 .\base\models.py:1034 +#: .\base\models.py:871 .\base\models.py:1028 .\base\models.py:1037 #: .\base\templates\shift_request\htmx\allocation_requests.html:153 #: .\base\templates\shift_request\shift_request_export.html:105 #: .\base\templates\shift_request\shift_request_nav.html:165 #: .\base\templates\work_type_request\work_type_request_export.html:102 #: .\base\templates\work_type_request\work_type_request_nav.html:123 #: .\helpdesk\templates\helpdesk\ticket\ticket_view.html:52 -#: .\recruitment\models.py:428 +#: .\recruitment\models.py:429 #: .\recruitment\templates\candidate\candidate_view.html:42 msgid "Canceled" msgstr "" -#: .\base\models.py:883 .\base\templates\work_type_request\request_form.html:14 +#: .\base\models.py:886 #: .\base\templates\work_type_request\work_type_request_export.html:88 #: .\base\templates\work_type_request\work_type_request_nav.html:110 msgid "Work Type Request" msgstr "" -#: .\base\models.py:884 +#: .\base\models.py:887 #: .\base\templates\work_type_request\work_type_request_nav.html:10 msgid "Work Type Requests" msgstr "" -#: .\base\models.py:948 .\base\models.py:1067 +#: .\base\models.py:951 .\base\models.py:1070 msgid "End date must be greater than or equal to start date" msgstr "" -#: .\base\models.py:952 +#: .\base\models.py:955 msgid "A work type request already exists during this time period." msgstr "" -#: .\base\models.py:956 .\base\models.py:1075 +#: .\base\models.py:959 .\base\models.py:1078 #, fuzzy #| msgid "request-attendance-view" msgid "Requested till field is required." msgstr "Attendance Requests" -#: .\base\models.py:1003 +#: .\base\models.py:1006 msgid "Requesting Shift" msgstr "" -#: .\base\models.py:1011 +#: .\base\models.py:1014 #: .\base\templates\shift_request\shift_request_export.html:115 #: .\base\templates\shift_request\shift_request_nav.html:179 msgid "Previous Shift" msgstr "" -#: .\base\models.py:1022 +#: .\base\models.py:1025 #, fuzzy #| msgid "employee" msgid "Reallocate Employee" msgstr "Employee" -#: .\base\models.py:1049 +#: .\base\models.py:1052 #: .\base\templates\shift_request\shift_request_export.html:91 #: .\base\templates\shift_request\shift_request_nav.html:146 #: .\base\templates\shift_request\shift_request_nav.html:362 -#: .\employee\templates\tabs\shift-tab.html:1139 +#: .\employee\templates\tabs\shift-tab.html:1109 #: .\templates\quick_access.html:38 msgid "Shift Request" msgstr "" -#: .\base\models.py:1050 +#: .\base\models.py:1053 #: .\base\templates\shift_request\shift_request_nav.html:9 #: .\base\templates\shift_request\shift_request_view.html:78 msgid "Shift Requests" msgstr "" -#: .\base\models.py:1071 .\base\views.py:4743 .\base\views.py:4816 +#: .\base\models.py:1074 .\base\views.py:4767 .\base\views.py:4840 msgid "An approved shift request already exists during this time period." msgstr "" -#: .\base\models.py:1183 .\base\templates\email_config.html:13 +#: .\base\models.py:1186 .\base\templates\email_config.html:13 msgid "Email Host" msgstr "" -#: .\base\models.py:1185 .\base\templates\email_config.html:17 +#: .\base\models.py:1188 .\base\templates\email_config.html:17 msgid "Email Port" msgstr "" -#: .\base\models.py:1188 +#: .\base\models.py:1191 msgid "Default From Email" msgstr "" -#: .\base\models.py:1194 +#: .\base\models.py:1197 msgid "Email Host Username" msgstr "" -#: .\base\models.py:1200 +#: .\base\models.py:1203 .\outlook_auth\models.py:29 msgid "Display Name" msgstr "" -#: .\base\models.py:1206 +#: .\base\models.py:1209 msgid "Email Authentication Password" msgstr "" -#: .\base\models.py:1209 +#: .\base\models.py:1212 msgid "Use TLS" msgstr "" -#: .\base\models.py:1211 +#: .\base\models.py:1214 msgid "Use SSL" msgstr "" -#: .\base\models.py:1213 +#: .\base\models.py:1216 msgid "Fail Silently" msgstr "" -#: .\base\models.py:1216 +#: .\base\models.py:1219 msgid "Primary Mail Server" msgstr "" -#: .\base\models.py:1220 +#: .\base\models.py:1224 +msgid "By enabling this the display name will take from who triggered the mail" +msgstr "" + +#: .\base\models.py:1229 msgid "Email Send Timeout (seconds)" msgstr "" -#: .\base\models.py:1230 +#: .\base\models.py:1239 msgid "" "\"Use TLS\" and \"Use SSL\" are mutually exclusive, so only set one of those " "settings to True." msgstr "" -#: .\base\models.py:1257 .\base\templates\email_config.html:8 +#: .\base\models.py:1266 .\base\templates\email_config.html:8 msgid "Email Configuration" msgstr "" -#: .\base\models.py:1262 +#: .\base\models.py:1271 msgid "Leave Requested Days" msgstr "" -#: .\base\models.py:1289 +#: .\base\models.py:1298 #: .\base\templates\multi_approval_condition\condition_create_form.html:76 #: .\base\templates\multi_approval_condition\condition_edit_form.html:107 #: .\base\templates\multi_approval_condition\condition_table.html:21 @@ -9145,97 +9295,127 @@ msgstr "" msgid "Condition Value" msgstr "" -#: .\base\models.py:1295 +#: .\base\models.py:1304 #: .\base\templates\multi_approval_condition\condition_edit_form.html:82 #: .\base\templates\multi_approval_condition\condition_value_fields.html:9 msgid "Starting Value" msgstr "" -#: .\base\models.py:1301 +#: .\base\models.py:1310 #: .\base\templates\multi_approval_condition\condition_edit_form.html:94 #: .\base\templates\multi_approval_condition\condition_value_fields.html:20 msgid "Ending Value" msgstr "" -#: .\base\models.py:1326 +#: .\base\models.py:1335 msgid "A condition with the provided fields already exists" msgstr "" -#: .\base\models.py:1334 +#: .\base\models.py:1343 msgid "Please enter a numeric value for condition value" msgstr "" -#: .\base\models.py:1344 +#: .\base\models.py:1353 msgid "" "Please enter a valid numeric value for the condition value when the " "condition field is Leave Requested Days." msgstr "" -#: .\base\models.py:1353 +#: .\base\models.py:1362 msgid "Please specify condition value range" msgstr "" -#: .\base\models.py:1363 +#: .\base\models.py:1372 msgid "" "Please enter a valid numeric value for the starting value when the condition " "field is Leave Requested Days." msgstr "" -#: .\base\models.py:1373 +#: .\base\models.py:1382 msgid "" "Please enter a valid numeric value for the ending value when the condition " "field is Leave Requested Days." msgstr "" -#: .\base\models.py:1382 +#: .\base\models.py:1391 msgid "End value must be different from the start value in a range." msgstr "" -#: .\base\models.py:1390 +#: .\base\models.py:1399 msgid "End value must be greater than the start value in a range." msgstr "" -#: .\base\models.py:1453 .\employee\models.py:72 +#: .\base\models.py:1462 .\employee\models.py:72 #: .\horillavenv\Lib\site-packages\auditlog\mixins.py:30 msgid "User" msgstr "" -#: .\base\models.py:1602 +#: .\base\models.py:1523 +#, fuzzy +#| msgid "recruitment" +msgid "Disable Comments" +msgstr "Recruitment" + +#: .\base\models.py:1527 +msgid "Show Comments to All" +msgstr "" + +#: .\base\models.py:1528 +msgid "If enabled, all employees can view each other's comments." +msgstr "" + +#: .\base\models.py:1537 .\base\templates\announcement\announcement_one.html:11 +#, fuzzy +#| msgid "recruitment" +msgid "Announcement" +msgstr "Recruitment" + +#: .\base\models.py:1538 .\templates\dashboard.html:194 +#, fuzzy +#| msgid "recruitment" +msgid "Announcements" +msgstr "Recruitment" + +#: .\base\models.py:1636 #, fuzzy #| msgid "employee" msgid "Excluded Charts" msgstr "Employee" -#: .\base\models.py:1659 +#: .\base\models.py:1693 #, fuzzy #| msgid "recruitment" msgid "Enable" msgstr "Recruitment" -#: .\base\models.py:1661 +#: .\base\models.py:1695 msgid "" "By enabling this, you track the late comes and early outs of employees in " "their attendance." msgstr "" -#: .\base\models.py:1666 +#: .\base\models.py:1700 msgid "Track Late Come Early Out" msgstr "" -#: .\base\models.py:1667 +#: .\base\models.py:1701 msgid "Track Late Come Early Outs" msgstr "" -#: .\base\models.py:1677 .\base\templates\holiday\holiday.html:45 +#: .\base\models.py:1710 +msgid "Only one TrackLateComeEarlyOut instance is allowed." +msgstr "" + +#: .\base\models.py:1718 .\base\templates\holiday\holiday.html:45 #: .\base\templates\holiday\holiday_form.html:48 -#: .\base\templates\holiday\holiday_update_form.html:31 +#: .\base\templates\holiday\holiday_update_form.html:37 #: .\employee\templates\leave-tab.html:180 #: .\employee\templates\personal-tab.html:196 #: .\employee\templates\tabs\contract-tab.html:16 #: .\employee\templates\tabs\leave-tab.html:203 #: .\employee\templates\tabs\payroll-tab.html:33 -#: .\employee\templates\tabs\personal_tab.html:203 .\leave\models.py:320 -#: .\leave\models.py:546 .\leave\models.py:1093 +#: .\employee\templates\tabs\personal_tab.html:203 .\leave\models.py:316 +#: .\leave\models.py:587 .\leave\models.py:1255 #: .\leave\templates\leave\holiday\holiday.html:62 #: .\leave\templates\leave\holiday\holiday_form.html:54 #: .\leave\templates\leave\holiday\holiday_update_form.html:49 @@ -9251,20 +9431,16 @@ msgstr "" #: .\leave\templates\leave\leave_request\one_request_view.html:77 #: .\leave\templates\leave\leave_request_view.html:12 #: .\leave\templates\leave\one_request_view.html:27 -#: .\leave\templates\leave\request_view.html:61 #: .\leave\templates\leave\restrict\restrict.html:54 -#: .\leave\templates\leave\restrict\restrict_form.html:38 -#: .\leave\templates\leave\restrict\restrict_update_form.html:38 #: .\leave\templates\leave\user_leave\group_by.html:74 -#: .\leave\templates\leave\user_leave\user_request_one.html:83 +#: .\leave\templates\leave\user_leave\user_request_one.html:66 #: .\leave\templates\leave\user_leave\user_request_view.html:123 #: .\leave\templates\leave\user_leave\user_requests.html:68 #: .\leave\templates\leave\user_request_form.html:22 #: .\leave\templates\leave\user_request_one.html:26 -#: .\leave\templates\leave\user_request_view.html:61 #: .\offboarding\templates\offboarding\stage\offboarding_body.html:68 -#: .\onboarding\templates\onboarding\filters.html:31 .\payroll\filters.py:389 -#: .\payroll\forms\component_forms.py:489 .\payroll\models\models.py:170 +#: .\onboarding\templates\onboarding\filters.html:31 .\payroll\filters.py:460 +#: .\payroll\forms\component_forms.py:499 .\payroll\models\models.py:168 #: .\payroll\templates\payroll\contract\contract_export_filter.html:51 #: .\payroll\templates\payroll\contract\contract_list.html:53 #: .\payroll\templates\payroll\contract\contract_list.html:56 @@ -9278,12 +9454,12 @@ msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:86 #: .\payroll\templates\payroll\payslip\group_payslips.html:49 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:102 -#: .\payroll\templates\payroll\payslip\payslip_table.html:79 -#: .\payroll\templates\payroll\payslip\payslip_table.html:83 -#: .\pms\models.py:852 .\pms\templates\feedback\feedback_creation.html:109 +#: .\payroll\templates\payroll\payslip\payslip_table.html:58 +#: .\payroll\templates\payroll\payslip\payslip_table.html:60 +#: .\pms\models.py:550 .\pms\models.py:880 #: .\pms\templates\feedback\feedback_list_view.html:87 #: .\pms\templates\feedback\feedback_update.html:76 -#: .\pms\templates\okr\create_period.html:41 +#: .\pms\templates\okr\create_period.html:36 #: .\pms\templates\okr\emp_obj_single.html:118 #: .\pms\templates\okr\key_result\key_result_creation.html:107 #: .\pms\templates\okr\key_result\key_result_creation_htmx.html:86 @@ -9291,10 +9467,12 @@ msgstr "" #: .\pms\templates\okr\key_result\kr_dashboard_view.html:53 #: .\pms\templates\okr\kr_list.html:32 #: .\pms\templates\okr\objective_list_view.html:108 -#: .\pms\templates\period\period_list.html:18 +#: .\pms\templates\period\period_list.html:18 .\project\cbv\tasks.py:90 +#: .\project\cbv\tasks.py:420 .\project\models.py:73 .\project\models.py:351 +#: .\project\templates\cbv\tasks\task_filter.html:32 #: .\project\templates\project\new\project_list_view.html:75 #: .\project\templates\task\new\task_details.html:49 -#: .\project\templates\task\new\task_list_view.html:120 +#: .\project\templates\task\new\task_list_view.html:108 #: .\project\templates\task_all\task_all_card.html:61 #: .\project\templates\task_all\task_all_filter.html:31 #: .\project\templates\task_all\task_all_list.html:55 @@ -9308,14 +9486,17 @@ msgstr "" #: .\recruitment\templates\recruitment\recruitment_duplicate_form.html:74 #: .\recruitment\templates\recruitment\recruitment_form.html:120 #: .\recruitment\templates\recruitment\recruitment_update_form.html:111 +#: .\report\templates\report\leave_report.html:64 +#: .\report\templates\report\pms_report.html:156 +#: .\report\templates\report\recruitment_report.html:147 msgid "End Date" msgstr "" -#: .\base\models.py:1678 .\base\templates\holiday\holiday.html:47 +#: .\base\models.py:1719 .\base\templates\holiday\holiday.html:47 #: .\base\templates\holiday\holiday_export_filter_form.html:63 #: .\base\templates\holiday\holiday_filter.html:28 #: .\base\templates\holiday\holiday_form.html:68 -#: .\base\templates\holiday\holiday_update_form.html:38 .\leave\models.py:321 +#: .\base\templates\holiday\holiday_update_form.html:57 .\leave\models.py:317 #: .\leave\templates\leave\holiday\holiday.html:64 #: .\leave\templates\leave\holiday\holiday_export_filter_form.html:63 #: .\leave\templates\leave\holiday\holiday_filter.html:28 @@ -9324,16 +9505,28 @@ msgstr "" msgid "Recurring" msgstr "" +#: .\base\models.py:1800 +msgid "Specify the leave type to deduct the leave." +msgstr "" + +#: .\base\models.py:1806 +msgid "If a leave type is chosen for a penalty, minus leaves are required." +msgstr "" + +#: .\base\models.py:1814 +msgid "Either minus leaves or a penalty amount is required" +msgstr "" + +#: .\base\models.py:1822 +msgid "Leave type is required" +msgstr "" + #: .\base\templates\announcement\announcement_form.html:20 #, fuzzy #| msgid "recruitment" -msgid "Create Announcements." +msgid "Create " msgstr "Recruitment" -#: .\base\templates\announcement\announcement_one.html:11 -msgid "Announcement." -msgstr "" - #: .\base\templates\announcement\announcement_one.html:56 msgid "Are you sure you want to delete this announcement?" msgstr "" @@ -9354,27 +9547,31 @@ msgstr "" msgid "View Attachment" msgstr "Recruitment" -#: .\base\templates\announcement\announcement_one.html:155 -#: .\base\templates\announcement\announcements_list.html:12 +#: .\base\templates\announcement\announcement_one.html:153 +#: .\base\templates\announcement\announcements_list.html:7 #, fuzzy -#| msgid "recruitment" -msgid "No Announcements to show." -msgstr "Recruitment" +#| msgid "shift-request-view" +msgid "There are no announcements at the moment." +msgstr "Shift Requests" -#: .\base\templates\announcement\announcement_update_form.html:21 -msgid "Edit Announcement." -msgstr "" - -#: .\base\templates\announcement\announcements_list.html:34 +#: .\base\templates\announcement\announcements_list.html:31 msgid "NEW" msgstr "" -#: .\base\templates\announcement\comment_view.html:23 +#: .\base\templates\announcement\as_p.html:25 +msgid "Are you sure do you want to delete this file ?" +msgstr "" + +#: .\base\templates\announcement\comment_view.html:18 #, fuzzy #| msgid "recruitment" msgid "'s comments" msgstr "Recruitment" +#: .\base\templates\announcement\comment_view.html:98 +msgid "Comments have been disabled for this announcement." +msgstr "" + #: .\base\templates\announcement\expiry_day.html:6 msgid "Announcement Expire" msgstr "" @@ -9388,14 +9585,14 @@ msgid "Set default announcement expire days" msgstr "" #: .\base\templates\announcement\expiry_day.html:14 -#: .\base\templates\base\shift\schedule_view.html:11 .\employee\models.py:883 +#: .\base\templates\base\shift\schedule_view.html:11 .\employee\models.py:910 #: .\leave\templates\leave\leave_my_request_view.html:13 #: .\leave\templates\leave\leave_my_requests_view.html:13 #: .\leave\templates\leave\leave_request\one_request_view.html:60 #: .\leave\templates\leave\one_request_view.html:34 -#: .\leave\templates\leave\user_leave\user_request_one.html:66 +#: .\leave\templates\leave\user_leave\user_request_one.html:49 #: .\leave\templates\leave\user_request_one.html:33 .\pms\models.py:86 -#: .\pms\models.py:485 +#: .\pms\models.py:496 msgid "Days" msgstr "" @@ -9409,8 +9606,8 @@ msgstr "" #: .\employee\templates\settings\settings.html:48 #: .\helpdesk\templates\helpdesk\ticket\forms\add_tag.html:21 #: .\helpdesk\templates\helpdesk\ticket\forms\change.html:92 -#: .\helpdesk\templates\helpdesk\ticket\forms\change_assinees.html:21 -#: .\helpdesk\templates\helpdesk\ticket\forms\change_raised_on.html:27 +#: .\helpdesk\templates\helpdesk\ticket\forms\change_assinees.html:15 +#: .\helpdesk\templates\helpdesk\ticket\forms\change_raised_on.html:23 #: .\payroll\templates\payroll\settings\payroll_settings.html:64 #: .\payroll\templates\payroll\settings\settings.html:15 msgid "Save Changes" @@ -9421,7 +9618,7 @@ msgid "Viewed By" msgstr "" #: .\base\templates\base\action_type\action_type.html:6 -#: .\employee\models.py:874 +#: .\employee\models.py:901 msgid "Action Type" msgstr "" @@ -9476,26 +9673,77 @@ msgstr "" msgid "Employee Account Restrictions" msgstr "Employee Permissions" -#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:18 +#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:16 msgid "Restrict Login Account" msgstr "" -#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:22 +#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:19 msgid "By enabling this feature, you can block or unblock an employee account." msgstr "" -#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:50 +#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:36 #, fuzzy #| msgid "update-deduction" msgid "Restrict Profile Edit" msgstr "Update" -#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:54 +#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:39 msgid "" "By enabling this feature, you can restrict an employee from editing their " "profile." msgstr "" +#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:58 +msgid "" +"Are you sure you want to restrict all employees from editing their profiles?" +msgstr "" + +#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:59 +msgid "Are you sure you want to allow all employees to edit their profiles?" +msgstr "" + +#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:63 +#, fuzzy +#| msgid "configuration" +msgid "Please Confirm" +msgstr "Configuration" + +#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:68 +#: .\base\templates\base\mail_server\replace_mail.html:122 +#: .\base\templates\shift_request\htmx\allocation_details.html:132 +#: .\base\templates\shift_request\htmx\allocation_details.html:133 +#: .\base\templates\shift_request\htmx\allocation_requests.html:151 +#: .\base\templates\shift_request\htmx\shift_request_detail.html:108 +#: .\base\templates\shift_request\htmx\shift_request_detail.html:109 +#: .\employee\templates\leave-tab.html:236 +#: .\employee\templates\leave-tab.html:242 +#: .\employee\templates\related_models.html:117 +#: .\leave\templates\leave\leave_my_request_view.html:35 +#: .\leave\templates\leave\leave_my_requests_view.html:55 +#: .\leave\templates\leave\leave_request\leave-requests.html:87 +#: .\leave\templates\leave\leave_request\leave-requests.html:93 +#: .\leave\templates\leave\leave_request_view.html:62 +#: .\leave\templates\leave\one_request_view.html:84 +#: .\leave\templates\leave\one_request_view.html:90 +#: .\leave\templates\leave\user_leave\group_by.html:142 +#: .\leave\templates\leave\user_leave\group_by.html:143 +#: .\leave\templates\leave\user_leave\group_by.html:147 +#: .\leave\templates\leave\user_leave\user_requests.html:143 +#: .\leave\templates\leave\user_leave\user_requests.html:144 +#: .\leave\templates\leave\user_leave\user_requests.html:148 +#: .\pms\templates\feedback\question\question_all.html:96 +#: .\templates\index.html:102 +msgid "Cancel" +msgstr "" + +#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:90 +msgid "Error" +msgstr "" + +#: .\base\templates\base\audit_tag\employee_account_block_unblock.html:90 +msgid "Something went wrong while updating." +msgstr "" + #: .\base\templates\base\audit_tag\history_tracking_fields.html:35 #, fuzzy #| msgid "employee" @@ -9544,7 +9792,6 @@ msgstr "" #: .\base\templates\base\shift\schedule_view.html:24 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:59 #: .\pms\templates\okr\okr_list.html:162 .\pms\templates\okr\okr_list.html:464 -#: .\recruitment\templates\candidate\interview_list.html:68 #: .\recruitment\templates\recruitment\recruitment_component.html:102 #: .\recruitment\templates\stage\stage_component.html:77 msgid "Reveal" @@ -9558,19 +9805,18 @@ msgstr "" #: .\base\templates\base\shift\schedule_view.html:26 #: .\employee\templates\disciplinary_actions\disciplinary_records.html:62 #: .\pms\templates\okr\okr_list.html:163 .\pms\templates\okr\okr_list.html:465 -#: .\recruitment\templates\candidate\interview_list.html:69 #: .\recruitment\templates\recruitment\recruitment_component.html:103 #: .\recruitment\templates\stage\stage_component.html:83 msgid "Collapse" msgstr "" #: .\base\templates\base\auth\group_lines.html:18 -#: .\employee\templates\tabs\group_permissions.html:27 +#: .\employee\templates\tabs\group_permissions.html:30 msgid "Total" msgstr "" #: .\base\templates\base\auth\group_lines.html:18 -#: .\employee\templates\tabs\group_permissions.html:29 +#: .\employee\templates\tabs\group_permissions.html:32 msgid "users in this group" msgstr "" @@ -9629,6 +9875,7 @@ msgid "Forgot password" msgstr "" #: .\base\templates\base\auth\permission_accordion.html:5 +#: .\employee\templates\tabs\group_permissions.html:7 #, fuzzy #| msgid "employee-permission-assign" msgid "Employee Permissions" @@ -9681,34 +9928,41 @@ msgstr "" msgid "There is no companies at this moment." msgstr "" -#: .\base\templates\base\company\company.html:42 -msgid "Create Company" +#: .\base\templates\base\company\company_form.html:7 +#: .\onboarding\templates\onboarding\kanban\kanban.html:217 +#: .\onboarding\templates\onboarding\kanban\kanban.html:229 +#: .\onboarding\templates\onboarding\kanban\kanban.html:242 +#: .\onboarding\templates\onboarding\kanban\kanban.html:256 +#: .\onboarding\templates\onboarding\onboarding_view.html:150 +#: .\onboarding\templates\onboarding\onboarding_view.html:163 +#: .\onboarding\templates\onboarding\onboarding_view.html:177 +#: .\onboarding\templates\onboarding\onboarding_view.html:192 +#: .\onboarding\templates\onboarding\onboarding_view.html:207 +#: .\payroll\templates\payroll\reimbursement\attachments.html:15 +#: .\pms\templates\feedback\feedback_detailed_view.html:536 +#: .\recruitment\templates\pipeline\pipeline_tabs.html:50 +#: .\recruitment\templates\recruitment\recruitment_component.html:300 +#: .\templates\import_popup.html:44 .\templates\index.html:112 +msgid "Close" msgstr "" -#: .\base\templates\base\company\company.html:62 -msgid "Update Company" +#: .\base\templates\base\company\company_view.html:7 +msgid "Is Hq" msgstr "" -#: .\base\templates\base\company\company_form.html:20 -#: .\templates\initialize_database\horilla_company.html:106 -msgid "Hq" -msgstr "" - -#: .\base\templates\base\company\company_form.html:25 #: .\base\templates\base\company\company_view.html:8 #: .\employee\templates\employee\profile\personal_info.html:105 #: .\employee\templates\personal-tab.html:34 -#: .\employee\templates\tabs\personal_tab.html:32 .\onboarding\forms.py:408 +#: .\employee\templates\tabs\personal_tab.html:32 .\onboarding\forms.py:335 #: .\onboarding\templates\onboarding\employee_bank_details.html:96 #: .\onboarding\templates\onboarding\employee_creation.html:82 -#: .\recruitment\forms.py:405 .\recruitment\models.py:397 +#: .\recruitment\forms.py:418 .\recruitment\models.py:398 #: .\recruitment\templates\candidate\application_form.html:235 #: .\recruitment\templates\candidate\individual.html:328 #: .\templates\initialize_database\horilla_company.html:44 msgid "Address" msgstr "" -#: .\base\templates\base\company\company_form.html:29 #: .\base\templates\base\company\company_view.html:9 #: .\employee\templates\employee\create_form\personal_info_as_p.html:43 #: .\employee\templates\employee\profile\bank_info.html:50 @@ -9719,73 +9973,60 @@ msgstr "" #: .\employee\templates\personal-tab.html:43 #: .\employee\templates\personal-tab.html:331 #: .\employee\templates\tabs\personal_tab.html:40 -#: .\employee\templates\tabs\personal_tab.html:372 .\onboarding\forms.py:409 -#: .\payroll\forms\component_forms.py:501 .\payroll\models\models.py:681 -#: .\recruitment\models.py:400 +#: .\employee\templates\tabs\personal_tab.html:372 .\onboarding\forms.py:336 +#: .\payroll\forms\component_forms.py:511 .\payroll\models\models.py:679 +#: .\recruitment\models.py:401 #: .\recruitment\templates\candidate\application_form.html:250 #: .\recruitment\templates\candidate\candidate_create_form_as_p.html:29 #: .\recruitment\templates\candidate\export_filter.html:66 #: .\recruitment\templates\candidate\filters.html:21 #: .\recruitment\templates\candidate\individual.html:337 #: .\recruitment\templates\pipeline\filters.html:114 +#: .\report\templates\report\employee_report.html:51 +#: .\report\templates\report\recruitment_report.html:50 #: .\templates\initialize_database\horilla_company.html:51 msgid "Country" msgstr "" -#: .\base\templates\base\company\company_form.html:38 #: .\base\templates\base\company\company_view.html:10 #: .\employee\templates\employee\create_form\personal_info_as_p.html:52 #: .\employee\templates\employee\profile\bank_info.html:57 #: .\employee\templates\employee\profile\personal_info.html:131 #: .\employee\templates\employee\update_form\bank_info_as_p.html:52 #: .\employee\templates\personal-tab.html:52 -#: .\employee\templates\tabs\personal_tab.html:48 .\onboarding\forms.py:410 -#: .\payroll\forms\component_forms.py:502 .\payroll\models\models.py:682 -#: .\recruitment\models.py:404 +#: .\employee\templates\tabs\personal_tab.html:48 .\onboarding\forms.py:337 +#: .\payroll\forms\component_forms.py:512 .\payroll\models\models.py:680 +#: .\recruitment\models.py:405 #: .\recruitment\templates\candidate\application_form.html:265 #: .\recruitment\templates\candidate\candidate_create_form_as_p.html:38 #: .\recruitment\templates\candidate\export_filter.html:92 #: .\recruitment\templates\candidate\filters.html:52 #: .\recruitment\templates\candidate\individual.html:346 #: .\recruitment\templates\pipeline\filters.html:142 +#: .\report\templates\report\recruitment_report.html:87 #: .\templates\initialize_database\horilla_company.html:62 msgid "State" msgstr "" -#: .\base\templates\base\company\company_form.html:47 #: .\base\templates\base\company\company_view.html:11 #: .\employee\templates\employee\profile\bank_info.html:67 #: .\employee\templates\employee\profile\personal_info.html:147 #: .\employee\templates\personal-tab.html:61 #: .\employee\templates\tabs\personal_tab.html:56 #: .\onboarding\templates\onboarding\employee_bank_details.html:121 -#: .\payroll\forms\component_forms.py:503 .\recruitment\models.py:407 +#: .\payroll\forms\component_forms.py:513 .\recruitment\models.py:408 #: .\recruitment\templates\candidate\application_form.html:280 #: .\templates\initialize_database\horilla_company.html:76 msgid "City" msgstr "" -#: .\base\templates\base\company\company_form.html:51 -#: .\base\templates\base\company\company_view.html:12 .\onboarding\forms.py:411 +#: .\base\templates\base\company\company_view.html:12 .\onboarding\forms.py:338 #: .\onboarding\templates\onboarding\employee_creation.html:107 -#: .\recruitment\forms.py:406 +#: .\recruitment\forms.py:419 #: .\templates\initialize_database\horilla_company.html:84 msgid "Zip" msgstr "" -#: .\base\templates\base\company\company_form.html:55 -#: .\leave\templates\leave\leave_type\leave_type_creation.html:39 -#: .\leave\templates\leave\leave_type\leave_type_update.html:35 -#: .\leave\templates\leave\leave_type_creation.html:45 -#: .\leave\templates\leave\leave_type_update.html:47 -#: .\templates\initialize_database\horilla_company.html:94 -msgid "Icon" -msgstr "" - -#: .\base\templates\base\company\company_view.html:7 -msgid "Is Hq" -msgstr "" - #: .\base\templates\base\company\company_view.html:45 msgid "Are you sure you want to delete this company?" msgstr "" @@ -9897,20 +10138,10 @@ msgstr "" msgid "Currency" msgstr "" -#: .\base\templates\base\department\department.html:26 +#: .\base\templates\base\department\department.html:21 msgid "There is no department at this moment." msgstr "" -#: .\base\templates\base\department\department_form.html:5 -#, fuzzy -#| msgid "department-update" -msgid "Update Department" -msgstr "Update" - -#: .\base\templates\base\department\department_form.html:7 -msgid "Create Department" -msgstr "" - #: .\base\templates\base\department\department_view.html:26 #: .\templates\initialize_database\horilla_department_form.html:16 msgid "Are you sure you want to delete this department?" @@ -9942,7 +10173,7 @@ msgstr "Employee" #: .\base\templates\base\employee_tag\employee_tag_view.html:7 #: .\base\templates\base\tags\tags_view.html:7 -#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:93 +#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:71 #: .\leave\templates\leave\leave_type\leave_type_creation.html:46 #: .\leave\templates\leave\leave_type\leave_type_update.html:42 #: .\leave\templates\leave\leave_type_creation.html:52 @@ -9958,25 +10189,13 @@ msgstr "" msgid "There is no employee type at this moment." msgstr "" -#: .\base\templates\base\employee_type\employee_type_form.html:6 -#, fuzzy -#| msgid "employee" -msgid "Update Employee Type" -msgstr "Employee" - -#: .\base\templates\base\employee_type\employee_type_form.html:8 -#, fuzzy -#| msgid "employee" -msgid "Create Employee Type" -msgstr "Employee" - #: .\base\templates\base\employee_type\type_view.html:26 msgid "Are you sure you want to delete this employee type?" msgstr "" #: .\base\templates\base\install_biometric_attendance.html:5 #: .\biometric\templates\biometric\install_biometric_attendance.html:6 -#: .\templates\settings.html:398 +#: .\templates\settings.html:430 msgid "Biometric Attendance" msgstr "Biometric Attendance" @@ -10000,31 +10219,6 @@ msgstr "" msgid "There is no job positions at this moment." msgstr "" -#: .\base\templates\base\job_position\job_position_form.html:6 -#, fuzzy -#| msgid "feedback-creation" -msgid "Update Job Position" -msgstr "Creation" - -#: .\base\templates\base\job_position\job_position_form.html:8 -#, fuzzy -#| msgid "job-position-view" -msgid "Create Job Position" -msgstr "Job Position" - -#: .\base\templates\base\job_position\job_position_form.html:32 -#, fuzzy -#| msgid "department" -msgid "Department:" -msgstr "Department" - -#: .\base\templates\base\job_position\job_position_form.html:38 -#: .\base\templates\base\job_role\job_role_form.html:32 -#, fuzzy -#| msgid "job-position-view" -msgid "Job Position:" -msgstr "Job Position" - #: .\base\templates\base\job_position\job_position_view.html:60 #: .\templates\initialize_database\horilla_job_position_form.html:16 msgid "Are you sure you want to delete this job position?" @@ -10034,62 +10228,62 @@ msgstr "" msgid "There is no Job roles at this moment." msgstr "" -#: .\base\templates\base\job_role\job_role_form.html:6 -msgid "Update Job Role" -msgstr "" - -#: .\base\templates\base\job_role\job_role_form.html:8 -#, fuzzy -#| msgid "create-allowance" -msgid "Create Job Role" -msgstr "Creation" - -#: .\base\templates\base\job_role\job_role_form.html:36 -msgid "Job Role:" -msgstr "" - #: .\base\templates\base\job_role\job_role_view.html:62 msgid "Are you sure you want to delete this job role?" msgstr "" +#: .\base\templates\base\mail_server\form.html:5 +#: .\outlook_auth\templates\outlook\view_records.html:9 +#: .\templates\settings.html:119 +msgid "Mail Server" +msgstr "" + #: .\base\templates\base\mail_server\form_email_test.html:2 #, fuzzy #| msgid "recruitment" msgid "Send Test Email" msgstr "Recruitment" -#: .\base\templates\base\mail_server\form_email_test.html:35 +#: .\base\templates\base\mail_server\form_email_test.html:29 #, fuzzy #| msgid "recruitment" msgid "Send Email" msgstr "Recruitment" -#: .\base\templates\base\mail_server\mail_server.html:7 +#: .\base\templates\base\mail_server\form_email_test.html:43 +#, fuzzy +#| msgid "recruitment" +msgid "Sending email..." +msgstr "Recruitment" + +#: .\base\templates\base\mail_server\mail_server.html:5 +#: .\outlook_auth\cbv\views.py:38 msgid "Mail Servers" msgstr "" -#: .\base\templates\base\mail_server\mail_server.html:26 +#: .\base\templates\base\mail_server\mail_server.html:21 msgid "There is no mail server at this moment." msgstr "" -#: .\base\templates\base\mail_server\mail_server.html:42 -#: .\templates\settings.html:119 -msgid "Mail Server" -msgstr "" - #: .\base\templates\base\mail_server\mail_server_view.html:21 msgid "Primary mail is not configured! " msgstr "" -#: .\base\templates\base\mail_server\mail_server_view.html:38 +#: .\base\templates\base\mail_server\mail_server_view.html:39 msgid "Host User" msgstr "" -#: .\base\templates\base\mail_server\mail_server_view.html:41 +#: .\base\templates\base\mail_server\mail_server_view.html:42 msgid "Host" msgstr "" -#: .\base\templates\base\mail_server\mail_server_view.html:59 +#: .\base\templates\base\mail_server\mail_server_view.html:67 +#, fuzzy +#| msgid "recruitment" +msgid "Test email" +msgstr "Recruitment" + +#: .\base\templates\base\mail_server\mail_server_view.html:71 msgid "Do you want to delete this mail server configuration?" msgstr "" @@ -10121,33 +10315,6 @@ msgstr "Recruitment" msgid "Submit" msgstr "" -#: .\base\templates\base\mail_server\replace_mail.html:122 -#: .\base\templates\shift_request\htmx\allocation_details.html:132 -#: .\base\templates\shift_request\htmx\allocation_details.html:133 -#: .\base\templates\shift_request\htmx\allocation_requests.html:151 -#: .\base\templates\shift_request\htmx\shift_request_detail.html:108 -#: .\base\templates\shift_request\htmx\shift_request_detail.html:109 -#: .\employee\templates\leave-tab.html:236 -#: .\employee\templates\leave-tab.html:242 -#: .\employee\templates\related_models.html:117 -#: .\leave\templates\leave\leave_my_request_view.html:35 -#: .\leave\templates\leave\leave_my_requests_view.html:55 -#: .\leave\templates\leave\leave_request\leave-requests.html:87 -#: .\leave\templates\leave\leave_request\leave-requests.html:93 -#: .\leave\templates\leave\leave_request_view.html:62 -#: .\leave\templates\leave\one_request_view.html:84 -#: .\leave\templates\leave\one_request_view.html:90 -#: .\leave\templates\leave\user_leave\group_by.html:142 -#: .\leave\templates\leave\user_leave\group_by.html:143 -#: .\leave\templates\leave\user_leave\group_by.html:147 -#: .\leave\templates\leave\user_leave\user_requests.html:143 -#: .\leave\templates\leave\user_leave\user_requests.html:144 -#: .\leave\templates\leave\user_leave\user_requests.html:148 -#: .\pms\templates\feedback\question\question_all.html:102 -#: .\templates\index.html:105 -msgid "Cancel" -msgstr "" - #: .\base\templates\base\rotating_shift\filters.html:81 #: .\base\templates\base\rotating_shift\individual_view.html:121 #: .\base\templates\base\rotating_shift\rotating_shift_assign_export.html:115 @@ -10169,6 +10336,7 @@ msgstr "" #: .\recruitment\templates\candidate\filters.html:150 #: .\recruitment\templates\recruitment\filters.html:56 #: .\recruitment\templates\skill_zone\skill_zone_nav.html:116 +#: .\report\templates\report\recruitment_report.html:161 msgid "Is Active" msgstr "" @@ -10304,10 +10472,10 @@ msgstr "" #: .\base\templates\base\rotating_work_type\individual_view.html:158 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_nav.html:132 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_view.html:155 -#: .\biometric\templates\biometric\card_biometric_devices.html:79 +#: .\biometric\templates\biometric\card_biometric_devices.html:85 #: .\biometric\templates\biometric\list_biometric_devices.html:85 -#: .\employee\templates\employee_nav.html:427 -#: .\employee\templates\employee_personal_info\employee_card.html:105 +#: .\employee\templates\employee_nav.html:254 +#: .\employee\templates\employee_personal_info\employee_card.html:106 #: .\employee\templates\employee_personal_info\employee_list.html:266 #: .\employee\templates\employee_personal_info\group_by.html:211 #: .\employee\templates\tabs\shift-tab.html:563 @@ -10320,12 +10488,12 @@ msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:924 #: .\helpdesk\templates\helpdesk\ticket\ticket_nav.html:55 #: .\offboarding\templates\offboarding\task\table_body.html:95 -#: .\pms\templates\feedback\feedback_detailed_view.html:133 +#: .\pms\templates\feedback\feedback_detailed_view.html:143 #: .\pms\templates\feedback\feedback_list.html:165 #: .\pms\templates\feedback\feedback_list.html:460 #: .\pms\templates\feedback\feedback_list.html:610 #: .\pms\templates\feedback\feedback_list_view.html:94 -#: .\pms\templates\feedback\feedback_list_view.html:155 +#: .\pms\templates\feedback\feedback_list_view.html:166 #: .\pms\templates\meetings\meetings_list.html:186 #: .\pms\templates\okr\emp_obj_single.html:160 #: .\pms\templates\okr\emp_objective\emp_objective_dashboard_view.html:132 @@ -10338,6 +10506,10 @@ msgstr "" #: .\pms\templates\okr\objective_list_view.html:112 #: .\pms\templates\okr\objective_list_view.html:243 #: .\pms\templates\okr\okr_list.html:308 .\pms\templates\okr\okr_list.html:546 +#: .\project\cbv\projects.py:87 .\project\cbv\tasks.py:215 +#: .\project\templates\cbv\projects\actions.html:41 +#: .\project\templates\cbv\tasks\task_actions.html:14 +#: .\project\templates\cbv\tasks\task_actions.html:46 #: .\project\templates\project\new\navbar.html:206 #: .\project\templates\project\new\project_kanban_view.html:131 #: .\project\templates\task_all\task_all_card.html:79 @@ -10346,7 +10518,7 @@ msgstr "" #: .\recruitment\templates\candidate\candidate_nav.html:217 #: .\recruitment\templates\pipeline\kanban_components\candidate_kanban_components.html:207 #: .\recruitment\templates\pipeline\pipeline_card.html:267 -#: .\recruitment\templates\recruitment\recruitment_component.html:186 +#: .\recruitment\templates\recruitment\recruitment_component.html:195 #: .\recruitment\templates\skill_zone\skill_zone_card.html:66 #: .\recruitment\templates\skill_zone\skill_zone_list.html:56 #: .\recruitment\templates\skill_zone_cand\skill_zone_cand_card.html:68 @@ -10365,16 +10537,18 @@ msgstr "" #: .\base\templates\base\rotating_work_type\htmx\group_by.html:159 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_nav.html:142 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_view.html:164 -#: .\biometric\templates\biometric\card_biometric_devices.html:85 +#: .\biometric\templates\biometric\card_biometric_devices.html:91 #: .\biometric\templates\biometric\list_biometric_devices.html:91 -#: .\employee\templates\employee_nav.html:432 -#: .\employee\templates\employee_personal_info\employee_card.html:109 +#: .\employee\templates\employee_nav.html:259 +#: .\employee\templates\employee_personal_info\employee_card.html:110 #: .\employee\templates\employee_personal_info\employee_list.html:279 #: .\employee\templates\employee_personal_info\group_by.html:226 #: .\employee\templates\tabs\shift-tab.html:579 #: .\employee\templates\tabs\shift-tab.html:796 -#: .\pms\templates\feedback\feedback_list_view.html:162 -#: .\pms\templates\okr\objective_list_view.html:252 +#: .\pms\templates\feedback\feedback_list_view.html:173 +#: .\pms\templates\okr\objective_list_view.html:252 .\project\cbv\tasks.py:222 +#: .\project\templates\cbv\projects\actions.html:50 +#: .\project\templates\cbv\tasks\task_actions.html:20 #: .\project\templates\project\new\navbar.html:215 #: .\project\templates\project\new\project_kanban_view.html:135 #: .\project\templates\task_all\task_all_card.html:83 @@ -10401,18 +10575,6 @@ msgstr "" msgid "Rotating Shift Assign Update" msgstr "" -#: .\base\templates\base\rotating_shift\htmx\rotating_shift_form.html:5 -#, fuzzy -#| msgid "rotating-shift-assign" -msgid "Update Rotating Shift" -msgstr "Rotating Shift Assigns" - -#: .\base\templates\base\rotating_shift\htmx\rotating_shift_form.html:7 -#, fuzzy -#| msgid "rotating-shift-assign" -msgid "Create Rotating Shift" -msgstr "Rotating Shift Assigns" - #: .\base\templates\base\rotating_shift\individual_view.html:79 #: .\base\templates\base\rotating_shift\rotating_shift_assign_view.html:113 #: .\base\templates\base\rotating_work_type\htmx\group_by.html:109 @@ -10474,7 +10636,7 @@ msgstr "" #: .\pms\templates\feedback\feedback_list.html:608 #: .\pms\templates\okr\group_by.html:182 .\pms\templates\okr\group_by.html:504 #: .\pms\templates\okr\objective_list.html:162 -#: .\pms\templates\okr\objective_list.html:381 +#: .\pms\templates\okr\objective_list.html:381 .\project\cbv\projects.py:94 msgid "Un-archive" msgstr "" @@ -10491,11 +10653,11 @@ msgstr "" msgid "Selected Shifts" msgstr "" -#: .\base\templates\base\rotating_shift\rotating_shift_assign_empty.html:12 -msgid "" -"There are currently no employees assigned to rotating shifts to be " -"considered." -msgstr "" +#: .\base\templates\base\rotating_shift\rotating_shift_assign_empty.html:6 +#, fuzzy +#| msgid "rotating-shift-assign" +msgid "No Employees Assigned to Rotating Shifts." +msgstr "Rotating Shift Assigns" #: .\base\templates\base\rotating_shift\rotating_shift_assign_export.html:3 #, fuzzy @@ -10512,6 +10674,7 @@ msgstr "Rotating Shift Assigns" #: .\base\templates\base\rotating_shift\rotating_shift_assign_view.html:154 #: .\base\translator.py:184 .\employee\templates\tabs\shift-tab.html:558 #: .\recruitment\templates\recruitment\filters.html:23 +#: .\report\templates\report\recruitment_report.html:133 msgid "False" msgstr "" @@ -10564,18 +10727,6 @@ msgstr "" msgid "Are you sure you want to delete this rotating work type assign?" msgstr "" -#: .\base\templates\base\rotating_work_type\htmx\rotating_work_type_form.html:5 -#, fuzzy -#| msgid "rotating-work-type-assign" -msgid "Update Rotating Work Type" -msgstr "Rotating Work Type Assigns" - -#: .\base\templates\base\rotating_work_type\htmx\rotating_work_type_form.html:7 -#, fuzzy -#| msgid "rotating-work-type-assign" -msgid "Create Rotating Work Type" -msgstr "Rotating Work Type Assigns" - #: .\base\templates\base\rotating_work_type\individual_view.html:147 #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_view.html:151 #: .\employee\templates\tabs\shift-tab.html:775 @@ -10595,10 +10746,11 @@ msgstr "" msgid "Selected Worktypes" msgstr "" -#: .\base\templates\base\rotating_work_type\rotating_work_type_assign_empty.html:12 -msgid "" -"There are currently no employees assigned to work type to be considered." -msgstr "" +#: .\base\templates\base\rotating_work_type\rotating_work_type_assign_empty.html:6 +#, fuzzy +#| msgid "rotating-work-type-assign" +msgid "No Employees Assigned to Rotating Work Types." +msgstr "Rotating Work Type Assigns" #: .\base\templates\base\rotating_work_type\rotating_work_type_assign_export.html:3 #, fuzzy @@ -10623,18 +10775,6 @@ msgstr "" msgid "There is no shift schedule at this moment." msgstr "" -#: .\base\templates\base\shift\schedule_form.html:5 -#, fuzzy -#| msgid "employee-shift-schedule-view" -msgid "Update Employee Shift Schedule" -msgstr "Employee Shift Schedule" - -#: .\base\templates\base\shift\schedule_form.html:7 -#, fuzzy -#| msgid "employee-shift-schedule-view" -msgid "Create Employee Shift Schedule" -msgstr "Employee Shift Schedule" - #: .\base\templates\base\shift\schedule_view.html:34 msgid "Schedules" msgstr "" @@ -10643,18 +10783,6 @@ msgstr "" msgid "Are you sure you want to delete this schedule?" msgstr "" -#: .\base\templates\base\shift\shift_form.html:6 -#, fuzzy -#| msgid "employee" -msgid "Update Employee Shift" -msgstr "Employee" - -#: .\base\templates\base\shift\shift_form.html:8 -#, fuzzy -#| msgid "employee" -msgid "Create Employee Shift" -msgstr "Employee" - #: .\base\templates\base\shift\shift_view.html:9 msgid "Weekly Full Time" msgstr "" @@ -10672,7 +10800,7 @@ msgid "There is no employee shifts at this moment." msgstr "" #: .\base\templates\base\tags\employee_tags.html:10 -#: .\templates\settings.html:330 +#: .\templates\settings.html:362 #, fuzzy #| msgid "employee" msgid "Employee Tags" @@ -10683,7 +10811,7 @@ msgid "There is no employee tags at this moment." msgstr "" #: .\base\templates\base\tags\helpdesk_tags.html:10 -#: .\templates\settings.html:552 +#: .\templates\settings.html:596 #, fuzzy #| msgid "helpdesk" msgid "Helpdesk Tags" @@ -10717,8 +10845,9 @@ msgstr "" #: .\base\templates\base\ticket_type\ticket_type.html:7 #: .\base\templates\base\ticket_type\ticket_type_view.html:6 +#: .\helpdesk\models.py:88 #: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:69 -#: .\templates\settings.html:542 +#: .\templates\settings.html:586 msgid "Ticket Type" msgstr "" @@ -10727,7 +10856,6 @@ msgid "There is no ticket types at this moment." msgstr "" #: .\base\templates\base\ticket_type\ticket_type.html:46 -#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:138 msgid "Create Ticket Type" msgstr "" @@ -10738,8 +10866,7 @@ msgid "Update Ticket Type" msgstr "Update" #: .\base\templates\base\ticket_type\ticket_type_view.html:8 -#: .\employee\templates\settings\settings.html:14 -#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:164 +#: .\employee\templates\settings\settings.html:14 .\helpdesk\models.py:78 #: .\payroll\models\tax_models.py:26 msgid "Prefix" msgstr "" @@ -10752,23 +10879,13 @@ msgstr "" msgid "There is no work types at this moment." msgstr "" -#: .\base\templates\base\work_type\work_type_form.html:6 -msgid "Update Work Type" -msgstr "" - -#: .\base\templates\base\work_type\work_type_form.html:8 -#, fuzzy -#| msgid "create-allowance" -msgid "Create Work Type" -msgstr "Creation" - #: .\base\templates\base\work_type\work_type_view.html:26 msgid "Are you sure you want to delete this work type?" msgstr "" #: .\base\templates\company_leave\company_leave.html:19 #: .\base\templates\company_leave\company_leave_creation_form.html:36 -#: .\base\templates\company_leave\company_leave_update_form.html:25 +#: .\base\templates\company_leave\company_leave_update_form.html:36 #: .\leave\templates\leave\company_leave\company_leave.html:19 #: .\leave\templates\leave\company_leave\company_leave_creation_form.html:46 #: .\leave\templates\leave\company_leave\company_leave_update_form.html:48 @@ -10777,7 +10894,7 @@ msgstr "" #: .\base\templates\company_leave\company_leave.html:20 #: .\base\templates\company_leave\company_leave_creation_form.html:38 -#: .\base\templates\company_leave\company_leave_update_form.html:27 +#: .\base\templates\company_leave\company_leave_update_form.html:38 #: .\leave\templates\leave\company_leave\company_leave.html:20 #: .\leave\templates\leave\company_leave\company_leave_creation_form.html:48 #: .\leave\templates\leave\company_leave\company_leave_update_form.html:50 @@ -10820,14 +10937,14 @@ msgstr "" msgid "Create Company Leaves" msgstr "" -#: .\base\templates\company_leave\company_leave_update_form.html:18 +#: .\base\templates\company_leave\company_leave_update_form.html:24 #: .\leave\templates\leave\company_leave\company_leave_update_form.html:29 msgid "Update Company Leaves" msgstr "" #: .\base\templates\company_leave\company_leave_view.html:8 #: .\leave\templates\leave\company_leave\company_leave_view.html:8 -#: .\templates\sidebar.html:275 +#: .\templates\sidebar.html:290 msgid "Company Leaves" msgstr "" @@ -10922,9 +11039,9 @@ msgstr "" msgid "Update Holiday" msgstr "" -#: .\base\templates\holiday\holiday_view.html:6 .\base\views.py:7020 +#: .\base\templates\holiday\holiday_view.html:6 .\base\views.py:7049 #: .\leave\templates\leave\holiday\holiday_view.html:6 -#: .\templates\sidebar.html:266 +#: .\templates\sidebar.html:281 msgid "Holidays" msgstr "" @@ -10948,89 +11065,40 @@ msgstr "" msgid "No more holidays scheduled for this month." msgstr "" -#: .\base\templates\mail\empty_mail_template.html:28 -#: .\base\templates\mail\view_templates.html:28 -#: .\recruitment\templates\offerletter\empty_mail_template.html:28 -#: .\recruitment\templates\offerletter\view_templates.html:28 -#: .\templates\sidebar.html:247 +#: .\base\templates\mail\empty_mail_template.html:10 +#: .\base\templates\mail\view_templates.html:8 .\templates\sidebar.html:262 msgid "Mail Templates" msgstr "" -#: .\base\templates\mail\empty_mail_template.html:32 -#: .\biometric\templates\biometric\add_biometric_user.html:21 -#: .\biometric\templates\biometric\nav_biometric_devices.html:47 -#: .\biometric\templates\biometric\nav_employees_biometric.html:85 -#: .\biometric\templates\biometric\nav_employees_cosec_biometric.html:82 -#: .\biometric\templates\biometric_users\dahua\add_dahua_user.html:22 -#: .\biometric\templates\biometric_users\dahua\nav_dahua_employees.html:53 -#: .\employee\templates\tabs\add_note.html:10 -#: .\employee\templates\tabs\forms\add_points.html:47 -#: .\employee\templates\tabs\forms\redeem_points_form.html:36 -#: .\employee\templates\tabs\note_tab.html:66 -#: .\employee\templates\tabs\note_tab.html:151 -#: .\employee\templates\tabs\shift-tab.html:82 -#: .\horilla_widgets\templates\horilla_widgets\horilla_multiselect_widget.html:210 -#: .\offboarding\templates\offboarding\note\view_notes.html:32 -#: .\payroll\templates\payroll\bonus\form.html:60 -#: .\pms\templates\feedback\feedback_list.html:73 -#: .\recruitment\templates\candidate\candidate_interview_view.html:70 -#: .\recruitment\templates\candidate\candidate_self_tracking.html:480 -#: .\recruitment\templates\candidate\individual_view_note.html:24 -#: .\recruitment\templates\offerletter\empty_mail_template.html:32 -#: .\recruitment\templates\pipeline\pipeline_components\add_note.html:10 -#: .\recruitment\templates\pipeline\pipeline_components\create_note.html:11 -#: .\recruitment\templates\pipeline\pipeline_components\view_note.html:51 -#: .\recruitment\templates\recruitment\recruitment_duplicate_form.html:92 -#: .\recruitment\templates\recruitment\recruitment_form.html:192 -#: .\recruitment\templates\survey\survey_empty_view.html:93 -msgid "Add" -msgstr "" - -#: .\base\templates\mail\empty_mail_template.html:41 -#: .\recruitment\templates\offerletter\empty_mail_template.html:41 +#: .\base\templates\mail\empty_mail_template.html:44 msgid "There are currently no email templates." msgstr "" -#: .\base\templates\mail\empty_mail_template.html:61 -#: .\base\templates\mail\view_templates.html:81 -#: .\recruitment\templates\offerletter\empty_mail_template.html:61 -#: .\recruitment\templates\offerletter\view_templates.html:81 +#: .\base\templates\mail\htmx\form.html:4 #, fuzzy #| msgid "employee" msgid "Add Template" msgstr "Employee" -#: .\base\templates\mail\empty_mail_template.html:75 -#: .\base\templates\mail\view_templates.html:95 -#: .\recruitment\templates\offerletter\empty_mail_template.html:75 -#: .\recruitment\templates\offerletter\view_templates.html:95 -#, fuzzy -#| msgid "type-update" -msgid "Duplicate Template" -msgstr "Update" +#: .\base\templates\mail\htmx\form.html:27 +#: .\recruitment\templates\offerletter\htmx\form.html:16 +msgid "Body" +msgstr "" -#: .\base\templates\mail\empty_mail_template.html:80 -#: .\base\templates\mail\htmx\form.html:30 -#: .\recruitment\templates\offerletter\empty_mail_template.html:80 -#: .\recruitment\templates\offerletter\view_templates.html:100 +#: .\base\templates\mail\htmx\form.html:35 +#: .\employee\templates\employee\send_mail.html:75 +#: .\recruitment\templates\offerletter\htmx\form.html:20 +#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:93 +msgid "Hint: Type '{' to get sender or receiver data" +msgstr "" + +#: .\base\templates\mail\htmx\form.html:53 #, fuzzy #| msgid "type-update" msgid "Save Duplicate" msgstr "Update" -#: .\base\templates\mail\htmx\form.html:15 -#: .\recruitment\templates\offerletter\htmx\form.html:16 -msgid "Body" -msgstr "" - -#: .\base\templates\mail\htmx\form.html:19 -#: .\recruitment\templates\offerletter\htmx\form.html:20 -#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:78 -msgid "Hint: Type '{' to get sender or receiver data" -msgstr "" - -#: .\base\templates\mail\view_templates.html:61 -#: .\recruitment\templates\offerletter\view_templates.html:61 +#: .\base\templates\mail\view_templates.html:80 #, fuzzy #| msgid "employee" msgid "View Template" @@ -11074,7 +11142,8 @@ msgstr "" #: .\leave\templates\leave\leave_assign_one_form.html:24 #: .\leave\templates\leave\user_request_form.html:41 #: .\onboarding\templates\onboarding\candidate_creation_form.html:9 -#: .\onboarding\templates\onboarding\task_form.html:38 +#: .\onboarding\templates\onboarding\task_form.html:46 +#: .\onboarding\templates\onboarding\task_update.html:45 #: .\recruitment\templates\candidate\application_form.html:318 msgid "Apply" msgstr "" @@ -11100,7 +11169,7 @@ msgstr "" msgid "Penalty amount" msgstr "" -#: .\base\templates\penalty\penalty_view.html:13 .\leave\models.py:573 +#: .\base\templates\penalty\penalty_view.html:13 .\leave\models.py:614 #: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:69 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_single_view.html:83 #: .\leave\templates\leave\leave_request\one_request_view.html:87 @@ -11112,70 +11181,6 @@ msgstr "" msgid "No penalties found" msgstr "" -#: .\base\templates\request_and_approve\feedback_answer.html:9 -msgid "Due Date" -msgstr "" - -#: .\base\templates\request_and_approve\feedback_answer.html:40 -#: .\base\templates\request_and_approve\feedback_answer.html:41 -#: .\employee\templates\performance-tab.html:34 -#: .\employee\templates\tabs\performance-tab.html:35 -#: .\pms\templates\feedback\feedback_list.html:158 -#: .\pms\templates\feedback\feedback_list.html:316 -#: .\pms\templates\feedback\feedback_overview.html:26 -msgid "Answer" -msgstr "" - -#: .\base\templates\request_and_approve\leave_allocation_approve.html:9 -#: .\leave\filters.py:374 .\leave\filters.py:395 .\leave\filters.py:433 -#: .\leave\models.py:554 -#: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:39 -#: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:193 -#: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:59 -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:45 -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:215 -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_list.html:26 -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_list.html:174 -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_single_view.html:73 -#: .\leave\templates\leave\leave_request\dashboard_leave_requests.html:15 -#: .\leave\templates\leave\leave_request\group_by.html:76 -#: .\leave\templates\leave\leave_request\leave-requests.html:40 -#: .\leave\templates\leave\leave_request\leave_clashes.html:11 -#: .\leave\templates\leave\leave_request\leave_requests.html:92 -#: .\leave\templates\leave\leave_request_view.html:16 -#: .\leave\templates\leave\user_leave\group_by.html:75 -#: .\leave\templates\leave\user_leave\user_requests.html:69 -msgid "Requested Days" -msgstr "" - -#: .\base\templates\request_and_approve\leave_allocation_approve.html:37 -msgid "Do you want to Approve this leave allocation request?" -msgstr "" - -#: .\base\templates\request_and_approve\leave_request_approve.html:8 -#: .\employee\templates\payroll-tab.html:33 -#: .\pms\templates\feedback\feedback_creation.html:91 -#: .\pms\templates\okr\key_result\key_result_creation.html:93 -#: .\pms\templates\period\period_empty.html:28 -#: .\pms\templates\period\period_view.html:18 -msgid "Period" -msgstr "" - -#: .\base\templates\request_and_approve\leave_request_approve.html:28 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:325 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:333 -#: .\payroll\templates\payroll\payslip\individual_payslip.html:47 -#: .\payroll\templates\payroll\payslip\individual_pdf.html:97 -#: .\payroll\templates\payroll\payslip\payslip_pdf.html:244 -#: .\payroll\templates\payroll\payslip\test_pdf.html:244 -#: .\pms\templates\okr\objective_detailed_view_activity.html:103 -msgid "to" -msgstr "" - -#: .\base\templates\request_and_approve\leave_request_approve.html:35 -msgid "Do you want to Approve this leave request?" -msgstr "" - #: .\base\templates\request_and_approve\shift_request.html:9 #: .\base\templates\shift_request\htmx\allocation_requests.html:48 #: .\base\templates\shift_request\htmx\group_by.html:42 @@ -11322,7 +11327,7 @@ msgstr "Employee" msgid "Previous/Current Shift" msgstr "" -#: .\base\templates\shift_request\htmx\empty_request.html:12 +#: .\base\templates\shift_request\htmx\empty_request.html:6 msgid "There are currently no shift requests to consider." msgstr "" @@ -11360,17 +11365,16 @@ msgstr "" msgid "'s shift request" msgstr "My Leave Requests" -#: .\base\templates\shift_request\htmx\shift_request_create_form.html:4 +#: .\base\templates\shift_request\htmx\shift_request_detail.html:88 +msgid "Is permenent shift" +msgstr "" + #: .\base\templates\shift_request\shift_request.html:4 #, fuzzy #| msgid "recruitment" msgid "Create Shift Request" msgstr "Recruitment" -#: .\base\templates\shift_request\htmx\shift_request_detail.html:88 -msgid "Is permenent shift" -msgstr "" - #: .\base\templates\shift_request\shift_request_export.html:3 msgid "Export Shift Requests" msgstr "" @@ -11388,12 +11392,14 @@ msgstr "" #: .\onboarding\templates\onboarding\candidate_creation.html:70 #: .\onboarding\templates\onboarding\candidate_update.html:84 #: .\onboarding\templates\onboarding\employee_creation.html:121 -#: .\payroll\models\models.py:680 .\recruitment\models.py:417 +#: .\payroll\models\models.py:678 .\recruitment\models.py:418 #: .\recruitment\templates\candidate\application_form.html:227 #: .\recruitment\templates\candidate\export_filter.html:87 #: .\recruitment\templates\candidate\filters.html:47 #: .\recruitment\templates\candidate\individual.html:319 #: .\recruitment\templates\pipeline\filters.html:131 +#: .\report\templates\report\employee_report.html:66 +#: .\report\templates\report\recruitment_report.html:82 msgid "Gender" msgstr "" @@ -11429,7 +11435,7 @@ msgstr "Recruitment" msgid "Allocated Shift Requests" msgstr "Recruitment" -#: .\base\templates\work_type_request\htmx\empty_request.html:12 +#: .\base\templates\work_type_request\htmx\empty_request.html:6 msgid "There are currently no work type requests to consider." msgstr "" @@ -11524,11 +11530,11 @@ msgstr "" msgid "Employee Last Name" msgstr "" -#: .\base\translator.py:15 .\payroll\forms\component_forms.py:499 +#: .\base\translator.py:15 .\payroll\forms\component_forms.py:509 msgid "Bank Code #1" msgstr "" -#: .\base\translator.py:16 .\payroll\forms\component_forms.py:500 +#: .\base\translator.py:16 .\payroll\forms\component_forms.py:510 msgid "Bank Code #2" msgstr "" @@ -11666,7 +11672,7 @@ msgstr "" #: .\leave\filters.py:369 .\leave\filters.py:392 .\leave\filters.py:405 #: .\leave\filters.py:429 #: .\onboarding\templates\onboarding\candidates_view.html:169 -#: .\payroll\filters.py:363 .\payroll\filters.py:385 +#: .\payroll\filters.py:434 .\payroll\filters.py:456 msgid "Select" msgstr "" @@ -11750,7 +11756,7 @@ msgstr "" msgid "Pay frequency" msgstr "" -#: .\base\translator.py:82 .\payroll\models\models.py:92 +#: .\base\translator.py:82 .\payroll\models\models.py:90 #: .\payroll\models\tax_models.py:52 msgid "Filing status" msgstr "" @@ -11799,52 +11805,56 @@ msgstr "" msgid "Rotate every weekend" msgstr "" +#: .\base\translator.py:99 +msgid "Request description" +msgstr "" + #: .\base\translator.py:104 .\leave\filters.py:381 .\leave\filters.py:418 #: .\leave\filters.py:440 msgid "Employment Type" msgstr "" -#: .\base\translator.py:105 .\leave\models.py:70 +#: .\base\translator.py:105 .\leave\models.py:64 msgid "Jan" msgstr "" -#: .\base\translator.py:106 .\leave\models.py:71 +#: .\base\translator.py:106 .\leave\models.py:65 msgid "Feb" msgstr "" -#: .\base\translator.py:107 .\leave\models.py:72 +#: .\base\translator.py:107 .\leave\models.py:66 msgid "Mar" msgstr "" -#: .\base\translator.py:108 .\leave\models.py:73 +#: .\base\translator.py:108 .\leave\models.py:67 msgid "Apr" msgstr "" -#: .\base\translator.py:110 .\leave\models.py:75 +#: .\base\translator.py:110 .\leave\models.py:69 msgid "Jun" msgstr "" -#: .\base\translator.py:111 .\leave\models.py:76 +#: .\base\translator.py:111 .\leave\models.py:70 msgid "Jul" msgstr "" -#: .\base\translator.py:112 .\leave\models.py:77 +#: .\base\translator.py:112 .\leave\models.py:71 msgid "Aug" msgstr "" -#: .\base\translator.py:113 .\leave\models.py:78 +#: .\base\translator.py:113 .\leave\models.py:72 msgid "Sep" msgstr "" -#: .\base\translator.py:114 .\leave\models.py:79 +#: .\base\translator.py:114 .\leave\models.py:73 msgid "Oct" msgstr "" -#: .\base\translator.py:115 .\leave\models.py:80 +#: .\base\translator.py:115 .\leave\models.py:74 msgid "Nov" msgstr "" -#: .\base\translator.py:116 .\leave\models.py:81 +#: .\base\translator.py:116 .\leave\models.py:75 msgid "Dec" msgstr "" @@ -11852,11 +11862,11 @@ msgstr "" msgid "Additional info" msgstr "" -#: .\base\translator.py:118 .\recruitment\models.py:371 +#: .\base\translator.py:118 .\recruitment\models.py:372 msgid "Schedule date" msgstr "" -#: .\base\translator.py:120 +#: .\base\translator.py:120 .\project\cbv\dashboard.py:79 #: .\project\templates\dashboard\project_details.html:42 #: .\project\templates\project\new\project_kanban_view.html:91 msgid "End date" @@ -11889,7 +11899,7 @@ msgstr "" #: .\base\translator.py:127 #: .\project\templates\project\new\filter_project.html:31 -#: .\project\templates\task\new\filter_task.html:29 +#: .\project\templates\task\new\filter_task.html:30 msgid "End till" msgstr "" @@ -11901,7 +11911,7 @@ msgstr "" msgid "Employee last name" msgstr "" -#: .\base\translator.py:130 .\employee\models.py:350 +#: .\base\translator.py:130 .\employee\models.py:368 #: .\offboarding\templates\offboarding\resignation\filter.html:28 #: .\payroll\templates\payroll\loan\filter.html:31 #: .\payroll\templates\payroll\reimbursement\filter.html:27 @@ -12012,8 +12022,8 @@ msgstr "" msgid "In till" msgstr "" -#: .\base\translator.py:161 .\leave\models.py:364 -#: .\payroll\models\models.py:1714 +#: .\base\translator.py:161 .\leave\models.py:357 .\leave\models.py:1166 +#: .\payroll\models\models.py:1602 #: .\payroll\templates\payroll\reimbursement\reimbursement_list.html:434 #: .\payroll\templates\payroll\reimbursement\reimbursenent_individual.html:112 msgid "Leave type" @@ -12105,6 +12115,7 @@ msgid "Asset status" msgstr "" #: .\base\translator.py:183 .\recruitment\templates\recruitment\filters.html:22 +#: .\report\templates\report\recruitment_report.html:132 msgid "True" msgstr "" @@ -12762,853 +12773,929 @@ msgstr "Tasks" msgid "view-time-sheet" msgstr "Timesheet" -#: .\base\views.py:268 +#: .\base\translator.py:353 +msgid "backup" +msgstr "Settings" + +#: .\base\translator.py:354 +msgid "gdrive" +msgstr "Gdrive Backup" + +#: .\base\translator.py:355 +msgid "horilla-theme" +msgstr "Theme Customization" + +#: .\base\translator.py:356 +msgid "color-settings" +msgstr "Component Colors" + +#: .\base\translator.py:357 +msgid "report" +msgstr "Reports" + +#: .\base\translator.py:358 +msgid "recruitment-report" +msgstr "Recruitment Reports" + +#: .\base\translator.py:359 +msgid "employee-report" +msgstr "Employee Reports" + +#: .\base\translator.py:360 +msgid "attendance-report" +msgstr "Attendance Reports" + +#: .\base\translator.py:361 +msgid "leave-report" +msgstr "Leave Reports" + +#: .\base\translator.py:362 +msgid "payroll-report" +msgstr "Payroll Reports" + +#: .\base\translator.py:363 +msgid "asset-report" +msgstr "Asset Reports" + +#: .\base\translator.py:364 +msgid "pms-report" +msgstr "Performance Reports" + +#: .\base\views.py:273 #, fuzzy #| msgid "shift-request-view" msgid "Database loaded successfully." msgstr "Shift Requests" -#: .\base\views.py:270 +#: .\base\views.py:275 msgid "Database Authentication Failed" msgstr "" -#: .\base\views.py:293 +#: .\base\views.py:298 msgid "The password you entered is incorrect. Please try again." msgstr "" -#: .\base\views.py:578 +#: .\base\views.py:583 msgid "Access Denied: Your account is blocked." msgstr "" -#: .\base\views.py:580 +#: .\base\views.py:585 msgid "Invalid username or password." msgstr "" -#: .\base\views.py:587 +#: .\base\views.py:592 msgid "An employee related to this user's credentials does not exist." msgstr "" -#: .\base\views.py:594 +#: .\base\views.py:599 msgid "This user is archived. Please contact the manager for more information." msgstr "" -#: .\base\views.py:600 +#: .\base\views.py:605 #, fuzzy #| msgid "shift-request-view" msgid "Login successful." msgstr "Shift Requests" -#: .\base\views.py:647 .\base\views.py:693 +#: .\base\views.py:656 .\base\views.py:702 msgid "Primary mail server is not configured" msgstr "" -#: .\base\views.py:666 .\base\views.py:711 +#: .\base\views.py:675 .\base\views.py:720 msgid "Password reset link sent successfully" msgstr "" -#: .\base\views.py:672 +#: .\base\views.py:681 msgid "No user found with the username" msgstr "" -#: .\base\views.py:714 +#: .\base\views.py:723 msgid "No user with the given username" msgstr "" -#: .\base\views.py:786 +#: .\base\views.py:795 #, fuzzy #| msgid "shift-request-view" msgid "Username changed successfully" msgstr "Shift Requests" -#: .\base\views.py:963 +#: .\base\views.py:972 msgid "User group created." msgstr "" -#: .\base\views.py:1103 +#: .\base\views.py:1112 msgid "User group assigned." msgstr "" -#: .\base\views.py:1201 +#: .\base\views.py:1210 msgid "The {} has been deleted successfully." msgstr "" -#: .\base\views.py:1205 +#: .\base\views.py:1214 msgid "{} not found." msgstr "" -#: .\base\views.py:1419 +#: .\base\views.py:1428 msgid "Test mail from Horilla" msgstr "" -#: .\base\views.py:1476 +#: .\base\views.py:1485 msgid "Something went wrong :" msgstr "" -#: .\base\views.py:1479 .\onboarding\views.py:1619 +#: .\base\views.py:1488 .\onboarding\views.py:1624 msgid "Mail sent successfully" msgstr "" -#: .\base\views.py:1519 +#: .\base\views.py:1528 #, fuzzy #| msgid "onboarding" msgid "Can't Delete" msgstr "Onboarding" -#: .\base\views.py:1643 +#: .\base\views.py:1660 msgid "Company has been created successfully!" msgstr "" -#: .\base\views.py:1680 +#: .\base\views.py:1700 msgid "Company updated" msgstr "" -#: .\base\views.py:1701 +#: .\base\views.py:1721 msgid "Department has been created successfully!" msgstr "" -#: .\base\views.py:1743 +#: .\base\views.py:1763 msgid "Department updated." msgstr "" -#: .\base\views.py:1768 .\base\views.py:1789 +#: .\base\views.py:1788 .\base\views.py:1809 msgid "Job Position has been created successfully!" msgstr "" -#: .\base\views.py:1817 +#: .\base\views.py:1837 msgid "Job position updated." msgstr "" -#: .\base\views.py:1839 .\base\views.py:1846 +#: .\base\views.py:1859 .\base\views.py:1866 msgid "Job role has been created successfully!" msgstr "" -#: .\base\views.py:1895 +#: .\base\views.py:1915 msgid "Job role updated." msgstr "" -#: .\base\views.py:1924 +#: .\base\views.py:1944 msgid "Work Type has been created successfully!" msgstr "" -#: .\base\views.py:1966 +#: .\base\views.py:1986 msgid "Work type updated." msgstr "" -#: .\base\views.py:1989 +#: .\base\views.py:2009 msgid "Rotating work type created." msgstr "" -#: .\base\views.py:2029 +#: .\base\views.py:2049 msgid "Rotating work type updated." msgstr "" -#: .\base\views.py:2112 +#: .\base\views.py:2132 msgid "Rotating work type assigned." msgstr "" -#: .\base\views.py:2240 +#: .\base\views.py:2260 msgid "Rotating work type assign updated." msgstr "" -#: .\base\views.py:2324 .\base\views.py:2342 .\base\views.py:3169 -#: .\base\views.py:3186 .\biometric\views.py:583 .\employee\views.py:1950 -#: .\pms\views.py:2750 .\pms\views.py:2810 .\project\views.py:507 -#: .\project\views.py:920 .\recruitment\views\actions.py:275 -#: .\recruitment\views\actions.py:292 +#: .\base\views.py:2344 .\base\views.py:2362 .\base\views.py:3192 +#: .\base\views.py:3209 .\biometric\views.py:617 .\employee\views.py:1999 +#: .\pms\views.py:2819 .\pms\views.py:2879 .\project\views.py:1186 +#: .\recruitment\views\actions.py:284 .\recruitment\views\actions.py:301 msgid "un-archived" msgstr "" -#: .\base\views.py:2324 .\base\views.py:2342 .\base\views.py:3169 -#: .\base\views.py:3189 .\biometric\views.py:583 .\employee\views.py:1948 -#: .\pms\views.py:2753 .\pms\views.py:2813 .\project\views.py:505 -#: .\project\views.py:918 .\recruitment\views\actions.py:275 -#: .\recruitment\views\actions.py:295 +#: .\base\views.py:2344 .\base\views.py:2362 .\base\views.py:3192 +#: .\base\views.py:3212 .\biometric\views.py:617 .\employee\views.py:1997 +#: .\pms\views.py:2822 .\pms\views.py:2882 .\project\views.py:1184 +#: .\recruitment\views\actions.py:284 .\recruitment\views\actions.py:304 msgid "archived" msgstr "" -#: .\base\views.py:2326 +#: .\base\views.py:2346 #, fuzzy #| msgid "rotating-work-type-assign" msgid "Rotating work type assign is {}" msgstr "Rotating Work Type Assigns" -#: .\base\views.py:2330 .\base\views.py:2416 +#: .\base\views.py:2350 .\base\views.py:2436 msgid "Rotating work type assign not found." msgstr "" -#: .\base\views.py:2354 +#: .\base\views.py:2374 #, python-brace-format msgid "Rotating work type for {employee_id} already exists" msgstr "" -#: .\base\views.py:2366 +#: .\base\views.py:2386 #, fuzzy, python-brace-format #| msgid "rotating-work-type-assign" msgid "Rotating work type for {count} employees is {message}" msgstr "Rotating Work Type Assigns" -#: .\base\views.py:2388 +#: .\base\views.py:2408 #, python-brace-format msgid "{employee} deleted." msgstr "" -#: .\base\views.py:2391 +#: .\base\views.py:2411 #, python-brace-format msgid "{rwork_type_assign} not found." msgstr "" -#: .\base\views.py:2395 +#: .\base\views.py:2415 #, python-brace-format msgid "You cannot delete {rwork_type_assign}" msgstr "" -#: .\base\views.py:2414 +#: .\base\views.py:2434 msgid "Rotating work type assign deleted." msgstr "" -#: .\base\views.py:2418 +#: .\base\views.py:2438 msgid "You cannot delete this rotating work type." msgstr "" -#: .\base\views.py:2455 +#: .\base\views.py:2475 msgid "Employee type created." msgstr "" -#: .\base\views.py:2481 +#: .\base\views.py:2501 msgid "Employee type updated." msgstr "" -#: .\base\views.py:2524 +#: .\base\views.py:2544 msgid "Employee Shift has been created successfully!" msgstr "" -#: .\base\views.py:2550 +#: .\base\views.py:2570 msgid "Shift updated" msgstr "" -#: .\base\views.py:2591 +#: .\base\views.py:2611 msgid "Employee Shift Schedule has been created successfully!" msgstr "" -#: .\base\views.py:2618 +#: .\base\views.py:2638 msgid "Shift schedule created." msgstr "" -#: .\base\views.py:2655 +#: .\base\views.py:2675 msgid "Rotating shift created." msgstr "" -#: .\base\views.py:2683 +#: .\base\views.py:2703 msgid "Rotating shift updated." msgstr "" -#: .\base\views.py:2772 +#: .\base\views.py:2792 msgid "Rotating shift assigned." msgstr "" -#: .\base\views.py:2895 +#: .\base\views.py:2915 msgid "Rotating shift assign updated." msgstr "" -#: .\base\views.py:3170 +#: .\base\views.py:3193 #, fuzzy #| msgid "rotating-shift-assign" msgid "Rotating shift assign is {}" msgstr "Rotating Shift Assigns" -#: .\base\views.py:3172 .\base\views.py:3269 +#: .\base\views.py:3195 .\base\views.py:3292 msgid "Rotating shift assign not found." msgstr "" -#: .\base\views.py:3208 +#: .\base\views.py:3231 #, python-brace-format msgid "Rotating shift for {employee} is {message}" msgstr "" -#: .\base\views.py:3215 +#: .\base\views.py:3238 #, python-brace-format msgid "Rotating shift for {employee} is already exists" msgstr "" -#: .\base\views.py:3236 +#: .\base\views.py:3259 #, python-brace-format msgid "{employee} assign deleted." msgstr "" -#: .\base\views.py:3241 +#: .\base\views.py:3264 #, python-brace-format msgid "{rshift_assign} not found." msgstr "" -#: .\base\views.py:3245 +#: .\base\views.py:3268 #, python-brace-format msgid "You cannot delete {rshift_assign}" msgstr "" -#: .\base\views.py:3266 +#: .\base\views.py:3289 msgid "Rotating shift assign deleted." msgstr "" -#: .\base\views.py:3271 +#: .\base\views.py:3294 msgid "You cannot delete this rotating shift assign." msgstr "" -#: .\base\views.py:3423 +#: .\base\views.py:3447 msgid "Employee permission assigned." msgstr "" -#: .\base\views.py:3648 +#: .\base\views.py:3672 msgid "Work type request added." msgstr "" -#: .\base\views.py:3701 .\base\views.py:3787 .\base\views.py:3929 -#: .\base\views.py:4015 +#: .\base\views.py:3725 .\base\views.py:3811 .\base\views.py:3953 +#: .\base\views.py:4039 msgid "Work type request not found." msgstr "" -#: .\base\views.py:3710 .\base\views.py:3795 .\base\views.py:4564 -#: .\base\views.py:4737 .\base\views.py:6147 .\base\views.py:6207 -#: .\base\views.py:6229 .\base\views.py:6369 .\leave\views.py:3099 -#: .\leave\views.py:4019 .\leave\views.py:4181 .\leave\views.py:4234 -#: .\leave\views.py:4256 .\leave\views.py:4375 .\leave\views.py:4400 +#: .\base\views.py:3734 .\base\views.py:3819 .\base\views.py:4588 +#: .\base\views.py:4761 .\base\views.py:6177 .\base\views.py:6237 +#: .\base\views.py:6259 .\base\views.py:6399 .\leave\views.py:3217 +#: .\leave\views.py:4137 .\leave\views.py:4299 .\leave\views.py:4352 +#: .\leave\views.py:4374 .\leave\views.py:4493 .\leave\views.py:4518 msgid "You don't have permission" msgstr "" -#: .\base\views.py:3723 +#: .\base\views.py:3747 msgid "Work type request has been rejected." msgstr "" -#: .\base\views.py:3762 +#: .\base\views.py:3786 msgid "Work type request has been canceled." msgstr "" -#: .\base\views.py:3804 .\base\views.py:3849 +#: .\base\views.py:3828 .\base\views.py:3873 msgid "Work type request has been approved." msgstr "" -#: .\base\views.py:3819 +#: .\base\views.py:3843 msgid "An approved work type request already exists during this time period." msgstr "" -#: .\base\views.py:3893 .\base\views.py:4466 .\base\views.py:4535 +#: .\base\views.py:3917 .\base\views.py:4490 .\base\views.py:4559 msgid "Request Updated Successfully" msgstr "" -#: .\base\views.py:3914 .\base\views.py:4002 +#: .\base\views.py:3938 .\base\views.py:4026 msgid "Work type request deleted." msgstr "" -#: .\base\views.py:3931 +#: .\base\views.py:3955 msgid "You cannot delete this work type request." msgstr "" -#: .\base\views.py:4020 +#: .\base\views.py:4044 #, python-brace-format msgid "You cannot delete {employee} work type request for the date {date}." msgstr "" -#: .\base\views.py:4080 +#: .\base\views.py:4104 #, fuzzy #| msgid "shift-request-view" msgid "Shift request added" msgstr "Shift Requests" -#: .\base\views.py:4170 +#: .\base\views.py:4194 msgid "Request Added" msgstr "" -#: .\base\views.py:4472 +#: .\base\views.py:4496 #, fuzzy #| msgid "user-request-view" msgid "Can't edit approved shift request" msgstr "My Leave Requests" -#: .\base\views.py:4556 .\base\views.py:4727 .\base\views.py:4898 -#: .\base\views.py:4939 +#: .\base\views.py:4580 .\base\views.py:4751 .\base\views.py:4922 +#: .\base\views.py:4963 msgid "Shift request not found." msgstr "" -#: .\base\views.py:4591 +#: .\base\views.py:4615 #, fuzzy #| msgid "shift-request-view" msgid "Shift request rejected" msgstr "Shift Requests" -#: .\base\views.py:4640 .\base\views.py:4688 +#: .\base\views.py:4664 .\base\views.py:4712 msgid "Shift request canceled" msgstr "" -#: .\base\views.py:4764 +#: .\base\views.py:4788 msgid "Shift has been approved." msgstr "" -#: .\base\views.py:4800 +#: .\base\views.py:4824 msgid "You are available for shift reallocation." msgstr "" -#: .\base\views.py:4855 +#: .\base\views.py:4879 msgid "Shifts have been approved." msgstr "" -#: .\base\views.py:4900 +#: .\base\views.py:4924 msgid "You cannot delete this shift request." msgstr "" -#: .\base\views.py:4926 +#: .\base\views.py:4950 msgid "Shift request deleted." msgstr "" -#: .\base\views.py:4944 +#: .\base\views.py:4968 #, python-brace-format msgid "You cannot delete {employee} shift request for the date {date}." msgstr "" -#: .\base\views.py:4974 +#: .\base\views.py:4998 msgid "Unread notifications removed." msgstr "" -#: .\base\views.py:4990 +#: .\base\views.py:5014 msgid "All notifications removed." msgstr "" -#: .\base\views.py:5007 +#: .\base\views.py:5031 msgid "Notification deleted." msgstr "" -#: .\base\views.py:5044 +#: .\base\views.py:5068 msgid "Notifications marked as read" msgstr "" -#: .\base\views.py:5130 .\base\views.py:5362 .\employee\views.py:3472 +#: .\base\views.py:5154 .\base\views.py:5386 .\employee\views.py:3433 #, fuzzy #| msgid "rotating-shift-update" msgid "Settings updated." msgstr "Update" -#: .\base\views.py:5168 +#: .\base\views.py:5192 msgid "Please select a valid date format." msgstr "" -#: .\base\views.py:5179 .\base\views.py:5184 .\base\views.py:5207 -#: .\base\views.py:5272 .\base\views.py:5277 +#: .\base\views.py:5203 .\base\views.py:5208 .\base\views.py:5231 +#: .\base\views.py:5296 .\base\views.py:5301 msgid "Date format saved successfully." msgstr "" -#: .\base\views.py:5201 .\base\views.py:5294 +#: .\base\views.py:5225 .\base\views.py:5318 msgid "Please update the company field for the user." msgstr "" -#: .\base\views.py:5211 +#: .\base\views.py:5235 msgid "Date format cannot saved. You are not in the company." msgstr "" -#: .\base\views.py:5261 +#: .\base\views.py:5285 msgid "Please select a valid time format." msgstr "" -#: .\base\views.py:5300 +#: .\base\views.py:5324 msgid "Time format saved successfully." msgstr "" -#: .\base\views.py:5304 +#: .\base\views.py:5328 msgid "Time format cannot saved. You are not in the company." msgstr "" -#: .\base\views.py:5644 .\base\views.py:5691 .\employee\views.py:3601 +#: .\base\views.py:5437 +msgid "Profile edit accessibility feature has been removed." +msgstr "" + +#: .\base\views.py:5674 .\base\views.py:5721 .\employee\views.py:3565 msgid "Tag has been created successfully!" msgstr "" -#: .\base\views.py:5669 .\base\views.py:5716 .\employee\views.py:3625 +#: .\base\views.py:5699 .\base\views.py:5746 .\employee\views.py:3589 msgid "Tag has been updated successfully!" msgstr "" -#: .\base\views.py:5884 +#: .\base\views.py:5914 #, fuzzy #| msgid "multiple-approval-condition" msgid "Multiple approval condition created successfully" msgstr "Multiple Approval Condition" -#: .\base\views.py:5904 +#: .\base\views.py:5934 msgid "Approval Manager {}" msgstr "" -#: .\base\views.py:5928 +#: .\base\views.py:5958 #, fuzzy #| msgid "multiple-approval-condition" msgid "Multiple approval condition updated successfully" msgstr "Multiple Approval Condition" -#: .\base\views.py:5975 +#: .\base\views.py:6005 #, fuzzy #| msgid "multiple-approval-condition" msgid "Multiple approval condition deleted successfully" msgstr "Multiple Approval Condition" -#: .\base\views.py:6383 .\base\views.py:6392 +#: .\base\views.py:6413 .\base\views.py:6422 msgid "Default pagination updated." msgstr "" -#: .\base\views.py:6425 +#: .\base\views.py:6455 msgid "Action has been created successfully!" msgstr "" -#: .\base\views.py:6468 +#: .\base\views.py:6498 msgid "Action has been updated successfully!" msgstr "" -#: .\base\views.py:6488 +#: .\base\views.py:6518 msgid "" "This action type is in use in disciplinary actions and cannot be deleted." msgstr "" -#: .\base\views.py:6495 +#: .\base\views.py:6525 msgid "Action has been deleted successfully!" msgstr "" -#: .\base\views.py:6638 .\templates\dashboard_tile_container.html:30 +#: .\base\views.py:6668 .\templates\dashboard_tile_container.html:30 #, fuzzy #| msgid "employee" msgid "Online Employees" msgstr "Employee" -#: .\base\views.py:6639 +#: .\base\views.py:6669 msgid "Overall Leave Chart" msgstr "" -#: .\base\views.py:6640 +#: .\base\views.py:6670 #: .\onboarding\templates\onboarding\candidates_view.html:23 #: .\recruitment\templates\dashboard\dashboard.html:74 #: .\templates\dashboard_tile_container.html:75 msgid "Hired Candidates" msgstr "" -#: .\base\views.py:6641 +#: .\base\views.py:6671 #, fuzzy #| msgid "onboarding" msgid "Onboarding Candidates" msgstr "Onboarding" -#: .\base\views.py:6642 .\templates\dashboard_tile_container.html:111 +#: .\base\views.py:6672 .\templates\dashboard_tile_container.html:111 #, fuzzy #| msgid "recruitment" msgid "Recruitment Analytics" msgstr "Recruitment" -#: .\base\views.py:6643 +#: .\base\views.py:6673 #, fuzzy #| msgid "attendance-view" msgid "Attendance analytics" msgstr "Attendances" -#: .\base\views.py:6645 .\templates\dashboard_tile_container.html:189 +#: .\base\views.py:6675 .\templates\dashboard_tile_container.html:189 msgid "Employees Chart" msgstr "" -#: .\base\views.py:6646 .\payroll\templates\payroll\dashboard.html:212 +#: .\base\views.py:6676 .\payroll\templates\payroll\dashboard.html:212 #: .\templates\dashboard_tile_container.html:208 msgid "Department Chart" msgstr "" -#: .\base\views.py:6647 .\templates\dashboard_tile_container.html:227 +#: .\base\views.py:6677 .\templates\dashboard_tile_container.html:227 msgid "Gender Chart" msgstr "" -#: .\base\views.py:6648 .\templates\dashboard_tile_container.html:245 +#: .\base\views.py:6678 .\templates\dashboard_tile_container.html:245 msgid "Objective Status" msgstr "" -#: .\base\views.py:6649 .\templates\dashboard_tile_container.html:263 +#: .\base\views.py:6679 .\templates\dashboard_tile_container.html:263 msgid "Key Result Status" msgstr "" -#: .\base\views.py:6650 .\templates\dashboard_tile_container.html:282 +#: .\base\views.py:6680 .\templates\dashboard_tile_container.html:282 msgid "Feedback Status" msgstr "" -#: .\base\views.py:6651 +#: .\base\views.py:6681 #, fuzzy #| msgid "shift-request-view" msgid "Shift Request to Approve" msgstr "Shift Requests" -#: .\base\views.py:6652 +#: .\base\views.py:6682 #, fuzzy #| msgid "shift-request-view" msgid "Work Type Request to Approve" msgstr "Shift Requests" -#: .\base\views.py:6653 +#: .\base\views.py:6683 #, fuzzy #| msgid "shift-request-view" msgid "Overtime to Approve" msgstr "Shift Requests" -#: .\base\views.py:6654 +#: .\base\views.py:6684 #, fuzzy #| msgid "attendance-view" msgid "Attendance to Validate" msgstr "Attendances" -#: .\base\views.py:6655 +#: .\base\views.py:6685 #, fuzzy #| msgid "shift-request-view" msgid "Leave Request to Approve" msgstr "Shift Requests" -#: .\base\views.py:6656 +#: .\base\views.py:6686 #, fuzzy #| msgid "leave-allocation-request-view" msgid "Leave Allocation to Approve" msgstr "Leave Allocation Requests" -#: .\base\views.py:6657 +#: .\base\views.py:6687 #, fuzzy #| msgid "feedback-answer-get" msgid "Feedbacks to Answer" msgstr "Answer" -#: .\base\views.py:6658 +#: .\base\views.py:6688 #, fuzzy #| msgid "shift-request-view" msgid "Asset Request to Approve" msgstr "Shift Requests" -#: .\base\views.py:6703 +#: .\base\views.py:6733 msgid "The biometric attendance feature has been activated successfully." msgstr "" -#: .\base\views.py:6710 +#: .\base\views.py:6740 msgid "The biometric attendance feature has been deactivated successfully." msgstr "" -#: .\base\views.py:6805 +#: .\base\views.py:6834 msgid "New holiday created successfully.." msgstr "" -#: .\base\views.py:6868 +#: .\base\views.py:6897 msgid "Invalid start date format." msgstr "" -#: .\base\views.py:6875 +#: .\base\views.py:6904 msgid "Invalid end date format." msgstr "" -#: .\base\views.py:6881 +#: .\base\views.py:6910 msgid "Recurring must be yes or no." msgstr "" -#: .\base\views.py:6936 +#: .\base\views.py:6965 msgid "Invalid start date format {}" msgstr "" -#: .\base\views.py:6944 +#: .\base\views.py:6973 msgid "Invalid end date format {}" msgstr "" -#: .\base\views.py:6954 +#: .\base\views.py:6983 msgid "Recurring must be {} or {}" msgstr "" -#: .\base\views.py:7012 +#: .\base\views.py:7041 msgid "The file you attempted to import is unsupported" msgstr "" -#: .\base\views.py:7131 +#: .\base\views.py:7160 msgid "Holidays updated successfully.." msgstr "" -#: .\base\views.py:7156 +#: .\base\views.py:7185 msgid "Holidays deleted successfully.." msgstr "" -#: .\base\views.py:7158 +#: .\base\views.py:7187 #, fuzzy #| msgid "attendance-view" msgid "Holidays not found." msgstr "Attendances" -#: .\base\views.py:7160 .\base\views.py:7355 .\leave\views.py:838 -#: .\leave\views.py:1919 .\leave\views.py:2301 .\pms\views.py:1975 -#: .\pms\views.py:2316 .\pms\views.py:2464 .\pms\views.py:2565 -#: .\pms\views.py:3083 .\recruitment\views\views.py:2238 -#: .\recruitment\views\views.py:2440 .\recruitment\views\views.py:2521 +#: .\base\views.py:7189 .\base\views.py:7384 .\leave\views.py:975 +#: .\leave\views.py:2087 .\leave\views.py:2455 .\pms\views.py:2044 +#: .\pms\views.py:2525 .\pms\views.py:2626 .\pms\views.py:3151 +#: .\recruitment\views\views.py:2271 .\recruitment\views\views.py:2475 +#: .\recruitment\views\views.py:2556 msgid "Related entries exists" msgstr "" -#: .\base\views.py:7176 +#: .\base\views.py:7205 msgid "{} Holidays have been successfully deleted." msgstr "" -#: .\base\views.py:7235 +#: .\base\views.py:7264 msgid "New company leave created successfully.." msgstr "" -#: .\base\views.py:7326 +#: .\base\views.py:7355 msgid "Company leave updated successfully.." msgstr "" -#: .\base\views.py:7351 +#: .\base\views.py:7380 msgid "Company leave deleted successfully.." msgstr "" -#: .\base\views.py:7353 +#: .\base\views.py:7382 msgid "Company leave not found." msgstr "" -#: .\biometric\forms.py:46 -msgid "Device Name" -msgstr "" - -#: .\biometric\forms.py:47 -msgid "IP Address" -msgstr "" - -#: .\biometric\forms.py:48 -msgid "TCP COMM.Port" -msgstr "" - -#: .\biometric\forms.py:49 -#, fuzzy -#| msgid "user-request-view" -msgid "Header Request ID" -msgstr "My Leave Requests" - -#: .\biometric\forms.py:84 +#: .\biometric\forms.py:86 msgid "Enter the duration in the format HH:MM" msgstr "" -#: .\biometric\forms.py:154 +#: .\biometric\forms.py:163 #: .\payroll\templates\payroll\payslip\individual_payslip_summery.html:24 msgid "Employee Name" msgstr "" -#: .\biometric\forms.py:155 +#: .\biometric\forms.py:164 msgid "15 characters max." msgstr "" -#: .\biometric\forms.py:221 +#: .\biometric\forms.py:234 #, fuzzy #| msgid "recruitment" msgid "Card Number" msgstr "Recruitment" -#: .\biometric\forms.py:222 .\biometric\models.py:225 +#: .\biometric\forms.py:235 .\biometric\models.py:243 #: .\biometric\templates\biometric\list_employees_biometric.html:29 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:18 #: .\biometric\templates\biometric_users\dahua\list_dahua_employees.html:14 msgid "User ID" msgstr "" -#: .\biometric\forms.py:226 +#: .\biometric\forms.py:239 msgid "Card Status" msgstr "" -#: .\biometric\forms.py:230 +#: .\biometric\forms.py:243 #, fuzzy #| msgid "create-allowance" msgid "Card Type" msgstr "Creation" -#: .\biometric\forms.py:240 +#: .\biometric\forms.py:253 msgid "Valid Date Start" msgstr "" -#: .\biometric\forms.py:247 +#: .\biometric\forms.py:260 msgid "Valid Date End" msgstr "" -#: .\biometric\forms.py:283 +#: .\biometric\forms.py:299 #, fuzzy #| msgid "employee" msgid "This Card Number already exists." msgstr "Employee" -#: .\biometric\forms.py:288 +#: .\biometric\forms.py:305 #, fuzzy #| msgid "employee" msgid "This User ID already exists." msgstr "Employee" -#: .\biometric\models.py:30 +#: .\biometric\forms.py:357 +#, python-format +msgid "This biometric %(label)s is already mapped with an employee" +msgstr "" + +#: .\biometric\models.py:32 msgid "Both hour and minute cannot be zero" msgstr "" -#: .\biometric\models.py:47 -msgid "ZKTeco Biometric" -msgstr "" - -#: .\biometric\models.py:48 -msgid "Anviz Biometric" -msgstr "" - #: .\biometric\models.py:49 -msgid "Matrix COSEC Biometric" +msgid "ZKTeco / eSSL Biometric" msgstr "" #: .\biometric\models.py:50 +msgid "Anviz Biometric" +msgstr "" + +#: .\biometric\models.py:51 +msgid "Matrix COSEC Biometric" +msgstr "" + +#: .\biometric\models.py:52 msgid "Dahua Biometric" msgstr "" -#: .\biometric\models.py:100 -msgid "The Machine IP is required for the selected biometric device." +#: .\biometric\models.py:53 +msgid "e-Time Office" msgstr "" -#: .\biometric\models.py:104 -msgid "The Port Number is required for the selected biometric device." +#: .\biometric\models.py:58 +#: .\biometric\templates\biometric\biometric_device_filter.html:9 +#, fuzzy +#| msgid "type-update" +msgid "Device Type" +msgstr "Update" + +#: .\biometric\models.py:61 +#: .\biometric\templates\biometric\list_biometric_devices.html:12 +msgid "Machine IP" msgstr "" -#: .\biometric\models.py:110 -msgid "The password is required for ZKTeco Biometric Device." +#: .\biometric\models.py:63 +msgid "Port No" +msgstr "" + +#: .\biometric\models.py:74 +#, fuzzy +#| msgid "request-view" +msgid "Request ID" +msgstr "Leave Requests" + +#: .\biometric\models.py:77 +msgid "API Url" +msgstr "" + +#: .\biometric\models.py:80 +msgid "API Key" +msgstr "" + +#: .\biometric\models.py:83 +msgid "API Secret" msgstr "" #: .\biometric\models.py:117 -msgid "" -"The password must be an integer (numeric) value for ZKTeco Biometric Device." +msgid "The Machine IP is required for the selected biometric device." msgstr "" -#: .\biometric\models.py:123 -msgid "The Username is required for the selected biometric device." +#: .\biometric\models.py:121 +msgid "The Port Number is required for the selected biometric device." msgstr "" #: .\biometric\models.py:127 -msgid "The Password is required for the selected biometric device." +msgid "The password is required for ZKTeco Biometric Device." msgstr "" -#: .\biometric\models.py:133 -msgid "The Request ID is required for the Anviz Biometric Device." -msgstr "" - -#: .\biometric\models.py:137 -msgid "The API URL is required for Anviz Biometric Device." +#: .\biometric\models.py:134 +msgid "" +"The password must be an integer (numeric) value " +"for ZKTeco Biometric Device." msgstr "" #: .\biometric\models.py:141 -msgid "The API Key is required for Anviz Biometric Device." +msgid "The Username is required for the selected biometric device." msgstr "" #: .\biometric\models.py:145 +msgid "The Password is required for the selected biometric device." +msgstr "" + +#: .\biometric\models.py:151 +msgid "The Request ID is required for the Anviz Biometric Device." +msgstr "" + +#: .\biometric\models.py:155 +msgid "The API URL is required for Anviz Biometric Device." +msgstr "" + +#: .\biometric\models.py:159 +msgid "The API Key is required for Anviz Biometric Device." +msgstr "" + +#: .\biometric\models.py:163 msgid "The API Secret is required for Anviz Biometric Device." msgstr "" -#: .\biometric\models.py:178 +#: .\biometric\models.py:196 msgid "" "Authentication failed. Please check your API " "Url , API Key and API Secret." msgstr "" -#: .\biometric\models.py:193 +#: .\biometric\models.py:211 msgid "" "Authentication failed. Please check your API Url , API " "Key and API Secret." msgstr "" -#: .\biometric\models.py:206 +#: .\biometric\models.py:224 #, fuzzy #| msgid "attendance" msgid "Biometric Device" msgstr "Attendance" -#: .\biometric\models.py:207 +#: .\biometric\models.py:225 #: .\biometric\templates\biometric\biometric_device_filter.html:4 #: .\biometric\templates\biometric\nav_biometric_devices.html:5 #, fuzzy @@ -13616,59 +13703,42 @@ msgstr "Attendance" msgid "Biometric Devices" msgstr "Attendance" -#: .\biometric\models.py:243 +#: .\biometric\models.py:261 msgid "Employee in Biometric Device" msgstr "" -#: .\biometric\models.py:244 +#: .\biometric\models.py:262 msgid "Employees in Biometric Device" msgstr "" #: .\biometric\templates\biometric\add_biometric_device.html:8 -#, fuzzy -#| msgid "attendance" -msgid "Add Biometric Device" -msgstr "Attendance" - -#: .\biometric\templates\biometric\add_biometric_device.html:25 -#: .\biometric\templates\biometric\biometric_device_filter.html:9 -#: .\biometric\templates\biometric\edit_biometric_device.html:24 -#, fuzzy -#| msgid "type-update" -msgid "Device Type" -msgstr "Update" - -#: .\biometric\templates\biometric\add_biometric_device.html:29 -#: .\biometric\templates\biometric\edit_biometric_device.html:28 -#: .\biometric\templates\biometric\list_biometric_devices.html:12 -msgid "Machine IP" -msgstr "" - -#: .\biometric\templates\biometric\add_biometric_device.html:34 -#: .\biometric\templates\biometric\edit_biometric_device.html:33 -msgid "Port No" -msgstr "" - -#: .\biometric\templates\biometric\add_biometric_device.html:60 -#: .\biometric\templates\biometric\edit_biometric_device.html:59 -#, fuzzy -#| msgid "request-view" -msgid "Request ID" -msgstr "Leave Requests" - -#: .\biometric\templates\biometric\add_biometric_device.html:65 -#: .\biometric\templates\biometric\edit_biometric_device.html:64 -msgid "API Url" -msgstr "" - -#: .\biometric\templates\biometric\add_biometric_device.html:70 -#: .\biometric\templates\biometric\edit_biometric_device.html:69 -msgid "API Key" -msgstr "" - -#: .\biometric\templates\biometric\add_biometric_device.html:75 -#: .\biometric\templates\biometric\edit_biometric_device.html:74 -msgid "API Secret" +#: .\biometric\templates\biometric\add_biometric_user.html:21 +#: .\biometric\templates\biometric\nav_biometric_devices.html:47 +#: .\biometric\templates\biometric\nav_employees_biometric.html:85 +#: .\biometric\templates\biometric\nav_employees_cosec_biometric.html:82 +#: .\biometric\templates\biometric_users\dahua\add_dahua_user.html:22 +#: .\biometric\templates\biometric_users\dahua\nav_dahua_employees.html:53 +#: .\employee\templates\tabs\add_note.html:10 +#: .\employee\templates\tabs\forms\add_points.html:47 +#: .\employee\templates\tabs\forms\redeem_points_form.html:36 +#: .\employee\templates\tabs\note_tab.html:66 +#: .\employee\templates\tabs\note_tab.html:151 +#: .\employee\templates\tabs\shift-tab.html:82 +#: .\horilla_automations\templates\horilla_automations\load_automation.html:70 +#: .\horilla_widgets\templates\horilla_widgets\horilla_multiselect_widget.html:210 +#: .\offboarding\templates\offboarding\note\view_notes.html:32 +#: .\payroll\templates\payroll\bonus\form.html:60 +#: .\pms\templates\feedback\feedback_list.html:73 +#: .\recruitment\templates\candidate\candidate_interview_view.html:70 +#: .\recruitment\templates\candidate\candidate_self_tracking.html:480 +#: .\recruitment\templates\candidate\individual_view_note.html:24 +#: .\recruitment\templates\pipeline\pipeline_components\add_note.html:10 +#: .\recruitment\templates\pipeline\pipeline_components\create_note.html:11 +#: .\recruitment\templates\pipeline\pipeline_components\view_note.html:51 +#: .\recruitment\templates\recruitment\recruitment_duplicate_form.html:92 +#: .\recruitment\templates\recruitment\recruitment_form.html:208 +#: .\recruitment\templates\survey\survey_empty_view.html:63 +msgid "Add" msgstr "" #: .\biometric\templates\biometric\add_biometric_user.html:4 @@ -13695,54 +13765,53 @@ msgstr "" msgid "Deactivate" msgstr "" -#: .\biometric\templates\biometric\card_biometric_devices.html:66 -msgid "Fetch" +#: .\biometric\templates\biometric\card_biometric_devices.html:71 +msgid "Fetch Logs" msgstr "" #: .\biometric\templates\biometric\card_biometric_devices.html:77 -msgid "Do you want to archive this device?" +msgid "Unlock" msgstr "" #: .\biometric\templates\biometric\card_biometric_devices.html:83 +msgid "Do you want to archive this device?" +msgstr "" + +#: .\biometric\templates\biometric\card_biometric_devices.html:89 msgid "Do you want to un-archive this device?" msgstr "" -#: .\biometric\templates\biometric\card_biometric_devices.html:91 +#: .\biometric\templates\biometric\card_biometric_devices.html:97 msgid "Do you want to delete this device?" msgstr "" -#: .\biometric\templates\biometric\card_biometric_devices.html:108 +#: .\biometric\templates\biometric\card_biometric_devices.html:114 #: .\biometric\templates\biometric\list_biometric_devices.html:50 -#: .\recruitment\models.py:279 +#: .\recruitment\models.py:280 #: .\recruitment\templates\dashboard\dashboard.html:284 #: .\recruitment\templates\stage\stage_group.html:66 msgid "Test" msgstr "" -#: .\biometric\templates\biometric\card_biometric_devices.html:111 +#: .\biometric\templates\biometric\card_biometric_devices.html:117 msgid "Do you want to unschedule the device attendance fetching?" msgstr "" -#: .\biometric\templates\biometric\card_biometric_devices.html:113 +#: .\biometric\templates\biometric\card_biometric_devices.html:119 msgid "Unschedule" msgstr "" -#: .\biometric\templates\biometric\card_biometric_devices.html:118 +#: .\biometric\templates\biometric\card_biometric_devices.html:124 #: .\biometric\templates\biometric\list_biometric_devices.html:66 #: .\biometric\templates\biometric\scheduler_device_form.html:21 msgid "Schedule" msgstr "" -#: .\biometric\templates\biometric\card_biometric_devices.html:195 +#: .\biometric\templates\biometric\card_biometric_devices.html:198 +#: .\biometric\templates\biometric\empty_view_biometric.html:6 msgid "No biometric devices found." msgstr "" -#: .\biometric\templates\biometric\edit_biometric_device.html:8 -#, fuzzy -#| msgid "attendance" -msgid "Edit Biometric Devices" -msgstr "Attendance" - #: .\biometric\templates\biometric\edit_cosec_user.html:4 msgid "Edit COSEC User" msgstr "" @@ -13767,10 +13836,6 @@ msgstr "" msgid "Validity End Date" msgstr "" -#: .\biometric\templates\biometric\empty_view_biometric.html:8 -msgid "No biometric devices for attendance have been added yet." -msgstr "" - #: .\biometric\templates\biometric\list_biometric_devices.html:11 msgid "Device" msgstr "" @@ -13781,16 +13846,16 @@ msgstr "" #: .\biometric\templates\biometric\list_biometric_devices.html:38 #: .\horilla_views\templates\generic\group_by.html:101 -#: .\horilla_views\templates\generic\group_by_table.html:114 +#: .\horilla_views\templates\generic\group_by_table.html:118 #: .\horilla_views\templates\generic\horilla_list.html:111 #: .\horilla_views\templates\generic\horilla_list_table.html:102 -#: .\horillavenv\Lib\site-packages\click\core.py:1396 +#: .\horillavenv\Lib\site-packages\click\core.py:1387 #: .\leave\templates\leave\leave_request\leave-requests.html:43 #: .\onboarding\templates\onboarding\onboarding_table.html:124 #: .\pms\templates\okr\emp_objective\emp_objective_dashboard_view.html:96 #: .\pms\templates\okr\emp_objective\emp_objective_list.html:114 -#: .\recruitment\forms.py:740 .\recruitment\forms.py:755 -#: .\recruitment\forms.py:815 +#: .\recruitment\forms.py:753 .\recruitment\forms.py:768 +#: .\recruitment\forms.py:828 #: .\recruitment\templates\candidate\candidate_card.html:98 #: .\recruitment\templates\candidate\candidate_list.html:104 #: .\recruitment\templates\candidate\group_by.html:90 @@ -13802,6 +13867,7 @@ msgstr "" #: .\biometric\templates\biometric\list_employees_biometric.html:30 #: .\biometric\templates\biometric_users\dahua\list_dahua_employees.html:13 +#: .\biometric\templates\biometric_users\etimeoffice\list_etimeoffice_employees.html:13 #: .\templates\initialize_database\horilla_user_signup.html:70 msgid "Badge ID" msgstr "" @@ -13813,28 +13879,31 @@ msgstr "" #: .\biometric\templates\biometric\list_employees_biometric.html:32 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:35 #: .\biometric\templates\biometric_users\dahua\list_dahua_employees.html:15 -#: .\employee\templates\employee\profile\profile_view.html:156 +#: .\biometric\templates\biometric_users\etimeoffice\list_etimeoffice_employees.html:15 +#: .\employee\models.py:641 +#: .\employee\templates\employee\profile\profile_view.html:68 #: .\employee\templates\employee\profile\work_info.html:69 #: .\employee\templates\employee\view\individual.html:252 #: .\employee\templates\employee_personal_info\employee_list.html:110 #: .\employee\templates\employee_personal_info\group_by.html:85 -#: .\employee\views.py:1125 +#: .\employee\views.py:1153 msgid "Work Email" msgstr "" #: .\biometric\templates\biometric\list_employees_biometric.html:33 #: .\biometric\templates\biometric\list_employees_cosec_biometric.html:36 #: .\biometric\templates\biometric_users\dahua\list_dahua_employees.html:16 +#: .\biometric\templates\biometric_users\etimeoffice\list_etimeoffice_employees.html:16 #: .\employee\templates\employee\profile\personal_info.html:57 -#: .\employee\templates\employee\profile\profile_view.html:179 +#: .\employee\templates\employee\profile\profile_view.html:91 #: .\employee\templates\employee\view\individual.html:282 #: .\employee\templates\employee_filters.html:29 #: .\employee\templates\employee_personal_info\employee_list.html:88 #: .\employee\templates\employee_personal_info\group_by.html:76 -#: .\horilla_views\templates\generic\horilla_profile_view.html:203 -#: .\onboarding\forms.py:407 +#: .\horilla_views\templates\generic\horilla_profile_view.html:212 +#: .\onboarding\forms.py:334 #: .\onboarding\templates\onboarding\employee_creation.html:75 -#: .\recruitment\models.py:380 +#: .\recruitment\models.py:381 #: .\recruitment\templates\candidate\application_form.html:176 #: .\recruitment\templates\candidate\candidate_list.html:98 #: .\recruitment\templates\candidate\export_filter.html:58 @@ -13842,6 +13911,8 @@ msgstr "" #: .\recruitment\templates\candidate\group_by.html:86 #: .\recruitment\templates\candidate\individual.html:167 #: .\recruitment\templates\pipeline\form\candidate_drop_down_form.html:50 +#: .\report\templates\report\employee_report.html:62 +#: .\report\templates\report\recruitment_report.html:46 #: .\templates\initialize_database\horilla_user_signup.html:61 msgid "Phone" msgstr "" @@ -13903,7 +13974,7 @@ msgid "Not-Connected" msgstr "" #: .\biometric\templates\biometric\view_biometric_devices.html:18 -#: .\onboarding\models.py:140 +#: .\onboarding\models.py:153 #: .\onboarding\templates\onboarding\dashboard\task_report.html:19 msgid "Scheduled" msgstr "" @@ -13917,64 +13988,63 @@ msgid "Dahua User" msgstr "" #: .\biometric\templates\biometric_users\dahua\list_dahua_employees.html:51 +#: .\biometric\templates\biometric_users\etimeoffice\list_etimeoffice_employees.html:51 msgid "Are you sure you want to delete this user?" msgstr "" #: .\biometric\templates\biometric_users\dahua\map_dahua_users.html:9 +#: .\biometric\templates\biometric_users\etimeoffice\map_etimeoffice_users.html:9 msgid "Map Dahua User" msgstr "" #: .\biometric\templates\biometric_users\dahua\map_dahua_users.html:21 +#: .\biometric\templates\biometric_users\etimeoffice\map_etimeoffice_users.html:21 msgid "Map" msgstr "" #: .\biometric\templates\biometric_users\dahua\nav_dahua_employees.html:34 +#: .\biometric\templates\biometric_users\etimeoffice\nav_etimeoffice_employees.html:34 #, fuzzy #| msgid "employee" msgid "Map Employee" msgstr "Employee" -#: .\biometric\views.py:511 +#: .\biometric\templates\biometric_users\etimeoffice\list_etimeoffice_employees.html:14 +#: .\biometric\views.py:1816 .\biometric\views.py:1833 +#, fuzzy +#| msgid "Emp obj" +msgid "Emp Code" +msgstr "Key result" + +#: .\biometric\views.py:539 msgid "Biometric device unscheduled successfully" msgstr "" -#: .\biometric\views.py:535 +#: .\biometric\views.py:563 msgid "Biometric device added successfully." msgstr "" -#: .\biometric\views.py:563 +#: .\biometric\views.py:587 .\biometric\views.py:613 .\biometric\views.py:642 +#, fuzzy +#| msgid "attendance-view" +msgid "Biometric device not found." +msgstr "Attendances" + +#: .\biometric\views.py:594 msgid "Biometric device updated successfully." msgstr "" -#: .\biometric\views.py:584 +#: .\biometric\views.py:618 #, python-format msgid "Device is %(message)s" msgstr "" -#: .\biometric\views.py:608 +#: .\biometric\views.py:645 msgid "Biometric device deleted successfully." msgstr "" -#: .\biometric\views.py:634 .\biometric\views.py:729 .\biometric\views.py:765 -#: .\biometric\views.py:772 .\biometric\views.py:795 .\biometric\views.py:817 -msgid "Connection unsuccessful" -msgstr "" - -#: .\biometric\views.py:635 .\biometric\views.py:796 .\biometric\views.py:818 -msgid "Double-check the provided Machine IP, Username, and Password." -msgstr "" - -#: .\biometric\views.py:640 -#: .\dynamic_fields\templates\dynamic_fields\df.html:49 -msgid "Success" -msgstr "" - -#: .\biometric\views.py:642 -msgid "{} attendance logs have been successfully fetched from the device." -msgstr "" - #: .\biometric\views.py:716 .\biometric\views.py:759 .\biometric\views.py:789 -#: .\biometric\views.py:811 +#: .\biometric\views.py:811 .\biometric\views.py:840 msgid "Connection Successful" msgstr "" @@ -13984,14 +14054,21 @@ msgstr "" msgid "ZKTeco test connection successful." msgstr "Shift Requests" -#: .\biometric\views.py:722 +#: .\biometric\views.py:722 .\biometric\views.py:930 msgid "Authentication Error" msgstr "" -#: .\biometric\views.py:723 +#: .\biometric\views.py:723 .\biometric\views.py:931 msgid "Double-check the provided IP, Port, and Password." msgstr "" +#: .\biometric\views.py:729 .\biometric\views.py:765 .\biometric\views.py:772 +#: .\biometric\views.py:795 .\biometric\views.py:817 .\biometric\views.py:847 +#: .\biometric\views.py:952 .\biometric\views.py:969 .\biometric\views.py:985 +#: .\biometric\views.py:1001 +msgid "Connection unsuccessful" +msgstr "" + #: .\biometric\views.py:730 msgid "Please check the IP, Port, and Password." msgstr "" @@ -14002,7 +14079,7 @@ msgstr "" msgid "Anviz test connection successful." msgstr "Shift Requests" -#: .\biometric\views.py:766 +#: .\biometric\views.py:766 .\biometric\views.py:953 msgid "API credentials might be incorrect." msgstr "" @@ -14018,100 +14095,136 @@ msgstr "Requested" msgid "Matrix test connection successful." msgstr "Shift Requests" +#: .\biometric\views.py:796 .\biometric\views.py:818 .\biometric\views.py:970 +#: .\biometric\views.py:986 +msgid "Double-check the provided Machine IP, Username, and Password." +msgstr "" + #: .\biometric\views.py:812 #, fuzzy #| msgid "shift-request-view" msgid "Dahua test connection successful." msgstr "Shift Requests" -#: .\biometric\views.py:1101 +#: .\biometric\views.py:841 +#, fuzzy +#| msgid "shift-request-view" +msgid "e-Time Office test connection successful." +msgstr "Shift Requests" + +#: .\biometric\views.py:848 +msgid "Double-check the provided API Url, Username, and Password: {}" +msgstr "" + +#: .\biometric\views.py:856 +msgid "Connection error" +msgstr "" + +#: .\biometric\views.py:922 .\biometric\views.py:944 .\biometric\views.py:961 +#: .\biometric\views.py:977 .\biometric\views.py:993 +#, fuzzy +#| msgid "shift-request-view" +msgid "Logs Fetched Successfully" +msgstr "Shift Requests" + +#: .\biometric\views.py:936 +#, fuzzy +#| msgid "shift-request-view" +msgid "Connection Unsuccessful" +msgstr "Shift Requests" + +#: .\biometric\views.py:1002 +msgid "Double-check the provided API Url, Username, and Password" +msgstr "" + +#: .\biometric\views.py:1267 msgid "" "Failed to establish a connection. Please verify the accuracy of the " "IP Address , Port No. and Password of the device." msgstr "" -#: .\biometric\views.py:1106 .\biometric\views.py:1400 +#: .\biometric\views.py:1272 .\biometric\views.py:1570 #, fuzzy #| msgid "attendance-view" msgid "Biometric device not found" msgstr "Attendances" -#: .\biometric\views.py:1220 .\biometric\views.py:1393 -#: .\biometric\views.py:1446 +#: .\biometric\views.py:1390 .\biometric\views.py:1563 +#: .\biometric\views.py:1616 msgid "{} successfully removed from the biometric device." msgstr "" -#: .\biometric\views.py:1255 +#: .\biometric\views.py:1425 msgid "Face recognition enabled successfully" msgstr "" -#: .\biometric\views.py:1257 +#: .\biometric\views.py:1427 msgid "Something went wrong when enabling face" msgstr "" -#: .\biometric\views.py:1259 +#: .\biometric\views.py:1429 #, fuzzy #| msgid "employee" msgid "Device not found" msgstr "Employee" -#: .\biometric\views.py:1341 +#: .\biometric\views.py:1511 msgid "Biometric user data updated successfully" msgstr "" -#: .\biometric\views.py:1350 +#: .\biometric\views.py:1520 msgid "" "This date cannot be used as the Validity End Date " "for the COSEC Biometric." msgstr "" -#: .\biometric\views.py:1398 +#: .\biometric\views.py:1568 #, fuzzy #| msgid "employee" msgid "Biometric user not found" msgstr "Employee" -#: .\biometric\views.py:1489 +#: .\biometric\views.py:1659 msgid "successfully removed from the biometric device." msgstr "" -#: .\biometric\views.py:1572 .\biometric\views.py:1707 +#: .\biometric\views.py:1742 .\biometric\views.py:1897 msgid "{} added to biometric device successfully" msgstr "" -#: .\biometric\views.py:1579 +#: .\biometric\views.py:1749 msgid "{} already added to biometric device" msgstr "" -#: .\biometric\views.py:1651 +#: .\biometric\views.py:1828 msgid "Selected employee successfully mapped to the biometric user" msgstr "" -#: .\biometric\views.py:1677 .\employee\views.py:1873 .\employee\views.py:1909 +#: .\biometric\views.py:1867 .\employee\views.py:1917 .\employee\views.py:1953 msgid "Employee not found." msgstr "" -#: .\biometric\views.py:1713 +#: .\biometric\views.py:1903 msgid "Failed to add user to biometric device." msgstr "" -#: .\biometric\views.py:1741 +#: .\biometric\views.py:1937 .\biometric\views.py:1982 #, fuzzy #| msgid "user-request-view" msgid "{} successfully deleted!" msgstr "My Leave Requests" -#: .\biometric\views.py:1760 +#: .\biometric\views.py:1956 .\biometric\views.py:2001 #, fuzzy #| msgid "user-request-view" msgid "{} users successfully deleted!" msgstr "My Leave Requests" -#: .\biometric\views.py:1765 +#: .\biometric\views.py:1961 .\biometric\views.py:2006 msgid "No rows are selected for deleting users from device." msgstr "" -#: .\biometric\views.py:1768 +#: .\biometric\views.py:1964 msgid "An error occurred: {}" msgstr "" @@ -14133,6 +14246,10 @@ msgstr "" msgid "Proceed" msgstr "" +#: .\dynamic_fields\templates\dynamic_fields\df.html:49 +msgid "Success" +msgstr "" + #: .\dynamic_fields\templates\dynamic_fields\df.html:50 msgid "" "Column will be permently removed from the table on the next service reload" @@ -14150,130 +14267,127 @@ msgstr "" msgid "Search in : Reporting manager" msgstr "" -#: .\employee\forms.py:354 +#: .\employee\forms.py:212 +msgid "An Employee with this Email already exists in company {}" +msgstr "" + +#: .\employee\forms.py:217 +#, fuzzy +#| msgid "employee" +msgid "An Employee with this Email already exists" +msgstr "Employee" + +#: .\employee\forms.py:364 msgid "Create New {} " msgstr "" -#: .\employee\forms.py:540 +#: .\employee\forms.py:550 msgid "Select Fields to Update" msgstr "" -#: .\employee\forms.py:704 +#: .\employee\forms.py:714 msgid "---Choose Action---" msgstr "" -#: .\employee\forms.py:709 +#: .\employee\forms.py:719 #, fuzzy #| msgid "create-allowance" msgid "Create new action type " msgstr "Creation" +#: .\employee\methods\methods.py:213 +msgid "The uploaded file is empty, Not contain records." +msgstr "" + +#: .\employee\methods\methods.py:241 +msgid "These required headers are missing in the uploaded file: " +msgstr "" + #: .\employee\models.py:75 #: .\employee\templates\employee\profile\personal_info.html:35 -#: .\employee\templates\employee_filters.html:10 .\onboarding\forms.py:405 +#: .\employee\templates\employee_filters.html:10 .\onboarding\forms.py:332 #: .\onboarding\templates\onboarding\employee_creation.html:61 +#: .\report\templates\report\employee_report.html:43 #: .\templates\initialize_database\horilla_user_signup.html:38 msgid "First Name" msgstr "" #: .\employee\models.py:78 #: .\employee\templates\employee\profile\personal_info.html:42 -#: .\employee\templates\employee_filters.html:25 .\onboarding\forms.py:406 +#: .\employee\templates\employee_filters.html:25 .\onboarding\forms.py:333 #: .\onboarding\templates\onboarding\employee_creation.html:68 +#: .\report\templates\report\employee_report.html:58 #: .\templates\initialize_database\horilla_user_signup.html:45 msgid "Last Name" msgstr "" -#: .\employee\models.py:230 +#: .\employee\models.py:248 msgid "Expected working" msgstr "" -#: .\employee\models.py:233 .\leave\templates\leave\dashboard.html:101 -#: .\templates\dashboard.html:233 +#: .\employee\models.py:251 .\leave\templates\leave\dashboard.html:114 +#: .\templates\dashboard.html:224 msgid "On Leave" msgstr "" -#: .\employee\models.py:235 +#: .\employee\models.py:253 msgid "Waiting Approval" msgstr "" -#: .\employee\models.py:237 +#: .\employee\models.py:255 #, fuzzy #| msgid "attendance" msgid "Canceled / Rejected" msgstr "Attendance" -#: .\employee\models.py:244 +#: .\employee\models.py:262 msgid "On a break" msgstr "" -#: .\employee\models.py:357 +#: .\employee\models.py:375 #, fuzzy #| msgid "department-update" msgid "Recruitment manager" msgstr "Update" -#: .\employee\models.py:364 +#: .\employee\models.py:382 #, fuzzy #| msgid "department-update" msgid "Recruitment stage manager" msgstr "Update" -#: .\employee\models.py:371 +#: .\employee\models.py:389 #, fuzzy #| msgid "onboarding" msgid "Onboarding stage manager" msgstr "Onboarding" -#: .\employee\models.py:378 +#: .\employee\models.py:396 #, fuzzy #| msgid "onboarding" msgid "Onboarding task manager" msgstr "Onboarding" -#: .\employee\models.py:386 +#: .\employee\models.py:404 #, fuzzy #| msgid "employee" msgid "---Choose employee---" msgstr "Employee" -#: .\employee\models.py:602 .\employee\templates\employee_filters.html:58 +#: .\employee\models.py:628 .\employee\templates\employee_filters.html:58 #, fuzzy #| msgid "employee" msgid "Employee tag" msgstr "Employee" -#: .\employee\models.py:608 -#: .\employee\templates\employee\profile\personal_info.html:51 -#: .\employee\templates\employee\profile\profile_view.html:164 -#: .\employee\templates\employee\view\individual.html:260 -#: .\employee\templates\employee_filters.html:14 -#: .\employee\templates\employee_personal_info\employee_list.html:87 -#: .\employee\templates\employee_personal_info\group_by.html:75 -#: .\offboarding\templates\offboarding\pipeline\individual_view.html:50 -#: .\onboarding\forms.py:204 -#: .\onboarding\templates\onboarding\candidate_creation.html:51 -#: .\onboarding\templates\onboarding\candidate_update.html:62 -#: .\onboarding\templates\onboarding\candidates.html:55 -#: .\onboarding\templates\onboarding\group_by.html:46 -#: .\onboarding\templates\onboarding\onboarding_table.html:117 -#: .\onboarding\templates\onboarding\onboardings.html:11 -#: .\onboarding\templates\onboarding\single_view.html:42 -#: .\onboarding\templates\onboarding\table.html:11 .\recruitment\forms.py:403 -#: .\recruitment\models.py:373 -#: .\recruitment\templates\candidate\application_form.html:159 -#: .\recruitment\templates\candidate\candidate_list.html:97 -#: .\recruitment\templates\candidate\export_filter.html:82 -#: .\recruitment\templates\candidate\filters.html:42 -#: .\recruitment\templates\candidate\group_by.html:85 -#: .\recruitment\templates\candidate\individual.html:159 -#: .\recruitment\templates\pipeline\components\candidate_stage_component.html:47 -#: .\recruitment\templates\pipeline\form\candidate_drop_down_form.html:23 -#: .\templates\initialize_database\horilla_user_signup.html:54 -msgid "Email" +#: .\employee\models.py:644 +#: .\employee\templates\employee\profile\profile_view.html:83 +#: .\employee\templates\employee\view\individual.html:274 +#: .\employee\views.py:1155 +msgid "Work Phone" msgstr "" -#: .\employee\models.py:623 +#: .\employee\models.py:648 #: .\employee\templates\employee\profile\work_info.html:77 #: .\employee\templates\tabs\personal_tab.html:261 #: .\onboarding\templates\onboarding\candidate_creation.html:64 @@ -14281,54 +14395,59 @@ msgstr "" #: .\onboarding\templates\onboarding\onboarding_table.html:120 #: .\onboarding\templates\onboarding\onboardings.html:13 #: .\onboarding\templates\onboarding\single_view.html:57 -#: .\onboarding\templates\onboarding\table.html:12 .\recruitment\models.py:431 +#: .\onboarding\templates\onboarding\table.html:12 .\recruitment\models.py:432 msgid "Joining Date" msgstr "" -#: .\employee\models.py:627 +#: .\employee\models.py:651 +#: .\employee\templates\employee\profile\work_info.html:83 +msgid "Contract End Date" +msgstr "" + +#: .\employee\models.py:654 #: .\employee\templates\employee\profile\work_info.html:91 #: .\employee\templates\tabs\contract-tab.html:18 -#: .\payroll\models\models.py:185 +#: .\payroll\models\models.py:183 #: .\payroll\templates\payroll\contract\contract_list.html:60 #: .\payroll\templates\payroll\contract\contract_list.html:63 #: .\payroll\templates\payroll\contract\group_by.html:53 msgid "Basic Salary" msgstr "" -#: .\employee\models.py:630 +#: .\employee\models.py:657 #: .\employee\templates\employee\profile\work_info.html:97 msgid "Salary Per Hour" msgstr "" -#: .\employee\models.py:726 +#: .\employee\models.py:753 msgid "Bank details for an employee with this account number already exist" msgstr "" -#: .\employee\models.py:796 +#: .\employee\models.py:823 msgid "equals" msgstr "" -#: .\employee\models.py:797 +#: .\employee\models.py:824 msgid "grater than" msgstr "" -#: .\employee\models.py:798 +#: .\employee\models.py:825 msgid "less than" msgstr "" -#: .\employee\models.py:799 +#: .\employee\models.py:826 msgid "greater than or equal" msgstr "" -#: .\employee\models.py:800 +#: .\employee\models.py:827 msgid "less than or equal" msgstr "" -#: .\employee\models.py:866 +#: .\employee\models.py:893 msgid "Enable login block :" msgstr "" -#: .\employee\models.py:875 +#: .\employee\models.py:902 #, fuzzy #| msgid "create-allowance" msgid "Action Types" @@ -14358,6 +14477,11 @@ msgstr "" msgid "Disciplinary action deleted." msgstr "" +#: .\employee\templates\dashboard\birthdays_container.html:12 +#: .\employee\templates\employee\dashboard\dashboard_employee.html:100 +msgid "Birthday" +msgstr "" + #: .\employee\templates\dashboard\not_out_yet.html:20 msgid "Pending" msgstr "" @@ -14400,15 +14524,6 @@ msgstr "" msgid "Action Date" msgstr "" -#: .\employee\templates\disciplinary_actions\disciplinary_records.html:45 -#: .\onboarding\templates\onboarding\candidates_view.html:298 -#: .\payroll\templates\payroll\reimbursement\attachments.html:2 -#: .\payroll\templates\payroll\reimbursement\reimbursenent_individual.html:85 -#, fuzzy -#| msgid "recruitment" -msgid "Attachments" -msgstr "Recruitment" - #: .\employee\templates\disciplinary_actions\disciplinary_records.html:84 msgid "Are you sure want to remove this employee from this action?" msgstr "" @@ -14438,13 +14553,14 @@ msgid "Edit Action." msgstr "" #: .\employee\templates\documents\document_nav.html:9 +#: .\horilla_documents\models.py:65 #, fuzzy #| msgid "recruitment" msgid "Document Requests" msgstr "Recruitment" #: .\employee\templates\documents\document_nav.html:127 -#: .\employee\templates\documents\document_request_create_form.html:4 +#: .\horilla_documents\models.py:64 #, fuzzy #| msgid "recruitment" msgid "Document Request" @@ -14460,38 +14576,24 @@ msgstr "Recruitment" msgid "Bulk Approve Requests" msgstr "" -#: .\employee\templates\documents\document_nav.html:202 +#: .\employee\templates\documents\document_nav.html:195 +msgid "Do you really want to approve all the selected requests?" +msgstr "" + +#: .\employee\templates\documents\document_nav.html:203 +#: .\employee\templates\documents\document_reject_reason.html:3 msgid "Bulk Reject Requests" msgstr "" -#: .\employee\templates\documents\document_nav.html:252 -#: .\leave\templates\leave\leave_request\request_view.html:238 -msgid "Bulk Rejection Reason" -msgstr "" - -#: .\employee\templates\documents\document_request_create_form.html:49 -#, fuzzy -#| msgid "candidate-view" -msgid "candidate" -msgstr "Candidates" - -#: .\employee\templates\documents\document_request_create_form.html:61 -msgid "Format" -msgstr "" - -#: .\employee\templates\documents\document_request_create_form.html:69 -msgid "Max size (in MB)" -msgstr "" - -#: .\employee\templates\documents\document_requests.html:42 +#: .\employee\templates\documents\document_requests.html:36 #, fuzzy #| msgid "recruitment" msgid "Selected Documents" msgstr "Recruitment" -#: .\employee\templates\documents\requests.html:14 +#: .\employee\templates\documents\requests.html:7 #: .\employee\templates\tabs\document_tab.html:171 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:687 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:576 #: .\recruitment\templates\candidate\candidate_self_tracking.html:675 #: .\recruitment\templates\candidate\document.html:214 #, fuzzy @@ -14499,24 +14601,33 @@ msgstr "Recruitment" msgid "View File" msgstr "Employee" -#: .\employee\templates\documents\requests.html:66 +#: .\employee\templates\documents\requests.html:41 msgid "Uploaded / Requested" msgstr "" -#: .\employee\templates\documents\requests.html:92 -#: .\employee\templates\documents\requests.html:217 +#: .\employee\templates\documents\requests.html:65 +msgid " Are you sure you want to delete this Document Request?" +msgstr "" + +#: .\employee\templates\documents\requests.html:106 +msgid "File Uploaded" +msgstr "" + +#: .\employee\templates\documents\requests.html:141 +msgid "Do you want to approve this request" +msgstr "" + +#: .\employee\templates\documents\requests.html:163 #: .\employee\templates\tabs\document_tab.html:124 #: .\recruitment\templates\candidate\document.html:168 msgid "Are you sure you want to delete this Document Request?" msgstr "" -#: .\employee\templates\documents\requests.html:141 -msgid "File Uploaded" -msgstr "" - -#: .\employee\templates\documents\requests.html:187 -msgid "Do you want to approve this request" -msgstr "" +#: .\employee\templates\documents\requests.html:272 +#, fuzzy +#| msgid "shift-request-view" +msgid "No documents found." +msgstr "Shift Requests" #: .\employee\templates\employee\create_form\form_view.html:22 #: .\employee\templates\employee\profile\profile.html:22 @@ -14544,21 +14655,16 @@ msgstr "" msgid "Show" msgstr "" -#: .\employee\templates\employee\dashboard\dashboard_employee.html:100 -#: .\templates\birthdays_container.html:12 -msgid "Birthday" -msgstr "" - #: .\employee\templates\employee\dashboard\dashboard_employee.html:104 -#: .\employee\views.py:2799 -#: .\pms\templates\feedback\feedback_list_view.html:109 +#: .\employee\views.py:2751 +#: .\pms\templates\feedback\feedback_list_view.html:107 #: .\pms\templates\okr\objective_list_view.html:133 #: .\templates\dashboard_tile_container.html:57 msgid "Today" msgstr "" #: .\employee\templates\employee\dashboard\dashboard_employee.html:106 -#: .\employee\views.py:2802 +#: .\employee\views.py:2754 msgid "Tomorrow" msgstr "" @@ -14567,6 +14673,10 @@ msgstr "" msgid "In" msgstr "" +#: .\employee\templates\employee\employee_import.html:4 +msgid "Import Employee" +msgstr "" + #: .\employee\templates\employee\export_data_employee.html:36 #, fuzzy #| msgid "attendance" @@ -14582,7 +14692,7 @@ msgstr "" #: .\employee\templates\employee\export_data_employee.html:57 #: .\employee\templates\employee\export_data_employee.html:105 #: .\employee\templates\employee\export_data_employee.html:155 -#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:35 +#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:38 msgid "To" msgstr "" @@ -14607,14 +14717,14 @@ msgstr "" #: .\employee\templates\personal-tab.html:271 #: .\employee\templates\tabs\personal_tab.html:314 #: .\onboarding\templates\onboarding\employee_bank_details.html:75 -#: .\payroll\forms\component_forms.py:496 +#: .\payroll\forms\component_forms.py:506 msgid "Bank Name" msgstr "" #: .\employee\templates\employee\profile\bank_info.html:17 #: .\employee\templates\personal-tab.html:313 #: .\employee\templates\tabs\personal_tab.html:354 -#: .\payroll\forms\component_forms.py:498 +#: .\payroll\forms\component_forms.py:508 msgid "Account Number" msgstr "" @@ -14622,7 +14732,7 @@ msgstr "" #: .\employee\templates\personal-tab.html:280 #: .\employee\templates\tabs\personal_tab.html:323 #: .\onboarding\templates\onboarding\employee_bank_details.html:89 -#: .\payroll\forms\component_forms.py:497 +#: .\payroll\forms\component_forms.py:507 msgid "Branch" msgstr "" @@ -14643,30 +14753,65 @@ msgstr "" msgid "Bank Address" msgstr "" +#: .\employee\templates\employee\profile\personal_info.html:51 +#: .\employee\templates\employee\profile\profile_view.html:76 +#: .\employee\templates\employee\view\individual.html:260 +#: .\employee\templates\employee_filters.html:14 +#: .\employee\templates\employee_personal_info\employee_list.html:87 +#: .\employee\templates\employee_personal_info\group_by.html:75 +#: .\horilla_automations\templates\horilla_automations\load_automation.html:45 +#: .\horilla_automations\templates\horilla_automations\load_automation.html:53 +#: .\offboarding\templates\offboarding\pipeline\individual_view.html:50 +#: .\onboarding\forms.py:136 +#: .\onboarding\templates\onboarding\candidate_creation.html:51 +#: .\onboarding\templates\onboarding\candidate_update.html:62 +#: .\onboarding\templates\onboarding\candidates.html:50 +#: .\onboarding\templates\onboarding\group_by.html:45 +#: .\onboarding\templates\onboarding\onboarding_table.html:117 +#: .\onboarding\templates\onboarding\onboardings.html:11 +#: .\onboarding\templates\onboarding\single_view.html:42 +#: .\onboarding\templates\onboarding\table.html:11 +#: .\outlook_auth\cbv\views.py:56 .\outlook_auth\models.py:27 +#: .\recruitment\forms.py:416 .\recruitment\models.py:374 +#: .\recruitment\models.py:1047 +#: .\recruitment\templates\candidate\application_form.html:159 +#: .\recruitment\templates\candidate\candidate_list.html:97 +#: .\recruitment\templates\candidate\export_filter.html:82 +#: .\recruitment\templates\candidate\filters.html:42 +#: .\recruitment\templates\candidate\group_by.html:85 +#: .\recruitment\templates\candidate\individual.html:159 +#: .\recruitment\templates\pipeline\components\candidate_stage_component.html:47 +#: .\recruitment\templates\pipeline\form\candidate_drop_down_form.html:23 +#: .\report\templates\report\employee_report.html:47 +#: .\report\templates\report\recruitment_report.html:77 +#: .\templates\initialize_database\horilla_user_signup.html:54 +msgid "Email" +msgstr "" + #: .\employee\templates\employee\profile\personal_info.html:68 #: .\employee\templates\personal-tab.html:16 -#: .\employee\templates\tabs\personal_tab.html:15 .\recruitment\models.py:402 +#: .\employee\templates\tabs\personal_tab.html:15 .\recruitment\models.py:403 #: .\recruitment\templates\candidate\individual.html:310 msgid "Date of Birth" msgstr "" #: .\employee\templates\employee\profile\personal_info.html:88 #: .\employee\templates\personal-tab.html:70 -#: .\employee\templates\tabs\personal_tab.html:64 .\onboarding\forms.py:412 +#: .\employee\templates\tabs\personal_tab.html:64 .\onboarding\forms.py:339 #: .\onboarding\templates\onboarding\employee_creation.html:128 msgid "Qualification" msgstr "" #: .\employee\templates\employee\profile\personal_info.html:97 #: .\employee\templates\personal-tab.html:79 -#: .\employee\templates\tabs\personal_tab.html:72 .\onboarding\forms.py:413 +#: .\employee\templates\tabs\personal_tab.html:72 .\onboarding\forms.py:340 #: .\onboarding\templates\onboarding\employee_creation.html:135 -#: .\payroll\models\models.py:678 +#: .\payroll\models\models.py:676 msgid "Experience" msgstr "" #: .\employee\templates\employee\profile\personal_info.html:153 -#: .\recruitment\models.py:410 +#: .\recruitment\models.py:411 #: .\recruitment\templates\candidate\application_form.html:297 msgid "Zip Code" msgstr "" @@ -14683,7 +14828,7 @@ msgstr "" #: .\employee\templates\employee\profile\personal_info.html:182 #: .\employee\templates\personal-tab.html:124 -#: .\employee\templates\tabs\personal_tab.html:113 .\onboarding\forms.py:422 +#: .\employee\templates\tabs\personal_tab.html:113 .\onboarding\forms.py:349 #: .\onboarding\templates\onboarding\employee_creation.html:170 msgid "Emergency Contact Relation" msgstr "" @@ -14692,15 +14837,15 @@ msgstr "" #: .\employee\templates\personal-tab.html:88 #: .\employee\templates\tabs\personal_tab.html:80 #: .\onboarding\templates\onboarding\employee_creation.html:142 -#: .\payroll\models\models.py:677 +#: .\payroll\models\models.py:675 msgid "Marital Status" msgstr "" #: .\employee\templates\employee\profile\personal_info.html:197 #: .\employee\templates\personal-tab.html:97 -#: .\employee\templates\tabs\personal_tab.html:88 .\onboarding\forms.py:414 +#: .\employee\templates\tabs\personal_tab.html:88 .\onboarding\forms.py:341 #: .\onboarding\templates\onboarding\employee_creation.html:149 -#: .\payroll\models\models.py:676 .\payroll\models\models.py:720 +#: .\payroll\models\models.py:674 .\payroll\models\models.py:718 msgid "Children" msgstr "" @@ -14729,86 +14874,74 @@ msgstr "" msgid "Bank Info" msgstr "" -#: .\employee\templates\employee\profile\profile_view.html:131 +#: .\employee\templates\employee\profile\profile_view.html:43 #: .\employee\templates\employee\view\individual.html:228 -#: .\employee\templates\employee_personal_info\employee_card.html:15 -#: .\employee\templates\employee_personal_info\employee_card.html:67 +#: .\employee\templates\employee_personal_info\employee_card.html:16 +#: .\employee\templates\employee_personal_info\employee_card.html:68 #: .\employee\templates\employee_personal_info\employee_list.html:18 msgid "Online" msgstr "" -#: .\employee\templates\employee\profile\profile_view.html:136 +#: .\employee\templates\employee\profile\profile_view.html:48 #: .\employee\templates\employee\view\individual.html:232 -#: .\employee\templates\employee_personal_info\employee_card.html:11 -#: .\employee\templates\employee_personal_info\employee_card.html:69 +#: .\employee\templates\employee_personal_info\employee_card.html:12 +#: .\employee\templates\employee_personal_info\employee_card.html:70 #: .\employee\templates\employee_personal_info\employee_list.html:14 msgid "Offline" msgstr "" -#: .\employee\templates\employee\profile\profile_view.html:171 -#: .\employee\templates\employee\view\individual.html:274 -#: .\employee\views.py:1127 -msgid "Work Phone" -msgstr "" - -#: .\employee\templates\employee\profile\profile_view.html:210 +#: .\employee\templates\employee\profile\profile_view.html:122 #: .\employee\templates\employee\view\individual.html:317 #: .\recruitment\templates\candidate\individual.html:198 msgid "About" msgstr "" -#: .\employee\templates\employee\profile\profile_view.html:214 +#: .\employee\templates\employee\profile\profile_view.html:126 msgid "Work type & Shift" msgstr "" -#: .\employee\templates\employee\profile\profile_view.html:222 +#: .\employee\templates\employee\profile\profile_view.html:134 #: .\employee\templates\employee\view\individual.html:321 #: .\employee\templates\employee\view\individual.html:326 msgid "Work Type & Shift" msgstr "" -#: .\employee\templates\employee\profile\profile_view.html:243 -#: .\employee\templates\employee\profile\profile_view.html:251 -#: .\employee\templates\employee\view\individual.html:343 -#: .\employee\templates\employee\view\individual.html:346 -#: .\templates\settings.html:426 -msgid "Leave" -msgstr "" - -#: .\employee\templates\employee\profile\profile_view.html:258 -#: .\employee\templates\employee\profile\profile_view.html:264 +#: .\employee\templates\employee\profile\profile_view.html:170 +#: .\employee\templates\employee\profile\profile_view.html:176 #: .\employee\templates\employee\view\individual.html:353 #: .\employee\templates\employee\view\individual.html:355 -#: .\templates\settings.html:467 +#: .\templates\settings.html:511 msgid "Payroll" msgstr "" -#: .\employee\templates\employee\profile\profile_view.html:270 -#: .\employee\templates\employee\profile\profile_view.html:278 +#: .\employee\templates\employee\profile\profile_view.html:182 +#: .\employee\templates\employee\profile\profile_view.html:190 #: .\employee\templates\employee\view\individual.html:360 #: .\employee\templates\employee\view\individual.html:365 +#: .\report\templates\report\payroll_report.html:153 msgid "Allowance & Deduction" msgstr "" -#: .\employee\templates\employee\profile\profile_view.html:284 -#: .\employee\templates\employee\profile\profile_view.html:291 +#: .\employee\templates\employee\profile\profile_view.html:196 +#: .\employee\templates\employee\profile\profile_view.html:203 #: .\employee\templates\employee\view\individual.html:374 msgid "Penalty Account" msgstr "" -#: .\employee\templates\employee\profile\profile_view.html:312 -#: .\employee\templates\employee\profile\profile_view.html:321 +#: .\employee\templates\employee\profile\profile_view.html:224 +#: .\employee\templates\employee\profile\profile_view.html:233 #: .\employee\templates\employee\view\individual.html:399 #: .\employee\templates\employee\view\individual.html:402 -#: .\templates\settings.html:494 +#: .\templates\settings.html:538 msgid "Performance" msgstr "" -#: .\employee\templates\employee\profile\profile_view.html:326 -#: .\employee\templates\employee\profile\profile_view.html:334 +#: .\employee\templates\employee\profile\profile_view.html:238 +#: .\employee\templates\employee\profile\profile_view.html:246 #: .\employee\templates\employee\view\individual.html:429 #: .\employee\templates\employee\view\individual.html:433 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:551 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:478 +#: .\horilla_documents\models.py:113 #: .\recruitment\templates\candidate\candidate_self_tracking.html:437 #: .\recruitment\templates\candidate\individual.html:245 #, fuzzy @@ -14816,27 +14949,27 @@ msgstr "" msgid "Documents" msgstr "Recruitment" -#: .\employee\templates\employee\profile\profile_view.html:339 -#: .\employee\templates\employee\profile\profile_view.html:347 +#: .\employee\templates\employee\profile\profile_view.html:251 +#: .\employee\templates\employee\profile\profile_view.html:259 #: .\employee\templates\employee\view\individual.html:451 #: .\employee\templates\tabs\bonus_points.html:5 msgid "Bonus Points" msgstr "" -#: .\employee\templates\employee\profile\profile_view.html:353 -#: .\offboarding\models.py:72 .\recruitment\models.py:280 +#: .\employee\templates\employee\profile\profile_view.html:265 +#: .\offboarding\models.py:72 .\recruitment\models.py:281 #: .\recruitment\sidebar.py:39 #: .\recruitment\templates\candidate\interview_nav.html:48 #: .\recruitment\templates\dashboard\dashboard.html:285 msgid "Interview" msgstr "" -#: .\employee\templates\employee\profile\profile_view.html:361 +#: .\employee\templates\employee\profile\profile_view.html:273 msgid "Scheduled Interview" msgstr "" -#: .\employee\templates\employee\profile\profile_view.html:367 -#: .\employee\templates\employee\profile\profile_view.html:375 +#: .\employee\templates\employee\profile\profile_view.html:279 +#: .\employee\templates\employee\profile\profile_view.html:287 #: .\offboarding\templates\offboarding\resignation\filter.html:15 msgid "Resignation" msgstr "" @@ -14851,12 +14984,8 @@ msgstr "" msgid "Shift Information" msgstr "" -#: .\employee\templates\employee\profile\work_info.html:83 -msgid "Contract End Date" -msgstr "" - #: .\employee\templates\employee\send_mail.html:27 -#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:43 +#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:46 msgid "Also send to" msgstr "" @@ -14865,12 +14994,12 @@ msgstr "" #: .\pms\templates\anonymous\single_view.html:17 #: .\pms\templates\feedback\feedback_list.html:555 #: .\recruitment\templates\candidate\mail_log.html:7 -#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:53 +#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:57 msgid "Subject" msgstr "" #: .\employee\templates\employee\send_mail.html:44 -#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:60 +#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:64 #: .\recruitment\templates\survey\templates.html:6 #, fuzzy #| msgid "employee" @@ -14878,18 +15007,30 @@ msgid "Template" msgstr "Employee" #: .\employee\templates\employee\send_mail.html:55 -#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:71 msgid "Message Body" msgstr "" -#: .\employee\templates\employee\send_mail.html:62 -#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:83 +#: .\employee\templates\employee\send_mail.html:60 +#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:77 +msgid "Write" +msgstr "" + +#: .\employee\templates\employee\send_mail.html:63 +#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:80 +#: .\recruitment\templates\survey\template_accordion.html:31 +#, fuzzy +#| msgid "request-view" +msgid "Preview" +msgstr "Leave Requests" + +#: .\employee\templates\employee\send_mail.html:79 +#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:98 msgid "Template as Attachment" msgstr "" -#: .\employee\templates\employee\send_mail.html:72 +#: .\employee\templates\employee\send_mail.html:89 #: .\onboarding\templates\onboarding\candidates_view.html:355 -#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:93 +#: .\recruitment\templates\pipeline\pipeline_components\send_mail.html:108 msgid "Other Attachments" msgstr "" @@ -14988,26 +15129,22 @@ msgstr "" msgid "Is From Onboarding" msgstr "Onboarding" -#: .\employee\templates\employee_nav.html:44 -msgid "Import Employee" -msgstr "" - -#: .\employee\templates\employee_nav.html:133 +#: .\employee\templates\employee_nav.html:42 msgid "Bulk Update Employees" msgstr "" -#: .\employee\templates\employee_nav.html:228 -#: .\employee\templates\employee_nav.html:234 -#: .\employee\templates\employee_nav.html:240 -#: .\employee\templates\employee_nav.html:246 -#: .\employee\templates\employee_nav.html:252 -#: .\employee\templates\employee_nav.html:258 -#: .\employee\templates\employee_nav.html:264 +#: .\employee\templates\employee_nav.html:104 +#: .\employee\templates\employee_nav.html:111 +#: .\employee\templates\employee_nav.html:118 +#: .\employee\templates\employee_nav.html:125 +#: .\employee\templates\employee_nav.html:131 +#: .\employee\templates\employee_nav.html:138 +#: .\employee\templates\employee_nav.html:145 #: .\horilla_views\templates\generic\horilla_nav.html:72 msgid "for:" msgstr "" -#: .\employee\templates\employee_nav.html:290 +#: .\employee\templates\employee_nav.html:162 #: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:32 #: .\offboarding\templates\offboarding\resignation\nav.html:18 #: .\onboarding\templates\onboarding\onboarding_view_nav.html:18 @@ -15022,7 +15159,7 @@ msgstr "" msgid "List" msgstr "" -#: .\employee\templates\employee_nav.html:301 +#: .\employee\templates\employee_nav.html:169 #: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:37 #: .\offboarding\templates\offboarding\resignation\nav.html:32 #: .\onboarding\templates\onboarding\onboarding_view_nav.html:22 @@ -15037,13 +15174,13 @@ msgstr "" msgid "Card" msgstr "" -#: .\employee\templates\employee_nav.html:444 +#: .\employee\templates\employee_nav.html:266 #, fuzzy #| msgid "type-update" msgid "Bulk Mail" msgstr "Update" -#: .\employee\templates\employee_nav.html:453 +#: .\employee\templates\employee_nav.html:271 .\horilla_views\forms.py:106 #, fuzzy #| msgid "type-update" msgid "Bulk Update" @@ -15055,25 +15192,25 @@ msgstr "Update" msgid "Employees Bulk Update" msgstr "Bulk Update" -#: .\employee\templates\employee_personal_info\employee_card.html:93 +#: .\employee\templates\employee_personal_info\employee_card.html:94 msgid "Revoke Profile Edit Access" msgstr "" -#: .\employee\templates\employee_personal_info\employee_card.html:95 +#: .\employee\templates\employee_personal_info\employee_card.html:96 msgid "Add Profile Edit Access" msgstr "" -#: .\employee\templates\employee_personal_info\employee_card.html:104 +#: .\employee\templates\employee_personal_info\employee_card.html:105 #: .\employee\templates\employee_personal_info\employee_list.html:265 #: .\employee\templates\employee_personal_info\group_by.html:202 msgid "Do you want to archive this employee?" msgstr "" -#: .\employee\templates\employee_personal_info\employee_card.html:108 +#: .\employee\templates\employee_personal_info\employee_card.html:109 msgid "Do you want to un archive this employee?" msgstr "" -#: .\employee\templates\employee_personal_info\employee_card.html:117 +#: .\employee\templates\employee_personal_info\employee_card.html:118 #: .\employee\templates\employee_personal_info\employee_list.html:289 msgid "" "All non-active contracts of the employee will also be deleted. Do you want " @@ -15160,7 +15297,7 @@ msgstr "" #: .\employee\templates\leave-tab.html:107 #: .\employee\templates\leave-tab.html:160 #: .\employee\templates\tabs\leave-tab.html:117 -#: .\employee\templates\tabs\leave-tab.html:173 .\leave\models.py:370 +#: .\employee\templates\tabs\leave-tab.html:173 .\leave\models.py:363 #: .\leave\templates\leave\leave_assign\assigned-leave.html:12 #: .\leave\templates\leave\leave_assign\assigned_leave.html:41 #: .\leave\templates\leave\leave_assign\assigned_leaves_export_form.html:78 @@ -15170,27 +15307,24 @@ msgstr "" #: .\leave\templates\leave\leave_request_view.html:15 #: .\leave\templates\leave\user_leave\user-leave.html:23 #: .\leave\templates\leave\user_leave\user_leave.html:39 +#: .\report\templates\report\leave_report.html:163 msgid "Total Leave Days" msgstr "" #: .\employee\templates\leave-tab.html:181 -#: .\employee\templates\tabs\leave-tab.html:204 +#: .\employee\templates\tabs\leave-tab.html:204 .\leave\models.py:1172 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_single_view.html:104 msgid "Requested days" msgstr "" #: .\employee\templates\leave-tab.html:269 #: .\leave\templates\leave\leave_request\filter_leave_requests.html:8 -#: .\leave\templates\leave\leave_request\leave_request_form.html:19 #: .\leave\templates\leave\leave_request\leave_requests_export_filter.html:47 #: .\leave\templates\leave\leave_request\request_update_form.html:4 -#: .\leave\templates\leave\request_view.html:43 -#: .\leave\templates\leave\user_leave\user_leave_view.html:72 -#: .\leave\templates\leave\user_leave\user_request_form.html:19 #: .\leave\templates\leave\user_leave\user_request_view.html:104 -#: .\leave\templates\leave\user_leave\user_request_view.html:352 +#: .\leave\templates\leave\user_leave\user_request_view.html:336 #: .\leave\templates\leave\user_leave_view.html:65 -#: .\leave\templates\leave\user_request_view.html:43 +#: .\report\templates\report\leave_report.html:40 msgid "Leave Request" msgstr "" @@ -15216,83 +15350,91 @@ msgstr "Reporting Manager" #: .\employee\templates\payroll-tab.html:16 #: .\employee\templates\tabs\payroll-tab.html:15 -#: .\payroll\models\models.py:1351 +#: .\payroll\models\models.py:1335 #: .\payroll\templates\payroll\dashboard.html:38 #: .\payroll\templates\payroll\payslip\generate_payslip_list.html:18 #: .\payroll\templates\payroll\payslip\group_payslips.html:26 #: .\payroll\templates\payroll\payslip\payslips_quick_filter.html:50 #: .\payroll\templates\payroll\payslip\view_payslips.html:186 -#: .\payroll\views\component_views.py:1108 -#: .\payroll\views\component_views.py:1929 .\payroll\views\views.py:69 +#: .\payroll\views\component_views.py:1101 +#: .\payroll\views\component_views.py:1922 .\payroll\views\views.py:69 msgid "Review Ongoing" msgstr "" #: .\employee\templates\payroll-tab.html:20 #: .\employee\templates\tabs\payroll-tab.html:19 -#: .\payroll\models\models.py:1352 +#: .\payroll\models\models.py:1336 #: .\payroll\templates\payroll\dashboard.html:27 #: .\payroll\templates\payroll\payslip\generate_payslip_list.html:19 #: .\payroll\templates\payroll\payslip\group_payslips.html:27 #: .\payroll\templates\payroll\payslip\payslips_quick_filter.html:61 #: .\payroll\templates\payroll\payslip\view_payslips.html:188 -#: .\payroll\views\component_views.py:1109 -#: .\payroll\views\component_views.py:1930 .\payroll\views\views.py:70 +#: .\payroll\views\component_views.py:1102 +#: .\payroll\views\component_views.py:1923 .\payroll\views\views.py:70 msgid "Confirmed" msgstr "" #: .\employee\templates\payroll-tab.html:24 -#: .\employee\templates\tabs\payroll-tab.html:23 .\leave\models.py:122 +#: .\employee\templates\tabs\payroll-tab.html:23 .\leave\models.py:116 #: .\leave\templates\leave\leave_type\leave_type_view.html:68 -#: .\payroll\models\models.py:1353 +#: .\payroll\models\models.py:1337 #: .\payroll\templates\payroll\dashboard.html:15 #: .\payroll\templates\payroll\payslip\generate_payslip_list.html:20 #: .\payroll\templates\payroll\payslip\group_payslips.html:28 #: .\payroll\templates\payroll\payslip\payslips_quick_filter.html:72 #: .\payroll\templates\payroll\payslip\view_payslips.html:189 -#: .\payroll\views\component_views.py:1110 -#: .\payroll\views\component_views.py:1931 .\payroll\views\views.py:71 +#: .\payroll\views\component_views.py:1103 +#: .\payroll\views\component_views.py:1924 .\payroll\views\views.py:71 msgid "Paid" msgstr "" +#: .\employee\templates\payroll-tab.html:33 +#: .\leave\templates\leave\dashboard\leave_request_approve.html:8 +#: .\pms\forms.py:677 .\pms\forms.py:1240 +#: .\pms\templates\okr\key_result\key_result_creation.html:93 +#: .\pms\templates\period\period_view.html:18 +msgid "Period" +msgstr "" + #: .\employee\templates\payroll-tab.html:35 -#: .\employee\templates\tabs\payroll-tab.html:35 .\payroll\filters.py:391 -#: .\payroll\forms\component_forms.py:492 .\payroll\models\models.py:86 -#: .\payroll\models\models.py:1062 .\payroll\models\models.py:1067 -#: .\payroll\models\models.py:1155 +#: .\employee\templates\tabs\payroll-tab.html:35 .\payroll\filters.py:462 +#: .\payroll\forms\component_forms.py:502 .\payroll\models\models.py:84 +#: .\payroll\models\models.py:1053 .\payroll\models\models.py:1058 +#: .\payroll\models\models.py:1146 #: .\payroll\templates\payroll\payslip\generate_payslip_list.html:44 #: .\payroll\templates\payroll\payslip\group_by.html:88 #: .\payroll\templates\payroll\payslip\group_payslips.html:50 -#: .\payroll\templates\payroll\payslip\payslip_table.html:85 -#: .\payroll\templates\payroll\payslip\payslip_table.html:89 +#: .\payroll\templates\payroll\payslip\payslip_table.html:62 +#: .\payroll\templates\payroll\payslip\payslip_table.html:64 msgid "Gross Pay" msgstr "" #: .\employee\templates\payroll-tab.html:36 #: .\employee\templates\tabs\allowance_deduction-tab.html:157 #: .\employee\templates\tabs\payroll-tab.html:36 -#: .\payroll\forms\component_forms.py:187 -#: .\payroll\forms\component_forms.py:493 -#: .\payroll\forms\component_forms.py:627 +#: .\payroll\forms\component_forms.py:192 +#: .\payroll\forms\component_forms.py:503 +#: .\payroll\forms\component_forms.py:637 #: .\payroll\templates\payroll\dashboard\contribution.html:8 #: .\payroll\templates\payroll\deduction\filter_deduction.html:6 #: .\payroll\templates\payroll\deduction\list_deduction.html:38 #: .\payroll\templates\payroll\payslip\group_by.html:89 #: .\payroll\templates\payroll\payslip\group_payslips.html:51 #: .\payroll\templates\payroll\payslip\payslip_pdf.html:319 -#: .\payroll\templates\payroll\payslip\payslip_table.html:90 -#: .\payroll\templates\payroll\payslip\payslip_table.html:94 +#: .\payroll\templates\payroll\payslip\payslip_table.html:65 +#: .\payroll\templates\payroll\payslip\payslip_table.html:67 msgid "Deduction" msgstr "" #: .\employee\templates\payroll-tab.html:37 -#: .\employee\templates\tabs\payroll-tab.html:37 .\payroll\filters.py:392 -#: .\payroll\forms\component_forms.py:494 .\payroll\models\models.py:1069 -#: .\payroll\models\models.py:1156 +#: .\employee\templates\tabs\payroll-tab.html:37 .\payroll\filters.py:463 +#: .\payroll\forms\component_forms.py:504 .\payroll\models\models.py:1060 +#: .\payroll\models\models.py:1147 #: .\payroll\templates\payroll\payslip\generate_payslip_list.html:46 #: .\payroll\templates\payroll\payslip\group_by.html:90 #: .\payroll\templates\payroll\payslip\group_payslips.html:52 -#: .\payroll\templates\payroll\payslip\payslip_table.html:95 -#: .\payroll\templates\payroll\payslip\payslip_table.html:99 +#: .\payroll\templates\payroll\payslip\payslip_table.html:68 +#: .\payroll\templates\payroll\payslip\payslip_table.html:70 msgid "Net Pay" msgstr "" @@ -15304,6 +15446,16 @@ msgstr "" msgid "Due In" msgstr "" +#: .\employee\templates\performance-tab.html:34 +#: .\employee\templates\tabs\performance-tab.html:35 +#: .\pms\templates\dashboard\feedback_answer.html:40 +#: .\pms\templates\dashboard\feedback_answer.html:41 +#: .\pms\templates\feedback\feedback_list.html:158 +#: .\pms\templates\feedback\feedback_list.html:316 +#: .\pms\templates\feedback\feedback_overview.html:26 +msgid "Answer" +msgstr "" + #: .\employee\templates\performance-tab.html:39 #: .\employee\templates\tabs\performance-tab.html:40 #: .\pms\templates\feedback\feedback_list.html:159 @@ -15318,14 +15470,14 @@ msgid "Personal Information" msgstr "" #: .\employee\templates\personal-tab.html:115 -#: .\employee\templates\tabs\personal_tab.html:104 .\onboarding\forms.py:419 +#: .\employee\templates\tabs\personal_tab.html:104 .\onboarding\forms.py:346 #: .\onboarding\templates\onboarding\employee_creation.html:163 msgid "Emergency Contact Name" msgstr "" #: .\employee\templates\personal-tab.html:228 #: .\employee\templates\tabs\personal_tab.html:234 -#: .\payroll\models\models.py:127 +#: .\payroll\models\models.py:125 msgid "Salary" msgstr "" @@ -15403,7 +15555,6 @@ msgid "Select the company." msgstr "Company" #: .\employee\templates\tabs\allowance_deduction-tab.html:24 -#: .\payroll\templates\payroll\allowance\allowance_empty.html:5 #: .\payroll\templates\payroll\allowance\view_allowance.html:17 #: .\payroll\templates\payroll\bonus\form.html:4 #: .\payroll\templates\payroll\payslip\individual_payslip_summery.html:82 @@ -15412,7 +15563,6 @@ msgid "Allowances" msgstr "" #: .\employee\templates\tabs\allowance_deduction-tab.html:40 -#: .\payroll\templates\payroll\deduction\deduction_empty.html:6 #: .\payroll\templates\payroll\deduction\view_deduction.html:18 #: .\payroll\templates\payroll\payslip\generate_payslip_list.html:45 #: .\payroll\templates\payroll\payslip\individual_payslip_summery.html:133 @@ -15421,7 +15571,7 @@ msgid "Deductions" msgstr "" #: .\employee\templates\tabs\allowance_deduction-tab.html:55 -#: .\payroll\forms\component_forms.py:52 .\payroll\models\models.py:961 +#: .\payroll\forms\component_forms.py:52 .\payroll\models\models.py:959 #: .\payroll\templates\payroll\allowance\filter_allowance.html:8 #: .\payroll\templates\payroll\allowance\list_allowance.html:39 #: .\payroll\templates\payroll\payslip\payslip_pdf.html:281 @@ -15465,7 +15615,7 @@ msgstr "" #: .\employee\templates\tabs\allowance_deduction-tab.html:64 #: .\employee\templates\tabs\allowance_deduction-tab.html:165 -#: .\payroll\models\models.py:1482 +#: .\payroll\models\models.py:1466 #: .\payroll\templates\payroll\allowance\card_allowance.html:32 #: .\payroll\templates\payroll\allowance\list_allowance.html:53 #: .\payroll\templates\payroll\allowance\list_allowance.html:56 @@ -15627,8 +15777,8 @@ msgstr "" msgid "bonus points for " msgstr "" -#: .\employee\templates\tabs\contract-tab.html:14 -#: .\payroll\models\models.py:160 +#: .\employee\templates\tabs\contract-tab.html:14 .\payroll\forms\forms.py:30 +#: .\payroll\models\models.py:158 #: .\payroll\templates\payroll\contract\contract_export_filter.html:40 #: .\payroll\templates\payroll\contract\contract_list.html:44 #: .\payroll\templates\payroll\contract\filter_contract.html:6 @@ -15637,7 +15787,7 @@ msgid "Contract" msgstr "" #: .\employee\templates\tabs\contract-tab.html:17 -#: .\payroll\models\models.py:176 .\payroll\models\models.py:684 +#: .\payroll\models\models.py:174 .\payroll\models\models.py:682 #: .\payroll\templates\payroll\contract\contract_export_filter.html:59 #: .\payroll\templates\payroll\contract\contract_list.html:57 #: .\payroll\templates\payroll\contract\contract_list.html:59 @@ -15648,7 +15798,7 @@ msgid "Wage Type" msgstr "" #: .\employee\templates\tabs\contract-tab.html:19 -#: .\payroll\models\models.py:192 +#: .\payroll\models\models.py:190 #: .\payroll\templates\payroll\contract\contract_export_filter.html:65 #: .\payroll\templates\payroll\contract\contract_list.html:64 #: .\payroll\templates\payroll\contract\contract_single_view.html:134 @@ -15656,8 +15806,7 @@ msgstr "" #: .\payroll\templates\payroll\contract\group_by.html:54 #: .\payroll\templates\payroll\tax\filing_status_creation.html:16 #: .\payroll\templates\payroll\tax\filing_status_edit.html:19 -#: .\payroll\templates\payroll\tax\filing_status_empty.html:8 -#: .\payroll\templates\payroll\tax\filing_status_view.html:7 +#: .\payroll\templates\payroll\tax\filing_status_view.html:6 #: .\payroll\templates\payroll\tax\taxbracket.html:5 msgid "Filing Status" msgstr "" @@ -15678,7 +15827,7 @@ msgid "Title needs to be more than 3 letters" msgstr "" #: .\employee\templates\tabs\document_tab.html:84 -#: .\horilla_documents\models.py:77 +#: .\horilla_documents\models.py:95 msgid "Issue Date" msgstr "" @@ -15706,21 +15855,17 @@ msgstr "" #: .\employee\templates\tabs\history.html:72 #: .\horilla_audit\templates\horilla_audit\history_tracking.html:126 +#: .\horilla_views\templates\generic\horilla_history_view.html:86 msgid "No history found." msgstr "" -#: .\employee\templates\tabs\htmx\document_form.html:3 -#: .\recruitment\templates\candidate\document_form.html:4 -msgid "Upload File" -msgstr "" - #: .\employee\templates\tabs\htmx\document_form.html:66 #: .\recruitment\templates\candidate\document_form.html:50 msgid "Upload " msgstr "" #: .\employee\templates\tabs\htmx\document_form.html:67 -#: .\horillavenv\Lib\site-packages\click\types.py:826 +#: .\horillavenv\Lib\site-packages\click\types.py:822 #: .\recruitment\templates\candidate\document_form.html:53 msgid "file" msgstr "" @@ -15734,8 +15879,8 @@ msgstr "" #: .\leave\templates\leave\compensatory_leave\compensatory_leave_reject_form..html:29 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_reject_form.html:30 #: .\leave\templates\leave\leave_request\cancel_form.html:15 -#: .\leave\templates\leave\leave_request\request_view.html:249 -#: .\recruitment\models.py:885 +#: .\leave\templates\leave\leave_request\request_view.html:243 +#: .\recruitment\models.py:874 #: .\recruitment\templates\candidate\reject_form.html:13 #: .\recruitment\templates\skill_zone\skill_zone_list.html:103 msgid "Reason" @@ -15747,7 +15892,7 @@ msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:163 #: .\payroll\templates\payroll\payslip\group_payslips.html:119 #: .\payroll\templates\payroll\payslip\individual_payslip.html:16 -#: .\payroll\templates\payroll\payslip\payslip_table.html:167 +#: .\payroll\templates\payroll\payslip\payslip_table.html:134 #: .\recruitment\templates\candidate\view_file.html:19 msgid "Download" msgstr "" @@ -15843,6 +15988,7 @@ msgid "Add notes" msgstr "Assigned Leaves" #: .\employee\templates\tabs\note_tab.html:161 +#: .\offboarding\templates\offboarding\note\view_notes.html:94 msgid "No notes have been added for this employee" msgstr "" @@ -15884,8 +16030,10 @@ msgstr "" #: .\employee\templates\tabs\personal_tab.html:357 #: .\employee\templates\tabs\personal_tab.html:366 #: .\employee\templates\tabs\personal_tab.html:375 -#: .\payroll\models\models.py:153 -#: .\recruitment\templates\candidate\interview_list.html:116 +#: .\payroll\models\models.py:151 +#: .\pms\templates\feedback\question_template\question_template_list.html:43 +#: .\project\templates\task\new\task_list_view.html:159 +#: .\recruitment\templates\candidate\interview_list.html:110 msgid "None" msgstr "" @@ -15914,7 +16062,7 @@ msgstr "" #: .\employee\templates\tabs\scheduled_interview.html:74 #: .\horillavenv\Lib\site-packages\auditlog\models.py:334 -#: .\recruitment\templates\survey\template_accordion.html:107 +#: .\recruitment\templates\survey\template_accordion.html:112 msgid "delete" msgstr "" @@ -15931,10 +16079,10 @@ msgid "Time" msgstr "" #: .\employee\templates\tabs\scheduled_interview.html:115 -#: .\recruitment\models.py:948 +#: .\recruitment\models.py:942 #: .\recruitment\templates\candidate\candidate_interview_view.html:102 #: .\recruitment\templates\candidate\candidate_self_tracking.html:511 -#: .\recruitment\templates\candidate\interview_list.html:40 +#: .\recruitment\templates\candidate\interview_list.html:41 #: .\recruitment\templates\candidate\interview_list.html:42 #: .\recruitment\templates\candidate\interview_nav.html:67 #, fuzzy @@ -15945,14 +16093,14 @@ msgstr "Leave Types" #: .\employee\templates\tabs\scheduled_interview.html:133 #: .\recruitment\templates\candidate\candidate_interview_view.html:122 #: .\recruitment\templates\candidate\candidate_self_tracking.html:533 -#: .\recruitment\templates\candidate\interview_list.html:123 +#: .\recruitment\templates\candidate\interview_list.html:117 msgid "Interview Completed" msgstr "" #: .\employee\templates\tabs\scheduled_interview.html:140 #: .\recruitment\templates\candidate\candidate_interview_view.html:131 #: .\recruitment\templates\candidate\candidate_self_tracking.html:542 -#: .\recruitment\templates\candidate\interview_list.html:128 +#: .\recruitment\templates\candidate\interview_list.html:122 #, fuzzy #| msgid "type-view" msgid "Expired Interview" @@ -15961,7 +16109,7 @@ msgstr "Leave Types" #: .\employee\templates\tabs\scheduled_interview.html:145 #: .\recruitment\templates\candidate\candidate_interview_view.html:140 #: .\recruitment\templates\candidate\candidate_self_tracking.html:551 -#: .\recruitment\templates\candidate\interview_list.html:133 +#: .\recruitment\templates\candidate\interview_list.html:127 #, fuzzy #| msgid "type-view" msgid "Upcoming Interview" @@ -15970,7 +16118,7 @@ msgstr "Leave Types" #: .\employee\templates\tabs\scheduled_interview.html:150 #: .\recruitment\templates\candidate\candidate_interview_view.html:149 #: .\recruitment\templates\candidate\candidate_self_tracking.html:560 -#: .\recruitment\templates\candidate\interview_list.html:138 +#: .\recruitment\templates\candidate\interview_list.html:132 #, fuzzy #| msgid "type-view" msgid "Interview Today" @@ -16059,10 +16207,6 @@ msgid "No Shift request has been created." msgstr "" #: .\employee\templates\tabs\shift-tab.html:1085 -msgid "Work type Request" -msgstr "" - -#: .\employee\templates\tabs\shift-tab.html:1115 msgid "Update Shift Request" msgstr "" @@ -16072,384 +16216,430 @@ msgstr "" msgid "Update Note" msgstr "" -#: .\employee\views.py:252 .\employee\views.py:940 +#: .\employee\views.py:255 .\employee\views.py:972 msgid "Profile updated." msgstr "" -#: .\employee\views.py:260 +#: .\employee\views.py:263 msgid "Bank details updated." msgstr "" -#: .\employee\views.py:521 .\recruitment\views\views.py:3254 +#: .\employee\views.py:524 .\recruitment\views\views.py:3293 #, fuzzy #| msgid "shift-request-view" msgid "Document request created successfully" msgstr "Shift Requests" -#: .\employee\views.py:624 .\recruitment\views\views.py:3284 +#: .\employee\views.py:627 .\recruitment\views\views.py:3323 msgid "Document created successfully." msgstr "" -#: .\employee\views.py:649 +#: .\employee\views.py:652 #, fuzzy #| msgid "shift-request-view" msgid "Document title updated successfully" msgstr "Shift Requests" -#: .\employee\views.py:651 +#: .\employee\views.py:654 #, fuzzy #| msgid "user-request-view" msgid "Invalid request" msgstr "My Leave Requests" -#: .\employee\views.py:699 .\recruitment\views\views.py:3343 +#: .\employee\views.py:702 .\recruitment\views\views.py:3382 #, fuzzy #| msgid "employee" msgid "Document not found" msgstr "Employee" -#: .\employee\views.py:701 .\recruitment\views\views.py:3346 +#: .\employee\views.py:704 .\recruitment\views\views.py:3385 msgid "You cannot delete this document." msgstr "" -#: .\employee\views.py:724 .\recruitment\views\views.py:3377 +#: .\employee\views.py:727 .\recruitment\views\views.py:3416 msgid "Document uploaded successfully" msgstr "" -#: .\employee\views.py:826 .\recruitment\views\views.py:3439 +#: .\employee\views.py:829 .\recruitment\views\views.py:3478 #, fuzzy #| msgid "shift-request-view" msgid "Document request approved" msgstr "Shift Requests" -#: .\employee\views.py:828 .\employee\views.py:859 -#: .\recruitment\views\views.py:3441 .\recruitment\views\views.py:3473 +#: .\employee\views.py:831 .\employee\views.py:862 +#: .\recruitment\views\views.py:3480 .\recruitment\views\views.py:3512 msgid "No document uploaded" msgstr "" -#: .\employee\views.py:855 .\employee\views.py:905 -#: .\recruitment\views\views.py:3469 +#: .\employee\views.py:858 .\recruitment\views\views.py:3508 msgid "Document request rejected" msgstr "" -#: .\employee\views.py:922 +#: .\employee\views.py:932 +#, fuzzy +#| msgid "shift-request-view" +msgid "{} Document request rejected" +msgstr "Shift Requests" + +#: .\employee\views.py:954 msgid "Bank details updated" msgstr "" -#: .\employee\views.py:1180 +#: .\employee\views.py:1208 msgid "Bank Country" msgstr "" -#: .\employee\views.py:1182 +#: .\employee\views.py:1210 msgid "Bank State" msgstr "" -#: .\employee\views.py:1226 +#: .\employee\views.py:1254 msgid "There are no employees selected for bulk update." msgstr "" -#: .\employee\views.py:1286 +#: .\employee\views.py:1314 msgid "{} employees information updated successfully" msgstr "" -#: .\employee\views.py:1299 .\employee\views.py:1303 +#: .\employee\views.py:1327 .\employee\views.py:1331 #, fuzzy #| msgid "employee" msgid "Employee not found" msgstr "Employee" -#: .\employee\views.py:1307 +#: .\employee\views.py:1335 msgid "blocked" msgstr "" -#: .\employee\views.py:1307 +#: .\employee\views.py:1335 msgid "unblocked" msgstr "" -#: .\employee\views.py:1311 +#: .\employee\views.py:1339 #, python-brace-format msgid "{employee}'s account {action_message} successfully!" msgstr "" -#: .\employee\views.py:1318 +#: .\employee\views.py:1346 #, python-brace-format msgid "{employee} is a superuser and cannot be blocked." msgstr "" -#: .\employee\views.py:1388 +#: .\employee\views.py:1432 msgid "Employee personal information updated." msgstr "" -#: .\employee\views.py:1413 +#: .\employee\views.py:1457 msgid "Employee work information updated." msgstr "" -#: .\employee\views.py:1430 +#: .\employee\views.py:1474 msgid "Employee bank details updated." msgstr "" -#: .\employee\views.py:1459 .\employee\views.py:1481 +#: .\employee\views.py:1503 .\employee\views.py:1525 msgid "Profile image updated." msgstr "" -#: .\employee\views.py:1461 +#: .\employee\views.py:1505 msgid "No image chosen." msgstr "" -#: .\employee\views.py:1501 .\employee\views.py:1532 +#: .\employee\views.py:1545 .\employee\views.py:1576 msgid "No profile image to remove." msgstr "" -#: .\employee\views.py:1514 .\employee\views.py:1546 -#: .\recruitment\views\views.py:1734 +#: .\employee\views.py:1558 .\employee\views.py:1590 +#: .\recruitment\views\views.py:1761 msgid "Profile image removed." msgstr "" -#: .\employee\views.py:1568 +#: .\employee\views.py:1612 msgid "New Employee Added." msgstr "" -#: .\employee\views.py:1838 +#: .\employee\views.py:1882 msgid "Employee updated." msgstr "" -#: .\employee\views.py:1870 +#: .\employee\views.py:1914 msgid "Employee deleted" msgstr "" -#: .\employee\views.py:1879 +#: .\employee\views.py:1923 msgid "- {}." msgstr "" -#: .\employee\views.py:1906 -#, python-format -msgid "%(employee)s deleted." +#: .\employee\views.py:1938 +msgid "No IDs provided." msgstr "" -#: .\employee\views.py:1912 +#: .\employee\views.py:1956 #, python-format msgid "You cannot delete %(employee)s." msgstr "" -#: .\employee\views.py:1941 .\employee\views.py:1981 +#: .\employee\views.py:1961 +#, fuzzy, python-format +#| msgid "onboarding" +msgid "%(deleted_count)s employees deleted." +msgstr "Onboarding" + +#: .\employee\views.py:1990 .\employee\views.py:2030 msgid "You can't archive the last superuser." msgstr "" -#: .\employee\views.py:1953 +#: .\employee\views.py:2002 msgid "Related data found for {}." msgstr "" -#: .\employee\views.py:1988 .\employee\views.py:2127 +#: .\employee\views.py:2037 .\employee\views.py:2176 msgid "Employee archived" msgstr "" -#: .\employee\views.py:2006 .\employee\views.py:2117 +#: .\employee\views.py:2055 .\employee\views.py:2166 msgid "Can't Archive" msgstr "" -#: .\employee\views.py:2096 +#: .\employee\views.py:2145 #, fuzzy #| msgid "attendance" msgid "Designation changed." msgstr "Attendance" -#: .\employee\views.py:2101 +#: .\employee\views.py:2150 msgid "{} archived successfully" msgstr "" -#: .\employee\views.py:2115 +#: .\employee\views.py:2164 msgid "Change the Designations" msgstr "" -#: .\employee\views.py:2215 +#: .\employee\views.py:2264 msgid "Created work information" msgstr "" -#: .\employee\views.py:2244 +#: .\employee\views.py:2293 msgid "Work Information Updated Successfully" msgstr "" -#: .\employee\views.py:2274 +#: .\employee\views.py:2323 msgid "Bank Details Created Successfully" msgstr "" -#: .\employee\views.py:2301 +#: .\employee\views.py:2350 msgid "Bank Details Updated Successfully" msgstr "" -#: .\employee\views.py:2321 +#: .\employee\views.py:2370 msgid "Employee work information deleted" msgstr "" -#: .\employee\views.py:2323 +#: .\employee\views.py:2372 msgid "Employee work information not found." msgstr "" -#: .\employee\views.py:2325 +#: .\employee\views.py:2374 msgid "You cannot delete this Employee work information" msgstr "" -#: .\employee\views.py:2891 +#: .\employee\views.py:2525 +msgid "No file uploaded." +msgstr "" + +#: .\employee\views.py:2542 +msgid "Unsupported file format. Please upload a CSV or Excel file." +msgstr "" + +#: .\employee\views.py:2578 +msgid "Error Occured {}" +msgstr "" + +#: .\employee\views.py:2607 +msgid "" +"Failed to read file. Please ensure it is a valid CSV or Excel file. : {}" +msgstr "" + +#: .\employee\views.py:2845 msgid "In-Active" msgstr "" -#: .\employee\views.py:2959 +#: .\employee\views.py:2913 msgid "No Data Found..." msgstr "" -#: .\employee\views.py:3062 .\recruitment\views.py:625 -#: .\recruitment\views\views.py:936 .\recruitment\views\views.py:966 -#: .\recruitment\views\views.py:3511 +#: .\employee\views.py:3015 .\recruitment\views.py:625 +#: .\recruitment\views\views.py:963 .\recruitment\views\views.py:993 +#: .\recruitment\views\views.py:3550 msgid "Note added successfully.." msgstr "" -#: .\employee\views.py:3093 .\recruitment\views.py:670 -#: .\recruitment\views\views.py:991 .\recruitment\views\views.py:1014 +#: .\employee\views.py:3045 .\recruitment\views.py:670 +#: .\recruitment\views\views.py:1018 .\recruitment\views\views.py:1041 msgid "Note updated successfully..." msgstr "" -#: .\employee\views.py:3122 +#: .\employee\views.py:3074 #, fuzzy #| msgid "shift-request-view" msgid "Note deleted successfully." msgstr "Shift Requests" -#: .\employee\views.py:3254 +#: .\employee\views.py:3215 msgid "Added {} points to the bonus account" msgstr "" -#: .\employee\views.py:3381 .\employee\views.py:3393 .\employee\views.py:3428 -#: .\employee\views.py:3436 +#: .\employee\views.py:3342 .\employee\views.py:3354 .\employee\views.py:3389 +#: .\employee\views.py:3397 msgid "Not set" msgstr "" -#: .\employee\views.py:3420 +#: .\employee\views.py:3381 #, fuzzy #| msgid "type-view" msgid "My view" msgstr "Leave Types" -#: .\employee\views.py:3483 +#: .\employee\views.py:3444 msgid "Payroll app not installed" msgstr "" -#: .\helpdesk\models.py:127 -msgid "Deadline should be greater than today" -msgstr "" - -#: .\helpdesk\models.py:184 .\helpdesk\models.py:186 -#: .\horilla_backup\forms.py:56 .\horilla_backup\forms.py:60 -#: .\horilla_backup\forms.py:134 .\horilla_backup\forms.py:138 -#: .\horillavenv\Lib\site-packages\django\forms\fields.py:91 -#: .\leave\forms.py:1371 .\payroll\forms\component_forms.py:303 -#: .\payroll\forms\component_forms.py:306 .\pms\forms.py:235 -#: .\recruitment\models.py:572 -msgid "This field is required." -msgstr "" - -#: .\helpdesk\templates\department_managers\department_managers.html:7 +#: .\facedetection\views.py:152 #, fuzzy -#| msgid "department-update" -msgid "Department managers" -msgstr "Update" +#| msgid "shift-request-view" +msgid "facedetection config created successfully." +msgstr "Shift Requests" -#: .\helpdesk\templates\department_managers\department_managers.html:26 -msgid "There is no department managers at this moment." -msgstr "" - -#: .\helpdesk\templates\department_managers\department_managers.html:56 +#: .\geofencing\views.py:169 #, fuzzy -#| msgid "department-update" -msgid "Department Manager Update" -msgstr "Update" - -#: .\helpdesk\templates\department_managers\department_managers_form.html:7 -#, fuzzy -#| msgid "department-update" -msgid "Update Department Manager" -msgstr "Update" - -#: .\helpdesk\templates\department_managers\department_managers_form.html:9 -#, fuzzy -#| msgid "department-update" -msgid "Create Department Manager" -msgstr "Update" +#| msgid "shift-request-view" +msgid "Geofencing config created successfully." +msgstr "Shift Requests" +#: .\helpdesk\models.py:49 #: .\helpdesk\templates\department_managers\department_managers_view.html:7 -#: .\pms\templates\feedback\feedback_creation.html:57 -#: .\pms\templates\feedback\feedback_detailed_view.html:295 +#: .\pms\models.py:509 .\pms\templates\feedback\feedback_detailed_view.html:309 #: .\pms\templates\feedback\feedback_list_view.html:67 #: .\pms\templates\feedback\feedback_update.html:36 #: .\pms\templates\meetings\meetings_filter.html:19 +#: .\project\cbv\dashboard.py:74 +#: .\project\templates\cbv\tasks\task_filter.html:12 #: .\project\templates\dashboard\project_details.html:18 #: .\project\templates\project\new\filter_project.html:17 -#: .\project\templates\task\new\filter_task.html:15 #: .\project\templates\task_all\task_all_filter.html:11 #: .\recruitment\templates\dashboard\dashboard.html:376 +#: .\report\templates\report\pms_report.html:136 msgid "Manager" msgstr "" +#: .\helpdesk\models.py:66 +#, fuzzy +#| msgid "department-update" +msgid "Department Manager" +msgstr "Update" + +#: .\helpdesk\models.py:67 .\templates\settings.html:576 +#, fuzzy +#| msgid "department-update" +msgid "Department Managers" +msgstr "Update" + +#: .\helpdesk\models.py:89 +#, fuzzy +#| msgid "type-update" +msgid "Ticket Types" +msgstr "Update" + +#: .\helpdesk\models.py:108 +#, fuzzy +#| msgid "create-allowance" +msgid "Assigning Type" +msgstr "Creation" + +#: .\helpdesk\models.py:110 +msgid "Forward To" +msgstr "" + +#: .\helpdesk\models.py:129 +#, fuzzy +#| msgid "type-update" +msgid "Ticket" +msgstr "Update" + +#: .\helpdesk\models.py:130 +#: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:63 +#: .\helpdesk\templates\helpdesk\ticket\ticket_nav.html:5 +msgid "Tickets" +msgstr "" + +#: .\helpdesk\models.py:137 +msgid "Deadline should be greater than today" +msgstr "" + +#: .\helpdesk\models.py:194 .\helpdesk\models.py:196 +#: .\horilla_backup\forms.py:56 .\horilla_backup\forms.py:60 +#: .\horilla_backup\forms.py:134 .\horilla_backup\forms.py:138 +#: .\horillavenv\Lib\site-packages\django\forms\fields.py:91 +#: .\leave\forms.py:960 .\payroll\forms\component_forms.py:308 +#: .\payroll\forms\component_forms.py:311 .\pms\forms.py:238 +#: .\recruitment\models.py:573 +msgid "This field is required." +msgstr "" + +#: .\helpdesk\models.py:258 +#, fuzzy +#| msgid "type-update" +msgid "FAQ Category" +msgstr "Update" + +#: .\helpdesk\models.py:259 +#: .\helpdesk\templates\helpdesk\faq\faq_category_nav.html:5 +msgid "FAQ Categories" +msgstr "" + +#: .\helpdesk\models.py:276 +msgid "FAQ" +msgstr "" + +#: .\helpdesk\models.py:277 .\helpdesk\templates\helpdesk\faq\faq_nav.html:4 +msgid "FAQs" +msgstr "" + +#: .\helpdesk\templates\department_managers\department_managers.html:26 +msgid "There is no department managers at this moment." +msgstr "" + #: .\helpdesk\templates\department_managers\department_managers_view.html:40 msgid "Are you sure you want to remove this department manager?" msgstr "" -#: .\helpdesk\templates\helpdesk\faq\faq_category_create.html:15 -msgid "FAQ category Update" -msgstr "" - -#: .\helpdesk\templates\helpdesk\faq\faq_category_create.html:17 -msgid "FAQ category Create" -msgstr "" - -#: .\helpdesk\templates\helpdesk\faq\faq_category_list.html:28 +#: .\helpdesk\templates\helpdesk\faq\faq_category_list.html:46 msgid "Are you sure you want to delete this FAQ Category?" msgstr "" -#: .\helpdesk\templates\helpdesk\faq\faq_category_list.html:46 +#: .\helpdesk\templates\helpdesk\faq\faq_category_list.html:72 msgid "View FAQs" msgstr "" -#: .\helpdesk\templates\helpdesk\faq\faq_category_nav.html:5 -msgid "FAQ Categories" -msgstr "" - -#: .\helpdesk\templates\helpdesk\faq\faq_create.html:13 -#, fuzzy -#| msgid "type-update" -msgid "FAQ Update" -msgstr "Update" - -#: .\helpdesk\templates\helpdesk\faq\faq_create.html:15 -msgid "FAQ Create" +#: .\helpdesk\templates\helpdesk\faq\faq_category_list.html:81 +#: .\helpdesk\templates\helpdesk\faq\faq_list.html:55 +msgid "There are no FAQs at the moment." msgstr "" #: .\helpdesk\templates\helpdesk\faq\faq_list.html:27 msgid "Are you sure you want to delete this FAQ?" msgstr "" -#: .\helpdesk\templates\helpdesk\faq\faq_list_view.html:59 -#: .\helpdesk\templates\helpdesk\faq\faq_view.html:62 -msgid "There are no FAQs at the moment." -msgstr "" - -#: .\helpdesk\templates\helpdesk\faq\faq_list_view.html:81 +#: .\helpdesk\templates\helpdesk\faq\faq_list_view.html:25 #: .\helpdesk\templates\helpdesk\ticket\forms\add_tag.html:36 #: .\helpdesk\templates\helpdesk\ticket\forms\add_tag.html:481 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:659 -#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:56 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:557 +#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:44 msgid "Create Tag" msgstr "" -#: .\helpdesk\templates\helpdesk\faq\faq_nav.html:4 -msgid "FAQs" -msgstr "" - -#: .\helpdesk\templates\helpdesk\faq\faq_nav.html:53 -msgid "filter" -msgstr "" - #: .\helpdesk\templates\helpdesk\ticket\forms\change.html:84 -#: .\helpdesk\templates\helpdesk\ticket\forms\change_assinees.html:12 +#: .\helpdesk\templates\helpdesk\ticket\forms\change_assinees.html:8 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:251 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:253 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:622 @@ -16459,24 +16649,17 @@ msgstr "" #: .\pms\templates\okr\emp_objective\emp_objective_nav.html:92 #: .\pms\templates\okr\okr_list.html:138 .\pms\templates\okr\okr_list.html:140 #: .\pms\templates\okr\okr_list.html:261 .\pms\templates\okr\okr_nav.html:103 +#: .\report\templates\report\pms_report.html:56 #, fuzzy #| msgid "assign-view" msgid "Assignees" msgstr "Assigned Leaves" -#: .\helpdesk\templates\helpdesk\ticket\forms\change_raised_on.html:15 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:468 +#: .\helpdesk\templates\helpdesk\ticket\forms\change_raised_on.html:4 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:411 msgid "Responsibility" msgstr "" -#: .\helpdesk\templates\helpdesk\ticket\forms\change_raised_on.html:17 -msgid "Assigning type" -msgstr "" - -#: .\helpdesk\templates\helpdesk\ticket\forms\change_raised_on.html:19 -msgid "Raised on" -msgstr "" - #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:144 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:474 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:798 @@ -16525,8 +16708,8 @@ msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:865 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:880 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:895 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:420 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:434 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:356 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:373 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:104 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:119 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:134 @@ -16569,8 +16752,8 @@ msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:865 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:880 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:895 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:420 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:434 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:357 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:374 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:104 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:119 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:134 @@ -16613,8 +16796,8 @@ msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:865 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:880 #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:895 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:420 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:434 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:358 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:375 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:104 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:119 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:134 @@ -16647,7 +16830,6 @@ msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_card.html:421 #: .\helpdesk\templates\helpdesk\ticket\ticket_claim_requests.html:17 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:510 #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:510 #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:894 #, fuzzy @@ -16681,33 +16863,44 @@ msgstr "" msgid "There are no claim requests at the moment." msgstr "Shift Requests" -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:318 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:261 msgid "Created the ticket " msgstr "" -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:324 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:332 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:266 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:273 msgid "changed the ticket " msgstr "" -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:324 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:332 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:266 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:273 msgid " from" msgstr "" -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:389 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:267 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:274 +#: .\leave\templates\leave\dashboard\leave_request_approve.html:28 +#: .\payroll\templates\payroll\payslip\individual_payslip.html:47 +#: .\payroll\templates\payroll\payslip\individual_pdf.html:97 +#: .\payroll\templates\payroll\payslip\payslip_pdf.html:244 +#: .\payroll\templates\payroll\payslip\test_pdf.html:244 +#: .\pms\templates\okr\objective_detailed_view_activity.html:103 +msgid "to" +msgstr "" + +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:325 msgid "Ticket Details" msgstr "" -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:394 -msgid "Ticket Info" +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:330 +msgid "Ticket Info 123" msgstr "" -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:399 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:335 msgid "Ticket ID:" msgstr "" -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:403 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:339 #: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:75 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:44 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:374 @@ -16718,19 +16911,19 @@ msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:353 #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:746 #: .\helpdesk\templates\helpdesk\ticket\ticket_list.html:748 -#: .\pms\models.py:855 .\pms\templates\okr\group_by.html:110 +#: .\pms\models.py:883 .\pms\templates\okr\group_by.html:110 #: .\pms\templates\okr\group_by.html:431 #: .\pms\templates\okr\objective_list.html:90 #: .\pms\templates\okr\objective_list.html:309 msgid "Owner" msgstr "" -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:407 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:343 msgid "Created:" msgstr "" -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:415 -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:429 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:351 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:368 #: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:96 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:49 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:379 @@ -16742,15 +16935,15 @@ msgstr "" msgid "Priority" msgstr "" -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:440 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:383 msgid "Last activity:" msgstr "" -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:449 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:392 msgid "Tags:" msgstr "" -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:474 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:417 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:46 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:376 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:704 @@ -16761,7 +16954,7 @@ msgstr "" msgid "Forward to" msgstr "" -#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:500 +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:439 #: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:81 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:47 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:377 @@ -16772,10 +16965,11 @@ msgstr "" msgid "Assigned to" msgstr "" -#: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:63 -#: .\helpdesk\templates\helpdesk\ticket\ticket_nav.html:5 -msgid "Tickets" -msgstr "" +#: .\helpdesk\templates\helpdesk\ticket\ticket_detail.html:445 +#, fuzzy +#| msgid "attendance" +msgid " Claim Requests" +msgstr "Attendance" #: .\helpdesk\templates\helpdesk\ticket\ticket_filter.html:88 #, fuzzy @@ -16783,17 +16977,6 @@ msgstr "" msgid "Till date" msgstr "Update" -#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:4 -#: .\helpdesk\templates\helpdesk\ticket\ticket_nav.html:140 -msgid "Update Ticket" -msgstr "" - -#: .\helpdesk\templates\helpdesk\ticket\ticket_form.html:4 -#: .\helpdesk\templates\helpdesk\ticket\ticket_nav.html:120 -#: .\templates\quick_access.html:74 -msgid "Create Ticket" -msgstr "" - #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:42 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:372 #: .\helpdesk\templates\helpdesk\ticket\ticket_group.html:700 @@ -16822,6 +17005,15 @@ msgstr "" msgid "Un Archive" msgstr "" +#: .\helpdesk\templates\helpdesk\ticket\ticket_nav.html:120 +#: .\templates\quick_access.html:74 +msgid "Create Ticket" +msgstr "" + +#: .\helpdesk\templates\helpdesk\ticket\ticket_nav.html:140 +msgid "Update Ticket" +msgstr "" + #: .\helpdesk\templates\helpdesk\ticket\ticket_view.html:35 msgid "Selected Tickets" msgstr "" @@ -16831,16 +17023,19 @@ msgid "Resolved" msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_view.html:74 +#: .\project\cbv\projects.py:232 .\project\cbv\projects.py:430 #: .\project\templates\project\new\project_kanban_view.html:36 #: .\project\templates\project\new\project_list_view.html:38 msgid "On Hold" msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_view.html:85 +#: .\project\models.py:324 .\project\models.py:521 msgid "In Progress" msgstr "" #: .\helpdesk\templates\helpdesk\ticket\ticket_view.html:96 +#: .\project\cbv\projects.py:200 .\project\cbv\projects.py:398 #: .\project\templates\project\new\project_kanban_view.html:25 #: .\project\templates\project\new\project_list_view.html:27 msgid "New" @@ -16866,177 +17061,177 @@ msgstr "" msgid "All Tickets" msgstr "" -#: .\helpdesk\views.py:110 +#: .\helpdesk\views.py:109 msgid "The FAQ Category created successfully." msgstr "" -#: .\helpdesk\views.py:141 +#: .\helpdesk\views.py:140 msgid "The FAQ category updated successfully." msgstr "" -#: .\helpdesk\views.py:156 +#: .\helpdesk\views.py:155 msgid "The FAQ category has been deleted successfully." msgstr "" -#: .\helpdesk\views.py:159 +#: .\helpdesk\views.py:158 msgid "You cannot delete this FAQ category." msgstr "" -#: .\helpdesk\views.py:231 +#: .\helpdesk\views.py:230 msgid "The FAQ created successfully." msgstr "" -#: .\helpdesk\views.py:262 +#: .\helpdesk\views.py:261 msgid "The FAQ updated successfully." msgstr "" -#: .\helpdesk\views.py:367 +#: .\helpdesk\views.py:360 msgid "The FAQ \"{}\" has been deleted successfully." msgstr "" -#: .\helpdesk\views.py:371 +#: .\helpdesk\views.py:364 msgid "You cannot delete this FAQ." msgstr "" -#: .\helpdesk\views.py:469 +#: .\helpdesk\views.py:462 msgid "The Ticket created successfully." msgstr "" -#: .\helpdesk\views.py:528 .\helpdesk\views.py:1438 +#: .\helpdesk\views.py:521 .\helpdesk\views.py:1431 msgid "The Ticket updated successfully." msgstr "" -#: .\helpdesk\views.py:576 +#: .\helpdesk\views.py:569 msgid "The Ticket un-archived successfully." msgstr "" -#: .\helpdesk\views.py:578 +#: .\helpdesk\views.py:571 msgid "The Ticket archived successfully." msgstr "" -#: .\helpdesk\views.py:625 +#: .\helpdesk\views.py:618 msgid "The Ticket status updated successfully." msgstr "" -#: .\helpdesk\views.py:660 +#: .\helpdesk\views.py:653 msgid "You Don't have the permission." msgstr "" -#: .\helpdesk\views.py:713 .\helpdesk\views.py:1485 +#: .\helpdesk\views.py:706 .\helpdesk\views.py:1478 msgid "The Ticket \"{}\" has been deleted successfully." msgstr "" -#: .\helpdesk\views.py:716 +#: .\helpdesk\views.py:709 msgid "The ticket is not in the \"New\" status" msgstr "" -#: .\helpdesk\views.py:718 .\helpdesk\views.py:1488 +#: .\helpdesk\views.py:711 .\helpdesk\views.py:1481 msgid "You cannot delete this Ticket." msgstr "" -#: .\helpdesk\views.py:983 +#: .\helpdesk\views.py:976 msgid "The Ticket tag updated successfully." msgstr "" -#: .\helpdesk\views.py:1012 +#: .\helpdesk\views.py:1005 msgid "Responsibility updated for the Ticket" msgstr "" -#: .\helpdesk\views.py:1069 +#: .\helpdesk\views.py:1062 msgid "Assinees updated for the Ticket" msgstr "" -#: .\helpdesk\views.py:1126 +#: .\helpdesk\views.py:1119 msgid "success" msgstr "" -#: .\helpdesk\views.py:1129 +#: .\helpdesk\views.py:1122 msgid "Failed" msgstr "" -#: .\helpdesk\views.py:1181 +#: .\helpdesk\views.py:1174 #, fuzzy #| msgid "attendance" msgid "Document has been deleted." msgstr "Attendance" -#: .\helpdesk\views.py:1207 +#: .\helpdesk\views.py:1200 msgid "A new comment has been created." msgstr "" -#: .\helpdesk\views.py:1219 +#: .\helpdesk\views.py:1212 msgid "The comment updated successfully." msgstr "" -#: .\helpdesk\views.py:1222 +#: .\helpdesk\views.py:1215 msgid "The comment needs to be atleast 2 charactors." msgstr "" -#: .\helpdesk\views.py:1236 +#: .\helpdesk\views.py:1229 #, fuzzy #| msgid "shift-request-view" msgid "{}'s comment has been deleted successfully." msgstr "Shift Requests" -#: .\helpdesk\views.py:1306 +#: .\helpdesk\views.py:1299 #, fuzzy #| msgid "shift-request-view" msgid "Claim request approved successfully." msgstr "Shift Requests" -#: .\helpdesk\views.py:1359 +#: .\helpdesk\views.py:1352 #, fuzzy #| msgid "shift-request-view" msgid "Claim request rejected successfully." msgstr "Shift Requests" -#: .\helpdesk\views.py:1517 +#: .\helpdesk\views.py:1495 msgid "The department manager created successfully." msgstr "" -#: .\helpdesk\views.py:1535 +#: .\helpdesk\views.py:1513 msgid "The department manager updated successfully." msgstr "" -#: .\helpdesk\views.py:1549 +#: .\helpdesk\views.py:1527 msgid "The department manager has been deleted successfully" msgstr "" -#: .\helpdesk\views.py:1577 +#: .\helpdesk\views.py:1555 msgid "Priority updated successfully." msgstr "" -#: .\helpdesk\views.py:1629 +#: .\helpdesk\views.py:1607 msgid "Ticket type has been created successfully!" msgstr "" -#: .\helpdesk\views.py:1654 +#: .\helpdesk\views.py:1632 msgid "Ticket type has been updated successfully!" msgstr "" -#: .\helpdesk\views.py:1670 +#: .\helpdesk\views.py:1648 msgid "Ticket type has been deleted successfully!" msgstr "" -#: .\helpdesk\views.py:1672 +#: .\helpdesk\views.py:1650 #, fuzzy #| msgid "employee" msgid "Ticket type not found" msgstr "Employee" -#: .\horilla\decorators.py:317 +#: .\horilla\decorators.py:344 msgid "Please enable the Track Late Come & Early Out from settings" msgstr "" -#: .\horilla\decorators.py:327 +#: .\horilla\decorators.py:354 msgid "Please activate the biometric attendance feature in the settings menu." msgstr "" -#: .\horilla\models.py:48 .\payroll\models\models.py:1916 +#: .\horilla\models.py:48 .\payroll\models\models.py:1796 msgid "Created At" msgstr "" -#: .\horilla\models.py:56 .\leave\models.py:592 +#: .\horilla\models.py:56 .\leave\models.py:633 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:40 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:194 #: .\leave\templates\leave\compensatory_leave\compensatory_leave_view.html:103 @@ -17090,10 +17285,23 @@ msgstr "Update" msgid "Why this change?" msgstr "" -#: .\horilla_automations\forms.py:43 +#: .\horilla_automations\forms.py:47 msgid "The employees selected here will receive the email as Cc." msgstr "" +#: .\horilla_automations\templates\horilla_automations\load_automation.html:3 +#, fuzzy +#| msgid "mail-automations" +msgid "Load Automations" +msgstr "Mail Automations" + +#: .\horilla_automations\templates\horilla_automations\load_automation.html:49 +#: .\horilla_automations\templates\horilla_automations\load_automation.html:56 +#, fuzzy +#| msgid "configuration" +msgid "Notification" +msgstr "Configuration" + #: .\horilla_automations\templates\horilla_automations\mail_cc.html:9 #, fuzzy #| msgid "assign-view" @@ -17130,47 +17338,124 @@ msgstr "" msgid "Gdrive Backup Automation Removed Successfully." msgstr "" -#: .\horilla_documents\models.py:80 +#: .\horilla_documents\models.py:48 +msgid "Format" +msgstr "" + +#: .\horilla_documents\models.py:50 +msgid "Max size (In MB)" +msgstr "" + +#: .\horilla_documents\models.py:89 .\horilla_documents\models.py:112 +#: .\payroll\templates\payroll\contract\contract_single_view.html:144 +#: .\project\cbv\dashboard.py:80 .\project\cbv\tasks.py:422 +#: .\project\templates\cbv\tasks\task_document.html:3 +#: .\project\templates\dashboard\project_details.html:48 +#: .\project\templates\task\new\task_details.html:60 +#: .\project\templates\task\new\task_list_view.html:111 +msgid "Document" +msgstr "" + +#: .\horilla_documents\models.py:94 .\leave\models.py:619 +#: .\onboarding\templates\onboarding\candidate_filter.html:63 +#: .\recruitment\templates\candidate\export_filter.html:75 +#: .\recruitment\templates\candidate\filters.html:31 +#: .\recruitment\templates\pipeline\filters.html:123 +#: .\recruitment\templates\skill_zone\skill_zone_nav.html:102 +msgid "Reject Reason" +msgstr "" + +#: .\horilla_documents\models.py:98 msgid "Notify Before" msgstr "" -#: .\horilla_documents\models.py:82 +#: .\horilla_documents\models.py:101 msgid "Is Digital Asset" msgstr "" -#: .\horilla_documents\models.py:95 .\recruitment\models.py:1028 +#: .\horilla_documents\models.py:123 .\recruitment\models.py:1025 msgid "Title must be at least 3 characters" msgstr "" -#: .\horilla_documents\models.py:103 .\recruitment\models.py:1036 +#: .\horilla_documents\models.py:131 .\recruitment\models.py:1033 msgid "File size exceeds the limit" msgstr "" -#: .\horilla_documents\models.py:111 .\recruitment\models.py:1044 +#: .\horilla_documents\models.py:139 .\recruitment\models.py:1041 msgid "Please upload {} file only." msgstr "" -#: .\horilla_views\generic\cbv\views.py:153 +#: .\horilla_ldap\templates\ldap_settings.html:3 .\templates\settings.html:149 +#, fuzzy +#| msgid "configuration" +msgid "LDAP Configuration" +msgstr "Configuration" + +#: .\horilla_ldap\views.py:20 +#, fuzzy +#| msgid "shift-request-view" +msgid "Configuration updated successfully." +msgstr "Shift Requests" + +#: .\horilla_theme\models.py:18 +msgid "Background" +msgstr "" + +#: .\horilla_theme\models.py:25 +#: .\horillavenv\Lib\site-packages\django\db\models\fields\__init__.py:2373 +#: .\pms\models.py:445 .\recruitment\models.py:714 +msgid "Text" +msgstr "" + +#: .\horilla_theme\models.py:32 +#, fuzzy +#| msgid "create-allowance" +msgid "Active Text" +msgstr "Creation" + +#: .\horilla_theme\models.py:39 +msgid "Active Background" +msgstr "" + +#: .\horilla_theme\models.py:46 +msgid "Button" +msgstr "" + +#: .\horilla_theme\models.py:53 +msgid "Button Hover" +msgstr "" + +#: .\horilla_views\cbv_methods.py:222 +msgid "Feature is not enabled on the settings" +msgstr "" + +#: .\horilla_views\generic\cbv\views.py:184 #: .\horilla_views\templates\generic\group_by.html:54 -#: .\horilla_views\templates\generic\group_by_table.html:55 -#: .\horilla_views\templates\generic\horilla_tabs.html:34 +#: .\horilla_views\templates\generic\group_by_table.html:59 +#: .\horilla_views\templates\generic\horilla_tabs.html:38 #, fuzzy #| msgid "work-records" msgid "Records" msgstr "Work Records" -#: .\horilla_views\generic\cbv\views.py:179 +#: .\horilla_views\generic\cbv\views.py:209 #, fuzzy #| msgid "rotating-shift-update" msgid "Selected Records updated" msgstr "Update" -#: .\horilla_views\generic\cbv\views.py:192 +#: .\horilla_views\generic\cbv\views.py:223 #, fuzzy #| msgid "candidates-view" msgid "No records selected" msgstr "Candidates" +#: .\horilla_views\templates\generic\components.html:26 +#, fuzzy +#| msgid "update-deduction" +msgid "Allocation" +msgstr "Update" + #: .\horilla_views\templates\generic\delete_confirmation.html:7 #, fuzzy #| msgid "configuration" @@ -17217,7 +17502,7 @@ msgstr "" msgid "Action Required" msgstr "" -#: .\horilla_views\templates\generic\export_fields_modal.html:41 +#: .\horilla_views\templates\generic\export_fields_modal.html:43 #, fuzzy #| msgid "recruitment" msgid "Select All Columns" @@ -17240,29 +17525,29 @@ msgid "Clear All" msgstr "" #: .\horilla_views\templates\generic\group_by.html:29 -#: .\horilla_views\templates\generic\group_by_table.html:30 +#: .\horilla_views\templates\generic\group_by_table.html:31 #: .\horilla_views\templates\generic\horilla_card.html:192 #: .\horilla_views\templates\generic\horilla_list.html:351 -#: .\horilla_views\templates\generic\horilla_list_table.html:359 +#: .\horilla_views\templates\generic\horilla_list_table.html:362 msgid "No Records found" msgstr "" #: .\horilla_views\templates\generic\group_by.html:31 -#: .\horilla_views\templates\generic\group_by_table.html:32 +#: .\horilla_views\templates\generic\group_by_table.html:33 #: .\horilla_views\templates\generic\horilla_card.html:194 #: .\horilla_views\templates\generic\horilla_list.html:353 -#: .\horilla_views\templates\generic\horilla_list_table.html:361 +#: .\horilla_views\templates\generic\horilla_list_table.html:364 msgid "No records found." msgstr "" -#: .\horilla_views\templates\generic\group_by_table.html:148 +#: .\horilla_views\templates\generic\group_by_table.html:152 #: .\horilla_views\templates\generic\horilla_list_table.html:136 #, fuzzy #| msgid "recruitment" msgid "Select Row" msgstr "Recruitment" -#: .\horilla_views\templates\generic\horilla_profile_view.html:196 +#: .\horilla_views\templates\generic\horilla_profile_view.html:205 msgid "E-mail" msgstr "" @@ -17272,13 +17557,13 @@ msgstr "" msgid "Unselect" msgstr "Recruitment" -#: .\horilla_views\templates\generic\quick_actions.html:158 +#: .\horilla_views\templates\generic\quick_actions.html:161 msgid "Show All" msgstr "" #: .\horilla_widgets\templates\horilla_widgets\multiselect_components\filter_tags.html:23 #: .\horilla_widgets\templates\horilla_widgets\multiselect_components\search.html:25 -#: .\onboarding\templates\onboarding\candidates.html:367 +#: .\onboarding\templates\onboarding\candidates.html:416 #: .\onboarding\templates\onboarding\group_by.html:347 #: .\recruitment\templates\candidate\candidate_list.html:477 #: .\recruitment\templates\candidate\group_by.html:470 @@ -17426,155 +17711,156 @@ msgstr "" msgid "Logged {repr:s}" msgstr "" -#: .\horillavenv\Lib\site-packages\click\_termui_impl.py:556 +#: .\horillavenv\Lib\site-packages\click\_termui_impl.py:518 #, python-brace-format msgid "{editor}: Editing failed" msgstr "" -#: .\horillavenv\Lib\site-packages\click\_termui_impl.py:560 +#: .\horillavenv\Lib\site-packages\click\_termui_impl.py:522 #, python-brace-format msgid "{editor}: Editing failed: {e}" msgstr "" -#: .\horillavenv\Lib\site-packages\click\core.py:1124 +#: .\horillavenv\Lib\site-packages\click\core.py:1120 msgid "Aborted!" msgstr "" -#: .\horillavenv\Lib\site-packages\click\core.py:1349 -#: .\horillavenv\Lib\site-packages\click\core.py:1379 +#: .\horillavenv\Lib\site-packages\click\core.py:1309 +#: .\horillavenv\Lib\site-packages\click\decorators.py:559 +msgid "Show this message and exit." +msgstr "" + +#: .\horillavenv\Lib\site-packages\click\core.py:1340 +#: .\horillavenv\Lib\site-packages\click\core.py:1370 #, python-brace-format msgid "(Deprecated) {text}" msgstr "" -#: .\horillavenv\Lib\site-packages\click\core.py:1422 +#: .\horillavenv\Lib\site-packages\click\core.py:1413 #, python-brace-format msgid "Got unexpected extra argument ({args})" msgid_plural "Got unexpected extra arguments ({args})" msgstr[0] "" msgstr[1] "" -#: .\horillavenv\Lib\site-packages\click\core.py:1438 +#: .\horillavenv\Lib\site-packages\click\core.py:1429 msgid "DeprecationWarning: The command {name!r} is deprecated." msgstr "" -#: .\horillavenv\Lib\site-packages\click\core.py:1645 +#: .\horillavenv\Lib\site-packages\click\core.py:1636 #, fuzzy #| msgid "recruitment" msgid "Commands" msgstr "Recruitment" -#: .\horillavenv\Lib\site-packages\click\core.py:1677 +#: .\horillavenv\Lib\site-packages\click\core.py:1668 msgid "Missing command." msgstr "" -#: .\horillavenv\Lib\site-packages\click\core.py:1755 +#: .\horillavenv\Lib\site-packages\click\core.py:1746 msgid "No such command {name!r}." msgstr "" -#: .\horillavenv\Lib\site-packages\click\core.py:2313 +#: .\horillavenv\Lib\site-packages\click\core.py:2310 msgid "Value must be an iterable." msgstr "" -#: .\horillavenv\Lib\site-packages\click\core.py:2334 +#: .\horillavenv\Lib\site-packages\click\core.py:2331 #, python-brace-format msgid "Takes {nargs} values but 1 was given." msgid_plural "Takes {nargs} values but {len} were given." msgstr[0] "" msgstr[1] "" -#: .\horillavenv\Lib\site-packages\click\core.py:2783 +#: .\horillavenv\Lib\site-packages\click\core.py:2778 #, python-brace-format msgid "env var: {var}" msgstr "" -#: .\horillavenv\Lib\site-packages\click\core.py:2813 +#: .\horillavenv\Lib\site-packages\click\core.py:2808 msgid "(dynamic)" msgstr "" -#: .\horillavenv\Lib\site-packages\click\core.py:2828 +#: .\horillavenv\Lib\site-packages\click\core.py:2821 #, python-brace-format msgid "default: {default}" msgstr "" -#: .\horillavenv\Lib\site-packages\click\core.py:2841 +#: .\horillavenv\Lib\site-packages\click\core.py:2834 #, fuzzy #| msgid "requested" msgid "required" msgstr "Requested" -#: .\horillavenv\Lib\site-packages\click\decorators.py:457 +#: .\horillavenv\Lib\site-packages\click\decorators.py:465 #, python-format msgid "%(prog)s, version %(version)s" msgstr "" -#: .\horillavenv\Lib\site-packages\click\decorators.py:520 +#: .\horillavenv\Lib\site-packages\click\decorators.py:528 msgid "Show the version and exit." msgstr "" -#: .\horillavenv\Lib\site-packages\click\decorators.py:541 -msgid "Show this message and exit." -msgstr "" - -#: .\horillavenv\Lib\site-packages\click\exceptions.py:49 -#: .\horillavenv\Lib\site-packages\click\exceptions.py:88 +#: .\horillavenv\Lib\site-packages\click\exceptions.py:44 +#: .\horillavenv\Lib\site-packages\click\exceptions.py:80 #, python-brace-format msgid "Error: {message}" msgstr "" -#: .\horillavenv\Lib\site-packages\click\exceptions.py:80 +#: .\horillavenv\Lib\site-packages\click\exceptions.py:72 #, python-brace-format msgid "Try '{command} {option}' for help." msgstr "" -#: .\horillavenv\Lib\site-packages\click\exceptions.py:129 +#: .\horillavenv\Lib\site-packages\click\exceptions.py:121 #, python-brace-format msgid "Invalid value: {message}" msgstr "" -#: .\horillavenv\Lib\site-packages\click\exceptions.py:131 +#: .\horillavenv\Lib\site-packages\click\exceptions.py:123 #, python-brace-format msgid "Invalid value for {param_hint}: {message}" msgstr "" -#: .\horillavenv\Lib\site-packages\click\exceptions.py:187 +#: .\horillavenv\Lib\site-packages\click\exceptions.py:179 msgid "Missing argument" msgstr "" -#: .\horillavenv\Lib\site-packages\click\exceptions.py:189 +#: .\horillavenv\Lib\site-packages\click\exceptions.py:181 msgid "Missing option" msgstr "" -#: .\horillavenv\Lib\site-packages\click\exceptions.py:191 +#: .\horillavenv\Lib\site-packages\click\exceptions.py:183 msgid "Missing parameter" msgstr "" -#: .\horillavenv\Lib\site-packages\click\exceptions.py:193 +#: .\horillavenv\Lib\site-packages\click\exceptions.py:185 #, python-brace-format msgid "Missing {param_type}" msgstr "" -#: .\horillavenv\Lib\site-packages\click\exceptions.py:200 +#: .\horillavenv\Lib\site-packages\click\exceptions.py:192 #, python-brace-format msgid "Missing parameter: {param_name}" msgstr "" -#: .\horillavenv\Lib\site-packages\click\exceptions.py:220 +#: .\horillavenv\Lib\site-packages\click\exceptions.py:212 #, python-brace-format msgid "No such option: {name}" msgstr "" -#: .\horillavenv\Lib\site-packages\click\exceptions.py:232 +#: .\horillavenv\Lib\site-packages\click\exceptions.py:224 #, python-brace-format msgid "Did you mean {possibility}?" msgid_plural "(Possible options: {possibilities})" msgstr[0] "" msgstr[1] "" -#: .\horillavenv\Lib\site-packages\click\exceptions.py:270 +#: .\horillavenv\Lib\site-packages\click\exceptions.py:262 msgid "unknown error" msgstr "" -#: .\horillavenv\Lib\site-packages\click\exceptions.py:277 +#: .\horillavenv\Lib\site-packages\click\exceptions.py:269 msgid "Could not open file {filename!r}: {message}" msgstr "" @@ -17582,25 +17868,25 @@ msgstr "" msgid "Usage:" msgstr "" -#: .\horillavenv\Lib\site-packages\click\parser.py:233 +#: .\horillavenv\Lib\site-packages\click\parser.py:231 msgid "Argument {name!r} takes {nargs} values." msgstr "" -#: .\horillavenv\Lib\site-packages\click\parser.py:415 +#: .\horillavenv\Lib\site-packages\click\parser.py:413 msgid "Option {name!r} does not take a value." msgstr "" -#: .\horillavenv\Lib\site-packages\click\parser.py:476 +#: .\horillavenv\Lib\site-packages\click\parser.py:474 msgid "Option {name!r} requires an argument." msgid_plural "Option {name!r} requires {nargs} arguments." msgstr[0] "" msgstr[1] "" -#: .\horillavenv\Lib\site-packages\click\shell_completion.py:326 +#: .\horillavenv\Lib\site-packages\click\shell_completion.py:319 msgid "Shell completion is not supported for Bash versions older than 4.4." msgstr "" -#: .\horillavenv\Lib\site-packages\click\shell_completion.py:333 +#: .\horillavenv\Lib\site-packages\click\shell_completion.py:326 msgid "Couldn't detect Bash version, shell completion is not supported." msgstr "" @@ -17631,83 +17917,89 @@ msgstr "" msgid "Press any key to continue..." msgstr "" -#: .\horillavenv\Lib\site-packages\click\types.py:267 +#: .\horillavenv\Lib\site-packages\click\types.py:266 #, python-brace-format msgid "" "Choose from:\n" "\t{choices}" msgstr "" -#: .\horillavenv\Lib\site-packages\click\types.py:299 +#: .\horillavenv\Lib\site-packages\click\types.py:298 msgid "{value!r} is not {choice}." msgid_plural "{value!r} is not one of {choices}." msgstr[0] "" msgstr[1] "" -#: .\horillavenv\Lib\site-packages\click\types.py:393 +#: .\horillavenv\Lib\site-packages\click\types.py:392 msgid "{value!r} does not match the format {format}." msgid_plural "{value!r} does not match the formats {formats}." msgstr[0] "" msgstr[1] "" -#: .\horillavenv\Lib\site-packages\click\types.py:415 +#: .\horillavenv\Lib\site-packages\click\types.py:414 msgid "{value!r} is not a valid {number_type}." msgstr "" -#: .\horillavenv\Lib\site-packages\click\types.py:471 +#: .\horillavenv\Lib\site-packages\click\types.py:470 #, python-brace-format msgid "{value} is not in the range {range}." msgstr "" -#: .\horillavenv\Lib\site-packages\click\types.py:612 +#: .\horillavenv\Lib\site-packages\click\types.py:611 msgid "{value!r} is not a valid boolean." msgstr "" -#: .\horillavenv\Lib\site-packages\click\types.py:636 +#: .\horillavenv\Lib\site-packages\click\types.py:635 msgid "{value!r} is not a valid UUID." msgstr "" -#: .\horillavenv\Lib\site-packages\click\types.py:828 +#: .\horillavenv\Lib\site-packages\click\types.py:824 msgid "directory" msgstr "" -#: .\horillavenv\Lib\site-packages\click\types.py:830 +#: .\horillavenv\Lib\site-packages\click\types.py:826 msgid "path" msgstr "" -#: .\horillavenv\Lib\site-packages\click\types.py:881 +#: .\horillavenv\Lib\site-packages\click\types.py:877 #, fuzzy #| msgid "recruitment" msgid "{name} {filename!r} does not exist." msgstr "Recruitment" -#: .\horillavenv\Lib\site-packages\click\types.py:890 +#: .\horillavenv\Lib\site-packages\click\types.py:886 msgid "{name} {filename!r} is a file." msgstr "" -#: .\horillavenv\Lib\site-packages\click\types.py:898 -msgid "{name} {filename!r} is a directory." -msgstr "" +#: .\horillavenv\Lib\site-packages\click\types.py:894 +#, fuzzy, python-brace-format +#| msgid "recruitment" +msgid "{name} '{filename}' is a directory." +msgstr "Recruitment" -#: .\horillavenv\Lib\site-packages\click\types.py:907 +#: .\horillavenv\Lib\site-packages\click\types.py:903 msgid "{name} {filename!r} is not readable." msgstr "" -#: .\horillavenv\Lib\site-packages\click\types.py:916 +#: .\horillavenv\Lib\site-packages\click\types.py:912 msgid "{name} {filename!r} is not writable." msgstr "" -#: .\horillavenv\Lib\site-packages\click\types.py:925 +#: .\horillavenv\Lib\site-packages\click\types.py:921 msgid "{name} {filename!r} is not executable." msgstr "" -#: .\horillavenv\Lib\site-packages\click\types.py:992 +#: .\horillavenv\Lib\site-packages\click\types.py:988 #, python-brace-format msgid "{len_type} values are required, but {len_value} was given." msgid_plural "{len_type} values are required, but {len_value} were given." msgstr[0] "" msgstr[1] "" +#: .\horillavenv\Lib\site-packages\dbbackup\apps.py:16 +msgid "Backup and restore" +msgstr "" + #: .\horillavenv\Lib\site-packages\django\contrib\messages\apps.py:15 msgid "Messages" msgstr "" @@ -18002,12 +18294,13 @@ msgid "" msgstr "" #: .\horillavenv\Lib\site-packages\django\db\models\fields\__init__.py:1793 -#: .\pms\templates\okr\key_result\kr_card.html:38 +#: .\pms\templates\okr\key_result\kr_card.html:34 #: .\pms\templates\okr\key_result\kr_filter.html:27 -#: .\pms\templates\okr\key_result\kr_list.html:65 +#: .\pms\templates\okr\key_result\kr_list.html:60 #: .\pms\templates\okr\okr_list.html:141 .\pms\templates\okr\okr_list.html:143 #: .\pms\templates\okr\okr_list.html:444 .\pms\templates\okr\okr_list.html:446 #: .\pms\templates\okr\okr_nav.html:107 +#: .\report\templates\report\pms_report.html:60 #, fuzzy #| msgid "configuration" msgid "Duration" @@ -18086,11 +18379,6 @@ msgstr "" msgid "Slug (up to %(max_length)s)" msgstr "" -#: .\horillavenv\Lib\site-packages\django\db\models\fields\__init__.py:2373 -#: .\pms\models.py:434 .\recruitment\models.py:714 -msgid "Text" -msgstr "" - #: .\horillavenv\Lib\site-packages\django\db\models\fields\__init__.py:2448 #, python-format msgid "" @@ -18350,6 +18638,7 @@ msgstr "Update" #: .\horillavenv\Lib\site-packages\django\forms\widgets.py:794 #: .\recruitment\templates\recruitment\filters.html:21 +#: .\report\templates\report\recruitment_report.html:131 msgid "Unknown" msgstr "" @@ -18626,6 +18915,7 @@ msgid "%(truncated_text)s…" msgstr "" #: .\horillavenv\Lib\site-packages\django\utils\text.py:322 +#: .\horillavenv\Lib\site-packages\microsoft_auth\templates\microsoft\admin_login.html:48 msgid "or" msgstr "" @@ -18914,7 +19204,7 @@ msgstr "" msgid "Traceback of exception that occurred during job execution (if any)." msgstr "" -#: .\horillavenv\Lib\site-packages\haystack\admin.py:124 +#: .\horillavenv\Lib\site-packages\haystack\admin.py:120 #, fuzzy, python-format #| msgid "onboarding" msgid "0 of %(count)d selected" @@ -18922,7 +19212,7 @@ msgid_plural "of %(count)d selected" msgstr[0] "Onboarding" msgstr[1] "Onboarding" -#: .\horillavenv\Lib\site-packages\haystack\admin.py:129 +#: .\horillavenv\Lib\site-packages\haystack\admin.py:125 #, fuzzy, python-format #| msgid "onboarding" msgid "%(total_count)s selected" @@ -18985,14 +19275,210 @@ msgstr "" msgid "Redirected but the response is missing a Location: header." msgstr "" +#: .\horillavenv\Lib\site-packages\isort\main.py:159 +msgid "show this help message and exit" +msgstr "" + #: .\horillavenv\Lib\site-packages\jsonfield\fields.py:22 #, python-format msgid "'%s' is not a valid JSON string." msgstr "" +#: .\horillavenv\Lib\site-packages\microsoft_auth\conf.py:44 +msgid "Whether or not Microsoft OAuth login is enabled." +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\conf.py:50 +msgid "" +"Type of Microsoft login to use.\n" +" Microsoft Accounts is normal Microsoft login.\n" +" Xbox Live Accounts use the old Microsoft Account login " +"screen\n" +" and then also authenticate against Xbox Live to retrieve\n" +" Gamertag." +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\conf.py:60 +msgid "Microsoft Office 365 Tenant ID" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\conf.py:66 +msgid "" +"Microsoft OAuth Client ID, see\n" +" https://apps.dev.microsoft.com/ for more." +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\conf.py:74 +msgid "" +"Microsoft OAuth Client Secret, see\n" +" https://apps.dev.microsoft.com/ for more." +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\conf.py:82 +msgid "" +"Extra OAuth scopes for authentication. Required\n" +" scopes are always provided ('openid email'\n" +" for Microsoft Auth and 'XboxLive.signin\n" +" XboxLive.offline_access' for Xbox). Scopes are space\n" +" delimited." +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\conf.py:93 +msgid "" +"Any optional parameters to include when building the\n" +" microsoft authorization code request url. Parameters are\n" +" parsed from a dict and appended in the order they appear\n" +" in the dict" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\conf.py:103 +msgid "" +"Autocreate user that attempt to login if they do not\n" +" already exist?" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\conf.py:111 +msgid "" +"Automatically register admin class for auth type\n" +" that is not active (Xbox when Microsoft Auth is\n" +" enabled and Microsoft Auth when Xbox is enabled).\n" +" Requires restart of app for setting to take effect." +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\conf.py:121 +msgid "" +"Automatically sync the username from the Xbox Live\n" +" Gamertag?" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\conf.py:129 +msgid "" +"Automatically replace an existing Microsoft Account\n" +" paired to a user when authenticating." +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\conf.py:137 +msgid "" +"Callable hook to call after authenticating a user on the\n" +" `microsoft_auth.backends.MicrosoftAuthenticationBackend`.\n" +"\n" +" If the login type is Microsoft Auth, the parameters will be\n" +" `(User: user, oauthlib.oauth2.rfc6749.tokens.OAuth2Token:\n" +" token)`\n" +"\n" +" If the login type is Xbox Live, the parameters will be\n" +" `(User:user, dict: token)` where token is the Xbox Token,\n" +" see " +"`microsoft_auth.client.MicrosoftClient.fetch_xbox_token`\n" +"\n" +" for format" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\conf.py:155 +msgid "" +"\n" +" Callable hook to call right before completing the " +"`auth_callback` view.\n" +"\n" +" Really useful for adding custom data to message or chaning " +"the\n" +" expected base URL that gets passed back up to the window " +"that\n" +" initiated the original Authorize request.\n" +"\n" +" The parameters that will be passed will be `(HttpRequest:\n" +" request, dict: context)`.\n" +"\n" +" The expected return value is the updated context " +"dictionary.\n" +" You should NOT remove the data that is currently there.\n" +"\n" +" `base_url` is the expected root URL of the window that\n" +" initiated the authorize request\n" +"\n" +" `message` is a dictionary that will be serialized as a JSON\n" +" string and passoed back to the initiating window.\n" +" " +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\conf.py:180 +msgid "" +"Use proxies for authentication\n" +" See https://requests.readthedocs.io/en/master/user/advanced/" +"#proxies/" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\context_processors.py:20 +msgid "Xbox Live" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\context_processors.py:22 +msgid "Microsoft" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\models.py:25 +msgid "microsoft account id" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\models.py:38 +msgid "xbox user id" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\models.py:39 +msgid "xbox live gamertag" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\templates\microsoft\admin_login.html:15 +msgid "Please correct the error below." +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\templates\microsoft\admin_login.html:17 +msgid "Please correct the errors below." +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\templates\microsoft\admin_login.html:33 +#, python-format +msgid "" +"You are authenticated as %(username)s, but are not authorized to access this " +"page. Would you like to login to a different account?" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\templates\microsoft\admin_login.html:42 +msgid "Log in with" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\templates\microsoft\admin_login.html:77 +msgid "Forgotten your password or username?" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\templates\microsoft\admin_login.html:83 +msgid "Log in" +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\templates\microsoft\auth_callback.html:5 +msgid "" +"This window should automatically close. If it does not, it should be save to " +"close after a few seconds." +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\views.py:33 +msgid "" +"An invalid state variable was provided. Please refresh the page and try " +"again later." +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\views.py:37 +msgid "No authentication code was provided from Microsoft. Please try again." +msgstr "" + +#: .\horillavenv\Lib\site-packages\microsoft_auth\views.py:40 +msgid "" +"Failed to authenticate you for an unknown reason. Please try again later." +msgstr "" + #: .\leave\decorators.py:40 .\leave\decorators.py:71 .\leave\decorators.py:104 -#: .\pms\views.py:792 .\pms\views.py:1214 .\pms\views.py:1770 -#: .\pms\views.py:1805 .\project\views.py:815 .\project\views.py:1086 +#: .\pms\views.py:816 .\pms\views.py:1252 .\pms\views.py:1828 +#: .\pms\views.py:1863 .\project\views.py:1049 msgid "You dont have permission." msgstr "" @@ -19008,74 +19494,62 @@ msgstr "Leave Allocation Requests" msgid "Sorry,Compensatory leave is not enabled." msgstr "Shift Requests" +#: .\leave\filters.py:374 .\leave\filters.py:395 .\leave\filters.py:433 +#: .\leave\models.py:595 +#: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:39 +#: .\leave\templates\leave\compensatory_leave\compensatory_leave_req_list.html:193 +#: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:59 +#: .\leave\templates\leave\dashboard\leave_allocation_approve.html:9 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:45 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_group_by.html:215 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_list.html:26 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_list.html:174 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_single_view.html:73 +#: .\leave\templates\leave\leave_request\dashboard_leave_requests.html:15 +#: .\leave\templates\leave\leave_request\group_by.html:76 +#: .\leave\templates\leave\leave_request\leave-requests.html:40 +#: .\leave\templates\leave\leave_request\leave_clashes.html:11 +#: .\leave\templates\leave\leave_request\leave_requests.html:92 +#: .\leave\templates\leave\leave_request_view.html:16 +#: .\leave\templates\leave\user_leave\group_by.html:75 +#: .\leave\templates\leave\user_leave\user_requests.html:69 +msgid "Requested Days" +msgstr "" + #: .\leave\filters.py:410 msgid "Total Leave Days Days" msgstr "" -#: .\leave\forms.py:340 .\leave\forms.py:723 .\leave\forms.py:931 -msgid "An attachment is required for this leave request" -msgstr "" - -#: .\leave\forms.py:346 .\leave\forms.py:476 .\leave\forms.py:736 -#: .\leave\forms.py:923 -msgid "End date should not be less than start date." -msgstr "" - -#: .\leave\forms.py:352 .\leave\forms.py:482 .\leave\forms.py:731 -#: .\leave\forms.py:939 -msgid "There is a mismatch in the breakdown of the start date and end date." -msgstr "" - -#: .\leave\forms.py:358 .\leave\forms.py:488 .\leave\forms.py:945 -msgid "Employee has no leave type.." -msgstr "" - -#: .\leave\forms.py:362 .\leave\forms.py:491 .\leave\forms.py:740 -#: .\leave\forms.py:949 -#, fuzzy -#| msgid "shift-request-view" -msgid "Employee has already a leave request for this date range." -msgstr "Shift Requests" - -#: .\leave\forms.py:403 .\leave\forms.py:531 .\leave\forms.py:758 -#: .\leave\forms.py:962 -msgid "Employee doesn't have enough leave days.." -msgstr "" - -#: .\leave\forms.py:715 -msgid "You dont have enough leave days to update the request." -msgstr "" - -#: .\leave\forms.py:864 .\leave\forms.py:1035 .\leave\forms.py:1408 +#: .\leave\forms.py:513 .\leave\forms.py:628 .\leave\forms.py:997 msgid "Rejection Reason" msgstr "" -#: .\leave\models.py:65 +#: .\leave\models.py:59 msgid "Yearly" msgstr "" -#: .\leave\models.py:122 +#: .\leave\models.py:116 #: .\leave\templates\leave\leave_type\leave_type_view.html:73 msgid "Unpaid" msgstr "" -#: .\leave\models.py:125 +#: .\leave\models.py:119 msgid "No Carry Forward" msgstr "" -#: .\leave\models.py:126 +#: .\leave\models.py:120 msgid "Carry Forward" msgstr "" -#: .\leave\models.py:127 +#: .\leave\models.py:121 msgid "Carry Forward with Expire" msgstr "" -#: .\leave\models.py:176 +#: .\leave\models.py:170 msgid "Is encashable" msgstr "" -#: .\leave\models.py:206 +#: .\leave\models.py:200 #: .\leave\templates\leave\leave_type\leave_type_creation.html:197 #: .\leave\templates\leave\leave_type\leave_type_filter.html:45 #: .\leave\templates\leave\leave_type\leave_type_individual_view.html:141 @@ -19085,99 +19559,131 @@ msgstr "" msgid "Require Attachment" msgstr "" -#: .\leave\models.py:292 +#: .\leave\models.py:286 msgid "Compensatory Leave Request already exists." msgstr "" -#: .\leave\models.py:368 +#: .\leave\models.py:361 #: .\leave\templates\leave\leave_assign\assigned-leave.html:11 #: .\leave\templates\leave\leave_assign\assigned_leave.html:40 #: .\leave\templates\leave\leave_assign\assigned_leaves_export_form.html:70 #: .\leave\templates\leave\leave_assign\assigned_leaves_filter.html:35 -#: .\leave\templates\leave\leave_assign\available_update_form.html:52 #: .\leave\templates\leave\leave_assign\group_by.html:65 #: .\leave\templates\leave\leave_assign\single_assign_view.html:68 #: .\leave\templates\leave\leave_request_view.html:14 +#: .\report\templates\report\leave_report.html:155 msgid "Carryforward Days" msgstr "" -#: .\leave\models.py:375 +#: .\leave\models.py:368 #: .\leave\templates\leave\leave_assign\single_assign_view.html:83 msgid "Leave Reset Date" msgstr "" -#: .\leave\models.py:378 +#: .\leave\models.py:371 msgid "CarryForward Expired Date" msgstr "" -#: .\leave\models.py:544 +#: .\leave\models.py:585 #: .\leave\templates\leave\leave_request\one_request_view.html:71 -#: .\leave\templates\leave\user_leave\user_request_one.html:77 +#: .\leave\templates\leave\user_leave\user_request_one.html:60 #: .\leave\templates\leave\user_request_form.html:18 msgid "Start Date Breakdown" msgstr "" -#: .\leave\models.py:551 +#: .\leave\models.py:592 #: .\leave\templates\leave\leave_request\one_request_view.html:81 -#: .\leave\templates\leave\user_leave\user_request_one.html:87 +#: .\leave\templates\leave\user_leave\user_request_one.html:70 #: .\leave\templates\leave\user_request_form.html:26 msgid "End Date Breakdown" msgstr "" -#: .\leave\models.py:557 +#: .\leave\models.py:598 #, fuzzy #| msgid "recruitment" msgid "Leave Clashes Count" msgstr "Recruitment" -#: .\leave\models.py:564 .\leave\templates\leave\user_request_form.html:35 +#: .\leave\models.py:605 .\leave\models.py:1180 +#: .\leave\templates\leave\user_request_form.html:35 msgid "Attachment" msgstr "" -#: .\leave\models.py:578 -#: .\onboarding\templates\onboarding\candidate_filter.html:63 -#: .\recruitment\templates\candidate\export_filter.html:75 -#: .\recruitment\templates\candidate\filters.html:31 -#: .\recruitment\templates\pipeline\filters.html:123 -#: .\recruitment\templates\skill_zone\skill_zone_nav.html:102 -msgid "Reject Reason" +#: .\leave\models.py:866 +msgid "The selected leave type is not assigned to this employee." msgstr "" -#: .\leave\models.py:794 +#: .\leave\models.py:873 +msgid "End date should not be less than start date." +msgstr "" + +#: .\leave\models.py:880 +msgid "Mismatch in the breakdown of the start and end date." +msgstr "" + +#: .\leave\models.py:886 +msgid "An attachment is required for this leave request" +msgstr "" + +#: .\leave\models.py:896 +#, fuzzy +#| msgid "shift-request-view" +msgid "Employee already has a leave request for this date range." +msgstr "Shift Requests" + +#: .\leave\models.py:906 msgid "Requests cannot be made for past dates." msgstr "" -#: .\leave\models.py:941 +#: .\leave\models.py:950 +msgid "Does not have sufficient leave balance for the requested dates." +msgstr "" + +#: .\leave\models.py:1096 msgid "The {} leave request cannot be deleted !" msgstr "" -#: .\leave\models.py:1102 +#: .\leave\models.py:1198 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:99 +msgid "Leave Allocation Request" +msgstr "" + +#: .\leave\models.py:1199 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:36 +msgid "Leave Allocation Requests" +msgstr "" + +#: .\leave\models.py:1264 msgid "" "If no job positions are specifically selected, the system will consider all " "job positions under the selected department." msgstr "" -#: .\leave\models.py:1106 +#: .\leave\models.py:1269 msgid "Enable to select all Leave types." msgstr "" -#: .\leave\models.py:1110 -msgid "Spesific leave types" +#: .\leave\models.py:1270 +msgid "Include All" msgstr "" -#: .\leave\models.py:1113 +#: .\leave\models.py:1274 +msgid "Specific Leave Types" +msgstr "" + +#: .\leave\models.py:1277 msgid "Choose specific leave types to restrict." msgstr "" -#: .\leave\models.py:1117 -msgid "Exclude leave types" +#: .\leave\models.py:1281 +msgid "Exclude Leave Types" msgstr "" -#: .\leave\models.py:1120 +#: .\leave\models.py:1284 msgid "Choose leave types to exclude from restriction." msgstr "" -#: .\leave\models.py:1303 .\payroll\models\models.py:603 +#: .\leave\signals.py:70 #, fuzzy #| msgid "attendance-view" msgid "Half day Attendance need to validate" @@ -19206,7 +19712,7 @@ msgid "Accrual" msgstr "" #: .\leave\templates\leave\accrual_plan_view.html:10 -#: .\payroll\models\models.py:100 +#: .\payroll\models\models.py:98 #: .\pms\templates\anonymous\anonymous_feedback_form.html:41 #: .\pms\templates\anonymous\single_view.html:26 #: .\pms\templates\feedback\feedback_list.html:556 @@ -19324,63 +19830,75 @@ msgstr "Attendances" #: .\leave\templates\leave\compensatory_leave\individual_view_compensatory.html:94 #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_single_view.html:119 #: .\leave\templates\leave\leave_request\one_request_view.html:132 -#: .\leave\templates\leave\user_leave\user_request_one.html:103 +#: .\leave\templates\leave\user_leave\user_request_one.html:85 msgid "Reason for Rejection" msgstr "" -#: .\leave\templates\leave\dashboard.html:41 +#: .\leave\templates\leave\dashboard.html:50 #, fuzzy #| msgid "shift-request-view" msgid "Requests to Approve" msgstr "Shift Requests" -#: .\leave\templates\leave\dashboard.html:54 +#: .\leave\templates\leave\dashboard.html:67 msgid "Approved Leaves In This Month" msgstr "" -#: .\leave\templates\leave\dashboard.html:67 +#: .\leave\templates\leave\dashboard.html:80 msgid "Rejected Leaves In This Month" msgstr "" -#: .\leave\templates\leave\dashboard.html:85 +#: .\leave\templates\leave\dashboard.html:98 msgid "Employee Leaves" msgstr "" -#: .\leave\templates\leave\dashboard.html:86 +#: .\leave\templates\leave\dashboard.html:99 msgid "next" msgstr "" -#: .\leave\templates\leave\dashboard.html:116 +#: .\leave\templates\leave\dashboard.html:129 msgid "View Personal Dashboard" msgstr "" -#: .\leave\templates\leave\dashboard.html:126 +#: .\leave\templates\leave\dashboard.html:139 #: .\leave\templates\leave\employee_dashboard.html:115 msgid "Next Holiday" msgstr "" -#: .\leave\templates\leave\dashboard.html:136 +#: .\leave\templates\leave\dashboard.html:149 #: .\leave\templates\leave\employee_dashboard.html:125 msgid "Upcoming holidays" msgstr "" -#: .\leave\templates\leave\dashboard.html:147 +#: .\leave\templates\leave\dashboard.html:164 msgid "Department Leaves" msgstr "" -#: .\leave\templates\leave\dashboard.html:155 -#: .\leave\templates\leave\on_leave.html:28 +#: .\leave\templates\leave\dashboard.html:172 +#: .\leave\templates\leave\dashboard\on_leave.html:28 msgid "Today is a holiday." msgstr "" -#: .\leave\templates\leave\dashboard.html:172 +#: .\leave\templates\leave\dashboard.html:189 msgid "Leave Type - Count of leaves" msgstr "" -#: .\leave\templates\leave\dashboard.html:187 +#: .\leave\templates\leave\dashboard.html:204 msgid "Weekly Leave Analytics" msgstr "" +#: .\leave\templates\leave\dashboard\leave_allocation_approve.html:37 +msgid "Do you want to Approve this leave allocation request?" +msgstr "" + +#: .\leave\templates\leave\dashboard\leave_request_approve.html:35 +msgid "Do you want to Approve this leave request?" +msgstr "" + +#: .\leave\templates\leave\dashboard\on_leave.html:36 +msgid "No employees have taken leave today." +msgstr "" + #: .\leave\templates\leave\employee_dashboard.html:33 msgid "New Requests" msgstr "" @@ -19394,8 +19912,8 @@ msgid "Rejected Requests" msgstr "" #: .\leave\templates\leave\employee_dashboard.html:76 -#: .\leave\templates\leave\leave_request\employee_available_leave_count.html:32 -#: .\leave\templates\leave\leave_request\employee_available_leave_count.html:44 +#: .\leave\templates\leave\leave_request\employee_available_leave_count.html:27 +#: .\leave\templates\leave\leave_request\employee_available_leave_count.html:39 msgid "Available Leaves" msgstr "" @@ -19408,11 +19926,9 @@ msgid "View Admin Dashboard" msgstr "" #: .\leave\templates\leave\holiday\holiday.html:115 -#: .\leave\templates\leave\leave_assign\assign_view.html:237 -#: .\leave\templates\leave\request_view.html:225 +#: .\leave\templates\leave\leave_assign\assign_view.html:230 #: .\leave\templates\leave\restrict\restrict.html:141 -#: .\leave\templates\leave\user_leave\user_request_view.html:401 -#: .\leave\templates\leave\user_request_view.html:175 +#: .\leave\templates\leave\user_leave\user_request_view.html:385 #: .\onboarding\templates\onboarding\candidates_view.html:427 msgid "Are you sure you want to delete?" msgstr "" @@ -19423,10 +19939,6 @@ msgstr "" msgid "'s leave allocation request" msgstr "Leave Allocation Requests" -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_create.html:14 -msgid "Create Leave Allocation Request" -msgstr "" - #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_reject_form.html:13 msgid "Reject Leave Allocation Request" msgstr "" @@ -19438,24 +19950,16 @@ msgstr "" #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_single_view.html:129 #: .\leave\templates\leave\leave_request\one_request_view.html:142 #: .\leave\templates\leave\one_request_view.html:63 -#: .\leave\templates\leave\user_leave\user_request_one.html:120 +#: .\leave\templates\leave\user_leave\user_request_one.html:102 #: .\leave\templates\leave\user_request_one.html:49 msgid "View attachment" msgstr "" -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_single_view.html:226 -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:301 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_single_view.html:221 +#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:287 msgid "There are no leave allocation requests at the moment." msgstr "" -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:36 -msgid "Leave Allocation Requests" -msgstr "" - -#: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:99 -msgid "Leave Allocation Request" -msgstr "" - #: .\leave\templates\leave\leave_allocation_request\leave_allocation_request_view.html:272 msgid "My leave allocation request" msgstr "" @@ -19492,7 +19996,7 @@ msgstr "" msgid "Export Leaves" msgstr "" -#: .\leave\templates\leave\leave_assign\assign_view.html:204 +#: .\leave\templates\leave\leave_assign\assign_view.html:198 msgid "There are no leave assigned at the moment." msgstr "" @@ -19514,31 +20018,37 @@ msgstr "" #: .\leave\templates\leave\leave_assign\assigned_leaves_export_form.html:98 #: .\leave\templates\leave\leave_assign\assigned_leaves_filter.html:63 +#: .\report\templates\report\leave_report.html:179 msgid "Available Days Greater or Equal" msgstr "" #: .\leave\templates\leave\leave_assign\assigned_leaves_export_form.html:106 #: .\leave\templates\leave\leave_assign\assigned_leaves_filter.html:71 +#: .\report\templates\report\leave_report.html:187 msgid "Available Days Less Than or Equal" msgstr "" #: .\leave\templates\leave\leave_assign\assigned_leaves_export_form.html:116 #: .\leave\templates\leave\leave_assign\assigned_leaves_filter.html:81 +#: .\report\templates\report\leave_report.html:197 msgid "Carryforward Days Greater or Equal" msgstr "" #: .\leave\templates\leave\leave_assign\assigned_leaves_export_form.html:124 #: .\leave\templates\leave\leave_assign\assigned_leaves_filter.html:89 +#: .\report\templates\report\leave_report.html:205 msgid "Carryforward Days Less Than or Equal" msgstr "" #: .\leave\templates\leave\leave_assign\assigned_leaves_export_form.html:134 #: .\leave\templates\leave\leave_assign\assigned_leaves_filter.html:99 +#: .\report\templates\report\leave_report.html:215 msgid "Total Leave Days Greater or Equal" msgstr "" #: .\leave\templates\leave\leave_assign\assigned_leaves_export_form.html:142 #: .\leave\templates\leave\leave_assign\assigned_leaves_filter.html:107 +#: .\report\templates\report\leave_report.html:223 msgid "Total Leave Days Less Than or Equal" msgstr "" @@ -19607,11 +20117,11 @@ msgstr "" msgid "You have No leave requests for this month." msgstr "" -#: .\leave\templates\leave\leave_request\employee_available_leave_count.html:21 +#: .\leave\templates\leave\leave_request\employee_available_leave_count.html:16 msgid "Leave type is not assigned for the selected employee." msgstr "" -#: .\leave\templates\leave\leave_request\employee_available_leave_count.html:47 +#: .\leave\templates\leave\leave_request\employee_available_leave_count.html:42 msgid "" "Forecasted available days added to this Available Days (Carryforward Max. + " "Forcasted Days)" @@ -19690,7 +20200,7 @@ msgid "From Date" msgstr "" #: .\leave\templates\leave\leave_request\one_request_view.html:98 -#: .\templates\sidebar.html:237 +#: .\templates\sidebar.html:252 msgid "Multiple Approvals" msgstr "" @@ -19699,7 +20209,7 @@ msgid "Leave Description" msgstr "" #: .\leave\templates\leave\leave_request\one_request_view.html:125 -#: .\leave\templates\leave\user_leave\user_request_one.html:110 +#: .\leave\templates\leave\user_leave\user_request_one.html:92 msgid "Reason for Cancellation" msgstr "" @@ -19710,29 +20220,36 @@ msgid "" msgstr "" #: .\leave\templates\leave\leave_request\request_view.html:61 -#: .\leave\templates\leave\request_view.html:19 msgid "Leave Requests" msgstr "" -#: .\leave\templates\leave\leave_request\request_view.html:182 +#: .\leave\templates\leave\leave_request\request_view.html:143 +#, fuzzy +#| msgid "user-request-view" +msgid "Create Leave Report" +msgstr "My Leave Requests" + +#: .\leave\templates\leave\leave_request\request_view.html:185 #: .\leave\templates\leave\user_leave\user_request_view.html:275 msgid "Selected Requests" msgstr "" -#: .\leave\templates\leave\leave_request\request_view.html:201 -#: .\leave\templates\leave\request_view.html:124 -#: .\leave\templates\leave\user_leave\user_request_view.html:302 -#: .\leave\templates\leave\user_request_view.html:116 +#: .\leave\templates\leave\leave_request\request_view.html:197 +#: .\leave\templates\leave\user_leave\user_request_view.html:288 msgid "There are no leave requests at the moment." msgstr "" -#: .\leave\templates\leave\leave_request\request_view.html:223 +#: .\leave\templates\leave\leave_request\request_view.html:217 #, fuzzy #| msgid "update-deduction" msgid "Rejection" msgstr "Update" -#: .\leave\templates\leave\leave_request\request_view.html:273 +#: .\leave\templates\leave\leave_request\request_view.html:232 +msgid "Bulk Rejection Reason" +msgstr "" + +#: .\leave\templates\leave\leave_request\request_view.html:267 #, fuzzy #| msgid "user-request-view" msgid "Clashed Leave Requests" @@ -19765,6 +20282,14 @@ msgstr "My Leave Requests" msgid "Create Leave Type" msgstr "" +#: .\leave\templates\leave\leave_type\leave_type_creation.html:39 +#: .\leave\templates\leave\leave_type\leave_type_update.html:35 +#: .\leave\templates\leave\leave_type_creation.html:45 +#: .\leave\templates\leave\leave_type_update.html:47 +#: .\templates\initialize_database\horilla_company.html:94 +msgid "Icon" +msgstr "" + #: .\leave\templates\leave\leave_type\leave_type_creation.html:53 #: .\leave\templates\leave\leave_type\leave_type_individual_view.html:125 #: .\leave\templates\leave\leave_type\leave_type_update.html:49 @@ -19954,28 +20479,16 @@ msgstr "Employee" msgid "Choose employees to assign this leave type" msgstr "" -#: .\leave\templates\leave\leave_type\leave_type_empty_view.html:20 +#: .\leave\templates\leave\leave_type\leave_type_empty_view.html:8 #: .\leave\templates\leave\leave_type\leave_type_view.html:17 #: .\leave\templates\leave\restrict\restrict.html:64 -#: .\leave\templates\leave\user_eave_type_empty_view.html:20 -#: .\leave\templates\leave\user_leave_type_empty_view.html:20 msgid "Leave Types" msgstr "" -#: .\leave\templates\leave\leave_type\leave_type_empty_view.html:48 -#: .\leave\templates\leave\user_eave_type_empty_view.html:49 -#: .\leave\templates\leave\user_leave_type_empty_view.html:49 +#: .\leave\templates\leave\leave_type\leave_type_empty_view.html:34 msgid "No leave types have been created yet." msgstr "" -#: .\leave\templates\leave\leave_type\leave_type_empty_view.html:49 -#: .\leave\templates\leave\user_eave_type_empty_view.html:50 -#: .\leave\templates\leave\user_leave\user_leave_empty_view.html:14 -#: .\leave\templates\leave\user_leave_empty_view.html:14 -#: .\leave\templates\leave\user_leave_type_empty_view.html:50 -msgid "Please contact your administrators for assistance." -msgstr "" - #: .\leave\templates\leave\leave_type\leave_type_filter.html:15 #: .\leave\templates\leave\leave_type_creation.html:59 #: .\leave\templates\leave\leave_type_update.html:61 @@ -20066,15 +20579,6 @@ msgstr "" msgid "Exclude Company Leaves" msgstr "" -#: .\leave\templates\leave\on_leave.html:36 -msgid "No employees have taken leave today." -msgstr "" - -#: .\leave\templates\leave\request_view.html:143 -#: .\leave\templates\leave\request_view.html:165 -msgid "Leave Request Create" -msgstr "" - #: .\leave\templates\leave\restrict\restrict.html:20 #, fuzzy #| msgid "recruitment" @@ -20109,7 +20613,7 @@ msgid "No restricted date available." msgstr "Candidates" #: .\leave\templates\leave\restrict\restrict_filter.html:7 -#: .\templates\sidebar.html:284 +#: .\templates\sidebar.html:299 msgid "Restrict Leaves" msgstr "" @@ -20117,21 +20621,6 @@ msgstr "" msgid "Create Restricted Day" msgstr "" -#: .\leave\templates\leave\restrict\restrict_form.html:59 -#: .\leave\templates\leave\restrict\restrict_update_form.html:59 -msgid "Include all" -msgstr "" - -#: .\leave\templates\leave\restrict\restrict_form.html:72 -#: .\leave\templates\leave\restrict\restrict_update_form.html:70 -msgid "Specific Leave Types" -msgstr "" - -#: .\leave\templates\leave\restrict\restrict_form.html:81 -#: .\leave\templates\leave\restrict\restrict_update_form.html:79 -msgid "Exclude Leave Types" -msgstr "" - #: .\leave\templates\leave\restrict\restrict_update_form.html:20 msgid "Update Restricted Day" msgstr "" @@ -20159,7 +20648,7 @@ msgstr "" msgid "Are you sure you want to delete this leave request?" msgstr "" -#: .\leave\templates\leave\user_leave\request_form.html:19 +#: .\leave\templates\leave\user_leave\request_form.html:9 msgid "Create Leave Request" msgstr "" @@ -20171,27 +20660,11 @@ msgstr "" msgid "Are you sure want to proceed with the request ?" msgstr "" -#: .\leave\templates\leave\user_leave\user_leave_empty_view.html:13 -#: .\leave\templates\leave\user_leave_empty_view.html:13 -msgid "Leave types not assigned to you." -msgstr "" - -#: .\leave\templates\leave\user_leave\user_leave_view.html:7 -#: .\leave\templates\leave\user_leave_view.html:7 -msgid "My Leave" -msgstr "" - -#: .\leave\templates\leave\user_leave\user_leave_view.html:29 -#: .\leave\templates\leave\user_leave_view.html:29 -msgid "User Leave" -msgstr "" - #: .\leave\templates\leave\user_leave\user_request_update.html:19 msgid "Leave Request Update" msgstr "" #: .\leave\templates\leave\user_leave\user_request_view.html:42 -#: .\leave\templates\leave\user_request_view.html:19 msgid "My Leave Requests" msgstr "" @@ -20205,357 +20678,369 @@ msgstr "" msgid "View Leave Request" msgstr "My Leave Requests" -#: .\leave\views.py:130 +#: .\leave\templates\leave\user_leave_view.html:7 +msgid "My Leave" +msgstr "" + +#: .\leave\templates\leave\user_leave_view.html:29 +msgid "User Leave" +msgstr "" + +#: .\leave\views.py:127 msgid "New leave type Created.." msgstr "" -#: .\leave\views.py:259 +#: .\leave\views.py:256 msgid "Leave type not found" msgstr "" -#: .\leave\views.py:272 +#: .\leave\views.py:269 msgid "Leave type is updated successfully.." msgstr "" -#: .\leave\views.py:296 +#: .\leave\views.py:293 msgid "Leave type deleted successfully.." msgstr "" -#: .\leave\views.py:298 .\leave\views.py:1205 +#: .\leave\views.py:295 .\leave\views.py:1353 msgid "Leave type not found." msgstr "" -#: .\leave\views.py:307 +#: .\leave\views.py:304 msgid "This leave types are already in use for {}" msgstr "" -#: .\leave\views.py:479 .\leave\views.py:2114 .\leave\views.py:3066 +#: .\leave\views.py:478 .\leave\views.py:2275 .\leave\views.py:3184 msgid "Leave request created successfully.." msgstr "" -#: .\leave\views.py:783 +#: .\leave\views.py:920 msgid "Leave request is updated successfully.." msgstr "" -#: .\leave\views.py:833 .\leave\views.py:2296 +#: .\leave\views.py:970 .\leave\views.py:2450 msgid "Leave request deleted successfully.." msgstr "" -#: .\leave\views.py:836 .\leave\views.py:3747 +#: .\leave\views.py:973 .\leave\views.py:3865 msgid "Leave request not found." msgstr "" -#: .\leave\views.py:931 +#: .\leave\views.py:1075 msgid "Leave request approved successfully.." msgstr "" -#: .\leave\views.py:953 +#: .\leave\views.py:1101 msgid "Leave request already approved" msgstr "" -#: .\leave\views.py:979 +#: .\leave\views.py:1127 #, fuzzy #| msgid "shift-request-view" msgid "{} {} request already approved" msgstr "Shift Requests" -#: .\leave\views.py:986 +#: .\leave\views.py:1134 msgid "{} {} request date exceeded" msgstr "" -#: .\leave\views.py:993 +#: .\leave\views.py:1141 msgid "{} {} can't approve." msgstr "" -#: .\leave\views.py:998 +#: .\leave\views.py:1146 #, fuzzy #| msgid "shift-request-view" msgid "Leave request not found" msgstr "Shift Requests" -#: .\leave\views.py:1076 +#: .\leave\views.py:1224 msgid "Leave request rejected successfully.." msgstr "" -#: .\leave\views.py:1094 +#: .\leave\views.py:1242 #, fuzzy #| msgid "user-request-view" msgid "Leave request already rejected." msgstr "My Leave Requests" -#: .\leave\views.py:1135 +#: .\leave\views.py:1283 msgid "Leave request cancelled successfully.." msgstr "" -#: .\leave\views.py:1148 +#: .\leave\views.py:1296 msgid "You can't cancel this leave request." msgstr "" -#: .\leave\views.py:1150 +#: .\leave\views.py:1298 msgid "You don't have the permission." msgstr "" -#: .\leave\views.py:1215 +#: .\leave\views.py:1363 #, fuzzy #| msgid "user-request-view" msgid "Compensatory leave type cannot be assigned manually." msgstr "My Leave Requests" -#: .\leave\views.py:1269 +#: .\leave\views.py:1417 msgid "Successfully assigned leave type to {} employees." msgstr "" -#: .\leave\views.py:1297 +#: .\leave\views.py:1445 msgid "Leave type is already assigned to some selected {} employees." msgstr "" -#: .\leave\views.py:1504 +#: .\leave\views.py:1652 msgid "Leave types assigned successfully." msgstr "" -#: .\leave\views.py:1509 +#: .\leave\views.py:1657 msgid "Some leave types were already assigned to {} employees." msgstr "" -#: .\leave\views.py:1544 +#: .\leave\views.py:1692 msgid "Available leaves updated successfully..." msgstr "" -#: .\leave\views.py:1582 +#: .\leave\views.py:1730 msgid "Assigned leave successfully deleted." msgstr "" -#: .\leave\views.py:1584 .\leave\views.py:1617 +#: .\leave\views.py:1732 .\leave\views.py:1765 msgid "Assigned leave not found." msgstr "" -#: .\leave\views.py:1586 +#: .\leave\views.py:1734 .\pms\views.py:2382 msgid "Related entries exist." msgstr "" -#: .\leave\views.py:1619 +#: .\leave\views.py:1767 #, fuzzy #| msgid "user-request-view" msgid "{} assigned leaves deleted successfully " msgstr "My Leave Requests" -#: .\leave\views.py:1688 +#: .\leave\views.py:1842 msgid "This badge id does not exist." msgstr "" -#: .\leave\views.py:1690 +#: .\leave\views.py:1844 msgid "This leave type does not exist." msgstr "" -#: .\leave\views.py:1701 +#: .\leave\views.py:1855 msgid "Leave type has already been assigned to the employee." msgstr "" -#: .\leave\views.py:1729 +#: .\leave\views.py:1896 #, fuzzy #| msgid "assign-view" msgid "Assigned Leaves" msgstr "Assigned Leaves" -#: .\leave\views.py:1799 +#: .\leave\views.py:1967 msgid "Restricted day created successfully.." msgstr "" -#: .\leave\views.py:1890 +#: .\leave\views.py:2058 msgid "Restricted day updated successfully.." msgstr "" -#: .\leave\views.py:1915 +#: .\leave\views.py:2083 msgid "Restricted day deleted successfully.." msgstr "" -#: .\leave\views.py:1917 +#: .\leave\views.py:2085 #, fuzzy #| msgid "attendance-view" msgid "Restricted day not found." msgstr "Attendances" -#: .\leave\views.py:1948 +#: .\leave\views.py:2116 msgid "{} Leave restricted days deleted successfully" msgstr "" -#: .\leave\views.py:1951 +#: .\leave\views.py:2119 #, fuzzy #| msgid "attendance-view" msgid "Restricted Days not found" msgstr "Attendances" -#: .\leave\views.py:1953 .\onboarding\views.py:1621 -#: .\payroll\views\views.py:656 .\pms\views.py:3771 +#: .\leave\views.py:2121 .\onboarding\views.py:1626 .\outlook_auth\views.py:159 +#: .\payroll\views\views.py:656 .\pms\views.py:3853 #: .\recruitment\templates\pipeline\nav.html:506 msgid "Something went wrong" msgstr "" -#: .\leave\views.py:2149 .\leave\views.py:2252 -msgid "You dont have enough leave days to make the request.." -msgstr "" - -#: .\leave\views.py:2247 +#: .\leave\views.py:2401 msgid "Leave request updated successfully.." msgstr "" -#: .\leave\views.py:2264 +#: .\leave\views.py:2406 +msgid "You dont have enough leave days to make the request.." +msgstr "" + +#: .\leave\views.py:2418 msgid "You can't update this leave request..." msgstr "" -#: .\leave\views.py:2267 .\leave\views.py:2299 .\leave\views.py:2570 +#: .\leave\views.py:2421 .\leave\views.py:2453 .\leave\views.py:2688 msgid "User has no leave request.." msgstr "" -#: .\leave\views.py:2340 .\leave\views.py:2371 .\leave\views.py:2444 -#: .\leave\views.py:2537 +#: .\leave\views.py:2489 .\leave\views.py:2562 .\leave\views.py:2655 msgid "User is not an employee.." msgstr "" -#: .\leave\views.py:2757 +#: .\leave\views.py:2875 msgid "Total leaves available" msgstr "" -#: .\leave\views.py:2764 +#: .\leave\views.py:2882 msgid "Oops!! No leaves available for you this month..." msgstr "" -#: .\leave\views.py:2834 +#: .\leave\views.py:2952 msgid "No leave request this month" msgstr "" -#: .\leave\views.py:2885 +#: .\leave\views.py:3003 #, fuzzy #| msgid "shift-request-view" msgid "No leave requests for this month." msgstr "Shift Requests" -#: .\leave\views.py:2932 +#: .\leave\views.py:3050 msgid "No leave requests for any leave type this month." msgstr "" -#: .\leave\views.py:2974 +#: .\leave\views.py:3092 msgid "Leave Trends" msgstr "" -#: .\leave\views.py:3233 +#: .\leave\views.py:3351 msgid "New Leave allocation request is created" msgstr "" -#: .\leave\views.py:3380 +#: .\leave\views.py:3498 msgid "Leave allocation request is updated successfully." msgstr "" -#: .\leave\views.py:3410 +#: .\leave\views.py:3528 msgid "You can't update this request..." msgstr "" -#: .\leave\views.py:3449 +#: .\leave\views.py:3567 msgid "Leave allocation request approved successfully" msgstr "" -#: .\leave\views.py:3464 +#: .\leave\views.py:3582 msgid "The leave allocation request can't be approved" msgstr "" -#: .\leave\views.py:3508 +#: .\leave\views.py:3626 msgid "Leave allocation request rejected successfully" msgstr "" -#: .\leave\views.py:3530 .\leave\views.py:4781 +#: .\leave\views.py:3648 .\leave\views.py:4899 msgid "The leave allocation request can't be rejected" msgstr "" -#: .\leave\views.py:3555 +#: .\leave\views.py:3673 msgid "Leave allocation request deleted successfully.." msgstr "" -#: .\leave\views.py:3558 +#: .\leave\views.py:3676 msgid "Approved request can't be deleted." msgstr "" -#: .\leave\views.py:3560 .\leave\views.py:3562 +#: .\leave\views.py:3678 .\leave\views.py:3680 msgid "Leave allocation request not found." msgstr "" -#: .\leave\views.py:3565 +#: .\leave\views.py:3683 msgid "Related entries exist" msgstr "" -#: .\leave\views.py:3659 +#: .\leave\views.py:3777 #, fuzzy #| msgid "user-request-view" msgid "{}'s leave request cannot be deleted." msgstr "My Leave Requests" -#: .\leave\views.py:3662 +#: .\leave\views.py:3780 msgid "An error occurred: {}." msgstr "" -#: .\leave\views.py:3667 +#: .\leave\views.py:3785 #, fuzzy, python-brace-format #| msgid "user-request-view" msgid "{count} leave request(s) successfully deleted." msgstr "My Leave Requests" -#: .\leave\views.py:3739 +#: .\leave\views.py:3857 msgid "Leave request deleted." msgstr "" -#: .\leave\views.py:3744 +#: .\leave\views.py:3862 msgid "You cannot delete leave request with status {}." msgstr "" -#: .\leave\views.py:4353 +#: .\leave\views.py:4471 #, fuzzy #| msgid "user-request-view" msgid "Compensatory leave is enabled successfully!" msgstr "My Leave Requests" -#: .\leave\views.py:4355 +#: .\leave\views.py:4473 #, fuzzy #| msgid "user-request-view" msgid "Compensatory leave is disabled successfully!" msgstr "My Leave Requests" -#: .\leave\views.py:4659 +#: .\leave\views.py:4777 msgid "Compensatory Leave updated." msgstr "" -#: .\leave\views.py:4661 +#: .\leave\views.py:4779 msgid "Compensatory Leave created." msgstr "" -#: .\leave\views.py:4685 +#: .\leave\views.py:4803 msgid "Compensatory leave request deleted." msgstr "" -#: .\leave\views.py:4688 .\leave\views.py:4730 +#: .\leave\views.py:4806 .\leave\views.py:4848 msgid "Sorry, something went wrong!" msgstr "" -#: .\leave\views.py:4709 +#: .\leave\views.py:4827 #, fuzzy #| msgid "shift-request-view" msgid "Compensatory leave request approved." msgstr "Shift Requests" -#: .\leave\views.py:4726 +#: .\leave\views.py:4844 msgid "The compensatory leave request is not in the 'requested' status." msgstr "" -#: .\leave\views.py:4761 +#: .\leave\views.py:4879 #, fuzzy #| msgid "shift-request-view" msgid "Compensatory Leave request rejected." msgstr "Shift Requests" -#: .\offboarding\models.py:29 .\onboarding\models.py:141 +#: .\offboarding\models.py:29 .\onboarding\models.py:154 #: .\onboarding\templates\onboarding\dashboard\task_report.html:22 msgid "Ongoing" msgstr "" -#: .\offboarding\models.py:29 .\offboarding\models.py:259 .\pms\views.py:2145 +#: .\offboarding\models.py:29 .\offboarding\models.py:259 .\pms\views.py:2213 +#: .\project\cbv\projects.py:221 .\project\cbv\projects.py:243 +#: .\project\cbv\projects.py:419 .\project\cbv\projects.py:441 +#: .\project\cbv\tasks.py:129 .\project\cbv\tasks.py:536 +#: .\project\cbv\timesheet.py:191 .\project\cbv\timesheet.py:453 +#: .\project\models.py:325 .\project\models.py:522 #: .\project\templates\project\new\project_kanban_view.html:33 #: .\project\templates\project\new\project_list_view.html:35 #: .\project\templates\task_all\task_all_card.html:29 @@ -20579,12 +21064,15 @@ msgstr "" msgid "Work handover" msgstr "" -#: .\offboarding\models.py:256 .\onboarding\models.py:139 +#: .\offboarding\models.py:256 .\onboarding\models.py:152 #: .\onboarding\templates\onboarding\dashboard\task_report.html:16 msgid "Todo" msgstr "" -#: .\offboarding\models.py:257 +#: .\offboarding\models.py:257 .\project\cbv\projects.py:210 +#: .\project\cbv\projects.py:408 .\project\cbv\tasks.py:118 +#: .\project\cbv\tasks.py:525 .\project\cbv\timesheet.py:180 +#: .\project\cbv\timesheet.py:442 #: .\project\templates\project\new\project_kanban_view.html:29 #: .\project\templates\project\new\project_list_view.html:31 #: .\project\templates\task_all\task_all_card.html:25 @@ -20594,7 +21082,7 @@ msgstr "" msgid "In progress" msgstr "" -#: .\offboarding\models.py:258 .\onboarding\models.py:142 +#: .\offboarding\models.py:258 .\onboarding\models.py:155 #: .\onboarding\templates\onboarding\dashboard\task_report.html:25 msgid "Stuck" msgstr "" @@ -20608,16 +21096,129 @@ msgstr "" msgid "Offboarding" msgstr "Onboarding" -#: .\offboarding\sidebar.py:21 +#: .\offboarding\sidebar.py:26 msgid "Exit Process" msgstr "" -#: .\offboarding\sidebar.py:25 +#: .\offboarding\sidebar.py:30 #, fuzzy #| msgid "attendance" msgid "Resignation Letters" msgstr "Attendance" +#: .\offboarding\templates\offboarding\dashboard\asset_returned_table.html:5 +#, fuzzy +#| msgid "recruitment" +msgid "Not Returned Assets" +msgstr "Recruitment" + +#: .\offboarding\templates\offboarding\dashboard\asset_returned_table.html:19 +msgid "Reminder" +msgstr "" + +#: .\offboarding\templates\offboarding\dashboard\asset_returned_table.html:75 +msgid "No Assets Due for Return from Offboarding Employees." +msgstr "" + +#: .\offboarding\templates\offboarding\dashboard\dashboard.html:19 +msgid "Exit Ratio" +msgstr "" + +#: .\offboarding\templates\offboarding\dashboard\dashboard.html:23 +msgid "Archived Employees / Total Employees" +msgstr "" + +#: .\offboarding\templates\offboarding\dashboard\dashboard.html:45 +msgid "Exiting to Joining Ratio" +msgstr "" + +#: .\offboarding\templates\offboarding\dashboard\dashboard.html:49 +msgid "Exiting Employees : Joining Employees" +msgstr "" + +#: .\offboarding\templates\offboarding\dashboard\dashboard.html:71 +#, fuzzy +#| msgid "employee" +msgid "Archived Employees" +msgstr "Employee" + +#: .\offboarding\templates\offboarding\dashboard\dashboard.html:125 +msgid "Department - JobPosition Offboarding" +msgstr "" + +#: .\offboarding\templates\offboarding\dashboard\dashboard.html:159 +msgid "Joining and Offboarding Chart" +msgstr "" + +#: .\offboarding\templates\offboarding\dashboard\employee_feedback_table.html:5 +#, fuzzy +#| msgid "onboarding" +msgid "Offboarding Employees Feedbacks" +msgstr "Onboarding" + +#: .\offboarding\templates\offboarding\dashboard\employee_feedback_table.html:17 +#: .\pms\models.py:570 .\pms\templates\feedback\feedback_detailed_view.html:81 +#: .\pms\templates\feedback\feedback_list_view.html:48 +#: .\report\templates\report\pms_report.html:117 +msgid "Feedback" +msgstr "" + +#: .\offboarding\templates\offboarding\dashboard\employee_feedback_table.html:63 +#, fuzzy +#| msgid "candidates-view" +msgid "No feedbacks for Offboarding Employees." +msgstr "Candidates" + +#: .\offboarding\templates\offboarding\dashboard\employee_task_table.html:4 +#: .\offboarding\templates\offboarding\dashboard\employee_task_table.html:17 +#: .\offboarding\templates\offboarding\stage\offboarding_body.html:72 +#: .\onboarding\templates\onboarding\onboarding_table.html:122 +#: .\project\templates\dashboard\project_dashboard.html:69 +msgid "Task Status" +msgstr "" + +#: .\offboarding\templates\offboarding\dashboard\employee_task_table.html:15 +#: .\offboarding\templates\offboarding\pipeline\filter.html:91 +#: .\offboarding\templates\offboarding\pipeline\individual_view.html:77 +#: .\offboarding\templates\offboarding\pipeline\offboardings.html:126 +#: .\offboarding\templates\offboarding\stage\offboarding_body.html:70 +#: .\onboarding\models.py:50 +#: .\onboarding\templates\onboarding\kanban\kanban.html:149 +#: .\onboarding\templates\onboarding\onboarding_table.html:123 +#: .\onboarding\templates\onboarding\onboarding_view.html:63 +#: .\onboarding\templates\onboarding\onboardings.html:14 +#: .\onboarding\templates\onboarding\single_view.html:71 +#: .\onboarding\templates\onboarding\table.html:14 .\project\cbv\tasks.py:87 +#: .\project\cbv\tasks.py:242 .\project\cbv\tasks.py:416 +#: .\project\templates\cbv\tasks\task_filter.html:16 +#: .\project\templates\task\new\filter_task.html:14 +#: .\project\templates\task\new\task_details.html:29 +#: .\project\templates\task\new\task_list_view.html:110 +#: .\project\templates\task_all\task_all_filter.html:15 +#: .\project\templates\task_all\task_all_list.html:52 +#: .\recruitment\forms.py:333 .\recruitment\forms.py:647 +#: .\recruitment\models.py:361 +#: .\recruitment\templates\candidate\export_filter.html:145 +#: .\recruitment\templates\candidate\filters.html:108 +#: .\recruitment\templates\pipeline\components\candidate_stage_component.html:64 +#: .\recruitment\templates\pipeline\components\pipeline_search_components.html:22 +#: .\recruitment\templates\pipeline\filters.html:82 +#: .\recruitment\templates\pipeline\form\stage_update.html:20 +#: .\recruitment\templates\pipeline\kanban_components\kanban_stage_components.html:95 +#: .\recruitment\templates\pipeline\pipeline_card.html:365 +#: .\recruitment\templates\stage\filters.html:4 +#: .\recruitment\templates\stage\nav.html:7 +#: .\recruitment\templates\stage\stage_empty.html:5 +#: .\recruitment\templates\stage\stage_form.html:21 +#: .\recruitment\templates\stage\stage_update_form.html:28 +#: .\report\templates\report\recruitment_report.html:186 +msgid "Stage" +msgstr "" + +#: .\offboarding\templates\offboarding\dashboard\employee_task_table.html:66 +msgid "No Pending Tasks for Offboarding Employees." +msgstr "" + #: .\offboarding\templates\offboarding\note\view_notes.html:83 #: .\recruitment\templates\candidate\individual_view_note.html:74 #: .\recruitment\templates\pipeline\pipeline_components\view_note.html:171 @@ -20635,7 +21236,7 @@ msgid "Notice Period Ends" msgstr "" #: .\offboarding\templates\offboarding\pipeline\filter.html:76 -#: .\onboarding\templates\onboarding\filters.html:12 .\pms\models.py:857 +#: .\onboarding\templates\onboarding\filters.html:12 .\pms\models.py:885 #: .\pms\templates\meetings\meeting_single_view.html:68 #: .\pms\templates\meetings\meetings_list.html:30 #: .\pms\templates\meetings\meetings_list.html:31 @@ -20645,54 +21246,23 @@ msgstr "" #: .\pms\templates\okr\okr_list.html:198 .\pms\templates\okr\okr_list.html:438 #: .\pms\templates\okr\okr_list.html:440 .\pms\templates\okr\okr_list.html:488 #: .\pms\templates\okr\okr_nav.html:92 +#: .\project\templates\task\new\filter_task.html:10 #: .\recruitment\templates\pipeline\filters.html:12 #: .\recruitment\templates\pipeline\form\recruitment_update.html:43 #: .\recruitment\templates\recruitment\filters.html:9 #: .\recruitment\templates\recruitment\recruitment_component.html:68 -#: .\recruitment\templates\recruitment\recruitment_component.html:131 +#: .\recruitment\templates\recruitment\recruitment_component.html:140 #: .\recruitment\templates\recruitment\recruitment_duplicate_form.html:66 #: .\recruitment\templates\recruitment\recruitment_form.html:107 #: .\recruitment\templates\recruitment\recruitment_update_form.html:97 #: .\recruitment\templates\stage\stage_component.html:47 #: .\recruitment\templates\stage\stage_component.html:50 #: .\recruitment\templates\stage\stage_component.html:128 +#: .\report\templates\report\pms_report.html:45 +#: .\report\templates\report\recruitment_report.html:121 msgid "Managers" msgstr "" -#: .\offboarding\templates\offboarding\pipeline\filter.html:91 -#: .\offboarding\templates\offboarding\pipeline\individual_view.html:77 -#: .\offboarding\templates\offboarding\pipeline\offboardings.html:126 -#: .\offboarding\templates\offboarding\stage\offboarding_body.html:70 -#: .\onboarding\templates\onboarding\kanban\kanban.html:149 -#: .\onboarding\templates\onboarding\onboarding_table.html:123 -#: .\onboarding\templates\onboarding\onboarding_view.html:63 -#: .\onboarding\templates\onboarding\onboardings.html:14 -#: .\onboarding\templates\onboarding\single_view.html:71 -#: .\onboarding\templates\onboarding\table.html:14 -#: .\project\templates\task\new\filter_task.html:19 -#: .\project\templates\task\new\task_details.html:29 -#: .\project\templates\task\new\task_kanban_view.html:196 -#: .\project\templates\task\new\task_list_view.html:122 -#: .\project\templates\task_all\task_all_filter.html:15 -#: .\project\templates\task_all\task_all_list.html:52 -#: .\recruitment\forms.py:320 .\recruitment\forms.py:634 -#: .\recruitment\models.py:360 -#: .\recruitment\templates\candidate\export_filter.html:145 -#: .\recruitment\templates\candidate\filters.html:108 -#: .\recruitment\templates\pipeline\components\candidate_stage_component.html:64 -#: .\recruitment\templates\pipeline\components\pipeline_search_components.html:22 -#: .\recruitment\templates\pipeline\filters.html:82 -#: .\recruitment\templates\pipeline\form\stage_update.html:20 -#: .\recruitment\templates\pipeline\kanban_components\kanban_stage_components.html:95 -#: .\recruitment\templates\pipeline\pipeline_card.html:365 -#: .\recruitment\templates\stage\filters.html:4 -#: .\recruitment\templates\stage\nav.html:7 -#: .\recruitment\templates\stage\stage_empty.html:8 -#: .\recruitment\templates\stage\stage_form.html:21 -#: .\recruitment\templates\stage\stage_update_form.html:28 -msgid "Stage" -msgstr "" - #: .\offboarding\templates\offboarding\pipeline\individual_view.html:61 #: .\onboarding\templates\onboarding\single_view.html:53 #: .\recruitment\templates\pipeline\components\candidate_stage_component.html:53 @@ -20710,7 +21280,8 @@ msgstr "" #: .\offboarding\templates\offboarding\pipeline\individual_view.html:96 #: .\onboarding\templates\onboarding\kanban\kanban.html:126 #: .\onboarding\templates\onboarding\single_view.html:102 -#: .\project\templates\task\new\task_list_view.html:115 +#: .\project\cbv\tasks.py:167 .\project\models.py:381 +#: .\project\templates\task\new\task_list_view.html:103 #: .\project\templates\task_all\task_all_navbar.html:6 msgid "Tasks" msgstr "" @@ -20724,11 +21295,11 @@ msgid "Planned to resign" msgstr "" #: .\offboarding\templates\offboarding\resignation\filter.html:42 -#: .\onboarding\templates\onboarding\candidates.html:58 -#: .\onboarding\templates\onboarding\group_by.html:49 +#: .\onboarding\templates\onboarding\candidates.html:57 +#: .\onboarding\templates\onboarding\group_by.html:48 #: .\payroll\templates\payroll\loan\filter.html:45 #: .\payroll\templates\payroll\reimbursement\filter.html:41 -#: .\recruitment\templates\pipeline\pipeline_empty.html:28 +#: .\recruitment\templates\pipeline\pipeline_empty.html:25 msgid "Job position" msgstr "" @@ -20766,7 +21337,6 @@ msgstr "" #: .\offboarding\templates\offboarding\resignation\request_cards.html:51 #: .\offboarding\templates\offboarding\resignation\request_list.html:132 -#: .\onboarding\templates\onboarding\candidates.html:135 #: .\onboarding\templates\onboarding\group_by.html:127 msgid "Do you want to delete this record" msgstr "" @@ -20808,19 +21378,13 @@ msgid "Are you sure want to delete this stage?" msgstr "" #: .\offboarding\templates\offboarding\stage\offboarding_body.html:66 -#: .\payroll\models\models.py:244 +#: .\payroll\models\models.py:242 #: .\payroll\templates\payroll\settings\settings.html:4 msgid "Notice Period" msgstr "" -#: .\offboarding\templates\offboarding\stage\offboarding_body.html:72 -#: .\onboarding\templates\onboarding\onboarding_table.html:122 -#: .\project\templates\dashboard\project_dashboard.html:69 -msgid "Task Status" -msgstr "" - #: .\offboarding\templates\offboarding\stage\offboarding_body.html:109 -#: .\project\templates\task\new\task_list_view.html:49 +#: .\project\templates\task\new\task_list_view.html:52 #, fuzzy #| msgid "employee" msgid "Add Task" @@ -20838,165 +21402,168 @@ msgstr "" msgid "Show managing records" msgstr "" -#: .\offboarding\views.py:214 +#: .\offboarding\views.py:235 #, fuzzy #| msgid "onboarding" msgid "Offboarding saved" msgstr "Onboarding" -#: .\offboarding\views.py:250 +#: .\offboarding\views.py:271 #, fuzzy #| msgid "onboarding" msgid "Offboarding deleted" msgstr "Onboarding" -#: .\offboarding\views.py:252 +#: .\offboarding\views.py:273 #, fuzzy #| msgid "onboarding" msgid "Offboarding not found" msgstr "Onboarding" -#: .\offboarding\views.py:277 +#: .\offboarding\views.py:298 msgid "Stage saved" msgstr "" -#: .\offboarding\views.py:322 +#: .\offboarding\views.py:343 #, fuzzy #| msgid "employee" msgid "Employee saved" msgstr "Employee" -#: .\offboarding\views.py:349 +#: .\offboarding\views.py:370 msgid "Offboarding employee deleted" msgstr "" -#: .\offboarding\views.py:364 +#: .\offboarding\views.py:385 #, fuzzy #| msgid "employee" msgid "Employees not found" msgstr "Employee" -#: .\offboarding\views.py:379 +#: .\offboarding\views.py:400 msgid "Stage deleted" msgstr "" -#: .\offboarding\views.py:381 .\offboarding\views.py:383 +#: .\offboarding\views.py:402 .\offboarding\views.py:404 #, fuzzy #| msgid "attendance-view" msgid "Stage not found" msgstr "Attendances" -#: .\offboarding\views.py:433 +#: .\offboarding\views.py:458 msgid "stage changed successfully." msgstr "" -#: .\offboarding\views.py:485 +#: .\offboarding\views.py:510 msgid "Note added successfully" msgstr "" -#: .\offboarding\views.py:507 +#: .\offboarding\views.py:532 msgid "The note has been successfully deleted." msgstr "" -#: .\offboarding\views.py:509 .\recruitment\views\actions.py:128 +#: .\offboarding\views.py:534 .\recruitment\views\actions.py:137 msgid "Note not found." msgstr "" -#: .\offboarding\views.py:557 +#: .\offboarding\views.py:582 #, fuzzy #| msgid "assign-view" msgid "Task Added" msgstr "Assigned Leaves" -#: .\offboarding\views.py:612 +#: .\offboarding\views.py:637 msgid "Task status changed successfully." msgstr "" -#: .\offboarding\views.py:647 +#: .\offboarding\views.py:672 #, fuzzy #| msgid "assign-view" msgid "Task Assigned" msgstr "Assigned Leaves" -#: .\offboarding\views.py:663 +#: .\offboarding\views.py:688 #, fuzzy #| msgid "onboarding" msgid "Task deleted" msgstr "Onboarding" -#: .\offboarding\views.py:665 +#: .\offboarding\views.py:690 #, fuzzy #| msgid "shift-request-view" msgid "Task not found" msgstr "Shift Requests" -#: .\offboarding\views.py:818 +#: .\offboarding\views.py:843 #, fuzzy #| msgid "attendance" msgid "Resignation letter deleted" msgstr "Attendance" -#: .\offboarding\views.py:843 +#: .\offboarding\views.py:868 #, fuzzy #| msgid "attendance" msgid "Resignation letter saved" msgstr "Attendance" -#: .\offboarding\views.py:937 +#: .\offboarding\views.py:962 #, fuzzy #| msgid "shift-request-view" msgid "Resignation Request setting has been {} successfully." msgstr "Shift Requests" -#: .\onboarding\forms.py:203 +#: .\onboarding\forms.py:135 #: .\onboarding\templates\onboarding\candidate_creation.html:31 #: .\onboarding\templates\onboarding\candidate_update.html:38 msgid "Full Name" msgstr "" -#: .\onboarding\forms.py:205 +#: .\onboarding\forms.py:137 #: .\onboarding\templates\onboarding\candidate_creation.html:57 #: .\onboarding\templates\onboarding\candidate_update.html:69 #: .\onboarding\templates\onboarding\onboarding_table.html:119 #: .\onboarding\templates\onboarding\onboardings.html:12 -#: .\recruitment\forms.py:404 +#: .\recruitment\forms.py:417 msgid "Mobile" msgstr "" -#: .\onboarding\forms.py:234 +#: .\onboarding\forms.py:166 msgid "Task title" msgstr "" -#: .\onboarding\forms.py:354 -msgid "Stage Title" -msgstr "" +#: .\onboarding\forms.py:207 .\onboarding\models.py:89 .\project\models.py:342 +#: .\project\templates\task\new\task_list_view.html:107 +#, fuzzy +#| msgid "department-update" +msgid "Task Managers" +msgstr "Update" -#: .\onboarding\forms.py:355 -msgid "Is Final Stage" -msgstr "" - -#: .\onboarding\forms.py:416 +#: .\onboarding\forms.py:343 #: .\onboarding\templates\onboarding\employee_creation.html:156 msgid "Emergency Contact Number" msgstr "" -#: .\onboarding\forms.py:448 +#: .\onboarding\forms.py:376 msgid "Experience should be a postive integier" msgstr "" -#: .\onboarding\forms.py:450 +#: .\onboarding\forms.py:380 msgid "No of children should be a postive integier" msgstr "" +#: .\onboarding\models.py:27 +msgid "Stage Title" +msgstr "" + #: .\onboarding\models.py:30 #: .\onboarding\templates\onboarding\candidate_creation.html:44 #: .\onboarding\templates\onboarding\candidate_filter.html:15 #: .\onboarding\templates\onboarding\candidate_update.html:53 -#: .\onboarding\templates\onboarding\candidates.html:59 +#: .\onboarding\templates\onboarding\candidates.html:58 #: .\onboarding\templates\onboarding\filters.html:6 -#: .\onboarding\templates\onboarding\group_by.html:50 -#: .\recruitment\forms.py:737 .\recruitment\models.py:288 -#: .\recruitment\models.py:347 .\recruitment\models.py:729 +#: .\onboarding\templates\onboarding\group_by.html:49 +#: .\recruitment\forms.py:750 .\recruitment\models.py:289 +#: .\recruitment\models.py:348 .\recruitment\models.py:729 #: .\recruitment\models.py:790 .\recruitment\sidebar.py:14 #: .\recruitment\sidebar.py:44 #: .\recruitment\templates\candidate\candidate_list.html:100 @@ -21011,7 +21578,7 @@ msgstr "" #: .\recruitment\templates\pipeline\filters.html:87 #: .\recruitment\templates\pipeline\form\stage_update.html:24 #: .\recruitment\templates\pipeline\nav.html:194 -#: .\recruitment\templates\pipeline\pipeline_empty.html:49 +#: .\recruitment\templates\pipeline\pipeline_empty.html:48 #: .\recruitment\templates\recruitment\filters.html:4 #: .\recruitment\templates\recruitment\nav.html:4 #: .\recruitment\templates\recruitment\recruitment_component.html:67 @@ -21022,31 +21589,83 @@ msgstr "" #: .\recruitment\templates\stage\stage_update_form.html:32 #: .\recruitment\templates\survey\filter.html:16 #: .\recruitment\templates\survey\view_single_template.html:53 -#: .\templates\settings.html:201 +#: .\report\templates\report\recruitment_report.html:56 +#: .\report\templates\report\recruitment_report.html:112 +#: .\report\templates\report\recruitment_report.html:117 +#: .\report\templates\report\recruitment_report.html:182 +#: .\report\templates\report\recruitment_report.html:246 +#: .\templates\settings.html:221 msgid "Recruitment" msgstr "" -#: .\onboarding\models.py:84 -#: .\onboarding\templates\onboarding\task_form.html:26 -#: .\onboarding\templates\onboarding\task_update.html:24 -#, fuzzy -#| msgid "department-update" -msgid "Task Managers" -msgstr "Update" - -#: .\onboarding\models.py:129 -msgid "Candidate Onboarding stage" +#: .\onboarding\models.py:35 +#: .\recruitment\templates\candidate\export_filter.html:139 +#: .\recruitment\templates\candidate\filters.html:102 +#: .\recruitment\templates\pipeline\filters.html:98 +#: .\recruitment\templates\pipeline\form\stage_update.html:28 +#: .\recruitment\templates\stage\filters.html:25 +#: .\recruitment\templates\stage\stage_form.html:29 +#: .\recruitment\templates\stage\stage_update_form.html:36 +msgid "Stage Managers" msgstr "" -#: .\onboarding\models.py:143 +#: .\onboarding\models.py:38 +msgid "Is Final Stage" +msgstr "" + +#: .\onboarding\models.py:51 .\onboarding\templates\onboarding\tabs.html:11 +#: .\recruitment\sidebar.py:54 +#: .\recruitment\templates\pipeline\pipeline_tabs.html:14 +msgid "Stages" +msgstr "" + +#: .\onboarding\models.py:73 .\project\forms.py:104 +msgid "Task Title" +msgstr "" + +#: .\onboarding\models.py:86 .\onboarding\templates\onboarding\group_by.html:23 +#: .\recruitment\sidebar.py:34 +#: .\recruitment\templates\candidate\candidate_empty.html:8 +#: .\recruitment\templates\candidate\candidate_list.html:96 +#: .\recruitment\templates\candidate\candidate_nav.html:17 +#: .\recruitment\templates\candidate\export_filter.html:45 +#: .\recruitment\templates\candidate\filters.html:7 +#: .\recruitment\templates\candidate\group_by.html:63 +#: .\recruitment\templates\candidate\group_by.html:84 +#: .\recruitment\templates\dashboard\dashboard.html:138 +#: .\recruitment\templates\pipeline\components\candidate_stage_component.html:322 +#: .\recruitment\templates\pipeline\filters.html:109 +#: .\recruitment\templates\pipeline\kanban_components\candidate_kanban_components.html:239 +#: .\recruitment\templates\recruitment\recruitment_component.html:167 +#: .\recruitment\templates\skill_zone\skill_zone_nav.html:46 +#: .\recruitment\templates\skill_zone_cand\skill_zone_cand_nav.html:44 +#: .\report\templates\report\recruitment_report.html:201 +msgid "Candidates" +msgstr "" + +#: .\onboarding\models.py:102 .\onboarding\models.py:188 +#, fuzzy +#| msgid "onboarding" +msgid "Onboarding Task" +msgstr "Onboarding" + +#: .\onboarding\models.py:103 .\onboarding\models.py:189 +#, fuzzy +#| msgid "onboarding" +msgid "Onboarding Tasks" +msgstr "Onboarding" + +#: .\onboarding\models.py:142 +#, fuzzy +#| msgid "attendance-view" +msgid "Candidate Onboarding Stage" +msgstr "Attendances" + +#: .\onboarding\models.py:156 #: .\onboarding\templates\onboarding\dashboard\task_report.html:28 msgid "Done" msgstr "" -#: .\onboarding\models.py:175 -msgid "Candidate onboarding task" -msgstr "" - #: .\onboarding\templates\onboarding\candidate_creation.html:16 #: .\onboarding\templates\onboarding\candidate_update.html:23 msgid "View candidates" @@ -21094,25 +21713,26 @@ msgstr "" #: .\recruitment\templates\candidate\filters.html:63 #: .\recruitment\templates\pipeline\filters.html:150 #: .\recruitment\templates\skill_zone\skill_zone_nav.html:109 +#: .\report\templates\report\recruitment_report.html:70 msgid "Offer Status" msgstr "" -#: .\onboarding\templates\onboarding\candidates.html:13 -#: .\onboarding\templates\onboarding\group_by.html:5 +#: .\onboarding\templates\onboarding\candidates.html:11 +#: .\onboarding\templates\onboarding\group_by.html:4 #: .\recruitment\templates\candidate\candidate_list.html:58 #: .\recruitment\templates\candidate\group_by.html:42 msgid "Select All Candidates" msgstr "" -#: .\onboarding\templates\onboarding\candidates.html:16 -#: .\onboarding\templates\onboarding\group_by.html:8 +#: .\onboarding\templates\onboarding\candidates.html:14 +#: .\onboarding\templates\onboarding\group_by.html:7 #: .\recruitment\templates\candidate\candidate_list.html:61 #: .\recruitment\templates\candidate\group_by.html:45 msgid "Unselect All Candidates" msgstr "" -#: .\onboarding\templates\onboarding\candidates.html:19 -#: .\onboarding\templates\onboarding\group_by.html:11 +#: .\onboarding\templates\onboarding\candidates.html:17 +#: .\onboarding\templates\onboarding\group_by.html:10 #: .\recruitment\templates\candidate\candidate_list.html:64 #: .\recruitment\templates\candidate\export_filter.html:4 #: .\recruitment\templates\candidate\group_by.html:48 @@ -21120,40 +21740,44 @@ msgstr "" msgid "Export Candidates" msgstr "" -#: .\onboarding\templates\onboarding\candidates.html:54 -#: .\onboarding\templates\onboarding\group_by.html:45 +#: .\onboarding\templates\onboarding\candidates.html:49 +#: .\onboarding\templates\onboarding\group_by.html:44 #: .\onboarding\templates\onboarding\kanban\kanban.html:51 #: .\onboarding\templates\onboarding\kanban\kanban.html:137 #: .\onboarding\templates\onboarding\onboarding_table.html:23 #: .\onboarding\templates\onboarding\onboarding_table.html:116 -#: .\recruitment\forms.py:998 .\recruitment\models.py:875 -#: .\recruitment\models.py:944 +#: .\recruitment\forms.py:1002 .\recruitment\models.py:864 +#: .\recruitment\models.py:938 #: .\recruitment\templates\candidate\export_filter.html:50 -#: .\recruitment\templates\candidate\interview_list.html:39 +#: .\recruitment\templates\candidate\interview_list.html:40 #: .\recruitment\templates\candidate\interview_nav.html:54 #: .\recruitment\templates\dashboard\dashboard.html:138 #: .\recruitment\templates\pipeline\components\candidate_stage_component.html:43 #: .\recruitment\templates\skill_zone\skill_zone_list.html:102 #: .\recruitment\templates\skill_zone_cand\skill_zone_cand_list.html:10 +#: .\report\templates\report\recruitment_report.html:37 +#: .\report\templates\report\recruitment_report.html:245 msgid "Candidate" msgstr "" -#: .\onboarding\templates\onboarding\candidates.html:56 -#: .\onboarding\templates\onboarding\group_by.html:47 +#: .\onboarding\templates\onboarding\candidates.html:51 +#: .\onboarding\templates\onboarding\candidates.html:53 +#: .\onboarding\templates\onboarding\group_by.html:46 msgid "Date of joining" msgstr "" -#: .\onboarding\templates\onboarding\candidates.html:57 -#: .\onboarding\templates\onboarding\group_by.html:48 +#: .\onboarding\templates\onboarding\candidates.html:54 +#: .\onboarding\templates\onboarding\candidates.html:56 +#: .\onboarding\templates\onboarding\group_by.html:47 msgid "Probation ends" msgstr "" -#: .\onboarding\templates\onboarding\candidates.html:60 -#: .\onboarding\templates\onboarding\group_by.html:51 +#: .\onboarding\templates\onboarding\candidates.html:59 +#: .\onboarding\templates\onboarding\group_by.html:50 msgid "Offer letter" msgstr "" -#: .\onboarding\templates\onboarding\candidates.html:122 +#: .\onboarding\templates\onboarding\candidates.html:134 #: .\onboarding\templates\onboarding\group_by.html:113 #: .\recruitment\templates\candidate\candidate_card.html:146 #: .\recruitment\templates\candidate\candidate_list.html:237 @@ -21163,7 +21787,7 @@ msgstr "" msgid "Added In Rejected Candidates" msgstr "" -#: .\onboarding\templates\onboarding\candidates.html:122 +#: .\onboarding\templates\onboarding\candidates.html:134 #: .\onboarding\templates\onboarding\group_by.html:113 #: .\recruitment\templates\candidate\candidate_card.html:148 #: .\recruitment\templates\candidate\candidate_list.html:239 @@ -21173,15 +21797,19 @@ msgstr "" msgid "Add To Rejected Candidates" msgstr "" -#: .\onboarding\templates\onboarding\candidates.html:127 +#: .\onboarding\templates\onboarding\candidates.html:142 #: .\onboarding\templates\onboarding\group_by.html:118 msgid "Send Portal / Start Onboarding" msgstr "" -#: .\onboarding\templates\onboarding\candidates.html:131 +#: .\onboarding\templates\onboarding\candidates.html:149 msgid "Send Portal / Start onboarding" msgstr "" +#: .\onboarding\templates\onboarding\candidates.html:153 +msgid " Do you want to delete this record" +msgstr "" + #: .\onboarding\templates\onboarding\candidates_view.html:158 msgid "Offer letter status :" msgstr "" @@ -21219,6 +21847,8 @@ msgstr "" #: .\onboarding\templates\onboarding\dashboard.html:44 #: .\onboarding\templates\onboarding\onboarding_view_nav.html:4 #: .\recruitment\templates\candidate\individual.html:266 +#: .\report\templates\report\recruitment_report.html:177 +#: .\report\templates\report\recruitment_report.html:247 msgid "Onboarding" msgstr "" @@ -21252,8 +21882,13 @@ msgstr "Onboarding" #: .\onboarding\templates\onboarding\dashboard\task_report.html:13 #: .\onboarding\templates\onboarding\onboarding_table.html:182 -#: .\onboarding\templates\onboarding\task_view.html:9 .\pms\models.py:834 -#: .\project\templates\task\new\filter_task.html:9 +#: .\onboarding\templates\onboarding\task_view.html:9 .\pms\models.py:862 +#: .\project\cbv\tasks.py:85 .\project\cbv\tasks.py:414 +#: .\project\cbv\timesheet.py:162 .\project\cbv\timesheet.py:490 +#: .\project\models.py:380 .\project\models.py:536 +#: .\project\templates\cbv\tasks\task_filter.html:6 +#: .\project\templates\cbv\timesheet\filter.html:20 +#: .\project\templates\task\new\filter_task.html:4 #: .\project\templates\task\new\forms\create_task.html:4 #: .\project\templates\task\new\forms\create_task_project.html:4 #: .\project\templates\task\new\forms\update_task.html:4 @@ -21267,12 +21902,14 @@ msgstr "Onboarding" #: .\project\templates\time_sheet\form_task_time_sheet.html:4 #: .\project\templates\time_sheet\time_sheet_list_view.html:37 #: .\project\templates\time_sheet\time_sheet_single_view.html:28 +#: .\report\templates\report\recruitment_report.html:190 msgid "Task" msgstr "" #: .\onboarding\templates\onboarding\employee_bank_details.html:52 #: .\onboarding\templates\onboarding\employee_creation.html:38 #: .\onboarding\templates\onboarding\user_creation.html:68 +#: .\outlook_auth\templates\outlook\actions.html:7 msgid "Login" msgstr "" @@ -21328,6 +21965,7 @@ msgstr "" #: .\onboarding\templates\onboarding\filters.html:20 #: .\recruitment\templates\pipeline\filters.html:71 #: .\recruitment\templates\recruitment\filters.html:37 +#: .\report\templates\report\recruitment_report.html:151 msgid "Is Published" msgstr "" @@ -21339,40 +21977,26 @@ msgstr "" #: .\payroll\templates\payroll\payslip\filter_payslips.html:64 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:143 #: .\pms\templates\okr\emp_objective\emp_objective_nav.html:97 +#: .\project\templates\cbv\timesheet\filter.html:46 #: .\project\templates\time_sheet\filters.html:47 #: .\recruitment\templates\pipeline\filters.html:28 #: .\recruitment\templates\recruitment\filters.html:52 +#: .\report\templates\report\payroll_report.html:71 +#: .\report\templates\report\payroll_report.html:186 +#: .\report\templates\report\pms_report.html:80 +#: .\report\templates\report\recruitment_report.html:157 msgid "Start Date From" msgstr "" #: .\onboarding\templates\onboarding\filters.html:57 +#: .\project\templates\cbv\timesheet\filter.html:52 #: .\project\templates\time_sheet\filters.html:53 #: .\recruitment\templates\pipeline\filters.html:63 #: .\recruitment\templates\recruitment\filters.html:62 +#: .\report\templates\report\recruitment_report.html:167 msgid "Till End Date" msgstr "" -#: .\onboarding\templates\onboarding\group_by.html:24 -#: .\onboarding\templates\onboarding\task_form.html:32 -#: .\onboarding\templates\onboarding\task_update.html:29 -#: .\recruitment\sidebar.py:34 -#: .\recruitment\templates\candidate\candidate_empty.html:11 -#: .\recruitment\templates\candidate\candidate_list.html:96 -#: .\recruitment\templates\candidate\candidate_nav.html:17 -#: .\recruitment\templates\candidate\export_filter.html:45 -#: .\recruitment\templates\candidate\filters.html:7 -#: .\recruitment\templates\candidate\group_by.html:63 -#: .\recruitment\templates\candidate\group_by.html:84 -#: .\recruitment\templates\dashboard\dashboard.html:138 -#: .\recruitment\templates\pipeline\components\candidate_stage_component.html:322 -#: .\recruitment\templates\pipeline\filters.html:109 -#: .\recruitment\templates\pipeline\kanban_components\candidate_kanban_components.html:239 -#: .\recruitment\templates\recruitment\recruitment_component.html:158 -#: .\recruitment\templates\skill_zone\skill_zone_nav.html:46 -#: .\recruitment\templates\skill_zone_cand\skill_zone_cand_nav.html:44 -msgid "Candidates" -msgstr "" - #: .\onboarding\templates\onboarding\group_by.html:122 msgid "Send Portal / Start onboarding" msgstr "" @@ -21383,28 +22007,13 @@ msgid "Do you want to delete this stage?" msgstr "" #: .\onboarding\templates\onboarding\kanban\kanban.html:84 +#: .\project\templates\task\new\task_kanban_view.html:57 msgid "Add task" msgstr "" -#: .\onboarding\templates\onboarding\kanban\kanban.html:217 -#: .\onboarding\templates\onboarding\kanban\kanban.html:229 -#: .\onboarding\templates\onboarding\kanban\kanban.html:242 -#: .\onboarding\templates\onboarding\kanban\kanban.html:256 -#: .\onboarding\templates\onboarding\onboarding_view.html:150 -#: .\onboarding\templates\onboarding\onboarding_view.html:163 -#: .\onboarding\templates\onboarding\onboarding_view.html:177 -#: .\onboarding\templates\onboarding\onboarding_view.html:192 -#: .\onboarding\templates\onboarding\onboarding_view.html:207 -#: .\payroll\templates\payroll\reimbursement\attachments.html:15 -#: .\pms\templates\feedback\feedback_detailed_view.html:468 -#: .\recruitment\templates\pipeline\pipeline_tabs.html:50 -#: .\recruitment\templates\recruitment\recruitment_component.html:291 -#: .\templates\import_popup.html:44 .\templates\index.html:115 -msgid "Close" -msgstr "" - #: .\onboarding\templates\onboarding\kanban\kanban.html:241 #: .\onboarding\templates\onboarding\onboarding_view.html:176 +#: .\project\cbv\tasks.py:256 msgid "Create Task" msgstr "" @@ -21443,23 +22052,24 @@ msgid "At present, There is no ongoing recruitment." msgstr "" #: .\onboarding\templates\onboarding\onboarding_view.html:191 +#: .\project\cbv\tasks.py:343 msgid "Update Task" msgstr "" #: .\onboarding\templates\onboarding\onboarding_view_nav.html:44 -#: .\pms\models.py:151 .\pms\models.py:286 .\pms\models.py:480 -#: .\pms\models.py:600 .\pms\templates\feedback\feedback_list.html:43 +#: .\pms\models.py:152 .\pms\models.py:287 .\pms\models.py:491 +#: .\pms\models.py:623 .\pms\templates\feedback\feedback_list.html:43 #: .\pms\templates\okr\group_by.html:20 #: .\pms\templates\okr\objective_list.html:21 #: .\recruitment\templates\pipeline\nav.html:279 -#: .\recruitment\templates\recruitment\recruitment_component.html:170 +#: .\recruitment\templates\recruitment\recruitment_component.html:179 #: .\recruitment\templates\recruitment\recruitment_view.html:13 msgid "Closed" msgstr "" #: .\onboarding\templates\onboarding\onboarding_view_nav.html:48 #: .\recruitment\templates\pipeline\nav.html:289 -#: .\recruitment\templates\recruitment\recruitment_component.html:168 +#: .\recruitment\templates\recruitment\recruitment_component.html:177 #: .\recruitment\templates\recruitment\recruitment_view.html:9 msgid "Open" msgstr "" @@ -21480,18 +22090,8 @@ msgstr "" msgid "Portal" msgstr "" -#: .\onboarding\templates\onboarding\tabs.html:11 .\recruitment\sidebar.py:54 -#: .\recruitment\templates\pipeline\pipeline_tabs.html:14 -msgid "Stages" -msgstr "" - -#: .\onboarding\templates\onboarding\task_form.html:20 -#: .\onboarding\templates\onboarding\task_update.html:19 -msgid "Task Title" -msgstr "" - #: .\onboarding\templates\onboarding\task_view.html:11 -#: .\project\templates\task\new\task_list_view.html:119 +#: .\report\templates\report\recruitment_report.html:209 msgid "Task Manager" msgstr "" @@ -21499,142 +22099,232 @@ msgstr "" msgid "Authentication" msgstr "" -#: .\onboarding\views.py:132 +#: .\onboarding\views.py:134 msgid "New stage created successfully.." msgstr "" -#: .\onboarding\views.py:178 +#: .\onboarding\views.py:180 msgid "Stage is updated successfully.." msgstr "" -#: .\onboarding\views.py:222 +#: .\onboarding\views.py:224 msgid "The stage deleted successfully..." msgstr "" -#: .\onboarding\views.py:225 .\recruitment\views\actions.py:165 +#: .\onboarding\views.py:227 .\recruitment\views\actions.py:174 msgid "Stage not found." msgstr "" -#: .\onboarding\views.py:227 +#: .\onboarding\views.py:229 msgid "There are candidates in this stage..." msgstr "" -#: .\onboarding\views.py:288 +#: .\onboarding\views.py:285 msgid "New task created successfully..." msgstr "" -#: .\onboarding\views.py:329 +#: .\onboarding\views.py:324 msgid "Task updated successfully.." msgstr "" -#: .\onboarding\views.py:381 +#: .\onboarding\views.py:365 msgid "The task deleted successfully..." msgstr "" -#: .\onboarding\views.py:383 +#: .\onboarding\views.py:367 msgid "Task not found." msgstr "" -#: .\onboarding\views.py:388 +#: .\onboarding\views.py:372 msgid "" "You cannot delete this task because some candidates are associated with it." msgstr "" -#: .\onboarding\views.py:414 +#: .\onboarding\views.py:398 msgid "New candidate created successfully.." msgstr "" -#: .\onboarding\views.py:439 +#: .\onboarding\views.py:423 msgid "Candidate detail is updated successfully.." msgstr "" -#: .\onboarding\views.py:459 .\recruitment\views\views.py:2517 +#: .\onboarding\views.py:443 .\recruitment\views\views.py:2552 msgid "Candidate deleted successfully.." msgstr "" -#: .\onboarding\views.py:461 .\recruitment\views\actions.py:220 -#: .\recruitment\views\actions.py:256 .\recruitment\views\views.py:653 -#: .\recruitment\views\views.py:671 .\recruitment\views\views.py:2498 -#: .\recruitment\views\views.py:2519 +#: .\onboarding\views.py:445 .\onboarding\views.py:1652 +#: .\recruitment\views\actions.py:229 .\recruitment\views\actions.py:265 +#: .\recruitment\views\views.py:680 .\recruitment\views\views.py:698 +#: .\recruitment\views\views.py:2533 .\recruitment\views\views.py:2554 msgid "Candidate not found." msgstr "" -#: .\onboarding\views.py:470 +#: .\onboarding\views.py:454 msgid "You cannot delete this candidate. The candidate is included in the {}" msgstr "" -#: .\onboarding\views.py:497 +#: .\onboarding\views.py:481 #, python-format msgid "%(recruitment)s has no stage.." msgstr "" -#: .\onboarding\views.py:954 +#: .\onboarding\views.py:942 msgid "User with email-id already exists.." msgstr "" -#: .\onboarding\views.py:985 +#: .\onboarding\views.py:973 msgid "Account created successfully.." msgstr "" -#: .\onboarding\views.py:1012 +#: .\onboarding\views.py:1000 msgid "Profile picture updated successfully.." msgstr "" -#: .\onboarding\views.py:1050 +#: .\onboarding\views.py:1038 msgid "Employee with email id already exists." msgstr "" -#: .\onboarding\views.py:1055 +#: .\onboarding\views.py:1043 #, fuzzy #| msgid "employee" msgid "Employee already exists.." msgstr "Employee" -#: .\onboarding\views.py:1093 +#: .\onboarding\views.py:1081 msgid "Employee personal details created successfully.." msgstr "" -#: .\onboarding\views.py:1160 +#: .\onboarding\views.py:1148 msgid "Employee bank details created successfully.." msgstr "" -#: .\onboarding\views.py:1221 +#: .\onboarding\views.py:1209 msgid "Candidate onboarding task updated" msgstr "" -#: .\onboarding\views.py:1354 .\onboarding\views.py:1413 +#: .\onboarding\views.py:1342 .\onboarding\views.py:1401 msgid "Candidate onboarding stage updated" msgstr "" -#: .\onboarding\views.py:1467 -#, python-brace-format -msgid "{candidate}'s Date of joining updated sussefully" +#: .\onboarding\views.py:1453 .\onboarding\views.py:1646 +#, fuzzy +#| msgid "candidate-view" +msgid "Missing candidate ID." +msgstr "Candidates" + +#: .\onboarding\views.py:1457 +msgid "Missing date of joining." msgstr "" -#: .\onboarding\views.py:1524 +#: .\onboarding\views.py:1465 .\recruitment\views\views.py:1580 +#: .\recruitment\views\views.py:1696 +#, fuzzy +#| msgid "attendance-view" +msgid "Candidate not found" +msgstr "Attendances" + +#: .\onboarding\views.py:1472 +#, fuzzy, python-brace-format +#| msgid "shift-request-view" +msgid "{candidate}'s Date of joining updated successfully" +msgstr "Shift Requests" + +#: .\onboarding\views.py:1529 msgid "No candidates started onboarding...." msgstr "" -#: .\onboarding\views.py:1545 +#: .\onboarding\views.py:1550 msgid "Candidate sequence updated" msgstr "" -#: .\onboarding\views.py:1567 .\project\views.py:1084 +#: .\onboarding\views.py:1572 msgid "Stage sequence updated" msgstr "" -#: .\onboarding\views.py:1581 .\recruitment\views\views.py:1287 +#: .\onboarding\views.py:1586 .\recruitment\views\views.py:1314 msgid "The stage title has been updated successfully" msgstr "" -#: .\payroll\filters.py:387 +#: .\onboarding\views.py:1660 +#, fuzzy +#| msgid "type-update" +msgid "Probation end date updated" +msgstr "Update" + +#: .\outlook_auth\cbv\views.py:58 +msgid "Token Expire" +msgstr "" + +#: .\outlook_auth\cbv\views.py:59 +msgid "Primary" +msgstr "" + +#: .\outlook_auth\cbv\views.py:83 +msgid "Create Mail Server" +msgstr "" + +#: .\outlook_auth\cbv\views.py:88 +msgid "Update Mail Server" +msgstr "" + +#: .\outlook_auth\cbv\views.py:95 +#, fuzzy +#| msgid "shift-request-view" +msgid "Mail server updated successfully." +msgstr "Shift Requests" + +#: .\outlook_auth\cbv\views.py:97 +#, fuzzy +#| msgid "shift-request-view" +msgid "Mail server created successfully." +msgstr "Shift Requests" + +#: .\outlook_auth\models.py:22 +msgid "Client ID" +msgstr "" + +#: .\outlook_auth\models.py:24 +msgid "Client Secret" +msgstr "" + +#: .\outlook_auth\models.py:26 +msgid "Tenant ID" +msgstr "" + +#: .\outlook_auth\models.py:73 +msgid "Expired⚠️" +msgstr "" + +#: .\outlook_auth\templates\outlook\actions.html:4 +msgid "Refresh Token" +msgstr "" + +#: .\outlook_auth\views.py:81 +msgid "Token not refreshed, Login required" +msgstr "" + +#: .\outlook_auth\views.py:83 +#, fuzzy +#| msgid "shift-request-view" +msgid "Token refreshed successfully" +msgstr "Shift Requests" + +#: .\outlook_auth\views.py:155 +msgid "Mail sent" +msgstr "" + +#: .\outlook_auth\views.py:160 +msgid "Outlook authentication required/expired" +msgstr "" + +#: .\payroll\filters.py:458 msgid "Payslip Batch" msgstr "" -#: .\payroll\filters.py:390 .\payroll\forms\component_forms.py:491 -#: .\payroll\models\models.py:85 .\payroll\models\models.py:719 -#: .\payroll\models\models.py:733 .\payroll\models\models.py:1061 -#: .\payroll\models\models.py:1066 +#: .\payroll\filters.py:461 .\payroll\forms\component_forms.py:501 +#: .\payroll\models\models.py:83 .\payroll\models\models.py:717 +#: .\payroll\models\models.py:731 .\payroll\models\models.py:1052 +#: .\payroll\models\models.py:1057 #: .\payroll\templates\payroll\payslip\individual_payslip_summery.html:101 #: .\payroll\templates\payroll\payslip\individual_pdf.html:164 #: .\payroll\templates\payroll\payslip\payslip_pdf.html:288 @@ -21642,499 +22332,499 @@ msgstr "" msgid "Basic Pay" msgstr "" -#: .\payroll\forms\component_forms.py:295 +#: .\payroll\forms\component_forms.py:300 msgid "You need to choose the employee." msgstr "" -#: .\payroll\forms\component_forms.py:490 +#: .\payroll\forms\component_forms.py:500 msgid "Contract Wage" msgstr "" -#: .\payroll\forms\component_forms.py:555 .\payroll\models\models.py:652 +#: .\payroll\forms\component_forms.py:565 .\payroll\models\models.py:650 msgid "Rate must be greater than 0" msgstr "" -#: .\payroll\forms\component_forms.py:557 .\payroll\models\models.py:654 +#: .\payroll\forms\component_forms.py:567 .\payroll\models\models.py:652 msgid "Rate must be less than 100" msgstr "" -#: .\payroll\forms\component_forms.py:723 +#: .\payroll\forms\component_forms.py:733 #, fuzzy #| msgid "employee" msgid "Asset Fine" msgstr "Employee" -#: .\payroll\forms\component_forms.py:727 +#: .\payroll\forms\component_forms.py:737 #, fuzzy #| msgid "view-allowance" msgid "Fine Amount" msgstr "Allowances" -#: .\payroll\forms\component_forms.py:728 +#: .\payroll\forms\component_forms.py:738 #, fuzzy #| msgid "type-view" msgid "Fine Date" msgstr "Leave Types" -#: .\payroll\forms\component_forms.py:940 -#: .\payroll\forms\component_forms.py:944 +#: .\payroll\forms\component_forms.py:950 +#: .\payroll\forms\component_forms.py:954 msgid "Value can't be negative." msgstr "" -#: .\payroll\forms\component_forms.py:948 +#: .\payroll\forms\component_forms.py:958 msgid "Not enough carryforward days to redeem" msgstr "" -#: .\payroll\forms\component_forms.py:952 +#: .\payroll\forms\component_forms.py:962 msgid "Not enough available days to redeem" msgstr "" -#: .\payroll\models\models.py:50 +#: .\payroll\models\models.py:48 msgid "Value must be greater than zero" msgstr "" -#: .\payroll\models\models.py:87 .\payroll\models\models.py:1068 +#: .\payroll\models\models.py:85 .\payroll\models\models.py:1059 #: .\payroll\templates\payroll\payslip\individual_payslip_summery.html:64 msgid "Taxable Gross Pay" msgstr "" -#: .\payroll\models\models.py:129 +#: .\payroll\models\models.py:127 msgid "Commission" msgstr "" -#: .\payroll\models\models.py:160 +#: .\payroll\models\models.py:158 msgid "Contract Title." msgstr "" -#: .\payroll\models\models.py:183 .\payroll\models\models.py:683 +#: .\payroll\models\models.py:181 .\payroll\models\models.py:681 #: .\payroll\templates\payroll\contract\contract_export_filter.html:73 #: .\payroll\templates\payroll\contract\contract_single_view.html:140 #: .\payroll\templates\payroll\contract\filter_contract.html:39 msgid "Pay Frequency" msgstr "" -#: .\payroll\models\models.py:242 +#: .\payroll\models\models.py:240 msgid "Notice period in total days." msgstr "" -#: .\payroll\models\models.py:249 +#: .\payroll\models\models.py:247 #: .\payroll\templates\payroll\contract\contract_single_view.html:104 msgid "Deduct From Basic Pay" msgstr "" -#: .\payroll\models\models.py:250 +#: .\payroll\models\models.py:248 msgid "Deduct the leave amount from basic pay." msgstr "" -#: .\payroll\models\models.py:254 +#: .\payroll\models\models.py:252 msgid "Calculate Daily Leave Amount" msgstr "" -#: .\payroll\models\models.py:256 +#: .\payroll\models\models.py:254 msgid "" "Leave amount will be calculated by dividing the basic pay by number of " "working days." msgstr "" -#: .\payroll\models\models.py:263 +#: .\payroll\models\models.py:261 msgid "Deduction For One Leave Amount" msgstr "" -#: .\payroll\models\models.py:283 +#: .\payroll\models\models.py:281 msgid "End date must be greater than start date" msgstr "" -#: .\payroll\models\models.py:295 .\payroll\models\models.py:347 +#: .\payroll\models\models.py:293 .\payroll\models\models.py:345 msgid "An active contract already exists for this employee." msgstr "" -#: .\payroll\models\models.py:307 .\payroll\models\models.py:360 +#: .\payroll\models\models.py:305 .\payroll\models\models.py:358 msgid "A draft contract already exists for this employee." msgstr "" -#: .\payroll\models\models.py:679 +#: .\payroll\models\models.py:677 msgid "Company Experience" msgstr "" -#: .\payroll\models\models.py:685 +#: .\payroll\models\models.py:683 msgid "Department on Contract" msgstr "" -#: .\payroll\models\models.py:704 .\payroll\models\models.py:794 -#: .\payroll\models\models.py:1144 +#: .\payroll\models\models.py:702 .\payroll\models\models.py:792 +#: .\payroll\models\models.py:1135 msgid "The value must be like the data stored in the database" msgstr "" -#: .\payroll\models\models.py:714 +#: .\payroll\models\models.py:712 msgid "Exclude the allowance" msgstr "" -#: .\payroll\models\models.py:715 .\payroll\models\models.py:1074 +#: .\payroll\models\models.py:713 .\payroll\models\models.py:1065 msgid "Provide max amount" msgstr "" -#: .\payroll\models\models.py:736 +#: .\payroll\models\models.py:734 msgid "Title of the allowance" msgstr "" -#: .\payroll\models\models.py:742 +#: .\payroll\models\models.py:740 msgid "" "The one-time allowance in which the allowance will apply to the " "payslips if the date between the payslip period" msgstr "" -#: .\payroll\models\models.py:748 .\payroll\models\models.py:1088 +#: .\payroll\models\models.py:746 .\payroll\models\models.py:1079 msgid "Include all active employees" msgstr "" -#: .\payroll\models\models.py:749 +#: .\payroll\models\models.py:747 msgid "Target allowance to all active employees in the company" msgstr "" -#: .\payroll\models\models.py:753 .\payroll\models\models.py:1093 +#: .\payroll\models\models.py:751 .\payroll\models\models.py:1084 msgid "Employees Specific" msgstr "" -#: .\payroll\models\models.py:756 +#: .\payroll\models\models.py:754 msgid "Target allowance to the specific employees" msgstr "" -#: .\payroll\models\models.py:764 +#: .\payroll\models\models.py:762 msgid "" "To ignore the allowance to the employees when target them by all " "employees or through condition-based" msgstr "" -#: .\payroll\models\models.py:770 +#: .\payroll\models\models.py:768 msgid "This field is used to calculate the taxable allowances" msgstr "" -#: .\payroll\models\models.py:775 +#: .\payroll\models\models.py:773 msgid "" "This field is used to target allowance to the specific employees " "when the condition satisfies with the employee's information" msgstr "" -#: .\payroll\models\models.py:785 .\payroll\models\models.py:1135 +#: .\payroll\models\models.py:783 .\payroll\models\models.py:1126 msgid "The related field of the employees" msgstr "" -#: .\payroll\models\models.py:798 +#: .\payroll\models\models.py:796 msgid "To specify, the allowance is fixed or not" msgstr "" -#: .\payroll\models\models.py:804 +#: .\payroll\models\models.py:802 msgid "Fixed amount for this allowance" msgstr "" -#: .\payroll\models\models.py:814 +#: .\payroll\models\models.py:812 msgid "If the allowance is not fixed then specifies how the allowance provided" msgstr "" -#: .\payroll\models\models.py:823 .\payroll\models\models.py:1191 +#: .\payroll\models\models.py:821 .\payroll\models\models.py:1182 msgid "The percentage of based on" msgstr "" -#: .\payroll\models\models.py:831 +#: .\payroll\models\models.py:829 msgid "The attendance fixed amount for one validated attendance" msgstr "" -#: .\payroll\models\models.py:839 +#: .\payroll\models\models.py:837 msgid "The fixed amount per children" msgstr "" -#: .\payroll\models\models.py:854 +#: .\payroll\models\models.py:852 msgid "The fixed amount for one validated attendance with that shift" msgstr "" -#: .\payroll\models\models.py:862 +#: .\payroll\models\models.py:860 msgid "" "The fixed amount for one hour overtime that are validated and " "approved the overtime attendance" msgstr "" -#: .\payroll\models\models.py:879 +#: .\payroll\models\models.py:877 msgid "The fixed amount for one validated attendance with that work type" msgstr "" -#: .\payroll\models\models.py:885 +#: .\payroll\models\models.py:883 msgid "Has max limit for allowance" msgstr "" -#: .\payroll\models\models.py:886 +#: .\payroll\models\models.py:884 msgid "Limit the allowance amount" msgstr "" -#: .\payroll\models\models.py:892 +#: .\payroll\models\models.py:890 msgid "The maximum amount for the allowance" msgstr "" -#: .\payroll\models\models.py:901 .\payroll\models\models.py:1217 +#: .\payroll\models\models.py:899 .\payroll\models\models.py:1208 msgid "For working days on month" msgstr "" -#: .\payroll\models\models.py:911 .\payroll\models\models.py:1226 +#: .\payroll\models\models.py:909 .\payroll\models\models.py:1217 msgid "The pay head for the if condition" msgstr "" -#: .\payroll\models\models.py:917 .\payroll\models\models.py:1232 +#: .\payroll\models\models.py:915 .\payroll\models\models.py:1223 msgid "Apply for those, if the pay-head conditions satisfy" msgstr "" -#: .\payroll\models\models.py:920 .\payroll\models\models.py:1235 +#: .\payroll\models\models.py:918 .\payroll\models\models.py:1226 msgid "The amount of the pay-head" msgstr "" -#: .\payroll\models\models.py:923 .\payroll\models\models.py:1238 +#: .\payroll\models\models.py:921 .\payroll\models\models.py:1229 msgid "The start amount of the pay-head range" msgstr "" -#: .\payroll\models\models.py:926 .\payroll\models\models.py:1241 +#: .\payroll\models\models.py:924 .\payroll\models\models.py:1232 msgid "The end amount of the pay-head range" msgstr "" -#: .\payroll\models\models.py:991 .\payroll\models\models.py:1270 +#: .\payroll\models\models.py:989 .\payroll\models\models.py:1261 msgid "If the 'Is fixed' field is disabled, the 'Based on' field is required." msgstr "" -#: .\payroll\models\models.py:997 +#: .\payroll\models\models.py:995 msgid "Rate must be specified for allowances based on basic pay." msgstr "" -#: .\payroll\models\models.py:1003 +#: .\payroll\models\models.py:1001 msgid "" "If condition based, all fields (field, value, condition) must be filled." msgstr "" -#: .\payroll\models\models.py:1010 +#: .\payroll\models\models.py:1008 msgid "" "If based on is attendance, then per attendance fixed " "amount must be filled." msgstr "" -#: .\payroll\models\models.py:1016 +#: .\payroll\models\models.py:1014 msgid "If based on is shift, then shift must be filled." msgstr "" -#: .\payroll\models\models.py:1019 +#: .\payroll\models\models.py:1017 msgid "If based on is work type, then work type must be filled." msgstr "" -#: .\payroll\models\models.py:1022 +#: .\payroll\models\models.py:1020 msgid "The amount per children must be filled." msgstr "" -#: .\payroll\models\models.py:1024 +#: .\payroll\models\models.py:1022 msgid "Amount should be greater than zero." msgstr "" -#: .\payroll\models\models.py:1073 +#: .\payroll\models\models.py:1064 msgid "Exclude the deduction" msgstr "" -#: .\payroll\models\models.py:1077 +#: .\payroll\models\models.py:1068 msgid "Title of the deduction" msgstr "" -#: .\payroll\models\models.py:1082 +#: .\payroll\models\models.py:1073 msgid "" "The one-time deduction in which the deduction will apply to the " "payslips if the date between the payslip period" msgstr "" -#: .\payroll\models\models.py:1089 +#: .\payroll\models\models.py:1080 msgid "Target deduction to all active employees in the company" msgstr "" -#: .\payroll\models\models.py:1095 +#: .\payroll\models\models.py:1086 msgid "Target deduction to the specific employees" msgstr "" -#: .\payroll\models\models.py:1104 +#: .\payroll\models\models.py:1095 msgid "" "To ignore the deduction to the employees when target them by all " "employees or through condition-based" msgstr "" -#: .\payroll\models\models.py:1111 +#: .\payroll\models\models.py:1102 msgid "To specify the deduction is tax or normal deduction" msgstr "" -#: .\payroll\models\models.py:1117 +#: .\payroll\models\models.py:1108 msgid "" "To find taxable gross, taxable_gross = (basic_pay + " "taxable_deduction)-pre_tax_deductions " msgstr "" -#: .\payroll\models\models.py:1125 +#: .\payroll\models\models.py:1116 msgid "" "This field is used to target deduction to the specific employees " "when the condition satisfies with the employee's information" msgstr "" -#: .\payroll\models\models.py:1153 +#: .\payroll\models\models.py:1144 msgid "Basic pay" msgstr "" -#: .\payroll\models\models.py:1159 +#: .\payroll\models\models.py:1150 msgid "" "Update compensation is used to update pay-head before any " "other deduction calculation starts" msgstr "" -#: .\payroll\models\models.py:1165 +#: .\payroll\models\models.py:1156 msgid "To specify, the deduction is fixed or not" msgstr "" -#: .\payroll\models\models.py:1172 +#: .\payroll\models\models.py:1163 msgid "Fixed amount for this deduction" msgstr "" -#: .\payroll\models\models.py:1180 +#: .\payroll\models\models.py:1171 msgid "If the deduction is not fixed then specifies how the deduction provided" msgstr "" -#: .\payroll\models\models.py:1190 +#: .\payroll\models\models.py:1181 msgid "Employee rate" msgstr "" -#: .\payroll\models\models.py:1202 +#: .\payroll\models\models.py:1193 msgid "Has max limit for deduction" msgstr "" -#: .\payroll\models\models.py:1203 +#: .\payroll\models\models.py:1194 msgid "Limit the deduction" msgstr "" -#: .\payroll\models\models.py:1209 +#: .\payroll\models\models.py:1200 msgid "The maximum amount for the deduction" msgstr "" -#: .\payroll\models\models.py:1220 +#: .\payroll\models\models.py:1211 msgid "The maximum amount for ?" msgstr "" -#: .\payroll\models\models.py:1276 +#: .\payroll\models\models.py:1267 msgid "" "Employee rate must be specified for deductions that are not fixed amount" msgstr "" -#: .\payroll\models\models.py:1284 +#: .\payroll\models\models.py:1275 msgid " Don't choose taxable gross pay when pretax is enabled." msgstr "" -#: .\payroll\models\models.py:1290 +#: .\payroll\models\models.py:1281 msgid " Don't choose net pay when pretax is enabled." msgstr "" -#: .\payroll\models\models.py:1294 +#: .\payroll\models\models.py:1285 msgid " Don't choose net pay when the tax is enabled." msgstr "" -#: .\payroll\models\models.py:1304 +#: .\payroll\models\models.py:1295 msgid "This fields required" msgstr "" -#: .\payroll\models\models.py:1311 +#: .\payroll\models\models.py:1302 msgid "" "If condition based, all fields (field, value, " "condition) must be filled." msgstr "" -#: .\payroll\models\models.py:1356 +#: .\payroll\models\models.py:1340 msgid "Batch name" msgstr "" -#: .\payroll\models\models.py:1393 +#: .\payroll\models\models.py:1377 msgid "The end date must be greater than or equal to the start date" msgstr "" -#: .\payroll\models\models.py:1398 +#: .\payroll\models\models.py:1382 msgid "The end date cannot be in the future." msgstr "" -#: .\payroll\models\models.py:1400 +#: .\payroll\models\models.py:1384 msgid "The start date cannot be in the future." msgstr "" -#: .\payroll\models\models.py:1411 +#: .\payroll\models\models.py:1395 msgid "Employee ,start and end date must be unique" msgstr "" -#: .\payroll\models\models.py:1414 +#: .\payroll\models\models.py:1398 msgid "The data must be in dictionary or querydict type" msgstr "" -#: .\payroll\models\models.py:1473 +#: .\payroll\models\models.py:1457 #: .\payroll\templates\payroll\loan\records.html:9 #: .\payroll\templates\payroll\loan\records_card.html:5 #: .\payroll\templates\payroll\loan\records_list.html:5 msgid "Loan" msgstr "" -#: .\payroll\models\models.py:1474 +#: .\payroll\models\models.py:1458 #: .\payroll\templates\payroll\loan\records.html:13 #: .\payroll\templates\payroll\loan\records_card.html:9 #: .\payroll\templates\payroll\loan\records_list.html:9 msgid "Advanced Salary" msgstr "" -#: .\payroll\models\models.py:1475 +#: .\payroll\models\models.py:1459 msgid "Penalty / Fine" msgstr "" -#: .\payroll\models\models.py:1492 +#: .\payroll\models\models.py:1476 msgid "installment Amount" msgstr "" -#: .\payroll\models\models.py:1494 +#: .\payroll\models\models.py:1478 msgid "Total installments" msgstr "" -#: .\payroll\models\models.py:1684 +#: .\payroll\models\models.py:1572 #: .\payroll\templates\payroll\reimbursement\filter.html:14 msgid "Reimbursement" msgstr "" -#: .\payroll\models\models.py:1685 +#: .\payroll\models\models.py:1573 #, fuzzy #| msgid "recruitment" msgid "Bonus Point Encashment" msgstr "Recruitment" -#: .\payroll\models\models.py:1689 +#: .\payroll\models\models.py:1577 #, fuzzy #| msgid "recruitment" msgid "Leave Encashment" msgstr "Recruitment" -#: .\payroll\models\models.py:1718 +#: .\payroll\models\models.py:1606 msgid "Available Days to encash" msgstr "" -#: .\payroll\models\models.py:1719 +#: .\payroll\models\models.py:1607 msgid "Available days" msgstr "" -#: .\payroll\models\models.py:1723 +#: .\payroll\models\models.py:1611 msgid "Carry Forward Days to encash" msgstr "" -#: .\payroll\models\models.py:1724 +#: .\payroll\models\models.py:1612 msgid "Carry forward days" msgstr "" -#: .\payroll\models\models.py:1728 +#: .\payroll\models\models.py:1616 msgid "Bonus points to encash" msgstr "" -#: .\payroll\models\models.py:1729 +#: .\payroll\models\models.py:1617 #, fuzzy #| msgid "bonus-point-setting" msgid "Bonus points" msgstr "Bonus Point Setting" -#: .\payroll\models\models.py:1834 +#: .\payroll\models\models.py:1722 msgid "" "The employee don't have that much " "leaves to encash in CFD / Available " @@ -22171,10 +22861,6 @@ msgstr "" msgid "Maximum income must be greater than minimum income." msgstr "" -#: .\payroll\templates\payroll\allowance\allowance_empty.html:41 -msgid "No allowance has been allocated." -msgstr "" - #: .\payroll\templates\payroll\allowance\card_allowance.html:41 #: .\payroll\templates\payroll\allowance\view_single_allowance.html:80 msgid "Amount Per Attendance" @@ -22246,8 +22932,8 @@ msgstr "" msgid "Not Fixed" msgstr "" -#: .\payroll\templates\payroll\allowance\view_allowance.html:123 -#: .\payroll\templates\payroll\allowance\view_single_allowance.html:141 +#: .\payroll\templates\payroll\allowance\view_allowance.html:120 +#: .\payroll\templates\payroll\allowance\view_single_allowance.html:138 msgid "There are currently no allowances to consider." msgstr "" @@ -22265,12 +22951,12 @@ msgstr "" msgid "Allowance Eligibility" msgstr "" -#: .\payroll\templates\payroll\contract\contract_empty.html:6 +#: .\payroll\templates\payroll\contract\contract_empty.html:5 #: .\payroll\templates\payroll\contract\contract_view.html:6 msgid "Contracts" msgstr "" -#: .\payroll\templates\payroll\contract\contract_empty.html:48 +#: .\payroll\templates\payroll\contract\contract_empty.html:27 #: .\payroll\templates\payroll\contract\contract_single_view.html:196 msgid "There have been no contracts signed." msgstr "" @@ -22322,13 +23008,6 @@ msgstr "" msgid "Deduction Amount For One Leave" msgstr "" -#: .\payroll\templates\payroll\contract\contract_single_view.html:144 -#: .\project\templates\dashboard\project_details.html:48 -#: .\project\templates\task\new\task_details.html:60 -#: .\project\templates\task\new\task_list_view.html:123 -msgid "Document" -msgstr "" - #: .\payroll\templates\payroll\contract\contract_view.html:148 #: .\payroll\templates\payroll\payslip\view_payslips.html:180 msgid "Bulk Status Update" @@ -22443,11 +23122,7 @@ msgstr "" msgid "Do you want to delete this deduction?" msgstr "" -#: .\payroll\templates\payroll\deduction\deduction_empty.html:43 -msgid "No deduction has been included." -msgstr "" - -#: .\payroll\templates\payroll\deduction\view_deduction.html:119 +#: .\payroll\templates\payroll\deduction\view_deduction.html:116 #: .\payroll\templates\payroll\deduction\view_single_deduction.html:140 msgid "There are currently no deductions to consider." msgstr "" @@ -22559,9 +23234,9 @@ msgstr "" #: .\payroll\templates\payroll\payslip\individual_pdf.html:92 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:71 #: .\payroll\templates\payroll\payslip\payslip_pdf.html:244 -#: .\payroll\templates\payroll\payslip\payslips_empty.html:4 #: .\payroll\templates\payroll\payslip\test_pdf.html:244 #: .\payroll\templates\payroll\payslip\view_payslips.html:15 +#: .\report\templates\report\payroll_report.html:39 msgid "Payslip" msgstr "" @@ -22573,48 +23248,63 @@ msgstr "" #: .\payroll\templates\payroll\payslip\filter_payslips.html:70 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:153 #: .\pms\templates\okr\emp_objective\emp_objective_nav.html:107 +#: .\report\templates\report\payroll_report.html:77 +#: .\report\templates\report\payroll_report.html:192 +#: .\report\templates\report\pms_report.html:90 msgid "Start Date Till" msgstr "" #: .\payroll\templates\payroll\payslip\filter_payslips.html:78 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:165 #: .\pms\templates\okr\emp_objective\emp_objective_nav.html:114 +#: .\report\templates\report\payroll_report.html:85 +#: .\report\templates\report\payroll_report.html:200 +#: .\report\templates\report\pms_report.html:97 msgid "End Date From" msgstr "" #: .\payroll\templates\payroll\payslip\filter_payslips.html:84 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:175 #: .\pms\templates\okr\emp_objective\emp_objective_nav.html:125 +#: .\report\templates\report\payroll_report.html:91 +#: .\report\templates\report\payroll_report.html:206 +#: .\report\templates\report\pms_report.html:108 msgid "End Date Till" msgstr "" #: .\payroll\templates\payroll\payslip\filter_payslips.html:93 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:187 +#: .\report\templates\report\payroll_report.html:100 msgid "Gross Pay Less Than or Equal" msgstr "" #: .\payroll\templates\payroll\payslip\filter_payslips.html:101 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:197 +#: .\report\templates\report\payroll_report.html:108 msgid "Gross Pay Greater or Equal" msgstr "" #: .\payroll\templates\payroll\payslip\filter_payslips.html:111 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:209 +#: .\report\templates\report\payroll_report.html:118 msgid "Deduction Less Than or Equal" msgstr "" #: .\payroll\templates\payroll\payslip\filter_payslips.html:119 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:219 +#: .\report\templates\report\payroll_report.html:126 msgid "Deduction Greater or Equal" msgstr "" #: .\payroll\templates\payroll\payslip\filter_payslips.html:129 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:231 +#: .\report\templates\report\payroll_report.html:136 msgid "Net Pay Less Than or Equal" msgstr "" #: .\payroll\templates\payroll\payslip\filter_payslips.html:137 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:241 +#: .\report\templates\report\payroll_report.html:144 msgid "Net Pay Greater or Equal" msgstr "" @@ -22623,38 +23313,38 @@ msgid "Payslips" msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:21 -#: .\payroll\templates\payroll\payslip\payslip_table.html:21 +#: .\payroll\templates\payroll\payslip\payslip_table.html:17 msgid "Select All Payslips" msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:28 -#: .\payroll\templates\payroll\payslip\payslip_table.html:28 +#: .\payroll\templates\payroll\payslip\payslip_table.html:20 msgid "Unselect All Payslips" msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:35 #: .\payroll\templates\payroll\payslip\payslip_export_filter.html:7 -#: .\payroll\templates\payroll\payslip\payslip_table.html:35 +#: .\payroll\templates\payroll\payslip\payslip_table.html:23 msgid "Export Payslips" msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:166 #: .\payroll\templates\payroll\payslip\group_payslips.html:122 #: .\payroll\templates\payroll\payslip\individual_payslip.html:19 -#: .\payroll\templates\payroll\payslip\payslip_table.html:170 +#: .\payroll\templates\payroll\payslip\payslip_table.html:139 msgid "Do you want to send the payslip by mail?" msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:167 #: .\payroll\templates\payroll\payslip\individual_payslip.html:20 -#: .\payroll\templates\payroll\payslip\payslip_table.html:171 +#: .\payroll\templates\payroll\payslip\payslip_table.html:141 #: .\payroll\templates\payroll\payslip\view_payslips.html:173 msgid "Send via mail" msgstr "" #: .\payroll\templates\payroll\payslip\group_by.html:173 #: .\payroll\templates\payroll\payslip\group_payslips.html:127 -#: .\payroll\templates\payroll\payslip\payslip_table.html:176 +#: .\payroll\templates\payroll\payslip\payslip_table.html:146 msgid "Are you sure you want to delete this payslip?" msgstr "" @@ -22880,15 +23570,6 @@ msgstr "" msgid "Gross earning - Total Deduction" msgstr "" -#: .\payroll\templates\payroll\payslip\payslips_empty.html:18 -#: .\payroll\templates\payroll\payslip\view_payslips.html:150 -msgid "Generate" -msgstr "" - -#: .\payroll\templates\payroll\payslip\payslips_empty.html:46 -msgid "No payslips have been generated." -msgstr "" - #: .\payroll\templates\payroll\payslip\payslips_quick_filter.html:16 msgid "Mail Not Sent" msgstr "" @@ -22899,12 +23580,16 @@ msgstr "" msgid "Deducation" msgstr "Update" +#: .\payroll\templates\payroll\payslip\view_payslips.html:150 +msgid "Generate" +msgstr "" + #: .\payroll\templates\payroll\payslip\view_payslips.html:163 msgid "Payslip report" msgstr "" -#: .\payroll\templates\payroll\payslip\view_payslips.html:277 -msgid "There are currently no payslips to consider." +#: .\payroll\templates\payroll\payslip\view_payslips.html:270 +msgid "No payslips have been generated." msgstr "" #: .\payroll\templates\payroll\reimbursement\nav.html:4 @@ -23044,89 +23729,88 @@ msgstr "" msgid " Set initial notice period (in days)" msgstr "" -#: .\payroll\templates\payroll\tax\filing_status_empty.html:35 -#: .\payroll\templates\payroll\tax\filing_status_view.html:75 -msgid "No tax filing status has been recorded." -msgstr "" - #: .\payroll\templates\payroll\tax\filing_status_list.html:77 msgid "Are you sure to delete this status ?" msgstr "" +#: .\payroll\templates\payroll\tax\filing_status_view.html:46 +msgid "No tax filing status has been recorded." +msgstr "" + #: .\payroll\templates\payroll\tax\tax_bracket_creation.html:23 #: .\payroll\templates\payroll\tax\tax_bracket_edit.html:19 msgid "Tax Bracket" msgstr "" -#: .\payroll\templates\payroll\tax\tax_bracket_view.html:64 +#: .\payroll\templates\payroll\tax\tax_bracket_view.html:54 msgid "Are you sure to delete this Tax bracket ?" msgstr "" -#: .\payroll\views\component_views.py:394 +#: .\payroll\views\component_views.py:390 msgid "Allowance created." msgstr "" -#: .\payroll\views\component_views.py:491 +#: .\payroll\views\component_views.py:487 msgid "Allowance updated." msgstr "" -#: .\payroll\views\component_views.py:508 +#: .\payroll\views\component_views.py:504 msgid "Allowance deleted successfully" msgstr "" -#: .\payroll\views\component_views.py:510 +#: .\payroll\views\component_views.py:506 msgid "Allowance not found" msgstr "" -#: .\payroll\views\component_views.py:512 +#: .\payroll\views\component_views.py:508 msgid "An error occurred while deleting the allowance" msgstr "" -#: .\payroll\views\component_views.py:545 +#: .\payroll\views\component_views.py:541 msgid "Deduction created." msgstr "" -#: .\payroll\views\component_views.py:668 +#: .\payroll\views\component_views.py:664 msgid "Deduction updated." msgstr "" -#: .\payroll\views\component_views.py:689 +#: .\payroll\views\component_views.py:685 msgid "Deduction deleted successfully" msgstr "" -#: .\payroll\views\component_views.py:691 +#: .\payroll\views\component_views.py:687 msgid "Deduction not found" msgstr "" -#: .\payroll\views\component_views.py:830 +#: .\payroll\views\component_views.py:823 msgid "" "When this payslip is run, the payslip start date will be updated to match " "the employee contract start date." msgstr "" -#: .\payroll\views\component_views.py:832 +#: .\payroll\views\component_views.py:825 #, fuzzy #| msgid "employee" msgid "Employee Contract Start Date" msgstr "Employee" -#: .\payroll\views\component_views.py:922 +#: .\payroll\views\component_views.py:915 msgid "Payslip Saved" msgstr "" -#: .\payroll\views\component_views.py:1238 +#: .\payroll\views\component_views.py:1231 msgid "Bonus Added" msgstr "" -#: .\payroll\views\component_views.py:1264 +#: .\payroll\views\component_views.py:1257 msgid "No active contract found for {} during this payslip period" msgstr "" -#: .\payroll\views\component_views.py:1550 +#: .\payroll\views\component_views.py:1543 msgid "Asset fine added" msgstr "" -#: .\payroll\views\component_views.py:1728 +#: .\payroll\views\component_views.py:1721 msgid "Please check the data you provided." msgstr "" @@ -23278,31 +23962,72 @@ msgstr "" msgid "You cannot delete {contract}" msgstr "" -#: .\payroll\views\views.py:1830 +#: .\payroll\views\views.py:1833 msgid "The initial notice period has been successfully updated." msgstr "" -#: .\payroll\views\views.py:1889 +#: .\payroll\views\views.py:1892 msgid "Auto paslip generate activated successfully." msgstr "" -#: .\payroll\views\views.py:1895 +#: .\payroll\views\views.py:1898 msgid "Auto paslip generate deactivated successfully." msgstr "" -#: .\payroll\views\views.py:1926 +#: .\payroll\views\views.py:1929 msgid "Active 'Payslip auto generate' cannot delete." msgstr "" -#: .\payroll\views\views.py:1929 +#: .\payroll\views\views.py:1932 msgid "Payslip auto generate not found." msgstr "" -#: .\pms\forms.py:77 .\pms\forms.py:246 .\pms\forms.py:303 .\pms\forms.py:373 +#: .\pms\cbvs.py:59 .\pms\templates\bonus\view_bonus_settings.html:7 +#: .\templates\settings.html:549 +msgid "Bonus Point Setting" +msgstr "" + +#: .\pms\cbvs.py:75 +#, fuzzy +#| msgid "job-position-view" +msgid "Create Bonus Point Setting" +msgstr "Job Position" + +#: .\pms\cbvs.py:172 +#, fuzzy +#| msgid "employee-bonus-point" +msgid "Employee Bonus Point " +msgstr "Employee Bonus Point" + +#: .\pms\cbvs.py:185 .\project\cbv\timesheet.py:119 +#, fuzzy +#| msgid "employee" +msgid "Employement Type" +msgstr "Employee" + +#: .\pms\cbvs.py:202 +#, fuzzy +#| msgid "employee" +msgid "Create Employee Bonus Point " +msgstr "Employee" + +#: .\pms\cbvs.py:281 +#, fuzzy +#| msgid "attendance" +msgid "Share Feedback request " +msgstr "Attendance" + +#: .\pms\cbvs.py:318 +#, fuzzy +#| msgid "attendance" +msgid "Bulk Feedback request " +msgstr "Attendance" + +#: .\pms\forms.py:81 .\pms\forms.py:249 .\pms\forms.py:306 .\pms\forms.py:388 msgid "Key result" msgstr "" -#: .\pms\forms.py:315 .\pms\models.py:829 +#: .\pms\forms.py:318 .\pms\models.py:857 #: .\pms\templates\okr\emp_objective\emp_objective_nav.html:86 #: .\pms\templates\okr\group_by.html:111 .\pms\templates\okr\group_by.html:432 #: .\pms\templates\okr\objective_list.html:91 @@ -23310,100 +24035,135 @@ msgstr "" #: .\pms\templates\okr\objective_list_view.html:67 #: .\pms\templates\okr\objective_list_view.html:73 #: .\pms\templates\okr\okr_nav.html:86 +#: .\report\templates\report\pms_report.html:38 msgid "Objective" msgstr "" -#: .\pms\forms.py:538 .\pms\forms.py:681 +#: .\pms\forms.py:555 .\pms\forms.py:690 msgid "Enter a title" msgstr "" -#: .\pms\forms.py:545 +#: .\pms\forms.py:562 msgid "Enter a description" msgstr "" -#: .\pms\forms.py:830 +#: .\pms\forms.py:809 msgid "For Developer" msgstr "" -#: .\pms\forms.py:872 +#: .\pms\forms.py:851 msgid "Enter question" msgstr "" -#: .\pms\forms.py:967 +#: .\pms\forms.py:946 msgid "Add a comment..." msgstr "" -#: .\pms\forms.py:1077 +#: .\pms\forms.py:1059 msgid "Question template is required when answer employees are choosed" msgstr "" -#: .\pms\forms.py:1130 +#: .\pms\forms.py:1121 msgid "This 'Bonus for' is not in the Model's status" msgstr "" -#: .\pms\forms.py:1135 +#: .\pms\forms.py:1131 msgid "Bonus point must be greater than zero" msgstr "" -#: .\pms\models.py:43 .\pms\models.py:279 .\recruitment\models.py:716 +#: .\pms\forms.py:1160 +msgid "Point should be greater than zero." +msgstr "" + +#: .\pms\forms.py:1215 +#, fuzzy +#| msgid "employee" +msgid "Other employees" +msgstr "Employee" + +#: .\pms\forms.py:1216 +msgid "Employees need to sent feedback request." +msgstr "" + +#: .\pms\forms.py:1225 +msgid "Include all subordinates" +msgstr "" + +#: .\pms\forms.py:1230 +msgid "Include all colleagues" +msgstr "" + +#: .\pms\forms.py:1235 +#, fuzzy +#| msgid "key-result-creation" +msgid "Include all keyresults" +msgstr "Key Result" + +#: .\pms\forms.py:1236 +#, fuzzy +#| msgid "shift-request-view" +msgid "Include all keyresults assigned to the employee." +msgstr "Shift Requests" + +#: .\pms\models.py:43 .\pms\models.py:280 .\recruitment\models.py:716 msgid "Percentage" msgstr "" -#: .\pms\models.py:44 .\pms\models.py:280 .\recruitment\models.py:715 +#: .\pms\models.py:44 .\pms\models.py:281 .\recruitment\models.py:715 msgid "Number" msgstr "" -#: .\pms\models.py:87 .\pms\models.py:486 +#: .\pms\models.py:87 .\pms\models.py:497 msgid "Months" msgstr "" -#: .\pms\models.py:88 .\pms\models.py:487 +#: .\pms\models.py:88 .\pms\models.py:498 msgid "Years" msgstr "" -#: .\pms\models.py:149 .\pms\models.py:284 .\pms\models.py:478 -#: .\pms\models.py:598 .\pms\templates\feedback\feedback_list.html:47 +#: .\pms\models.py:150 .\pms\models.py:285 .\pms\models.py:489 +#: .\pms\models.py:621 .\pms\templates\feedback\feedback_list.html:47 #: .\pms\templates\okr\group_by.html:24 #: .\pms\templates\okr\objective_list.html:25 msgid "On Track" msgstr "" -#: .\pms\models.py:150 .\pms\models.py:285 .\pms\models.py:479 -#: .\pms\models.py:599 .\pms\templates\feedback\feedback_list.html:39 +#: .\pms\models.py:151 .\pms\models.py:286 .\pms\models.py:490 +#: .\pms\models.py:622 .\pms\templates\feedback\feedback_list.html:39 #: .\pms\templates\okr\group_by.html:16 #: .\pms\templates\okr\objective_list.html:17 msgid "Behind" msgstr "" -#: .\pms\models.py:152 .\pms\models.py:287 .\pms\models.py:481 -#: .\pms\models.py:601 .\pms\templates\feedback\feedback_list.html:31 +#: .\pms\models.py:153 .\pms\models.py:288 .\pms\models.py:492 +#: .\pms\models.py:624 .\pms\templates\feedback\feedback_list.html:31 #: .\pms\templates\okr\group_by.html:8 #: .\pms\templates\okr\objective_list.html:9 msgid "At Risk" msgstr "" -#: .\pms\models.py:153 .\pms\models.py:288 .\pms\models.py:482 -#: .\pms\models.py:602 .\pms\templates\feedback\feedback_list.html:35 +#: .\pms\models.py:154 .\pms\models.py:289 .\pms\models.py:493 +#: .\pms\models.py:625 .\pms\templates\feedback\feedback_list.html:35 #: .\pms\templates\okr\group_by.html:12 #: .\pms\templates\okr\objective_list.html:13 msgid "Not Started" msgstr "" -#: .\pms\models.py:371 +#: .\pms\models.py:380 msgid "The target value can't be zero." msgstr "" -#: .\pms\models.py:377 +#: .\pms\models.py:386 msgid "" "The key result progress type is in percentage, so the target value cannot " "exceed 100." msgstr "" -#: .\pms\models.py:389 +#: .\pms\models.py:398 msgid "The current value can't be greater than target value." msgstr "" -#: .\pms\models.py:435 .\recruitment\models.py:720 +#: .\pms\models.py:446 .\recruitment\models.py:720 #: .\recruitment\templates\candidate\candidate_list.html:99 #: .\recruitment\templates\candidate\individual.html:255 #: .\recruitment\templates\pipeline\components\candidate_stage_component.html:60 @@ -23411,53 +24171,95 @@ msgstr "" msgid "Rating" msgstr "" -#: .\pms\models.py:436 +#: .\pms\models.py:447 msgid "Boolean" msgstr "" -#: .\pms\models.py:437 +#: .\pms\models.py:448 msgid "Multi-choices" msgstr "" -#: .\pms\models.py:438 +#: .\pms\models.py:449 msgid "Likert" msgstr "" -#: .\pms\models.py:605 .\templates\settings.html:50 -msgid "General" +#: .\pms\models.py:523 .\pms\templates\feedback\feedback_detailed_view.html:427 +#: .\pms\templates\feedback\feedback_list_view.html:73 +#: .\pms\templates\feedback\feedback_update.html:56 +#: .\report\templates\report\pms_report.html:142 +msgid "Colleague" msgstr "" -#: .\pms\models.py:736 -#, fuzzy -#| msgid "employee" -msgid "Answerable Employees" -msgstr "Employee" - -#: .\pms\models.py:737 -msgid "" -"Select the employees who can respond to question template in this meeting's, " -"if any are added." +#: .\pms\models.py:529 .\pms\templates\feedback\feedback_detailed_view.html:376 +#: .\pms\templates\feedback\feedback_update.html:47 +msgid "Subordinates" msgstr "" -#: .\pms\models.py:746 .\pms\templates\meetings\form.html:8 -#: .\pms\templates\meetings\meetings_nav.html:4 -#, fuzzy -#| msgid "settings" -msgid "Meetings" -msgstr "Settings" +#: .\pms\models.py:543 .\pms\templates\feedback\feedback_update.html:86 +#: .\pms\templates\feedback\question_template\question_template_form.html:7 +#: .\pms\templates\feedback\question_template\question_template_view.html:6 +#: .\pms\templates\meetings\meeting_single_view.html:53 +#: .\pms\templates\meetings\meetings_filter.html:45 +msgid "Question Template" +msgstr "" -#: .\pms\models.py:830 .\pms\templates\feedback\answer\feedback_answer.html:137 -#: .\pms\templates\feedback\feedback_creation.html:129 +#: .\pms\models.py:552 .\pms\models.py:858 +#: .\pms\templates\feedback\answer\feedback_answer.html:137 #: .\pms\templates\feedback\feedback_update.html:93 #: .\pms\templates\okr\emp_objective\emp_objective_nav.html:103 #: .\pms\templates\okr\key_result\key_result_creation.html:49 #: .\pms\templates\okr\key_result\kr_filter.html:8 #: .\pms\templates\okr\objective_list_view.html:117 #: .\pms\templates\okr\okr_nav.html:97 +#: .\report\templates\report\pms_report.html:50 +#: .\report\templates\report\pms_report.html:86 msgid "Key Result" msgstr "" -#: .\pms\models.py:835 .\project\templates\project\new\filter_project.html:12 +#: .\pms\models.py:555 .\pms\templates\feedback\feedback_update.html:106 +msgid "Is Cyclic Feedback" +msgstr "" + +#: .\pms\models.py:558 .\pms\templates\feedback\feedback_update.html:115 +msgid "Cycle Period" +msgstr "" + +#: .\pms\models.py:571 .\pms\templates\feedback\feedback_empty.html:17 +#: .\pms\templates\feedback\feedback_list_view.html:19 +msgid "Feedbacks" +msgstr "" + +#: .\pms\models.py:628 .\templates\settings.html:50 +msgid "General" +msgstr "" + +#: .\pms\models.py:761 +#, fuzzy +#| msgid "employee" +msgid "Answerable Employees" +msgstr "Employee" + +#: .\pms\models.py:763 +msgid "" +"Select the employees who can respond to question template in this meeting's, " +"if any are added." +msgstr "" + +#: .\pms\models.py:773 .\pms\templates\meetings\form.html:8 +#: .\pms\templates\meetings\meetings_nav.html:4 +#, fuzzy +#| msgid "settings" +msgid "Meetings" +msgstr "Settings" + +#: .\pms\models.py:863 .\project\cbv\dashboard.py:32 .\project\cbv\tasks.py:86 +#: .\project\cbv\tasks.py:241 .\project\cbv\tasks.py:415 +#: .\project\cbv\timesheet.py:110 .\project\cbv\timesheet.py:161 +#: .\project\models.py:247 .\project\models.py:263 .\project\models.py:330 +#: .\project\models.py:529 .\project\templates\cbv\projects\filter.html:6 +#: .\project\templates\cbv\tasks\task_filter.html:22 +#: .\project\templates\cbv\timesheet\filter.html:9 +#: .\project\templates\project\new\filter_project.html:12 #: .\project\templates\project\new\forms\project_creation.html:4 #: .\project\templates\project\new\forms\project_update.html:4 #: .\project\templates\project\new\project_list_view.html:67 @@ -23474,19 +24276,21 @@ msgstr "" msgid "Project" msgstr "Recruitment" -#: .\pms\models.py:838 +#: .\pms\models.py:866 msgid "Completing" msgstr "" -#: .\pms\models.py:839 +#: .\pms\models.py:867 msgid "Closing" msgstr "" -#: .\pms\models.py:849 +#: .\pms\models.py:877 msgid "Completion Date" msgstr "" -#: .\pms\models.py:856 .\project\templates\dashboard\project_details.html:22 +#: .\pms\models.py:884 .\project\cbv\dashboard.py:75 .\project\cbv\tasks.py:89 +#: .\project\templates\dashboard\project_details.html:22 +#: .\project\templates\task\new\filter_task.html:20 #: .\project\templates\task_all\task_all_list.html:54 msgid "Members" msgstr "" @@ -23503,7 +24307,7 @@ msgstr "Creation" #: .\pms\templates\anonymous\single_view.html:4 #: .\pms\templates\feedback\feedback_list.html:69 -#: .\pms\templates\feedback\feedback_list_view.html:210 +#: .\pms\templates\feedback\feedback_list_view.html:221 msgid "Anonymous Feedback" msgstr "" @@ -23515,17 +24319,16 @@ msgstr "" msgid "Do you want to delete the bonus point setting?" msgstr "" -#: .\pms\templates\bonus\view_bonus_settings.html:7 -#: .\templates\settings.html:505 -msgid "Bonus Point Setting" -msgstr "" - #: .\pms\templates\bonus\view_bonus_settings.html:26 #, fuzzy #| msgid "shift-request-view" msgid "There is no Bonus setting at this moment." msgstr "Shift Requests" +#: .\pms\templates\dashboard\feedback_answer.html:9 +msgid "Due Date" +msgstr "" + #: .\pms\templates\dashboard\pms_dashboard.html:23 #, fuzzy #| msgid "employee" @@ -23538,53 +24341,53 @@ msgstr "Employee" msgid "Total key results" msgstr "Key Result" -#: .\pms\templates\dashboard\pms_dashboard.html:47 +#: .\pms\templates\dashboard\pms_dashboard.html:51 msgid "Total feedbacks" msgstr "" -#: .\pms\templates\dashboard\pms_dashboard.html:62 +#: .\pms\templates\dashboard\pms_dashboard.html:66 #, fuzzy #| msgid "objective-list-view" msgid "Objective status" msgstr "Objectives" -#: .\pms\templates\dashboard\pms_dashboard.html:73 +#: .\pms\templates\dashboard\pms_dashboard.html:77 #, fuzzy #| msgid "candidates-view" msgid "No objectives are available." msgstr "Candidates" -#: .\pms\templates\dashboard\pms_dashboard.html:84 +#: .\pms\templates\dashboard\pms_dashboard.html:88 #, fuzzy #| msgid "key-result-creation" msgid "Key result status" msgstr "Key Result" -#: .\pms\templates\dashboard\pms_dashboard.html:94 +#: .\pms\templates\dashboard\pms_dashboard.html:98 #, fuzzy #| msgid "candidates-view" msgid "No key results are available." msgstr "Candidates" -#: .\pms\templates\dashboard\pms_dashboard.html:105 +#: .\pms\templates\dashboard\pms_dashboard.html:109 #, fuzzy #| msgid "feedback-creation" msgid "Feedback status" msgstr "Creation" -#: .\pms\templates\dashboard\pms_dashboard.html:115 +#: .\pms\templates\dashboard\pms_dashboard.html:119 #, fuzzy #| msgid "candidates-view" msgid "No feedbacks are available." msgstr "Candidates" -#: .\pms\templates\dashboard\pms_dashboard.html:137 +#: .\pms\templates\dashboard\pms_dashboard.html:141 #, fuzzy #| msgid "objective-list-view" msgid "Objectives At-Risk" msgstr "Objectives" -#: .\pms\templates\dashboard\pms_dashboard.html:164 +#: .\pms\templates\dashboard\pms_dashboard.html:168 msgid "No OKRs are currently At-Risk." msgstr "" @@ -23694,7 +24497,7 @@ msgstr "" #: .\pms\templates\okr\key_result\key_result_creation.html:67 #: .\pms\templates\okr\key_result\key_result_update.html:43 #: .\pms\templates\okr\key_result\key_result_view.html:11 -#: .\pms\templates\okr\key_result\kr_list.html:61 +#: .\pms\templates\okr\key_result\kr_list.html:55 #: .\pms\templates\okr\key_result\kr_nav.html:5 #: .\pms\templates\okr\objective_detailed_view.html:112 #: .\pms\templates\okr\okr_list.html:135 .\pms\templates\okr\okr_list.html:137 @@ -23702,116 +24505,85 @@ msgstr "" msgid "Key Results" msgstr "" -#: .\pms\templates\feedback\feedback_creation.html:35 -#: .\pms\templates\feedback\feedback_detailed_view.html:81 -#: .\pms\templates\feedback\feedback_list_view.html:48 -msgid "Feedback" -msgstr "" - -#: .\pms\templates\feedback\feedback_creation.html:71 -#: .\pms\templates\feedback\feedback_detailed_view.html:360 -#: .\pms\templates\feedback\feedback_update.html:47 -msgid "Subordinates" -msgstr "" - -#: .\pms\templates\feedback\feedback_creation.html:80 -#: .\pms\templates\feedback\feedback_detailed_view.html:411 -#: .\pms\templates\feedback\feedback_list_view.html:73 -#: .\pms\templates\feedback\feedback_update.html:56 -msgid "Colleague" -msgstr "" - -#: .\pms\templates\feedback\feedback_creation.html:119 -#: .\pms\templates\feedback\feedback_update.html:86 -#: .\pms\templates\feedback\question_template\question_template_empty.html:25 -#: .\pms\templates\feedback\question_template\question_template_empty.html:53 -#: .\pms\templates\feedback\question_template\question_template_empty.html:81 -#: .\pms\templates\feedback\question_template\question_template_view.html:23 -#: .\pms\templates\feedback\question_template\question_template_view.html:59 -#: .\pms\templates\feedback\question_template\question_template_view.html:78 -#: .\pms\templates\meetings\meeting_single_view.html:53 -#: .\pms\templates\meetings\meetings_filter.html:45 -msgid "Question Template" -msgstr "" - -#: .\pms\templates\feedback\feedback_creation.html:139 -#: .\pms\templates\feedback\feedback_update.html:106 -msgid "Is Cyclic Feedback" -msgstr "" - -#: .\pms\templates\feedback\feedback_creation.html:148 -#: .\pms\templates\feedback\feedback_update.html:115 -msgid "Cycle Period" -msgstr "" - #: .\pms\templates\feedback\feedback_detailed_view.html:87 msgid "Owner: " msgstr "" -#: .\pms\templates\feedback\feedback_detailed_view.html:132 +#: .\pms\templates\feedback\feedback_detailed_view.html:137 +msgid "Share Feedback" +msgstr "" + +#: .\pms\templates\feedback\feedback_detailed_view.html:142 msgid "Do you want archive this Feedback ?" msgstr "" -#: .\pms\templates\feedback\feedback_detailed_view.html:139 +#: .\pms\templates\feedback\feedback_detailed_view.html:149 #: .\pms\templates\feedback\feedback_list.html:172 #: .\pms\templates\feedback\feedback_list.html:467 #: .\pms\templates\feedback\feedback_list.html:625 msgid "Do you want Delete this Feedback ?" msgstr "" -#: .\pms\templates\feedback\feedback_detailed_view.html:152 +#: .\pms\templates\feedback\feedback_detailed_view.html:162 msgid "Start date: " msgstr "" -#: .\pms\templates\feedback\feedback_detailed_view.html:156 +#: .\pms\templates\feedback\feedback_detailed_view.html:166 msgid "Due on: " msgstr "" -#: .\pms\templates\feedback\feedback_detailed_view.html:170 +#: .\pms\templates\feedback\feedback_detailed_view.html:180 #, fuzzy #| msgid "employee" msgid "Answered employees: " msgstr "Employee" -#: .\pms\templates\feedback\feedback_detailed_view.html:185 +#: .\pms\templates\feedback\feedback_detailed_view.html:197 #, fuzzy #| msgid "employee" msgid "Employees not answerd yet: " msgstr "Employee" -#: .\pms\templates\feedback\feedback_detailed_view.html:202 +#: .\pms\templates\feedback\feedback_detailed_view.html:216 msgid "Cyclic feedback period: " msgstr "" -#: .\pms\templates\feedback\feedback_detailed_view.html:208 +#: .\pms\templates\feedback\feedback_detailed_view.html:222 msgid "Next feedback on: " msgstr "" -#: .\pms\templates\feedback\feedback_detailed_view.html:226 +#: .\pms\templates\feedback\feedback_detailed_view.html:240 #, fuzzy #| msgid "feedback-answer-get" msgid "Feedback Answers" msgstr "Answer" -#: .\pms\templates\feedback\feedback_detailed_view.html:229 +#: .\pms\templates\feedback\feedback_detailed_view.html:243 #, fuzzy #| msgid "feedback-view" msgid "Feedback Overview" msgstr "360 Feedbacks" -#: .\pms\templates\feedback\feedback_detailed_view.html:272 -#: .\pms\templates\feedback\feedback_detailed_view.html:322 -#: .\pms\templates\feedback\feedback_detailed_view.html:388 -#: .\pms\templates\feedback\feedback_detailed_view.html:439 +#: .\pms\templates\feedback\feedback_detailed_view.html:286 +#: .\pms\templates\feedback\feedback_detailed_view.html:337 +#: .\pms\templates\feedback\feedback_detailed_view.html:404 +#: .\pms\templates\feedback\feedback_detailed_view.html:455 +#: .\pms\templates\feedback\feedback_detailed_view.html:506 msgid "Answer View" msgstr "" -#: .\pms\templates\feedback\feedback_detailed_view.html:331 -#: .\pms\templates\feedback\feedback_detailed_view.html:476 +#: .\pms\templates\feedback\feedback_detailed_view.html:346 +#: .\pms\templates\feedback\feedback_detailed_view.html:544 msgid "Answers" msgstr "" -#: .\pms\templates\feedback\feedback_detailed_view.html:488 +#: .\pms\templates\feedback\feedback_detailed_view.html:478 +#, fuzzy +#| msgid "employee" +msgid "Other Employees" +msgstr "Employee" + +#: .\pms\templates\feedback\feedback_detailed_view.html:556 msgid "Update Feedback" msgstr "" @@ -23820,12 +24592,14 @@ msgstr "" msgid "Key results" msgstr "" -#: .\pms\templates\feedback\feedback_empty.html:18 -#: .\pms\templates\feedback\feedback_list_view.html:19 -msgid "Feedbacks" -msgstr "" +#: .\pms\templates\feedback\feedback_empty.html:35 +#: .\pms\templates\feedback\feedback_list_view.html:158 +#, fuzzy +#| msgid "update-deduction" +msgid "Bulk Feedback" +msgstr "Update" -#: .\pms\templates\feedback\feedback_empty.html:51 +#: .\pms\templates\feedback\feedback_empty.html:62 msgid "No Feedbacks are available." msgstr "" @@ -23872,25 +24646,27 @@ msgid "There are no anonymous feedbacks available." msgstr "" #: .\pms\templates\feedback\feedback_list_view.html:53 +#: .\report\templates\report\pms_report.html:122 msgid "Feedback Title" msgstr "" #: .\pms\templates\feedback\feedback_list_view.html:83 +#: .\report\templates\report\pms_report.html:152 msgid "Subordinate" msgstr "" -#: .\pms\templates\feedback\feedback_list_view.html:114 +#: .\pms\templates\feedback\feedback_list_view.html:112 #: .\pms\templates\okr\objective_list_view.html:143 msgid "Yesterday" msgstr "" -#: .\pms\templates\feedback\feedback_list_view.html:119 +#: .\pms\templates\feedback\feedback_list_view.html:117 #: .\pms\templates\okr\objective_list_view.html:153 #: .\templates\dashboard_tile_container.html:58 msgid "This Week" msgstr "" -#: .\pms\templates\feedback\feedback_list_view.html:124 +#: .\pms\templates\feedback\feedback_list_view.html:122 #: .\pms\templates\okr\objective_list_view.html:163 #: .\templates\dashboard_tile_container.html:59 msgid "This Month" @@ -23913,69 +24689,63 @@ msgid "Show Questions" msgstr "" #: .\pms\templates\feedback\question\question_all.html:34 -#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:40 +#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:31 #: .\recruitment\templates\survey\filter.html:29 #: .\recruitment\templates\survey\view_single_template.html:38 msgid "Question Type" msgstr "" #: .\pms\templates\feedback\question\question_all.html:41 -#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:46 -#: .\recruitment\forms.py:752 .\recruitment\templates\survey\filter.html:10 -#: .\recruitment\templates\survey\template_accordion.html:57 +#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:37 +#: .\recruitment\forms.py:765 .\recruitment\templates\survey\filter.html:10 +#: .\recruitment\templates\survey\template_accordion.html:72 #: .\recruitment\templates\survey\view_single_template.html:29 msgid "Question" msgstr "" #: .\pms\templates\feedback\question\question_all.html:47 -#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:55 +#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:46 msgid "Show Options" msgstr "" #: .\pms\templates\feedback\question\question_all.html:52 -#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:60 +#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:51 msgid "Hide Options" msgstr "" -#: .\pms\templates\feedback\question\question_all.html:59 -#: .\pms\templates\feedback\question\question_all.html:65 -#: .\pms\templates\feedback\question\question_all.html:71 -#: .\pms\templates\feedback\question\question_all.html:77 -#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:66 -#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:73 -#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:80 -#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:87 +#: .\pms\templates\feedback\question\question_all.html:58 +#: .\pms\templates\feedback\question\question_all.html:62 +#: .\pms\templates\feedback\question\question_all.html:66 +#: .\pms\templates\feedback\question\question_all.html:70 +#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:57 +#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:64 +#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:71 +#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:78 msgid "Option" msgstr "" -#: .\pms\templates\feedback\question\question_all.html:99 +#: .\pms\templates\feedback\question\question_all.html:88 msgid "Do you want to delete the question?" msgstr "" -#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:32 +#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:23 msgid "Add A Question" msgstr "" -#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:97 +#: .\pms\templates\feedback\question_template\question_template_detailed_view.html:88 msgid "Add Question" msgstr "" -#: .\pms\templates\feedback\question_template\question_template_empty.html:103 -#: .\pms\templates\feedback\question_template\question_template_list.html:115 -msgid "No Question templates are available." -msgstr "" - -#: .\pms\templates\feedback\question_template\question_template_list.html:17 +#: .\pms\templates\feedback\question_template\question_template_list.html:11 msgid "Total Question" msgstr "" -#: .\pms\templates\feedback\question_template\question_template_list.html:61 -#: .\pms\templates\period\period_list.html:47 -msgid "None." +#: .\pms\templates\feedback\question_template\question_template_list.html:60 +msgid "Do you want to delete this question template?" msgstr "" -#: .\pms\templates\feedback\question_template\question_template_list.html:89 -msgid "Do you want to delete this question template?" +#: .\pms\templates\feedback\question_template\question_template_list.html:79 +msgid "No Question templates are available." msgstr "" #: .\pms\templates\meetings\meeting_answer_view.html:109 @@ -23996,7 +24766,7 @@ msgstr "Employee" msgid "Minutes of Meeting" msgstr "" -#: .\pms\templates\meetings\meeting_single_view.html:104 +#: .\pms\templates\meetings\meeting_single_view.html:106 #: .\pms\templates\meetings\meetings_list.html:193 msgid "Are you sure to delete this meeting?" msgstr "" @@ -24021,10 +24791,12 @@ msgid "MoM" msgstr "" #: .\pms\templates\meetings\meetings_list.html:50 +#: .\recruitment\templates\candidate\interview_list.html:64 msgid " Reveal" msgstr "" #: .\pms\templates\meetings\meetings_list.html:53 +#: .\recruitment\templates\candidate\interview_list.html:67 msgid " Collapse" msgstr "" @@ -24049,7 +24821,7 @@ msgstr "" #: .\pms\templates\okr\emp_objective\emp_objective_dashboard_view.html:120 #: .\pms\templates\okr\emp_objective\emp_objective_list.html:135 #: .\pms\templates\okr\okr_list.html:297 .\pms\templates\okr\okr_list.html:535 -#: .\recruitment\templates\recruitment\recruitment_component.html:188 +#: .\recruitment\templates\recruitment\recruitment_component.html:197 msgid "Unarchive" msgstr "" @@ -24057,7 +24829,7 @@ msgstr "" msgid "Do you want to archive this meeting?" msgstr "" -#: .\pms\templates\meetings\meetings_list.html:266 +#: .\pms\templates\meetings\meetings_list.html:260 msgid "There is no meetings has been created." msgstr "" @@ -24187,10 +24959,10 @@ msgstr "Leave Types" #: .\pms\templates\okr\key_result\key_result_creation_htmx.html:62 #: .\pms\templates\okr\key_result\key_result_update.html:58 #: .\pms\templates\okr\key_result\key_result_view.html:81 -#: .\pms\templates\okr\key_result\kr_card.html:32 +#: .\pms\templates\okr\key_result\kr_card.html:28 #: .\pms\templates\okr\key_result\kr_dashboard_view.html:50 #: .\pms\templates\okr\key_result\kr_filter.html:19 -#: .\pms\templates\okr\key_result\kr_list.html:64 +#: .\pms\templates\okr\key_result\kr_list.html:59 #: .\pms\templates\okr\kr_list.html:29 #: .\pms\templates\okr\objective_detailed_view.html:200 msgid "Target Value" @@ -24221,13 +24993,13 @@ msgstr "" msgid "Start Value" msgstr "" -#: .\pms\templates\okr\key_result\kr_card.html:39 -#: .\pms\templates\okr\key_result\kr_list.html:99 +#: .\pms\templates\okr\key_result\kr_card.html:35 +#: .\pms\templates\okr\key_result\kr_list.html:85 msgid " Days" msgstr "" -#: .\pms\templates\okr\key_result\kr_card.html:69 -#: .\pms\templates\okr\key_result\kr_list.html:129 +#: .\pms\templates\okr\key_result\kr_card.html:59 +#: .\pms\templates\okr\key_result\kr_list.html:107 msgid "Do you want to delete this Key result?" msgstr "" @@ -24248,7 +25020,8 @@ msgid "Are you sure you want to delete\tthis Key result?" msgstr "" #: .\pms\templates\okr\key_result\kr_filter.html:13 -#: .\pms\templates\okr\key_result\kr_list.html:63 +#: .\pms\templates\okr\key_result\kr_list.html:57 +#: .\pms\templates\okr\key_result\kr_list.html:58 msgid "Progress Type" msgstr "" @@ -24262,13 +25035,13 @@ msgstr "" msgid "Create Key result" msgstr "" -#: .\pms\templates\okr\key_result\kr_list.html:66 +#: .\pms\templates\okr\key_result\kr_list.html:61 #, fuzzy #| msgid "feedback-creation" msgid "Descrption" msgstr "Creation" -#: .\pms\templates\okr\key_result\view_kr.html:19 +#: .\pms\templates\okr\key_result\view_kr.html:17 #, fuzzy #| msgid "shift-request-view" msgid "There are currently no key results to consider." @@ -24289,7 +25062,7 @@ msgid "Create Objective" msgstr "Creation" #: .\pms\templates\okr\objective_detailed_view.html:11 -#: .\pms\templates\okr\objective_empty.html:14 +#: .\pms\templates\okr\objective_empty.html:12 #: .\pms\templates\okr\okr_nav.html:28 msgid "Objectives" msgstr "" @@ -24338,7 +25111,7 @@ msgstr "" msgid "Created Objective" msgstr "Creation" -#: .\pms\templates\okr\objective_empty.html:46 +#: .\pms\templates\okr\objective_empty.html:40 msgid "No Objectives are available." msgstr "" @@ -24359,6 +25132,7 @@ msgid "Update Objectives" msgstr "" #: .\pms\templates\okr\okr_detailed_view.html:115 +#: .\project\templates\cbv\projects\project_details.html:54 msgid "Managers:" msgstr "" @@ -24369,6 +25143,7 @@ msgid "Duration:" msgstr "Configuration" #: .\pms\templates\okr\okr_detailed_view.html:139 +#: .\project\templates\cbv\projects\project_details.html:111 #, fuzzy #| msgid "feedback-creation" msgid "Description:" @@ -24412,338 +25187,666 @@ msgstr "" msgid "Is Archived" msgstr "" -#: .\pms\templates\period\period_empty.html:74 -#: .\pms\templates\period\period_list.html:105 -msgid "No time periods have been created." +#: .\pms\templates\period\period_list.html:45 +msgid "None." msgstr "" -#: .\pms\templates\period\period_list.html:72 +#: .\pms\templates\period\period_list.html:61 msgid "Do you want to delete this period ?" msgstr "" +#: .\pms\templates\period\period_list.html:81 +msgid "No time periods have been created." +msgstr "" + #: .\pms\templates\period\period_update.html:18 msgid "Update Period" msgstr "" -#: .\pms\views.py:128 +#: .\pms\views.py:139 msgid "Objective created" msgstr "" -#: .\pms\views.py:265 .\pms\views.py:468 +#: .\pms\views.py:276 .\pms\views.py:479 #, python-format msgid "Objective %(objective)s Updated" msgstr "" -#: .\pms\views.py:337 .\pms\views.py:404 +#: .\pms\views.py:348 .\pms\views.py:415 #, python-format msgid "Key result %(key_result)s created successfully" msgstr "" -#: .\pms\views.py:393 +#: .\pms\views.py:404 #, python-format msgid "Key result %(key_result)s updated successfully" msgstr "" -#: .\pms\views.py:495 +#: .\pms\views.py:506 #, python-format msgid "Objective %(objective)s deleted" msgstr "" -#: .\pms\views.py:500 +#: .\pms\views.py:511 #, python-format msgid "You can't delete objective %(objective)s,related entries exists" msgstr "" -#: .\pms\views.py:504 .\pms\views.py:2795 +#: .\pms\views.py:515 .\pms\views.py:2864 msgid "Objective not found." msgstr "" -#: .\pms\views.py:901 +#: .\pms\views.py:925 #, python-format msgid "Objective %(objective)s status updated" msgstr "" -#: .\pms\views.py:931 +#: .\pms\views.py:955 msgid "Status has been updated" msgstr "" -#: .\pms\views.py:959 .\pms\views.py:970 +#: .\pms\views.py:983 .\pms\views.py:994 #, python-format msgid "Current value of %(employee_key_result)s updated" msgstr "" -#: .\pms\views.py:980 +#: .\pms\views.py:1004 msgid "Current value is greater than target value" msgstr "" -#: .\pms\views.py:982 +#: .\pms\views.py:1006 msgid "Error occurred during current value updation" msgstr "" -#: .\pms\views.py:999 .\pms\views.py:1126 +#: .\pms\views.py:1023 .\pms\views.py:1159 msgid "Objective un-archived successfully!." msgstr "" -#: .\pms\views.py:1003 .\pms\views.py:1130 +#: .\pms\views.py:1027 .\pms\views.py:1163 msgid "Objective archived successfully!." msgstr "" -#: .\pms\views.py:1068 +#: .\pms\views.py:1092 #, fuzzy #| msgid "shift-request-view" msgid "Employee objective created successfully" msgstr "Shift Requests" -#: .\pms\views.py:1098 +#: .\pms\views.py:1134 msgid "Employee objective Updated successfully" msgstr "" -#: .\pms\views.py:1148 +#: .\pms\views.py:1181 msgid "You can't delete this objective,related entries exists" msgstr "" -#: .\pms\views.py:1155 .\pms\views.py:3237 +#: .\pms\views.py:1188 .\pms\views.py:3303 msgid "Objective deleted successfully!." msgstr "" -#: .\pms\views.py:1210 +#: .\pms\views.py:1248 msgid "The status of the objective is the same as selected." msgstr "" -#: .\pms\views.py:1291 .\pms\views.py:1352 +#: .\pms\views.py:1329 .\pms\views.py:1390 msgid "Key result created" msgstr "" -#: .\pms\views.py:1316 +#: .\pms\views.py:1354 msgid "Key results created" msgstr "" -#: .\pms\views.py:1385 +#: .\pms\views.py:1423 msgid "Key result updated" msgstr "" -#: .\pms\views.py:1486 +#: .\pms\views.py:1524 msgid "Feedback created successfully." msgstr "" -#: .\pms\views.py:1550 +#: .\pms\views.py:1588 msgid "Ongoing feedback is not editable!." msgstr "" -#: .\pms\views.py:1570 +#: .\pms\views.py:1612 msgid "Feedback updated successfully!." msgstr "" -#: .\pms\views.py:1838 .\pms\views.py:3590 +#: .\pms\views.py:1886 +#, fuzzy +#| msgid "feedback-creation" +msgid "Feedback not started yet" +msgstr "Creation" + +#: .\pms\views.py:1891 +#, fuzzy +#| msgid "feedback-creation" +msgid "Feedback is due" +msgstr "Creation" + +#: .\pms\views.py:1907 .\pms\views.py:3671 msgid "You are not allowed to answer" msgstr "" -#: .\pms\views.py:1852 +#: .\pms\views.py:1921 msgid "Feedback already answered" msgstr "" -#: .\pms\views.py:1903 +#: .\pms\views.py:1972 #, python-format msgid "Feedback %(review_cycle)s has been answered successfully!." msgstr "" -#: .\pms\views.py:1928 +#: .\pms\views.py:1997 msgid "Feedback is not answered yet" msgstr "" -#: .\pms\views.py:1960 .\pms\views.py:2851 +#: .\pms\views.py:2029 .\pms\views.py:2920 #, python-format msgid "Feedback %(review_cycle)s deleted successfully!" msgstr "" -#: .\pms\views.py:1967 .\pms\views.py:2858 +#: .\pms\views.py:2036 .\pms\views.py:2927 #, python-format msgid "You can't delete feedback %(review_cycle)s with status %(status)s" msgstr "" -#: .\pms\views.py:1973 .\pms\views.py:2867 .\pms\views.py:3080 +#: .\pms\views.py:2042 .\pms\views.py:2936 .\pms\views.py:3148 msgid "Feedback not found." msgstr "" -#: .\pms\views.py:1993 +#: .\pms\views.py:2062 msgid "Feedback is already started" msgstr "" -#: .\pms\views.py:2000 +#: .\pms\views.py:2069 #, python-format msgid "Feedback status updated to %(status)s" msgstr "" -#: .\pms\views.py:2006 +#: .\pms\views.py:2075 #, python-format msgid "Error occurred during status update to %(status)s" msgstr "" -#: .\pms\views.py:2067 .\pms\views.py:3043 +#: .\pms\views.py:2136 .\pms\views.py:3113 msgid "Feedback un-archived successfully!." msgstr "" -#: .\pms\views.py:2071 .\pms\views.py:3047 +#: .\pms\views.py:2140 .\pms\views.py:3117 msgid "Feedback archived successfully!." msgstr "" -#: .\pms\views.py:2145 +#: .\pms\views.py:2213 msgid "Not-completed" msgstr "" -#: .\pms\views.py:2168 +#: .\pms\views.py:2236 msgid "Question template is used in feedback." msgstr "" -#: .\pms\views.py:2188 .\pms\views.py:2190 +#: .\pms\views.py:2256 .\pms\views.py:2258 msgid "Question created successfully." msgstr "" -#: .\pms\views.py:2193 +#: .\pms\views.py:2261 msgid "Error occurred during question creation!" msgstr "" -#: .\pms\views.py:2263 .\pms\views.py:2270 +#: .\pms\views.py:2331 .\pms\views.py:2338 msgid "Question updated successfully." msgstr "" -#: .\pms\views.py:2304 +#: .\pms\views.py:2372 msgid "Question deleted successfully!" msgstr "" -#: .\pms\views.py:2310 -msgid "Failed to delete question: Question template is in use." -msgstr "" - -#: .\pms\views.py:2314 .\recruitment\views\surveys.py:319 +#: .\pms\views.py:2376 .\recruitment\views\surveys.py:330 msgid "Question not found." msgstr "" -#: .\pms\views.py:2392 +#: .\pms\views.py:2379 +msgid "Failed to delete question: Question template is in use." +msgstr "" + +#: .\pms\views.py:2403 +#, fuzzy +#| msgid "shift-request-view" +msgid "Question template created successfully!" +msgstr "Shift Requests" + +#: .\pms\views.py:2454 msgid "Question template does not exist" msgstr "" -#: .\pms\views.py:2434 +#: .\pms\views.py:2496 msgid "Question template updated" msgstr "" -#: .\pms\views.py:2455 +#: .\pms\views.py:2516 msgid "This template is using in a feedback" msgstr "" -#: .\pms\views.py:2459 +#: .\pms\views.py:2520 msgid "The question template is deleted successfully !." msgstr "" -#: .\pms\views.py:2462 +#: .\pms\views.py:2523 msgid "question template not found." msgstr "" -#: .\pms\views.py:2518 +#: .\pms\views.py:2579 msgid "Period creation was Successful " msgstr "" -#: .\pms\views.py:2542 +#: .\pms\views.py:2603 msgid "Period updated Successfully. " msgstr "" -#: .\pms\views.py:2561 +#: .\pms\views.py:2622 msgid "Period deleted successfully." msgstr "" -#: .\pms\views.py:2563 +#: .\pms\views.py:2624 msgid "Period not found." msgstr "" -#: .\pms\views.py:2760 +#: .\pms\views.py:2829 #, python-brace-format msgid "{objective} is {message}" msgstr "" -#: .\pms\views.py:2782 +#: .\pms\views.py:2851 #, python-format msgid "%(employee)s's %(objective)s deleted" msgstr "" -#: .\pms\views.py:2791 +#: .\pms\views.py:2860 #, python-format msgid "You can't delete objective %(objective)s with status %(status)s" msgstr "" -#: .\pms\views.py:2820 .\pms\views.py:2829 +#: .\pms\views.py:2889 .\pms\views.py:2898 #, python-brace-format msgid "{feedback} is {message}" msgstr "" -#: .\pms\views.py:3024 .\pms\views.py:3052 .\pms\views.py:3165 +#: .\pms\views.py:3093 .\pms\views.py:3120 .\pms\views.py:3231 msgid "You are don't have permissions." msgstr "" -#: .\pms\views.py:3072 +#: .\pms\views.py:3140 msgid "Feedback deleted successfully!" msgstr "" -#: .\pms\views.py:3076 +#: .\pms\views.py:3144 msgid "Failed to delete feedback: Feedback template is in use." msgstr "" -#: .\pms\views.py:3141 +#: .\pms\views.py:3209 msgid "Key result assigned sucessfully." msgstr "" -#: .\pms\views.py:3197 +#: .\pms\views.py:3263 msgid "Key result Updated sucessfully." msgstr "" -#: .\pms\views.py:3256 +#: .\pms\views.py:3322 msgid "Key result sattus changed to {}." msgstr "" -#: .\pms\views.py:3427 +#: .\pms\views.py:3508 msgid "Meeting added successfully" msgstr "" -#: .\pms\views.py:3455 +#: .\pms\views.py:3536 msgid "Meeting unarchived successfully" msgstr "" -#: .\pms\views.py:3457 +#: .\pms\views.py:3538 #, fuzzy #| msgid "shift-request-view" msgid "Meeting archived successfully" msgstr "Shift Requests" -#: .\pms\views.py:3478 +#: .\pms\views.py:3559 msgid "Manager has been successfully removed from the meeting." msgstr "" -#: .\pms\views.py:3497 +#: .\pms\views.py:3578 msgid "Employee has been successfully removed from the meeting." msgstr "" -#: .\pms\views.py:3560 +#: .\pms\views.py:3641 #, fuzzy #| msgid "multiple-approval-condition" msgid "Minutes of Meeting (MoM) have been created successfully" msgstr "Multiple Approval Condition" -#: .\pms\views.py:3629 +#: .\pms\views.py:3710 #, python-format msgid "Questions for meeting %(meeting)s has been answered successfully!." msgstr "" -#: .\pms\views.py:3817 +#: .\pms\views.py:3899 #, fuzzy #| msgid "shift-request-view" msgid "Bonus point setting activated successfully." msgstr "Shift Requests" -#: .\pms\views.py:3820 +#: .\pms\views.py:3902 #, fuzzy #| msgid "shift-request-view" msgid "Bonus point setting deactivated successfully." msgstr "Shift Requests" +#: .\project\cbv\dashboard.py:77 +#: .\project\templates\dashboard\project_details.html:32 +msgid "No of Tasks" +msgstr "" + +#: .\project\cbv\dashboard.py:96 +#: .\project\templates\cbv\projects\project_list.html:16 +#, fuzzy +#| msgid "recruitment" +msgid "View Project" +msgstr "Recruitment" + +#: .\project\cbv\project_stage.py:33 +#, fuzzy +#| msgid "create-allowance" +msgid "Create Project Stage" +msgstr "Creation" + +#: .\project\cbv\project_stage.py:56 .\project\cbv\tasks.py:297 +msgid "Something went wrong!" +msgstr "" + +#: .\project\cbv\project_stage.py:68 +#, fuzzy +#| msgid "department-update" +msgid "Update Project Stage" +msgstr "Update" + +#: .\project\cbv\project_stage.py:78 .\project\cbv\project_stage.py:133 +#: .\project\views.py:1252 +msgid "New project stage created" +msgstr "" + +#: .\project\cbv\projects.py:310 .\project\views.py:206 +msgid "New project created" +msgstr "" + +#: .\project\cbv\tasks.py:88 .\project\templates\task_all\task_all_list.html:53 +#, fuzzy +#| msgid "department-update" +msgid "Mangers" +msgstr "Update" + +#: .\project\cbv\tasks.py:108 .\project\cbv\tasks.py:515 +#: .\project\models.py:323 .\project\templates\task_all\task_all_card.html:21 +#: .\project\templates\task_all\task_all_list.html:22 +msgid "To Do" +msgstr "" + +#: .\project\cbv\tasks.py:313 .\project\cbv\tasks.py:322 +#: .\project\views.py:1330 +#, fuzzy +#| msgid "recruitment" +msgid "Select Stage" +msgstr "Recruitment" + +#: .\project\cbv\tasks.py:315 .\project\cbv\tasks.py:324 +#: .\project\views.py:1332 +#, fuzzy +#| msgid "company-create" +msgid "Dynamic Create" +msgstr "Companies" + +#: .\project\cbv\tasks.py:375 +#, fuzzy +#| msgid "company-create" +msgid "New Task created" +msgstr "Companies" + +#: .\project\cbv\tasks.py:409 +#, fuzzy +#| msgid "employee" +msgid "Task Details" +msgstr "Employee" + +#: .\project\cbv\tasks.py:417 +#, fuzzy +#| msgid "department-update" +msgid "Task Mangers" +msgstr "Update" + +#: .\project\cbv\tasks.py:418 .\project\models.py:345 +#, fuzzy +#| msgid "department-update" +msgid "Task Members" +msgstr "Update" + +#: .\project\cbv\tasks.py:455 +#, fuzzy +#| msgid "objective-list-view" +msgid "archive_status" +msgstr "Objectives" + +#: .\project\cbv\timesheet.py:123 +#: .\project\templates\cbv\timesheet\filter.html:4 +#: .\project\templates\time_sheet\filters.html:5 +#: .\project\templates\time_sheet\form-create.html:4 +#: .\project\templates\time_sheet\form-update.html:4 +#: .\project\templates\time_sheet\time_sheet_navbar.html:5 +msgid "Time Sheet" +msgstr "" + +#: .\project\cbv\timesheet.py:164 .\project\cbv\timesheet.py:492 +#: .\project\templates\task\new\task_timesheet.html:59 +#: .\project\templates\time_sheet\time_sheet_card_view.html:54 +#: .\project\templates\time_sheet\time_sheet_list_view.html:39 +#: .\project\templates\time_sheet\time_sheet_single_view.html:38 +msgid "Time Spent" +msgstr "" + +#: .\project\cbv\timesheet.py:282 +#, fuzzy +#| msgid "employee" +msgid "Create Time Sheet" +msgstr "Employee" + +#: .\project\cbv\timesheet.py:319 +#, fuzzy +#| msgid "type-update" +msgid "Update Time Sheet" +msgstr "Update" + +#: .\project\cbv\timesheet.py:375 +#, fuzzy +#| msgid "company-create" +msgid "New time sheet created" +msgstr "Companies" + +#: .\project\filters.py:31 +msgid "Start From" +msgstr "" + +#: .\project\filters.py:37 +msgid "End Till" +msgstr "" + +#: .\project\models.py:61 +#, fuzzy +#| msgid "department-update" +msgid "Project Managers" +msgstr "Update" + +#: .\project\models.py:67 +#: .\project\templates\project\new\project_list_view.html:72 +msgid "Project Members" +msgstr "" + +#: .\project\models.py:75 +#, fuzzy +#| msgid "recruitment" +msgid "Project File" +msgstr "Recruitment" + +#: .\project\models.py:194 +msgid "Are you sure you want to delete this project?" +msgstr "" + +#: .\project\models.py:248 .\project\templates\cbv\projects\project_tab.html:7 +#: .\project\templates\dashboard\project_dashboard.html:129 +#: .\project\templates\project\new\navbar.html:64 +#, fuzzy +#| msgid "recruitment" +msgid "Projects" +msgstr "Recruitment" + +#: .\project\models.py:266 +msgid "Is end stage" +msgstr "" + +#: .\project\models.py:313 .\project\models.py:337 +#: .\project\templates\project_stage\forms\create_project_stage.html:4 +#: .\project\templates\project_stage\forms\update_project_stage.html:4 +#: .\project\templates\task_all\forms\create_project_stage_taskall.html:4 +msgid "Project Stage" +msgstr "" + +#: .\project\models.py:314 +#, fuzzy +#| msgid "recruitment" +msgid "Project Stages" +msgstr "Recruitment" + +#: .\project\models.py:353 +#, fuzzy +#| msgid "onboarding" +msgid "Task File" +msgstr "Onboarding" + +#: .\project\models.py:367 +msgid "The task end date must be between the project's start and end dates." +msgstr "" + +#: .\project\models.py:511 .\project\templates\task\new\task_card_view.html:170 +msgid "Are you sure you want to delete this task?" +msgstr "" + +#: .\project\models.py:549 +msgid "Hours Spent" +msgstr "" + +#: .\project\models.py:579 +#, fuzzy +#| msgid "employee" +msgid "Employee not included in this task" +msgstr "Employee" + +#: .\project\models.py:585 +msgid "Employee not included in this project" +msgstr "" + +#: .\project\models.py:627 +msgid "Are you sure you want to delete this time sheet?" +msgstr "" + +#: .\project\models.py:638 +#, fuzzy +#| msgid "rotating-shift-update" +msgid "TimeSheet" +msgstr "Update" + +#: .\project\models.py:639 +msgid "TimeSheets" +msgstr "" + +#: .\project\templates\cbv\projects\actions.html:60 +#: .\project\templates\cbv\timesheet\detail_actions.html:19 +#: .\project\templates\project\new\project_list_view.html:133 +#: .\project\templates\time_sheet\time_sheet_single_view.html:82 +msgid "Do you want to delete this project?" +msgstr "" + +#: .\project\templates\cbv\projects\project_details.html:9 +#, fuzzy +#| msgid "recruitment" +msgid "Project:" +msgstr "Recruitment" + +#: .\project\templates\cbv\projects\project_details.html:71 +#, fuzzy +#| msgid "department-update" +msgid "Members:" +msgstr "Update" + +#: .\project\templates\cbv\projects\project_details.html:88 +msgid "Start date:" +msgstr "" + +#: .\project\templates\cbv\projects\project_details.html:95 +#: .\project\templates\task\new\task_kanban_view.html:138 +#, fuzzy +#| msgid "candidate-view" +msgid "End date:" +msgstr "Candidates" + +#: .\project\templates\cbv\projects\project_tab.html:16 +#, fuzzy +#| msgid "shift-request-view" +msgid "No projects assigned to this employee." +msgstr "Shift Requests" + +#: .\project\templates\cbv\projects\projects.html:98 +#: .\project\templates\project\new\navbar.html:13 +msgid "Import Project" +msgstr "" + +#: .\project\templates\cbv\tasks\task_actions.html:13 +#: .\project\templates\task_all\task_all_card.html:78 +msgid "Do you want to archive this task?" +msgstr "" + +#: .\project\templates\cbv\tasks\task_actions.html:19 +#: .\project\templates\task_all\task_all_card.html:82 +msgid "Do you want to un archive this task?" +msgstr "" + +#: .\project\templates\cbv\tasks\task_actions.html:25 +msgid "Do you want Delete this Task ?" +msgstr "" + +#: .\project\templates\cbv\tasks\task_detail_actions.html:18 +#: .\project\templates\cbv\timesheet\task_timesheet.html:6 +#, fuzzy +#| msgid "rotating-shift-update" +msgid "Time sheet" +msgstr "Update" + +#: .\project\templates\cbv\tasks\task_detail_actions.html:23 +#: .\project\templates\task\new\task_details.html:99 +msgid "Do you want to delete this task?" +msgstr "" + +#: .\project\templates\cbv\timesheet\actions.html:23 +#: .\project\templates\cbv\timesheet\actions.html:37 +#: .\project\templates\time_sheet\time_sheet_list_view.html:106 +msgid "Do you want to delete this time sheet?" +msgstr "" + +#: .\project\templates\cbv\timesheet\detail_actions.html:14 +#: .\project\templates\time_sheet\time_sheet_single_view.html:76 +msgid "View Timesheet Chart" +msgstr "" + +#: .\project\templates\cbv\timesheet\task_timesheet.html:16 +#: .\project\templates\task\new\task_timesheet.html:19 +msgid " Add" +msgstr "" + #: .\project\templates\dashboard\project_dashboard.html:15 msgid "Total Projects" msgstr "" @@ -24764,32 +25867,6 @@ msgstr "" msgid "Projects due in this month" msgstr "" -#: .\project\templates\dashboard\project_dashboard.html:96 -#, fuzzy -#| msgid "employee" -msgid "View all" -msgstr "Employee" - -#: .\project\templates\dashboard\project_dashboard.html:123 -#, fuzzy -#| msgid "shift-request-view" -msgid "No projects due in this month." -msgstr "Shift Requests" - -#: .\project\templates\dashboard\project_details.html:32 -msgid "No of Tasks" -msgstr "" - -#: .\project\templates\project\new\navbar.html:13 -msgid "Import Project" -msgstr "" - -#: .\project\templates\project\new\navbar.html:64 -#, fuzzy -#| msgid "recruitment" -msgid "Projects" -msgstr "Recruitment" - #: .\project\templates\project\new\project_kanban_view.html:89 #, fuzzy #| msgid "department-update" @@ -24822,26 +25899,29 @@ msgstr "Shift Requests" msgid "Project Manager" msgstr "Update" -#: .\project\templates\project\new\project_list_view.html:72 -msgid "Project Members" -msgstr "" - -#: .\project\templates\project\new\project_list_view.html:133 -#: .\project\templates\time_sheet\time_sheet_single_view.html:82 -msgid "Do you want to delete this project?" -msgstr "" - -#: .\project\templates\project_stage\forms\create_project_stage.html:4 -#: .\project\templates\project_stage\forms\update_project_stage.html:4 -#: .\project\templates\task_all\forms\create_project_stage_taskall.html:4 -msgid "Project Stage" -msgstr "" - #: .\project\templates\task\new\forms\create_timesheet.html:4 #: .\project\templates\task\new\forms\update_timesheet.html:4 msgid "Timesheet" msgstr "" +#: .\project\templates\task\new\task_card_view.html:84 +#: .\project\templates\task\new\task_kanban_view.html:48 +#: .\recruitment\templates\pipeline\components\stages_tab_content.html:66 +#: .\recruitment\templates\pipeline\kanban_components\kanban_stage_components.html:61 +#: .\recruitment\templates\pipeline\pipeline_card.html:78 +#: .\recruitment\templates\pipeline\pipeline_card.html:272 +#: .\recruitment\templates\stage\stage_component.html:161 +msgid "Are you sure you want to delete this stage?" +msgstr "" + +#: .\project\templates\task\new\task_card_view.html:207 +#: .\project\templates\task_all\task_all_card.html:155 +#: .\project\templates\task_all\task_all_list.html:183 +#, fuzzy +#| msgid "shift-request-view" +msgid "There are currently no available tasks; please create a new one." +msgstr "Shift Requests" + #: .\project\templates\task\new\task_details.html:33 #, fuzzy #| msgid "department-update" @@ -24858,48 +25938,38 @@ msgstr "Update" msgid " Time sheet" msgstr "" -#: .\project\templates\task\new\task_details.html:99 -#: .\project\templates\task\new\task_list_view.html:178 -msgid "Do you want to delete this task?" +#: .\project\templates\task\new\task_kanban_view.html:100 +#: .\project\templates\task\new\task_list_view.html:175 +msgid "Do you really want to delete this task?" msgstr "" -#: .\project\templates\task\new\task_kanban_view.html:85 -#: .\project\templates\task\new\task_list_view.html:84 -#: .\recruitment\templates\pipeline\components\stages_tab_content.html:66 -#: .\recruitment\templates\pipeline\kanban_components\kanban_stage_components.html:61 -#: .\recruitment\templates\pipeline\pipeline_card.html:78 -#: .\recruitment\templates\pipeline\pipeline_card.html:272 -#: .\recruitment\templates\stage\stage_component.html:161 -msgid "Are you sure you want to delete this stage?" +#: .\project\templates\task\new\task_kanban_view.html:117 +#, fuzzy +#| msgid "department-update" +msgid "Managers: " +msgstr "Update" + +#: .\project\templates\task\new\task_kanban_view.html:153 +#: .\project\templates\task\new\task_list_view.html:22 +#: .\recruitment\templates\stage\stage_form.html:4 +msgid "Add Stage" msgstr "" -#: .\project\templates\task\new\task_kanban_view.html:171 -msgid "Are you sure you want to delete this task?" +#: .\project\templates\task\new\task_list_view.html:72 +msgid " Are you sure you want to delete this stage?" msgstr "" -#: .\project\templates\task\new\task_kanban_view.html:207 -#: .\project\templates\task\new\task_list_view.html:215 -#: .\project\templates\task_all\task_all_card.html:155 -#: .\project\templates\task_all\task_all_list.html:183 +#: .\project\templates\task\new\task_list_view.html:197 #, fuzzy #| msgid "shift-request-view" -msgid "There are currently no available tasks; please create a new one." +msgid "No tasks found in this stage." msgstr "Shift Requests" -#: .\project\templates\task\new\task_navbar.html:6 -msgid ":Tasks" -msgstr "" - -#: .\project\templates\task\new\task_timesheet.html:19 -msgid " Add" -msgstr "" - -#: .\project\templates\task\new\task_timesheet.html:59 -#: .\project\templates\time_sheet\time_sheet_card_view.html:54 -#: .\project\templates\time_sheet\time_sheet_list_view.html:39 -#: .\project\templates\time_sheet\time_sheet_single_view.html:38 -msgid "Time Spent" -msgstr "" +#: .\project\templates\task\new\task_navbar.html:61 +#, fuzzy +#| msgid "recruitment" +msgid "Create task" +msgstr "Recruitment" #: .\project\templates\task\new\task_timesheet.html:135 #: .\project\templates\time_sheet\time_sheet_card_view.html:147 @@ -24909,11 +25979,6 @@ msgstr "" msgid "There are currently no available timesheets; please create a new one." msgstr "Shift Requests" -#: .\project\templates\task_all\task_all_card.html:21 -#: .\project\templates\task_all\task_all_list.html:22 -msgid "To Do" -msgstr "" - #: .\project\templates\task_all\task_all_card.html:59 #, fuzzy #| msgid "recruitment" @@ -24924,14 +25989,6 @@ msgstr "Recruitment" msgid "Stage Name" msgstr "" -#: .\project\templates\task_all\task_all_card.html:78 -msgid "Do you want to archive this task?" -msgstr "" - -#: .\project\templates\task_all\task_all_card.html:82 -msgid "Do you want to un archive this task?" -msgstr "" - #: .\project\templates\task_all\task_all_card.html:90 #: .\recruitment\templates\candidate\candidate_card.html:221 #: .\recruitment\templates\candidate\candidate_list.html:289 @@ -24940,129 +25997,155 @@ msgstr "" msgid "Do you want to delete this candidate?" msgstr "" -#: .\project\templates\task_all\task_all_list.html:53 -#, fuzzy -#| msgid "department-update" -msgid "Mangers" -msgstr "Update" - #: .\project\templates\task_all\task_all_navbar.html:167 #, fuzzy #| msgid "employee" msgid " Task" msgstr "Employee" -#: .\project\templates\time_sheet\filters.html:5 -#: .\project\templates\time_sheet\form-create.html:4 -#: .\project\templates\time_sheet\form-update.html:4 -#: .\project\templates\time_sheet\time_sheet_navbar.html:5 -msgid "Time Sheet" -msgstr "" - -#: .\project\templates\time_sheet\time_sheet_list_view.html:106 -msgid "Do you want to delete this time sheet?" -msgstr "" - -#: .\project\templates\time_sheet\time_sheet_single_view.html:76 -msgid "View Timesheet Chart" -msgstr "" - -#: .\project\views.py:184 -msgid "New project created" -msgstr "" - -#: .\project\views.py:215 +#: .\project\views.py:242 #, fuzzy #| msgid "type-update" msgid "Project updated" msgstr "Update" -#: .\project\views.py:524 -#, python-format -msgid "%(project)s deleted." +#: .\project\views.py:304 +msgid "Invalid status or missing data." msgstr "" -#: .\project\views.py:529 +#: .\project\views.py:307 +#, fuzzy +#| msgid "recruitment" +msgid "The specified project does not exist." +msgstr "Recruitment" + +#: .\project\views.py:659 #, python-format msgid "You cannot delete %(project)s." msgstr "" -#: .\project\views.py:595 .\project\views.py:625 .\project\views.py:850 +#: .\project\views.py:661 +#, fuzzy +#| msgid "type-update" +msgid "{} Projects deleted" +msgstr "Update" + +#: .\project\views.py:732 +#, fuzzy +#| msgid "shift-request-view" +msgid "The task has been created successfully!" +msgstr "Shift Requests" + +#: .\project\views.py:768 .\project\views.py:806 .\project\views.py:1085 #, fuzzy #| msgid "company-create" msgid "New task created" msgstr "Companies" -#: .\project\views.py:655 +#: .\project\views.py:842 #, fuzzy #| msgid "onboarding" msgid "Task updated" msgstr "Onboarding" -#: .\project\views.py:733 .\project\views.py:813 +#: .\project\views.py:883 +#, fuzzy +#| msgid "shift-request-view" +msgid "The task has been deleted successfully." +msgstr "Shift Requests" + +#: .\project\views.py:944 #, fuzzy #| msgid "type-update" msgid "Task stage updated" msgstr "Update" -#: .\project\views.py:758 +#: .\project\views.py:973 msgid "Timesheet created" msgstr "" -#: .\project\views.py:776 +#: .\project\views.py:997 #, fuzzy #| msgid "rotating-shift-update" msgid "Timesheet updated" msgstr "Update" -#: .\project\views.py:866 +#: .\project\views.py:1042 +#, fuzzy +#| msgid "user-request-view" +msgid "Task stage has been successfully updated." +msgstr "My Leave Requests" + +#: .\project\views.py:1044 +#, fuzzy +#| msgid "shift-request-view" +msgid "Tasks order has been successfully updated." +msgstr "Shift Requests" + +#: .\project\views.py:1113 +#, fuzzy +#| msgid "shift-request-view" +msgid "Task status has been updated successfully" +msgstr "Shift Requests" + +#: .\project\views.py:1125 msgid "Task updated successfully" msgstr "" -#: .\project\views.py:937 -#, fuzzy, python-format -#| msgid "onboarding" -msgid "%(task)s deleted." -msgstr "Onboarding" - -#: .\project\views.py:942 +#: .\project\views.py:1207 #, python-format msgid "You cannot delete %(task)s." msgstr "" -#: .\project\views.py:983 -msgid "New project stage created" +#: .\project\views.py:1208 +msgid "{} tasks." msgstr "" -#: .\project\views.py:1005 +#: .\project\views.py:1277 msgid "Project stage updated successfully" msgstr "" -#: .\project\views.py:1151 +#: .\project\views.py:1305 +#, fuzzy +#| msgid "shift-request-view" +msgid "Stage deleted successfully" +msgstr "Shift Requests" + +#: .\project\views.py:1307 +msgid "Can't Delete. This stage contain some tasks" +msgstr "" + +#: .\project\views.py:1390 +msgid "The project stage sequence has been successfully updated." +msgstr "" + +#: .\project\views.py:1574 msgid "Time sheet created" msgstr "" -#: .\project\views.py:1249 +#: .\project\views.py:1672 #, fuzzy #| msgid "rotating-shift-update" msgid "Time sheet updated" msgstr "Update" -#: .\project\views.py:1303 -msgid "Timesheet deleted successfully." -msgstr "" +#: .\project\views.py:1706 +#, fuzzy +#| msgid "shift-request-view" +msgid "The time sheet has been deleted successfully" +msgstr "Shift Requests" -#: .\project\views.py:1482 +#: .\project\views.py:1904 #, python-format msgid "%(timesheet)s deleted." msgstr "" -#: .\project\views.py:1487 +#: .\project\views.py:1910 #, python-format msgid "You cannot delete %(timesheet)s." msgstr "" -#: .\recruitment\forms.py:251 .\recruitment\forms.py:557 +#: .\recruitment\forms.py:256 .\recruitment\forms.py:570 #: .\recruitment\templates\pipeline\form\recruitment_update.html:59 #: .\recruitment\templates\recruitment\recruitment_component.html:70 #: .\recruitment\templates\recruitment\recruitment_component.html:74 @@ -25072,142 +26155,158 @@ msgstr "" msgid "Vacancy" msgstr "" -#: .\recruitment\forms.py:278 +#: .\recruitment\forms.py:283 #, fuzzy #| msgid "employee" msgid "---Choose Skills---" msgstr "Employee" -#: .\recruitment\forms.py:282 +#: .\recruitment\forms.py:287 #, fuzzy #| msgid "create-allowance" msgid "Create new skill " msgstr "Creation" -#: .\recruitment\forms.py:301 +#: .\recruitment\forms.py:310 msgid "Job position is required if the recruitment is publishing." msgstr "" -#: .\recruitment\forms.py:457 .\recruitment\models.py:570 +#: .\recruitment\forms.py:314 +msgid "LinkedIn account is required for publishing." +msgstr "" + +#: .\recruitment\forms.py:470 .\recruitment\models.py:571 msgid "Choose valid choice" msgstr "" -#: .\recruitment\forms.py:753 +#: .\recruitment\forms.py:766 #: .\recruitment\templates\survey\view_single_template.html:42 msgid "Sequence" msgstr "" -#: .\recruitment\forms.py:756 +#: .\recruitment\forms.py:769 msgid "Is Mandatory" msgstr "" -#: .\recruitment\forms.py:776 +#: .\recruitment\forms.py:789 msgid "Choose any recruitment to apply this question" msgstr "" -#: .\recruitment\forms.py:1066 +#: .\recruitment\forms.py:1068 .\recruitment\models.py:838 #, fuzzy #| msgid "create-allowance" msgid "Skill Zones" msgstr "Creation" -#: .\recruitment\forms.py:1193 +#: .\recruitment\forms.py:1195 msgid "Interview date cannot be in the past." msgstr "" -#: .\recruitment\forms.py:1203 +#: .\recruitment\forms.py:1205 msgid "Interview time cannot be in the past." msgstr "" -#: .\recruitment\models.py:59 +#: .\recruitment\models.py:63 msgid "File must be a PDF." msgstr "" -#: .\recruitment\models.py:117 +#: .\recruitment\models.py:121 msgid "To start recruitment for multiple job positions" msgstr "" -#: .\recruitment\models.py:122 +#: .\recruitment\models.py:126 msgid "To close the recruitment, If closed then not visible on pipeline view." msgstr "" -#: .\recruitment\models.py:128 +#: .\recruitment\models.py:132 msgid "" "To publish a recruitment in website, if false then it will not " "appear on open recruitment page." msgstr "" -#: .\recruitment\models.py:135 +#: .\recruitment\models.py:139 msgid "" "To archive and un-archive a recruitment, if active is false then " "it will not appear on recruitment list view." msgstr "" -#: .\recruitment\models.py:168 +#: .\recruitment\models.py:174 +#, fuzzy +#| msgid "view-allowance" +msgid "LinkedIn Account" +msgstr "Allowances" + +#: .\recruitment\models.py:180 +msgid "" +"To publish a recruitment in Linkedin, if active is false then it " +"will not post on LinkedIn." +msgstr "" + +#: .\recruitment\models.py:187 msgid "Profile image not mandatory for candidate creation" msgstr "" -#: .\recruitment\models.py:171 +#: .\recruitment\models.py:190 msgid "Resume not mandatory for candidate creation" msgstr "" -#: .\recruitment\models.py:214 +#: .\recruitment\models.py:233 msgid "Vacancy must be greater than zero if the recruitment is publishing." msgstr "" -#: .\recruitment\models.py:222 +#: .\recruitment\models.py:241 msgid "End date cannot be less than start date." msgstr "" -#: .\recruitment\models.py:277 +#: .\recruitment\models.py:278 #: .\recruitment\templates\dashboard\dashboard.html:283 #: .\recruitment\templates\stage\stage_group.html:77 msgid "Initial" msgstr "" -#: .\recruitment\models.py:278 -#: .\recruitment\templates\recruitment\open_recruitments.html:78 +#: .\recruitment\models.py:279 +#: .\recruitment\templates\recruitment\open_recruitments.html:87 msgid "Applied" msgstr "" -#: .\recruitment\models.py:282 .\recruitment\models.py:427 +#: .\recruitment\models.py:283 .\recruitment\models.py:428 #: .\recruitment\templates\candidate\candidate_view.html:50 #: .\recruitment\templates\dashboard\dashboard.html:286 -#: .\recruitment\templates\recruitment\recruitment_component.html:158 +#: .\recruitment\templates\recruitment\recruitment_component.html:167 #: .\recruitment\templates\stage\stage_group.html:33 msgid "Hired" msgstr "" -#: .\recruitment\models.py:335 +#: .\recruitment\models.py:336 msgid "Application Form" msgstr "" -#: .\recruitment\models.py:336 +#: .\recruitment\models.py:337 msgid "Inside software" msgstr "" -#: .\recruitment\models.py:394 +#: .\recruitment\models.py:395 #: .\recruitment\templates\candidate\individual.html:436 msgid "Referral" msgstr "" -#: .\recruitment\models.py:424 +#: .\recruitment\models.py:425 #: .\recruitment\templates\candidate\individual.html:400 msgid "Source" msgstr "" -#: .\recruitment\models.py:426 +#: .\recruitment\models.py:427 msgid "Start Onboard" msgstr "" -#: .\recruitment\models.py:429 +#: .\recruitment\models.py:430 #: .\recruitment\templates\candidate\candidate_card.html:60 #: .\recruitment\templates\candidate\candidate_self_tracking.html:366 #: .\recruitment\templates\candidate\candidate_view.html:54 msgid "Converted" msgstr "" -#: .\recruitment\models.py:595 +#: .\recruitment\models.py:596 #, fuzzy #| msgid "employee" msgid "Employee is uniques for candidate" @@ -25237,13 +26336,13 @@ msgstr "" msgid "Separate choices by ', '" msgstr "" -#: .\recruitment\models.py:865 .\recruitment\sidebar.py:59 +#: .\recruitment\models.py:837 .\recruitment\models.py:854 +#: .\recruitment\sidebar.py:59 #: .\recruitment\templates\candidate\filters.html:130 -#: .\recruitment\templates\skill_zone\skill_zone_nav.html:5 msgid "Skill Zone" msgstr "" -#: .\recruitment\models.py:949 +#: .\recruitment\models.py:943 #: .\recruitment\templates\candidate\export_filter.html:62 #: .\recruitment\templates\candidate\filters.html:17 #: .\recruitment\templates\candidate\interview_list.html:43 @@ -25253,18 +26352,26 @@ msgstr "" msgid "Interview Date" msgstr "Leave Types" -#: .\recruitment\models.py:950 +#: .\recruitment\models.py:944 #: .\recruitment\templates\candidate\interview_list.html:47 -#: .\recruitment\templates\candidate\interview_list.html:49 +#: .\recruitment\templates\candidate\interview_list.html:48 #, fuzzy #| msgid "type-view" msgid "Interview Time" msgstr "Leave Types" -#: .\recruitment\models.py:955 +#: .\recruitment\models.py:949 msgid "Is Interview Completed" msgstr "" +#: .\recruitment\models.py:1065 +msgid "Email mismatched." +msgstr "" + +#: .\recruitment\models.py:1068 +msgid "Check the credentials" +msgstr "" + #: .\recruitment\sidebar.py:24 #, fuzzy #| msgid "department-update" @@ -25380,7 +26487,7 @@ msgstr "" msgid "Do you want to un-archive this candidate?" msgstr "" -#: .\recruitment\templates\candidate\candidate_empty.html:45 +#: .\recruitment\templates\candidate\candidate_empty.html:32 msgid "There are currently no candidates to consider." msgstr "" @@ -25504,15 +26611,21 @@ msgstr "" msgid "Do you want to reject this request" msgstr "" +#: .\recruitment\templates\candidate\document_form.html:4 +msgid "Upload File" +msgstr "" + #: .\recruitment\templates\candidate\export_filter.html:70 #: .\recruitment\templates\candidate\filters.html:26 #: .\recruitment\templates\pipeline\filters.html:127 +#: .\report\templates\report\recruitment_report.html:65 msgid "Is Hired" msgstr "" #: .\recruitment\templates\candidate\export_filter.html:97 #: .\recruitment\templates\candidate\filters.html:58 #: .\recruitment\templates\pipeline\filters.html:154 +#: .\report\templates\report\recruitment_report.html:103 msgid "Is Canceled" msgstr "" @@ -25520,6 +26633,7 @@ msgstr "" #: .\recruitment\templates\candidate\filters.html:93 #: .\recruitment\templates\pipeline\filters.html:36 #: .\recruitment\templates\recruitment\filters.html:17 +#: .\report\templates\report\recruitment_report.html:129 msgid "Is Closed" msgstr "" @@ -25530,19 +26644,10 @@ msgstr "" #: .\recruitment\templates\stage\filters.html:17 #: .\recruitment\templates\stage\stage_form.html:36 #: .\recruitment\templates\stage\stage_update_form.html:43 +#: .\report\templates\report\recruitment_report.html:98 msgid "Stage Type" msgstr "" -#: .\recruitment\templates\candidate\export_filter.html:139 -#: .\recruitment\templates\candidate\filters.html:102 -#: .\recruitment\templates\pipeline\filters.html:98 -#: .\recruitment\templates\pipeline\form\stage_update.html:28 -#: .\recruitment\templates\stage\filters.html:25 -#: .\recruitment\templates\stage\stage_form.html:29 -#: .\recruitment\templates\stage\stage_update_form.html:36 -msgid "Stage Managers" -msgstr "" - #: .\recruitment\templates\candidate\export_filter.html:160 #: .\recruitment\templates\candidate\filters.html:122 #: .\recruitment\templates\stage\filters.html:9 @@ -25601,7 +26706,7 @@ msgid "This candidate does not have a resume on file." msgstr "" #: .\recruitment\templates\candidate\individual.html:583 -#: .\recruitment\templates\survey\survey_empty_view.html:107 +#: .\recruitment\templates\survey\survey_empty_view.html:73 msgid "No survey templates have been established yet." msgstr "" @@ -25610,21 +26715,29 @@ msgstr "" msgid "No notes have been added for this candidate" msgstr "" -#: .\recruitment\templates\candidate\interview_list.html:91 +#: .\recruitment\templates\candidate\interview_list.html:87 msgid "Are you sure you want to remove this interviewer?" msgstr "" -#: .\recruitment\templates\candidate\interview_list.html:103 +#: .\recruitment\templates\candidate\interview_list.html:89 +msgid " Remove" +msgstr "" + +#: .\recruitment\templates\candidate\interview_list.html:97 #, fuzzy #| msgid "type-view" msgid "Interviewers" msgstr "Leave Types" -#: .\recruitment\templates\candidate\interview_list.html:157 -msgid "Are you sure you want to delete this interview?" +#: .\recruitment\templates\candidate\interview_list.html:140 +msgid " Edit" msgstr "" -#: .\recruitment\templates\candidate\interview_list.html:227 +#: .\recruitment\templates\candidate\interview_list.html:149 +msgid " Are you sure you want to delete this interview?" +msgstr "" + +#: .\recruitment\templates\candidate\interview_list.html:213 msgid "No Interviews Found." msgstr "" @@ -25703,7 +26816,6 @@ msgid "Candidates Per Stage" msgstr "" #: .\recruitment\templates\dashboard\dashboard.html:359 -#: .\recruitment\templates\stage\stage_empty.html:42 msgid "No recruitment stages currently available." msgstr "" @@ -25711,6 +26823,14 @@ msgstr "" msgid "Ongoing Recruitments & Hiring Managers" msgstr "" +#: .\recruitment\templates\linkedin\linkedin_action.html:5 +msgid "Check Connection" +msgstr "" + +#: .\recruitment\templates\linkedin\linkedin_action.html:27 +msgid "Do you want to delete the linkedin account?" +msgstr "" + #: .\recruitment\templates\pipeline\bulk_resume.html:5 msgid "Resumes" msgstr "" @@ -25800,26 +26920,26 @@ msgstr "" #: .\recruitment\templates\pipeline\form\recruitment_update.html:69 #: .\recruitment\templates\recruitment\recruitment_form.html:140 #: .\recruitment\templates\recruitment\recruitment_update_form.html:125 -#: .\recruitment\templates\survey\survey_empty_view.html:69 +#: .\recruitment\templates\survey\survey_empty_view.html:51 #: .\recruitment\templates\survey\view_question_templates.html:65 msgid "Survey Templates" msgstr "" #: .\recruitment\templates\pipeline\form\recruitment_update.html:75 -#: .\recruitment\templates\recruitment\recruitment_form.html:155 -#: .\recruitment\templates\recruitment\recruitment_update_form.html:140 +#: .\recruitment\templates\recruitment\recruitment_form.html:171 +#: .\recruitment\templates\recruitment\recruitment_update_form.html:155 msgid "Is Published?" msgstr "" #: .\recruitment\templates\pipeline\form\recruitment_update.html:83 -#: .\recruitment\templates\recruitment\recruitment_form.html:166 -#: .\recruitment\templates\recruitment\recruitment_update_form.html:148 +#: .\recruitment\templates\recruitment\recruitment_form.html:182 +#: .\recruitment\templates\recruitment\recruitment_update_form.html:163 msgid "Optional Profile Image?" msgstr "" #: .\recruitment\templates\pipeline\form\recruitment_update.html:91 -#: .\recruitment\templates\recruitment\recruitment_form.html:177 -#: .\recruitment\templates\recruitment\recruitment_update_form.html:156 +#: .\recruitment\templates\recruitment\recruitment_form.html:193 +#: .\recruitment\templates\recruitment\recruitment_update_form.html:171 msgid "Optional Resume?" msgstr "" @@ -25853,7 +26973,7 @@ msgid "Create Candidate" msgstr "Recruitment" #: .\recruitment\templates\pipeline\nav.html:102 -#: .\recruitment\templates\pipeline\pipeline_empty.html:11 +#: .\recruitment\templates\pipeline\pipeline_empty.html:8 msgid "Recruitments" msgstr "" @@ -25873,7 +26993,7 @@ msgstr "" msgid "Add to Sill Zone" msgstr "Update" -#: .\recruitment\templates\pipeline\pipeline_empty.html:16 +#: .\recruitment\templates\pipeline\pipeline_empty.html:15 msgid "Switch to Ongoing Recruitments" msgstr "" @@ -25881,12 +27001,12 @@ msgstr "" msgid "Switch to Closed Recruitments" msgstr "" -#: .\recruitment\templates\pipeline\pipeline_empty.html:74 +#: .\recruitment\templates\pipeline\pipeline_empty.html:66 msgid "At present, there is no closed recruitment." msgstr "" -#: .\recruitment\templates\pipeline\pipeline_empty.html:76 -#: .\recruitment\templates\recruitment\recruitment_empty.html:32 +#: .\recruitment\templates\pipeline\pipeline_empty.html:68 +#: .\recruitment\templates\recruitment\recruitment_empty.html:30 msgid "At present, there is no ongoing recruitment." msgstr "" @@ -25912,26 +27032,26 @@ msgstr "" msgid " - Open Recruitments" msgstr "Recruitment" -#: .\recruitment\templates\recruitment\open_recruitments.html:43 +#: .\recruitment\templates\recruitment\open_recruitments.html:52 msgid "Open Job Listings" msgstr "" -#: .\recruitment\templates\recruitment\open_recruitments.html:46 +#: .\recruitment\templates\recruitment\open_recruitments.html:55 msgid "" "We're hiring! Join our team and be part of a vibrant workplace where your " "talents make a difference. Here are the open Recruitments...." msgstr "" -#: .\recruitment\templates\recruitment\open_recruitments.html:63 +#: .\recruitment\templates\recruitment\open_recruitments.html:72 #: .\recruitment\templates\recruitment\recruitment_details.html:13 msgid "Apply Now" msgstr "" -#: .\recruitment\templates\recruitment\open_recruitments.html:78 +#: .\recruitment\templates\recruitment\open_recruitments.html:87 msgid "Capacity" msgstr "" -#: .\recruitment\templates\recruitment\open_recruitments.html:84 +#: .\recruitment\templates\recruitment\open_recruitments.html:93 msgid "Total vacancies" msgstr "" @@ -25939,19 +27059,19 @@ msgstr "" msgid "Total Hires" msgstr "" -#: .\recruitment\templates\recruitment\recruitment_component.html:151 +#: .\recruitment\templates\recruitment\recruitment_component.html:160 msgid "Jobs" msgstr "" -#: .\recruitment\templates\recruitment\recruitment_component.html:175 +#: .\recruitment\templates\recruitment\recruitment_component.html:184 msgid "Share Link" msgstr "" -#: .\recruitment\templates\recruitment\recruitment_component.html:193 +#: .\recruitment\templates\recruitment\recruitment_component.html:202 msgid "Are you sure to delete this recruitment?" msgstr "" -#: .\recruitment\templates\recruitment\recruitment_component.html:289 +#: .\recruitment\templates\recruitment\recruitment_component.html:298 #: .\recruitment\templates\recruitment\recruitment_form.html:56 #, fuzzy #| msgid "recruitment" @@ -25984,14 +27104,19 @@ msgstr "" #: .\recruitment\templates\recruitment\recruitment_update_form.html:131 #: .\recruitment\templates\settings\skills\skills_form.html:5 #: .\recruitment\templates\settings\skills\skills_view.html:6 -#: .\templates\settings.html:232 +#: .\templates\settings.html:252 #, fuzzy #| msgid "create-allowance" msgid "Skills" msgstr "Creation" +#: .\recruitment\templates\recruitment\recruitment_form.html:153 +#: .\recruitment\templates\recruitment\recruitment_update_form.html:138 +msgid "Post on LinkedIn" +msgstr "" + #: .\recruitment\templates\recruitment\settings\settings.html:6 -#: .\templates\settings.html:213 +#: .\templates\settings.html:233 msgid "Candidate Self Tracking" msgstr "" @@ -26037,7 +27162,7 @@ msgstr "" msgid "There are no skills added at this moment." msgstr "Shift Requests" -#: .\recruitment\templates\skill_zone\empty_skill_zone.html:11 +#: .\recruitment\templates\skill_zone\empty_skill_zone.html:12 msgid "There are currently no skill zone to consider." msgstr "" @@ -26090,9 +27215,11 @@ msgstr "" msgid "View Stages" msgstr "" -#: .\recruitment\templates\stage\stage_form.html:4 -msgid "Add Stage" -msgstr "" +#: .\recruitment\templates\stage\stage_empty.html:28 +#, fuzzy +#| msgid "candidates-view" +msgid "No recruitment stages are currently available." +msgstr "Candidates" #: .\recruitment\templates\stage\stage_form.html:32 #: .\recruitment\templates\stage\stage_update_form.html:39 @@ -26121,15 +27248,15 @@ msgstr "" msgid "Add more options.." msgstr "Update" -#: .\recruitment\templates\survey\survey_card.html:67 +#: .\recruitment\templates\survey\survey_card.html:55 msgid "Are you sure want to delete?" msgstr "" -#: .\recruitment\templates\survey\survey_card.html:151 +#: .\recruitment\templates\survey\survey_card.html:118 msgid "No questions have been established yet." msgstr "" -#: .\recruitment\templates\survey\survey_empty_view.html:28 +#: .\recruitment\templates\survey\survey_empty_view.html:22 #: .\recruitment\templates\survey\view_question_templates.html:20 msgid "Create Survey Template" msgstr "" @@ -26139,24 +27266,18 @@ msgstr "" msgid "Questions" msgstr "" -#: .\recruitment\templates\survey\template_accordion.html:27 -#, fuzzy -#| msgid "request-view" -msgid "Preview" -msgstr "Leave Requests" - -#: .\recruitment\templates\survey\template_accordion.html:31 +#: .\recruitment\templates\survey\template_accordion.html:39 #: .\recruitment\templates\survey\templates.html:38 #, fuzzy #| msgid "update-deduction" msgid "Add Questions" msgstr "Update" -#: .\recruitment\templates\survey\template_accordion.html:41 +#: .\recruitment\templates\survey\template_accordion.html:55 msgid "Do you want to delete this template" msgstr "" -#: .\recruitment\templates\survey\template_accordion.html:252 +#: .\recruitment\templates\survey\template_accordion.html:227 msgid "No template groups have been established yet." msgstr "" @@ -26213,19 +27334,19 @@ msgid "Mandatory Question" msgstr "" #: .\recruitment\views.py:130 .\recruitment\views.py:340 -#: .\recruitment\views\views.py:255 +#: .\recruitment\views\views.py:264 msgid "Recruitment added." msgstr "" -#: .\recruitment\views.py:172 .\recruitment\views\actions.py:373 +#: .\recruitment\views.py:172 .\recruitment\views\actions.py:382 msgid "Recruitment manager removed successfully." msgstr "" -#: .\recruitment\views.py:253 .\recruitment\views\views.py:347 +#: .\recruitment\views.py:253 .\recruitment\views\views.py:370 msgid "Recruitment Updated." msgstr "" -#: .\recruitment\views.py:310 .\recruitment\views\actions.py:66 +#: .\recruitment\views.py:310 .\recruitment\views\actions.py:71 msgid "Recruitment deleted successfully." msgstr "" @@ -26234,12 +27355,12 @@ msgid "You cannot delete this recruitment" msgstr "" #: .\recruitment\views.py:386 .\recruitment\views.py:949 -#: .\recruitment\views\views.py:1318 +#: .\recruitment\views\views.py:1345 msgid "Candidate added." msgstr "" #: .\recruitment\views.py:396 .\recruitment\views.py:761 -#: .\recruitment\views\views.py:1155 +#: .\recruitment\views\views.py:1182 msgid "Stage added." msgstr "" @@ -26248,15 +27369,15 @@ msgid "You dont have access" msgstr "" #: .\recruitment\views.py:458 .\recruitment\views.py:871 -#: .\recruitment\views\views.py:737 .\recruitment\views\views.py:1246 +#: .\recruitment\views\views.py:764 .\recruitment\views\views.py:1273 msgid "Stage updated." msgstr "" -#: .\recruitment\views.py:496 .\recruitment\views\views.py:776 +#: .\recruitment\views.py:496 .\recruitment\views\views.py:803 msgid "Recruitment updated." msgstr "" -#: .\recruitment\views.py:539 .\recruitment\views\actions.py:100 +#: .\recruitment\views.py:539 .\recruitment\views\actions.py:109 msgid "Recruitment deleted." msgstr "" @@ -26272,29 +27393,31 @@ msgstr "Recruitment" msgid "Sequence updated." msgstr "Update" -#: .\recruitment\views.py:601 .\recruitment\views\views.py:890 +#: .\recruitment\views.py:601 .\recruitment\views\views.py:678 +#: .\recruitment\views\views.py:696 .\recruitment\views\views.py:709 +#: .\recruitment\views\views.py:917 msgid "Candidate stage updated" msgstr "" -#: .\recruitment\views.py:604 .\recruitment\views\views.py:893 +#: .\recruitment\views.py:604 .\recruitment\views\views.py:920 msgid "Something went wrong, Try agian." msgstr "" #: .\recruitment\views.py:692 .\recruitment\views.py:714 -#: .\recruitment\views\actions.py:125 +#: .\recruitment\views\actions.py:134 msgid "Note deleted" msgstr "" #: .\recruitment\views.py:695 .\recruitment\views.py:717 -#: .\recruitment\views\actions.py:131 +#: .\recruitment\views\actions.py:140 msgid "You cannot delete this note." msgstr "" -#: .\recruitment\views.py:844 .\recruitment\views\actions.py:333 +#: .\recruitment\views.py:844 .\recruitment\views\actions.py:342 msgid "Stage manager removed successfully." msgstr "" -#: .\recruitment\views.py:919 .\recruitment\views\actions.py:183 +#: .\recruitment\views.py:919 .\recruitment\views\actions.py:192 msgid "Stage deleted successfully." msgstr "" @@ -26302,11 +27425,11 @@ msgstr "" msgid "You cannot delete this stage" msgstr "" -#: .\recruitment\views.py:1120 .\recruitment\views\views.py:1651 +#: .\recruitment\views.py:1120 .\recruitment\views\views.py:1678 msgid "Candidate Updated Successfully." msgstr "" -#: .\recruitment\views.py:1136 .\recruitment\views\actions.py:218 +#: .\recruitment\views.py:1136 .\recruitment\views\actions.py:227 msgid "Candidate deleted successfully." msgstr "" @@ -26324,65 +27447,69 @@ msgstr "" msgid "You cannot delete %(candidate_obj)s" msgstr "" -#: .\recruitment\views.py:1235 .\recruitment\views\surveys.py:362 +#: .\recruitment\views.py:1235 .\recruitment\views\surveys.py:382 msgid "Application saved." msgstr "" -#: .\recruitment\views\actions.py:44 .\recruitment\views\actions.py:102 +#: .\recruitment\views\actions.py:49 .\recruitment\views\actions.py:111 msgid "Recruitment not found." msgstr "" -#: .\recruitment\views\actions.py:75 +#: .\recruitment\views\actions.py:73 +msgid "Couldn’t delete the recruitment post from LinkedIn." +msgstr "" + +#: .\recruitment\views\actions.py:84 msgid "You cannot delete this recruitment as it is using in {}" msgstr "" -#: .\recruitment\views\actions.py:82 .\recruitment\views\views.py:720 -#: .\recruitment\views\views.py:818 +#: .\recruitment\views\actions.py:91 .\recruitment\views\views.py:747 +#: .\recruitment\views\views.py:845 #, fuzzy #| msgid "recruitment" msgid "Recruitment Does not exists.." msgstr "Recruitment" -#: .\recruitment\views\actions.py:110 +#: .\recruitment\views\actions.py:119 msgid "Recruitment already in use for {}." msgstr "" -#: .\recruitment\views\actions.py:147 +#: .\recruitment\views\actions.py:156 msgid "Note deleted." msgstr "" -#: .\recruitment\views\actions.py:192 +#: .\recruitment\views\actions.py:201 msgid "You cannot delete this stage while it's in use for {}" msgstr "" -#: .\recruitment\views\actions.py:198 +#: .\recruitment\views\actions.py:207 msgid "Stage Does not exists.." msgstr "" -#: .\recruitment\views\actions.py:229 +#: .\recruitment\views\actions.py:238 msgid "You cannot delete this candidate because the candidate is in {}." msgstr "" -#: .\recruitment\views\actions.py:235 .\recruitment\views\actions.py:278 +#: .\recruitment\views\actions.py:244 .\recruitment\views\actions.py:287 msgid "Candidate Does not exists." msgstr "" -#: .\recruitment\views\actions.py:253 +#: .\recruitment\views\actions.py:262 #, python-format msgid "%(candidate)s deleted." msgstr "" -#: .\recruitment\views\actions.py:260 +#: .\recruitment\views\actions.py:269 #, python-format msgid "You cannot delete %(candidate)s" msgstr "" -#: .\recruitment\views\actions.py:276 +#: .\recruitment\views\actions.py:285 #, python-format msgid "Candidate is %(message)s" msgstr "" -#: .\recruitment\views\actions.py:302 +#: .\recruitment\views\actions.py:311 #, python-brace-format msgid "{candidate} is {message}" msgstr "" @@ -26396,104 +27523,252 @@ msgstr "" msgid "Openings" msgstr "" -#: .\recruitment\views\surveys.py:159 +#: .\recruitment\views\linkedin.py:33 +#, fuzzy +#| msgid "shift-request-view" +msgid "LinkedIn Account activated successfully." +msgstr "Shift Requests" + +#: .\recruitment\views\linkedin.py:36 +#, fuzzy +#| msgid "shift-request-view" +msgid "LinkedIn Account deactivated successfully." +msgstr "Shift Requests" + +#: .\recruitment\views\linkedin.py:81 +#, fuzzy +#| msgid "shift-request-view" +msgid "LinkedIn connection success." +msgstr "Shift Requests" + +#: .\recruitment\views\linkedin.py:83 +msgid "LinkedIn connection failed." +msgstr "" + +#: .\recruitment\views\surveys.py:167 msgid "File size exceeds the limit. Maximum size is 5 MB" msgstr "" -#: .\recruitment\views\surveys.py:174 +#: .\recruitment\views\surveys.py:185 msgid "Your answers are submitted." msgstr "" -#: .\recruitment\views\surveys.py:273 +#: .\recruitment\views\surveys.py:284 msgid "New survey question updated." msgstr "" -#: .\recruitment\views\surveys.py:299 +#: .\recruitment\views\surveys.py:310 msgid "New survey question created." msgstr "" -#: .\recruitment\views\surveys.py:317 +#: .\recruitment\views\surveys.py:328 msgid "Question was deleted successfully" msgstr "" -#: .\recruitment\views\surveys.py:321 +#: .\recruitment\views\surveys.py:332 msgid "You cannot delete this question" msgstr "" -#: .\recruitment\views\views.py:551 .\recruitment\views\views.py:649 -#: .\recruitment\views\views.py:665 .\recruitment\views\views.py:2968 +#: .\recruitment\views\surveys.py:347 +#, fuzzy +#| msgid "department-update" +msgid "Recruitment ID is missing" +msgstr "Update" + +#: .\recruitment\views\surveys.py:353 +#, fuzzy +#| msgid "employee" +msgid "Recruitment not found" +msgstr "Employee" + +#: .\recruitment\views\surveys.py:356 +#, fuzzy +#| msgid "recruitment" +msgid "Invalid Recruitment ID" +msgstr "Recruitment" + +#: .\recruitment\views\views.py:338 +#, fuzzy +#| msgid "recruitment" +msgid "The recruitment entry you are trying to edit does not exist." +msgstr "Recruitment" + +#: .\recruitment\views\views.py:574 .\recruitment\views\views.py:676 +#: .\recruitment\views\views.py:692 .\recruitment\views\views.py:3005 msgid "Vaccancy is filled" msgstr "" -#: .\recruitment\views\views.py:850 +#: .\recruitment\views\views.py:877 msgid "No change detected." msgstr "" -#: .\recruitment\views\views.py:1068 +#: .\recruitment\views\views.py:1095 msgid "Files uploaded successfully" msgstr "" -#: .\recruitment\views\views.py:1109 +#: .\recruitment\views\views.py:1136 #, fuzzy #| msgid "candidate-update" msgid "Candidate view status updated" msgstr "Update" -#: .\recruitment\views\views.py:1553 .\recruitment\views\views.py:1669 -#, fuzzy -#| msgid "attendance-view" -msgid "Candidate not found" -msgstr "Attendances" - -#: .\recruitment\views\views.py:1655 +#: .\recruitment\views\views.py:1682 msgid "Candidate Does not exists.." msgstr "" -#: .\recruitment\views\views.py:1681 +#: .\recruitment\views\views.py:1708 msgid "Employee instance already exist" msgstr "" -#: .\recruitment\views\views.py:2186 +#: .\recruitment\views\views.py:1908 +#, fuzzy +#| msgid "shift-request-view" +msgid "Interview deleted successfully." +msgstr "Shift Requests" + +#: .\recruitment\views\views.py:1910 +#, fuzzy +#| msgid "employee" +msgid "Scheduled Interview not found" +msgstr "Employee" + +#: .\recruitment\views\views.py:2219 msgid "Skill Zone created successfully." msgstr "" -#: .\recruitment\views\views.py:2208 +#: .\recruitment\views\views.py:2242 msgid "Skill Zone updated successfully." msgstr "" -#: .\recruitment\views\views.py:2234 .\recruitment\views\views.py:2436 +#: .\recruitment\views\views.py:2267 .\recruitment\views\views.py:2471 msgid "Skill zone deleted successfully.." msgstr "" -#: .\recruitment\views\views.py:2236 .\recruitment\views\views.py:2278 -#: .\recruitment\views\views.py:2438 +#: .\recruitment\views\views.py:2269 .\recruitment\views\views.py:2313 +#: .\recruitment\views\views.py:2473 msgid "Skill zone not found." msgstr "" -#: .\recruitment\views\views.py:2266 +#: .\recruitment\views\views.py:2301 msgid "Skill zone archived successfully.." msgstr "" -#: .\recruitment\views\views.py:2275 +#: .\recruitment\views\views.py:2310 msgid "Skill zone unarchived successfully.." msgstr "" -#: .\recruitment\views\views.py:2388 +#: .\recruitment\views\views.py:2423 msgid "Candidate added successfully." msgstr "" -#: .\recruitment\views\views.py:2415 +#: .\recruitment\views\views.py:2450 msgid "Candidate edited successfully." msgstr "" -#: .\recruitment\views\views.py:2490 +#: .\recruitment\views\views.py:2525 msgid "Candidate archived successfully.." msgstr "" -#: .\recruitment\views\views.py:2494 +#: .\recruitment\views\views.py:2529 msgid "Candidate unarchived successfully.." msgstr "" +#: .\report\templates\report\asset_report.html:14 +#, fuzzy +#| msgid "employee" +msgid "Asset Reports" +msgstr "Employee" + +#: .\report\templates\report\asset_report.html:109 +#: .\report\templates\report\attendance_report.html:168 +#: .\report\templates\report\employee_report.html:133 +#: .\report\templates\report\leave_report.html:252 +#: .\report\templates\report\payroll_report.html:235 +#: .\report\templates\report\pms_report.html:187 +#: .\report\templates\report\recruitment_report.html:237 +msgid "Export Table" +msgstr "" + +#: .\report\templates\report\attendance_report.html:12 +#, fuzzy +#| msgid "attendance" +msgid "Attendance Reports" +msgstr "Attendance" + +#: .\report\templates\report\employee_report.html:11 +#, fuzzy +#| msgid "employee" +msgid "Employee Reports" +msgstr "Employee" + +#: .\report\templates\report\leave_report.html:12 +#, fuzzy +#| msgid "user-request-view" +msgid "Leave Reports" +msgstr "My Leave Requests" + +#: .\report\templates\report\leave_report.html:130 +#, fuzzy +#| msgid "assign-view" +msgid "Available Leave" +msgstr "Assigned Leaves" + +#: .\report\templates\report\payroll_report.html:11 +#, fuzzy +#| msgid "employee" +msgid "Payroll Reports" +msgstr "Employee" + +#: .\report\templates\report\payroll_report.html:158 +#, fuzzy +#| msgid "view-allowance" +msgid "Allowance Greater than" +msgstr "Allowances" + +#: .\report\templates\report\payroll_report.html:164 +#, fuzzy +#| msgid "view-allowance" +msgid "Allowance Less than" +msgstr "Allowances" + +#: .\report\templates\report\payroll_report.html:172 +msgid "Deduction Greater than" +msgstr "" + +#: .\report\templates\report\payroll_report.html:178 +#, fuzzy +#| msgid "update-deduction" +msgid "Deduction Less than" +msgstr "Update" + +#: .\report\templates\report\pms_report.html:11 +msgid "Performance Reports" +msgstr "" + +#: .\report\templates\report\pms_report.html:69 +#, fuzzy +#| msgid "employee" +msgid "Employee Objective" +msgstr "Employee" + +#: .\report\templates\report\recruitment_report.html:11 +#, fuzzy +#| msgid "attendance-view" +msgid "Candidate Reports" +msgstr "Attendances" + +#: .\report\templates\report\recruitment_report.html:205 +#, fuzzy +#| msgid "department-update" +msgid "Stage Manager" +msgstr "Update" + +#: .\report\templates\report\recruitment_report.html:243 +#, fuzzy +#| msgid "employee" +msgid "Choose Report" +msgstr "Employee" + #: .\templates\animation.html:201 msgid "Trying to connect..." msgstr "" @@ -26510,7 +27785,7 @@ msgstr "Employee" msgid "Comments." msgstr "Recruitment" -#: .\templates\compensatory_settings.html:9 .\templates\settings.html:450 +#: .\templates\compensatory_settings.html:9 .\templates\settings.html:494 msgid "Compensatory Leave" msgstr "" @@ -26518,31 +27793,25 @@ msgstr "" msgid "By enabling this compensatory leave feature will avilable on Leave." msgstr "" -#: .\templates\dashboard.html:146 +#: .\templates\dashboard.html:135 msgid "New Joining Today" msgstr "" -#: .\templates\dashboard.html:163 +#: .\templates\dashboard.html:152 msgid "New Joining This Week" msgstr "" -#: .\templates\dashboard.html:180 +#: .\templates\dashboard.html:169 msgid "Total Strength" msgstr "" -#: .\templates\dashboard.html:204 -#, fuzzy -#| msgid "recruitment" -msgid "Announcements" -msgstr "Recruitment" - -#: .\templates\dashboard.html:216 +#: .\templates\dashboard.html:206 #, fuzzy #| msgid "recruitment" msgid "Create Announcement" msgstr "Recruitment" -#: .\templates\dashboard.html:244 +#: .\templates\dashboard.html:236 msgid "Employee Work Information" msgstr "" @@ -26658,14 +27927,18 @@ msgstr "" msgid "Download Error File" msgstr "" -#: .\templates\index.html:120 +#: .\templates\index.html:117 msgid "All Notifications" msgstr "" -#: .\templates\index.html:122 +#: .\templates\index.html:119 msgid "Clear all" msgstr "" +#: .\templates\initialize_database\horilla_company.html:106 +msgid "Hq" +msgstr "" + #: .\templates\initialize_database\horilla_job_position_form.html:88 msgid "Go To Home" msgstr "" @@ -26794,71 +28067,79 @@ msgstr "" msgid "Date & Time Format" msgstr "" -#: .\templates\settings.html:130 +#: .\templates\settings.html:128 +#, fuzzy +#| msgid "type-update" +msgid "Outlook Mail" +msgstr "Update" + +#: .\templates\settings.html:138 msgid "Gdrive Backup" msgstr "" -#: .\templates\settings.html:145 +#: .\templates\settings.html:165 msgid "Base" msgstr "" -#: .\templates\settings.html:222 +#: .\templates\settings.html:242 msgid "Candidate Reject Reason" msgstr "" -#: .\templates\settings.html:320 +#: .\templates\settings.html:263 +msgid "Linkedin Integration" +msgstr "" + +#: .\templates\settings.html:352 msgid "Disciplinary Action Type" msgstr "" -#: .\templates\settings.html:357 +#: .\templates\settings.html:389 msgid "Track Late Come & Early Out" msgstr "Track Late Come & Early Out" -#: .\templates\settings.html:367 +#: .\templates\settings.html:399 msgid "Attendance Break Point" msgstr "" -#: .\templates\settings.html:377 +#: .\templates\settings.html:409 msgid "Check In/Check Out" msgstr "" -#: .\templates\settings.html:437 +#: .\templates\settings.html:453 +msgid "Geo & Face Config" +msgstr "" + +#: .\templates\settings.html:481 #, fuzzy #| msgid "update-deduction" msgid "Restrictions" msgstr "Update" -#: .\templates\settings.html:478 +#: .\templates\settings.html:522 msgid "Payslip Auto Generation" msgstr "" -#: .\templates\settings.html:521 +#: .\templates\settings.html:565 msgid "Help Desk" msgstr "" -#: .\templates\settings.html:532 -#, fuzzy -#| msgid "department-update" -msgid "Department Managers" -msgstr "Update" - -#: .\templates\sidebar.html:96 +#: .\templates\sidebar.html:111 msgid "My Company" msgstr "" -#: .\templates\sidebar.html:222 +#: .\templates\sidebar.html:237 msgid "Configuration" msgstr "" -#: .\templates\sidebar.html:257 +#: .\templates\sidebar.html:272 msgid "Mail Automations" msgstr "" -#: .\templates\sidebar.html:460 +#: .\templates\sidebar.html:475 msgid "Invalid File" msgstr "" -#: .\templates\sidebar.html:461 +#: .\templates\sidebar.html:476 msgid "Please upload a valid XLSX file." msgstr "" @@ -26866,6 +28147,146 @@ msgstr "" msgid "Progress" msgstr "" +#, fuzzy +#~| msgid "recruitment" +#~ msgid "No Announcements to show." +#~ msgstr "Recruitment" + +#, fuzzy +#~| msgid "type-update" +#~ msgid "Duplicate Template" +#~ msgstr "Update" + +#, fuzzy +#~| msgid "employee" +#~ msgid "Biometric user not found." +#~ msgstr "Employee" + +#, fuzzy +#~| msgid "recruitment" +#~ msgid "Create Batch Number" +#~ msgstr "Recruitment" + +#, fuzzy +#~| msgid "attendance" +#~ msgid "Update batch attendance" +#~ msgstr "Attendance" + +#, fuzzy +#~| msgid "recruitment" +#~ msgid "Create Announcements." +#~ msgstr "Recruitment" + +#, fuzzy +#~| msgid "employee" +#~ msgid "Create Employee Type" +#~ msgstr "Employee" + +#, fuzzy +#~| msgid "feedback-creation" +#~ msgid "Update Job Position" +#~ msgstr "Creation" + +#, fuzzy +#~| msgid "department" +#~ msgid "Department:" +#~ msgstr "Department" + +#, fuzzy +#~| msgid "job-position-view" +#~ msgid "Job Position:" +#~ msgstr "Job Position" + +#, fuzzy +#~| msgid "create-allowance" +#~ msgid "Create Job Role" +#~ msgstr "Creation" + +#, fuzzy +#~| msgid "rotating-shift-assign" +#~ msgid "Update Rotating Shift" +#~ msgstr "Rotating Shift Assigns" + +#, fuzzy +#~| msgid "rotating-shift-assign" +#~ msgid "Create Rotating Shift" +#~ msgstr "Rotating Shift Assigns" + +#, fuzzy +#~| msgid "rotating-work-type-assign" +#~ msgid "Create Rotating Work Type" +#~ msgstr "Rotating Work Type Assigns" + +#, fuzzy +#~| msgid "employee-shift-schedule-view" +#~ msgid "Update Employee Shift Schedule" +#~ msgstr "Employee Shift Schedule" + +#, fuzzy +#~| msgid "employee-shift-schedule-view" +#~ msgid "Create Employee Shift Schedule" +#~ msgstr "Employee Shift Schedule" + +#, fuzzy +#~| msgid "employee" +#~ msgid "Update Employee Shift" +#~ msgstr "Employee" + +#, fuzzy +#~| msgid "create-allowance" +#~ msgid "Create Work Type" +#~ msgstr "Creation" + +#, fuzzy +#~| msgid "user-request-view" +#~ msgid "Header Request ID" +#~ msgstr "My Leave Requests" + +#, fuzzy +#~| msgid "attendance" +#~ msgid "Add Biometric Device" +#~ msgstr "Attendance" + +#, fuzzy +#~| msgid "attendance" +#~ msgid "Edit Biometric Devices" +#~ msgstr "Attendance" + +#, fuzzy +#~| msgid "department-update" +#~ msgid "Department managers" +#~ msgstr "Update" + +#, fuzzy +#~| msgid "department-update" +#~ msgid "Department Manager Update" +#~ msgstr "Update" + +#, fuzzy +#~| msgid "department-update" +#~ msgid "Update Department Manager" +#~ msgstr "Update" + +#, fuzzy +#~| msgid "department-update" +#~ msgid "Create Department Manager" +#~ msgstr "Update" + +#, fuzzy +#~| msgid "employee" +#~ msgid "View all" +#~ msgstr "Employee" + +#, fuzzy, python-format +#~| msgid "onboarding" +#~ msgid "%(task)s deleted." +#~ msgstr "Onboarding" + +#, fuzzy +#~| msgid "department-update" +#~ msgid "Update Department" +#~ msgstr "Update" + #, fuzzy #~| msgid "employee" #~ msgid "Employee Tag" diff --git a/horilla/models.py b/horilla/models.py index e840b8157..82fadc302 100644 --- a/horilla/models.py +++ b/horilla/models.py @@ -8,9 +8,12 @@ the application, such as tracking creation and modification timestamps and user information, audit logging, and active/inactive status management. """ +import re + from auditlog.models import AuditlogHistoryField from auditlog.registry import auditlog from django.contrib.auth.models import User +from django.core.exceptions import ValidationError from django.db import models from django.db.models.fields.files import FieldFile from django.urls import reverse @@ -34,6 +37,14 @@ def url(self: FieldFile): setattr(FieldFile, "url", url) +def has_xss(value): + """Basic check for common XSS patterns.""" + if not isinstance(value, str): + return False + xss_pattern = re.compile(r"<.*?script.*?>|javascript:|on\w+=", re.IGNORECASE) + return bool(xss_pattern.search(value)) + + class HorillaModel(models.Model): """ An abstract base model that includes common fields and functionalities @@ -80,6 +91,8 @@ class HorillaModel(models.Model): Override the save method to automatically set the created_by and modified_by fields based on the current request user. """ + self.full_clean() + request = getattr(_thread_locals, "request", None) if request: @@ -99,6 +112,26 @@ class HorillaModel(models.Model): super(HorillaModel, self).save(*args, **kwargs) + def clean_fields(self, exclude=None): + errors = {} + + # Get the list of fields to exclude from validation + total_exclude = set(exclude or []).union(getattr(self, "xss_exempt_fields", [])) + + for field in self._meta.get_fields(): + if ( + isinstance(field, (models.CharField, models.TextField)) + and field.name not in total_exclude + ): + value = getattr(self, field.name, None) + if value and has_xss(value): + errors[field.name] = ValidationError( + "Potential XSS content detected." + ) + + if errors: + raise ValidationError(errors) + def get_verbose_name(self): return self._meta.verbose_name diff --git a/horilla/urls.py b/horilla/urls.py index 243430a5f..d9130f2fe 100755 --- a/horilla/urls.py +++ b/horilla/urls.py @@ -44,5 +44,5 @@ urlpatterns = [ path("health/", health_check), ] -if settings.DEBUG: - urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) +# if settings.DEBUG: +# urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/horilla_api/api_views/attendance/views.py b/horilla_api/api_views/attendance/views.py index de3460e92..e25a46381 100644 --- a/horilla_api/api_views/attendance/views.py +++ b/horilla_api/api_views/attendance/views.py @@ -65,6 +65,7 @@ class ClockInAPIView(APIView): permission_classes = [IsAuthenticated] def post(self, request): + print("========", request.user.employee_get.check_online()) if not request.user.employee_get.check_online(): try: if request.user.employee_get.get_company().geo_fencing.start: @@ -157,6 +158,7 @@ class ClockOutAPIView(APIView): except: pass if request.user.employee_get.check_online(): + print("----------------") current_date = date.today() current_time = datetime.now().time() current_datetime = datetime.now() @@ -174,7 +176,7 @@ class ClockOutAPIView(APIView): except Exception as error: logger.error("Got an error in clock_out", error) - return Response({"message": "Clocked-Out"}, status=200) + # return Response({"message": "Clocked-Out"}, status=200) return Response({"message": "Already clocked-out"}, status=400) diff --git a/horilla_automations/methods/methods.py b/horilla_automations/methods/methods.py index 90558ca2c..a2812ae3e 100644 --- a/horilla_automations/methods/methods.py +++ b/horilla_automations/methods/methods.py @@ -42,10 +42,23 @@ def generate_choices(model_path): module = __import__(module_name, fromlist=[class_name]) model_class: Employee = getattr(module, class_name) - fk_relation, m2m_relation = get_forward_relation_paths_separated( + + # Get relations to Employee + employee_fk_paths, employee_m2m_paths = get_forward_relation_paths_separated( model_class, Employee ) - all_fields = fk_relation + m2m_relation + + # Get relations to Candidate + candidate_fk_paths, candidate_m2m_paths = get_forward_relation_paths_separated( + model_class, Candidate + ) + + all_fields = ( + employee_fk_paths + + employee_m2m_paths + + candidate_fk_paths + + candidate_m2m_paths + ) all_mail_to_field = [] mail_details_choice = [] @@ -80,6 +93,7 @@ def generate_choices(model_path): f"{field_tuple[1].verbose_name.capitalize().replace(' id','')} / Reporting Manager (Template context) ", ) ) + if model_class == Employee: # reporting manager mail to all_mail_to_field.append( diff --git a/horilla_automations/models.py b/horilla_automations/models.py index 015dcfed8..967aaf579 100644 --- a/horilla_automations/models.py +++ b/horilla_automations/models.py @@ -75,6 +75,12 @@ class MailAutomation(HorillaModel): condition = models.TextField() + xss_exempt_fields = [ + "condition_html", + "condition", + "condition_querystring", + ] + def save(self, *args, **kwargs): if not self.pk: self.method_title = self.title.replace(" ", "_").lower() diff --git a/horilla_automations/signals.py b/horilla_automations/signals.py index d0f98953c..cf885eb07 100644 --- a/horilla_automations/signals.py +++ b/horilla_automations/signals.py @@ -362,153 +362,155 @@ def send_mail(request, automation, instance): mail_template = automation.mail_template employees = [] raw_emails = [] - - if instance.pk: - # refreshing instance due to m2m fields are not loading here some times - time.sleep(0.1) - instance = instance._meta.model.objects.get(pk=instance.pk) - - pk_or_text = getattribute(instance, automation.mail_details) - model_class = get_model_class(automation.model) - model_class = get_related_field_model(model_class, automation.mail_details) - context_instance = None - if isinstance(pk_or_text, int): - context_instance = model_class.objects.filter(pk=pk_or_text).first() - - for mapping in eval_validate(automation.mail_to): - result = getattribute(instance, mapping) - if isinstance(result, list): - raw_emails.extend(result) - else: - raw_emails.append(result) - - raw_emails = list(filter(None, set(raw_emails))) - - employees = Employee.objects.filter( - models.Q(email__in=raw_emails) - | models.Q(employee_work_info__email__in=raw_emails) - ).select_related("employee_work_info") - - employees = list(employees) try: - also_sent_to = automation.also_sent_to.select_related( - "employee_work_info" - ).all() - if also_sent_to.exists(): - employees.extend(emp for emp in also_sent_to if emp) - except Exception as e: - logger.error(e) + if instance.pk: + # refreshing instance due to m2m fields are not loading here some times + time.sleep(0.1) + instance = instance._meta.model.objects.get(pk=instance.pk) - emails = [str(emp.get_mail()) for emp in employees if emp and emp.get_mail()] - user_ids = [emp.employee_user_id for emp in employees] + pk_or_text = getattribute(instance, automation.mail_details) + model_class = get_model_class(automation.model) + model_class = get_related_field_model(model_class, automation.mail_details) + context_instance = None + if isinstance(pk_or_text, int): + context_instance = model_class.objects.filter(pk=pk_or_text).first() - to = emails[:1] - cc = emails[1:] + for mapping in eval_validate(automation.mail_to): + result = getattribute(instance, mapping) + if isinstance(result, list): + raw_emails.extend(result) + else: + raw_emails.append(result) - email_backend = ConfiguredEmailBackend() - display_email_name = email_backend.dynamic_from_email_with_display_name - if request: + raw_emails = list(filter(None, set(raw_emails))) + + employees = Employee.objects.filter( + models.Q(email__in=raw_emails) + | models.Q(employee_work_info__email__in=raw_emails) + ).select_related("employee_work_info") + + employees = list(employees) try: - display_email_name = f"{request.user.employee_get.get_full_name()} <{request.user.employee_get.email}>" - from_email = display_email_name - reply_to = [display_email_name] - except: - logger.error(Exception) + also_sent_to = automation.also_sent_to.select_related( + "employee_work_info" + ).all() + if also_sent_to.exists(): + employees.extend(emp for emp in also_sent_to if emp) + except Exception as e: + logger.error(e) - if pk_or_text and request and raw_emails: - attachments = [] - try: - sender = request.user.employee_get - except: - sender = None - if context_instance: - if template_attachments := automation.template_attachments.all(): - for template_attachment in template_attachments: - template_bdy = template.Template(template_attachment.body) - context = template.Context( - { - "instance": context_instance, - "self": sender, - "model_instance": instance, - "request": request, - } - ) - render_bdy = template_bdy.render(context) - attachments.append( - ( - "Document", - generate_pdf( - render_bdy, {}, path=False, title="Document" - ).content, - "application/pdf", - ) - ) + emails = [str(emp.get_mail()) for emp in employees if emp and emp.get_mail()] + user_ids = [emp.employee_user_id for emp in employees] - template_bdy = template.Template(mail_template.body) - else: - template_bdy = template.Template(pk_or_text) - context = template.Context( - { - "instance": context_instance, - "self": sender, - "model_instance": instance, - "request": request, - } - ) - render_bdy = template_bdy.render(context) + to = emails[:1] + cc = emails[1:] - title_template = template.Template(automation.title) - title_context = template.Context( - {"instance": instance, "self": sender, "request": request} - ) - render_title = title_template.render(title_context) - soup = BeautifulSoup(render_bdy, "html.parser") - plain_text = soup.get_text(separator="\n") - - email = EmailMessage( - subject=render_title, - body=render_bdy, - to=to, - cc=cc, - from_email=from_email, - reply_to=reply_to, - ) - email.content_subtype = "html" - - email.attachments = attachments - - def _send_mail(email): + email_backend = ConfiguredEmailBackend() + display_email_name = email_backend.dynamic_from_email_with_display_name + if request: try: - email.send() - logger.info( - f"Automation {automation.title} is triggered by {request.user.employee_get}" + display_email_name = f"{request.user.employee_get.get_full_name()} <{request.user.employee_get.email}>" + from_email = display_email_name + reply_to = [display_email_name] + except: + logger.error(Exception) + + if pk_or_text and request and raw_emails: + attachments = [] + try: + sender = request.user.employee_get + except: + sender = None + if context_instance: + if template_attachments := automation.template_attachments.all(): + for template_attachment in template_attachments: + template_bdy = template.Template(template_attachment.body) + context = template.Context( + { + "instance": context_instance, + "self": sender, + "model_instance": instance, + "request": request, + } + ) + render_bdy = template_bdy.render(context) + attachments.append( + ( + "Document", + generate_pdf( + render_bdy, {}, path=False, title="Document" + ).content, + "application/pdf", + ) + ) + + template_bdy = template.Template(mail_template.body) + else: + template_bdy = template.Template(pk_or_text) + context = template.Context( + { + "instance": context_instance, + "self": sender, + "model_instance": instance, + "request": request, + } + ) + render_bdy = template_bdy.render(context) + + title_template = template.Template(automation.title) + title_context = template.Context( + {"instance": instance, "self": sender, "request": request} + ) + render_title = title_template.render(title_context) + soup = BeautifulSoup(render_bdy, "html.parser") + plain_text = soup.get_text(separator="\n") + + email = EmailMessage( + subject=render_title, + body=render_bdy, + to=to, + cc=cc, + from_email=from_email, + reply_to=reply_to, + ) + email.content_subtype = "html" + + email.attachments = attachments + + def _send_mail(email): + try: + email.send() + logger.info( + f"Automation {automation.title} is triggered by {request.user.employee_get}" + ) + except Exception as e: + logger.error(e) + + def _send_notification(text): + notify.send( + sender, + recipient=user_ids, + verb=f"{text}", + icon="person-remove", + redirect="", + ) + logger.info( + f"Automation {automation.title} is triggered by {request.user.employee_get}" ) - except Exception as e: - logger.error(e) - def _send_notification(text): - notify.send( - sender, - recipient=user_ids, - verb=f"{text}", - icon="person-remove", - redirect="", - ) + if automation.delivary_channel != "notification": + thread = threading.Thread( + target=lambda: _send_mail(email), + ) + thread.start() + + if automation.delivary_channel != "email": + thread = threading.Thread( + target=lambda: _send_notification(plain_text), + ) + thread.start() logger.info( - f"Automation {automation.title} is triggered by {request.user.employee_get}" + f"Automation Triggered | {automation.get_delivary_channel_display()} | {automation}" ) - - if automation.delivary_channel != "notification": - thread = threading.Thread( - target=lambda: _send_mail(email), - ) - thread.start() - - if automation.delivary_channel != "email": - thread = threading.Thread( - target=lambda: _send_notification(plain_text), - ) - thread.start() - logger.info( - f"Automation Triggered | {automation.get_delivary_channel_display()} | {automation}" - ) + except Exception as e: + logger.error(f"Error in Automation | {e}") diff --git a/horilla_automations/views/cbvs.py b/horilla_automations/views/cbvs.py index 4d2d1dbe1..c55ec2af1 100644 --- a/horilla_automations/views/cbvs.py +++ b/horilla_automations/views/cbvs.py @@ -11,9 +11,10 @@ from django.contrib import messages from django.core import serializers from django.http import HttpResponse from django.shortcuts import render -from django.urls import reverse_lazy +from django.urls import reverse, reverse_lazy from django.utils.decorators import method_decorator from django.utils.translation import gettext_lazy as _ +from django.utils.translation import gettext_lazy as _trans from django.views import View from base.models import HorillaMailTemplate @@ -26,7 +27,7 @@ from horilla_views.generic.cbv import views @method_decorator(login_required, name="dispatch") @method_decorator( - permission_required("horilla_automation.view_mailautomation"), name="dispatch" + permission_required("horilla_automations.view_mailautomation"), name="dispatch" ) class AutomationSectionView(views.HorillaSectionView): """ @@ -46,7 +47,7 @@ class AutomationSectionView(views.HorillaSectionView): @method_decorator(login_required, name="dispatch") @method_decorator( - permission_required("horilla_automation.view_mailautomation"), name="dispatch" + permission_required("horilla_automations.view_mailautomation"), name="dispatch" ) class AutomationNavView(views.HorillaNavView): """ @@ -56,7 +57,7 @@ class AutomationNavView(views.HorillaNavView): def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) self.actions = [] - if self.request.user.has_perm("horilla_automation.add_mailautomation"): + if self.request.user.has_perm("horilla_automations.add_mailautomation"): self.create_attrs = f""" hx-get="{reverse_lazy("create-automation")}" hx-target="#genericModalBody" @@ -77,7 +78,7 @@ class AutomationNavView(views.HorillaNavView): } ) - if self.request.user.has_perm("horilla_automation.add_mailautomation"): + if self.request.user.has_perm("horilla_automations.add_mailautomation"): self.actions.append( { "action": "Refresh Automations", @@ -96,7 +97,7 @@ class AutomationNavView(views.HorillaNavView): @method_decorator(login_required, name="dispatch") @method_decorator( - permission_required("horilla_automation.change_mailautomation"), name="dispatch" + permission_required("horilla_automations.change_mailautomation"), name="dispatch" ) class AutomationFormView(views.HorillaFormView): """ @@ -131,7 +132,7 @@ class AutomationFormView(views.HorillaFormView): @method_decorator(login_required, name="dispatch") @method_decorator( - permission_required("horilla_automation.view_mailautomation"), name="dispatch" + permission_required("horilla_automations.view_mailautomation"), name="dispatch" ) class AutomationListView(views.HorillaListView): """ @@ -185,7 +186,7 @@ class AutomationListView(views.HorillaListView): @method_decorator(login_required, name="dispatch") @method_decorator( - permission_required("horilla_automation.view_mailautomation"), name="dispatch" + permission_required("horilla_automations.view_mailautomation"), name="dispatch" ) class AutomationDetailedView(views.HorillaDetailedView): """ @@ -233,7 +234,7 @@ class AutomationDetailedView(views.HorillaDetailedView): @method_decorator(login_required, name="dispatch") @method_decorator( - permission_required("horilla_automation.add_mailautomation"), name="dispatch" + permission_required("horilla_automations.add_mailautomation"), name="dispatch" ) class LoadAutomationsView(View): template_name = "horilla_automations/load_automation.html" diff --git a/horilla_automations/views/views.py b/horilla_automations/views/views.py index 6e7ec3384..dd74da212 100644 --- a/horilla_automations/views/views.py +++ b/horilla_automations/views/views.py @@ -45,7 +45,7 @@ def get_to_field(request): @login_required -@permission_required("horilla_automation.delete_mailautomation") +@permission_required("horilla_automations.delete_mailautomation") def delete_automation(request, pk): """ Automation delete view @@ -60,7 +60,7 @@ def delete_automation(request, pk): @login_required -@permission_required("horilla_automation.add_mailautomation") +@permission_required("horilla_automations.add_mailautomation") def refresh_automations(request): """ Method to refresh automation signals diff --git a/horilla_crumbs/context_processors.py b/horilla_crumbs/context_processors.py index 8ca6b46ee..cc37dd253 100644 --- a/horilla_crumbs/context_processors.py +++ b/horilla_crumbs/context_processors.py @@ -153,6 +153,21 @@ sidebar_urls = [ "asset-batch-view", "task-all", "gdrive", + "color-settings", + "employee-report", + "employee-pivot", + "recruitment-report", + "recruitment-pivot", + "attendance-report", + "attendance-pivot", + "leave-report", + "leave-pivot", + "payroll-report", + "payroll-pivot", + "asset-report", + "asset-pivot", + "pms-report", + "pms-pivot", ] remove_urls = [ "feedback-detailed-view", diff --git a/horilla_documents/forms.py b/horilla_documents/forms.py index 0a56f8a31..99c65cfbf 100644 --- a/horilla_documents/forms.py +++ b/horilla_documents/forms.py @@ -107,7 +107,7 @@ class DocumentUpdateForm(ModelForm): } -class DocumentRejectForm(ModelForm): +class DocumentRejectCbvForm(ModelForm): """form to add rejection reason while rejecting a Document""" cols = {"reject_reason": 12} @@ -119,3 +119,20 @@ class DocumentRejectForm(ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields["reject_reason"].widget.attrs["required"] = True + + +class DocumentRejectForm(forms.Form): + verbose_name = Document()._meta.get_field("reject_reason").verbose_name + reject_reason = forms.CharField( + widget=forms.Textarea( + attrs={ + "class": "oh-input w-100", + "placeholder": verbose_name, + "rows": 2, + "cols": 40, + } + ), + max_length=255, + required=True, + label=verbose_name, + ) diff --git a/horilla_documents/models.py b/horilla_documents/models.py index 1d839ef01..f9731d54e 100644 --- a/horilla_documents/models.py +++ b/horilla_documents/models.py @@ -90,7 +90,9 @@ class Document(HorillaModel): status = models.CharField( choices=STATUS, max_length=10, default="requested", verbose_name=_("Status") ) - reject_reason = models.TextField(blank=True, null=True, max_length=255) + reject_reason = models.TextField( + blank=True, null=True, max_length=255, verbose_name=_("Reject Reason") + ) issue_date = models.DateField(null=True, blank=True, verbose_name=_("Issue Date")) expiry_date = models.DateField(null=True, blank=True, verbose_name=_("Expiry Date")) notify_before = models.IntegerField( diff --git a/horilla_views/cbv_methods.py b/horilla_views/cbv_methods.py index 98968366a..6c2bdaed0 100644 --- a/horilla_views/cbv_methods.py +++ b/horilla_views/cbv_methods.py @@ -659,3 +659,228 @@ def export_xlsx(json_data, columns, file_name="quick_export"): ) response["Content-Disposition"] = f'attachment; filename="{file_name}.xlsx"' return response + + +from django.apps import apps +from django.core.exceptions import FieldDoesNotExist +from django.db.models import Model +from django.db.models.fields.related import ( + ForeignKey, + ManyToManyRel, + ManyToOneRel, + OneToOneField, + OneToOneRel, +) +from openpyxl import Workbook + + +def get_verbose_name_from_field_path(model, field_path, import_mapping): + """ + Get verbose name + """ + parts = field_path.split("__") + current_model = model + verbose_name = None + + for i, part in enumerate(parts): + try: + field = current_model._meta.get_field(part) + + # Skip reverse relations (e.g., OneToOneRel) + if isinstance(field, (OneToOneRel, ManyToOneRel, ManyToManyRel)): + related_model = field.related_model + field = getattr(related_model, parts[-1]).field + return field.verbose_name.title() + + verbose_name = field.verbose_name + + if isinstance(field, (ForeignKey, OneToOneField)): + current_model = field.related_model + + except FieldDoesNotExist: + return f"[Invalid: {field_path}]" + + return verbose_name.title() if verbose_name else field_path + + +def generate_import_excel( + base_model, import_fields, reference_field="id", import_mapping={}, queryset=[] +): + """ + Generate import excel + """ + wb = Workbook() + ws = wb.active + ws.title = "Import Sheet" + + # Style definitions + header_fill = PatternFill( + start_color="FFD700", end_color="FFD700", fill_type="solid" + ) + bold_font = Font(bold=True) + wrap_alignment = Alignment(wrap_text=True, vertical="center", horizontal="center") + thin_border = Border( + left=Side(style="thin"), + right=Side(style="thin"), + top=Side(style="thin"), + bottom=Side(style="thin"), + ) + + # Generate headers + headers = [ + get_verbose_name_from_field_path(base_model, field, import_mapping) + for field in import_fields + ] + headers = [ + f"{get_verbose_name_from_field_path(base_model, reference_field,import_mapping)} | Reference" + ] + headers + ws.append(headers) + + # Apply styles to header row + for col_num, _ in enumerate(headers, 1): + cell = ws.cell(row=1, column=col_num) + cell.font = bold_font + cell.fill = header_fill + cell.alignment = wrap_alignment + cell.border = thin_border + + col_letter = get_column_letter(col_num) + ws.column_dimensions[col_letter].width = 30 + + for obj in queryset: + row = [str(getattribute(obj, reference_field))] + [ + str(getattribute(obj, import_mapping.get(field, field))) + for field in import_fields + ] + ws.append(row) + ws.freeze_panes = "A2" + ws.freeze_panes = "B2" + return wb + + +def split_by_import_reference(employee_data): + with_import_reference = [] + without_import_reference = [] + + for record in employee_data: + if record.get("id_import_reference") is not None: + with_import_reference.append(record) + else: + without_import_reference.append(record) + + return with_import_reference, without_import_reference + + +def resolve_foreign_keys( + base_model, + record, + import_column_mapping, + model_lookup, + primary_key_mapping, + pk_values_mapping, + prefix="", +): + resolved = {} + + for key, value in record.items(): + full_key = f"{prefix}__{key}" if prefix else key + + if isinstance(value, dict): + try: + field = base_model._meta.get_field(key) + related_model = field.related_model + except Exception: + resolved[key] = value + continue + + # Recursively resolve nested foreign keys + nested_data = resolve_foreign_keys( + related_model, + value, + import_column_mapping, + model_lookup, + primary_key_mapping, + pk_values_mapping, + prefix=full_key, + ) + instance = related_model.objects.create(**nested_data) + resolved[key] = instance + + else: + model_class = model_lookup.get(full_key) + lookup_field = primary_key_mapping.get(full_key) + + if model_class and lookup_field: + if value in [None, ""]: + resolved[key] = None + continue + + try: + instance, _ = model_class.objects.get_or_create( + **{lookup_field: value} + ) + resolved[key] = instance + except Exception as e: + raise ValueError( + f"Failed to get_or_create '{model_class.__name__}' using {lookup_field}={value}: {e}" + ) + else: + resolved[key] = value + + return resolved + + +def update_related( + obj, + record, + primary_key_mapping, + reverse_model_relation_to_base_model, +): + related_objects = { + key: getattribute(obj, key) or None + for key in reverse_model_relation_to_base_model + } + for relation in reverse_model_relation_to_base_model: + related_record_info = record.get(relation) + for key, value in related_record_info.items(): + related_object = related_objects[relation] + obj_related_field = relation + "__" + key + pk_mapping = primary_key_mapping.get(obj_related_field) + if obj_related_field in primary_key_mapping and pk_mapping: + previous_obj = getattr(related_object, key, None) + if previous_obj and value is not None: + new_obj = previous_obj._meta.model.objects.get( + **{pk_mapping: value} + ) + setattr(related_object, key, new_obj) + else: + if value is not None: + setattr(related_object, key, value) + if related_object: + related_object.save() + + +def assign_related( + record, + reverse_field, + pk_values_mapping, + pk_field_mapping, +): + """ + Method to assign related records + """ + reverse_obj_dict = {} + if reverse_field in record: + for field, value in record[reverse_field].items(): + full_field = reverse_field + "__" + field + if full_field in pk_values_mapping: + reverse_obj_dict.update( + { + field: data + for data in pk_values_mapping[full_field] + if getattr(data, pk_field_mapping[full_field], None) == value + } + ) + else: + reverse_obj_dict[field] = value + return reverse_obj_dict diff --git a/horilla_views/generic/cbv/pipeline.py b/horilla_views/generic/cbv/pipeline.py index b099e85b9..278b09869 100644 --- a/horilla_views/generic/cbv/pipeline.py +++ b/horilla_views/generic/cbv/pipeline.py @@ -32,6 +32,8 @@ class Pipeline(ListView): super().__init__(**kwargs) self.request = getattr(_thread_locals, "request", None) self.grouper = self.request.GET.get("grouper", self.grouper) + if kwargs.get("view") == "kanban": + self.template_name = "generic/pipeline/kanban.html" for allowed_field in self.allowed_fields: if self.grouper == allowed_field["field"]: self.field_model = allowed_field["model"] @@ -40,7 +42,23 @@ class Pipeline(ListView): self.parameters = allowed_field["parameters"] self.actions = allowed_field["actions"] + @classmethod + def as_view(cls, **initkwargs): + def view(request, *args, **kwargs): + # Inject URL params into initkwargs + initkwargs_with_url = {**initkwargs, **kwargs} + self = cls(**initkwargs_with_url) + self.request = request + self.args = args + self.kwargs = kwargs + return self.dispatch(request, *args, **kwargs) + + return view + def get_queryset(self): + if self.kwargs.get("view"): + del self.kwargs["view"] + if not self.queryset: self.queryset = self.field_filter_class(self.request.GET).qs.filter( **self.kwargs diff --git a/horilla_views/generic/cbv/views.py b/horilla_views/generic/cbv/views.py index d6352992b..08569b936 100644 --- a/horilla_views/generic/cbv/views.py +++ b/horilla_views/generic/cbv/views.py @@ -8,12 +8,14 @@ import logging from typing import Any from urllib.parse import parse_qs +import pandas as pd from bs4 import BeautifulSoup from django import forms from django.contrib import messages from django.core.cache import cache as CACHE from django.core.paginator import Page -from django.http import HttpRequest, HttpResponse, QueryDict +from django.db import transaction +from django.http import HttpRequest, HttpResponse, JsonResponse, QueryDict from django.shortcuts import render from django.template.loader import render_to_string from django.urls import resolve, reverse @@ -28,12 +30,18 @@ from horilla.group_by import group_by_queryset from horilla.horilla_middlewares import _thread_locals from horilla_views import models from horilla_views.cbv_methods import ( # update_initial_cache, + assign_related, export_xlsx, + generate_import_excel, get_short_uuid, + get_verbose_name_from_field_path, hx_request_required, paginator_qry, + resolve_foreign_keys, sortby, + split_by_import_reference, structured, + update_related, update_saved_filter_cache, ) from horilla_views.forms import DynamicBulkUpdateForm, ToggleColumnForm @@ -70,6 +78,17 @@ class HorillaListView(ListView): filter_selected: bool = True quick_export: bool = True bulk_update: bool = True + import_fields: list = [] + import_file_name: str = "Quick Import" + update_reference: str = "pk" + import_related_model_column_mapping: dict = {} + primary_key_mapping: dict = {} + import_related_column_export_mapping: dict = {} + reverse_model_relation_to_base_model: dict = {} + fk_mapping: dict = {} + import_help: dict = {} + fk_o2o_field_in_base_model: list = [] + chunk_size: int = 200 custom_empty_template: str = "" @@ -117,6 +136,19 @@ class HorillaListView(ListView): header_attrs: dict = {} + @classmethod + def as_view(cls, **initkwargs): + def view(request, *args, **kwargs): + # Inject URL params into initkwargs + initkwargs_with_url = {**initkwargs, **kwargs} + self = cls(**initkwargs_with_url) + self.request = request + self.args = args + self.kwargs = kwargs + return self.dispatch(request, *args, **kwargs) + + return view + def post(self, *args, **kwargs): """ POST method to handle post submissions @@ -169,6 +201,14 @@ class HorillaListView(ListView): f"{self.model._meta.app_label}.change_{self.model.__name__.lower()}" ) + def import_accessibility(self) -> bool: + """ + Accessibility method for bulk importz + """ + return self.request.user.has_perm( + f"{self.model._meta.app_label}.add_{self.model.__name__.lower()}" + ) + def serve_bulk_form(self, request: HttpRequest) -> HttpResponse: """ Bulk form serve method @@ -233,6 +273,383 @@ class HorillaListView(ListView): root_model=self.model, bulk_update_fields=self.bulk_update_fields ) + def serve_import_sheet(self, request, *args, **kwargs): + """ + Method to serve bulk import sheet + """ + if not self.import_accessibility(): + messages.info(request, "You dont have permission") + return HorillaFormView.HttpResponse() + ids = eval_validate(request.POST["selected_ids"]) + + wb = generate_import_excel( + self.model, + self.import_fields, + reference_field=self.update_reference, + import_mapping=self.import_related_column_export_mapping, + queryset=self.model.objects.filter(id__in=ids), + ) + + # Create response + response = HttpResponse( + content_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" + ) + filename = f"{self.import_file_name}.xlsx" + response["Content-Disposition"] = f'attachment; filename="{filename}"' + wb.save(response) + return response + + def import_records(self, request, *args, **kwargs): + """ + Method to import records + """ + if not self.import_accessibility(): + messages.info(request, "You dont have permission") + field_column_mapping = { + field: get_verbose_name_from_field_path( + self.model, field, self.import_related_model_column_mapping + ) + for field in self.import_fields + } + update_reference = f"{get_verbose_name_from_field_path(self.model, self.update_reference, self.import_related_model_column_mapping)} | Reference" + update_reference_key = f"{self.update_reference}_import_reference" + field_column_mapping[f"{self.update_reference}_import_reference"] = ( + update_reference + ) + + excel_file = request.FILES.get("file") + if not excel_file: + return JsonResponse({"error": "No file uploaded"}, status=400) + + df = pd.read_excel(excel_file) + + serialized = [] + field_column_mapping_values = {} + for _, row in df.iterrows(): + record = {} + for model_field, excel_col in field_column_mapping.items(): + if excel_col in row: + value = row[excel_col] + if model_field in ( + list(self.primary_key_mapping.keys()) + + list(self.import_related_model_column_mapping.keys()) + ) and not pd.isna(value): + field_column_mapping_values[model_field] = ( + field_column_mapping_values.get(model_field, set({})).union( + {value} + ) + ) + if pd.isna(value): + value = None + if isinstance(value, str): + value = value.strip() + parts = model_field.split("__") + current = record + for part in parts[:-1]: + current = current.setdefault(part, {}) + current[parts[-1]] = value + serialized.append(record) + + with_ref, without_ref = split_by_import_reference(serialized) + + error_records = [] + + error_records = [] + pk_values_mapping = {} + fk_values_mapping = {} + + for mapping, values in field_column_mapping_values.items(): + related_model = self.import_related_model_column_mapping[mapping] + if mapping in self.primary_key_mapping: + field = self.primary_key_mapping[mapping] + existing_objects = related_model.objects.filter( + **{f"{field}__in": list(values)} + ).only("pk", field) + + existing_values = existing_objects.values_list(field, flat=True) + print(">>>>>>>>>>>>>>>>>>>") + print(existing_values) + to_create = [ + related_model(**{field: value}) + for value in values + if value not in existing_values + ] + print(to_create) + print(">>>>>>>>>>>>>>>>>>>") + + if to_create: + related_model.objects.bulk_create(to_create) + pk_values_mapping[mapping] = pk_values_mapping.get(mapping, []) + list( + existing_objects + ) + elif mapping in self.fk_mapping: + field = self.fk_mapping[mapping] + related_model = self.import_related_model_column_mapping[mapping] + existing_objects = related_model.objects.filter( + **{f"{field}__in": list(values)} + ).only("pk", field) + existing_values = existing_objects.values_list(field, flat=True) + to_create = [ + related_model(**{field: value}) + for value in values + if value not in existing_values + ] + if to_create: + related_model.objects.bulk_create(to_create) + fk_values_mapping[mapping] = fk_values_mapping.get(mapping, []) + list( + existing_objects + ) + if without_ref: + with transaction.atomic(): + records_to_import = [] + for record in without_ref: + try: + for reverse_field in ( + list(self.reverse_model_relation_to_base_model.keys()) + + self.fk_o2o_field_in_base_model + ): + if reverse_field in list( + self.primary_key_mapping.keys() + ) + list(self.reverse_model_relation_to_base_model.keys()): + result = assign_related( + record, + reverse_field, + pk_values_mapping, + self.primary_key_mapping, + ) + record[reverse_field] = result + elif reverse_field in self.fk_mapping: + record.update( + { + reverse_field: data + for data in fk_values_mapping[reverse_field] + if getattr( + data, self.fk_mapping[reverse_field], None + ) + == record[reverse_field] + } + ) + records_to_import.append(record) + + except Exception as e: + error_records.append( + { + "record": record.get(next(iter(record)), "Unknown"), + "error": str(e), + } + ) + bulk_base_fk_grouping = {} + bulk_create_reverse_related_grouping = {} + bulk_create_base_grouping = [] + + related_fields = list(self.reverse_model_relation_to_base_model.keys()) + fk_fields = self.fk_o2o_field_in_base_model + for record in records_to_import: + if record.get(update_reference_key): + del record[update_reference_key] + instance_record = record.copy() + if update_reference_key in instance_record: + del instance_record[update_reference_key] + for relation in related_fields: + if relation in instance_record: + del instance_record[relation] + for fk_field in self.fk_o2o_field_in_base_model: + if ( + fk_field in instance_record + and fk_field not in self.fk_mapping + ): + del instance_record[fk_field] + + instance = self.model(**instance_record) + for relation in related_fields: + related_record = record[relation] + related_record[ + self.reverse_model_relation_to_base_model[relation] + ] = instance + related_instance = self.import_related_model_column_mapping[ + relation + ](**related_record) + bulk_create_reverse_related_grouping[relation] = ( + bulk_create_reverse_related_grouping.get(relation, []) + + [related_instance] + ) + + for fk_field in fk_fields: + fk_record = record[fk_field] + if isinstance(fk_record, dict): + fk_instance = self.import_related_model_column_mapping[ + fk_field + ](**fk_record) + else: + fk_instance = fk_record + bulk_base_fk_grouping[fk_field] = bulk_base_fk_grouping.get( + fk_field, [] + ) + [fk_instance] + setattr(instance, fk_field, fk_instance) + bulk_create_base_grouping.append(instance) + + for fk_field in self.fk_o2o_field_in_base_model: + if fk_field not in self.fk_mapping: + for relation, items in bulk_base_fk_grouping.items(): + if relation not in self.fk_mapping: + self.import_related_model_column_mapping[ + fk_field + ].objects.bulk_create(items) + + self.model.objects.bulk_create(bulk_create_base_grouping) + + for related, items in bulk_create_reverse_related_grouping.items(): + self.import_related_model_column_mapping[ + related + ].objects.bulk_create(items) + if with_ref: + base_instance_ids = [item["id_import_reference"] for item in with_ref] + fields = ( + list(self.reverse_model_relation_to_base_model) + + ["pk"] + + self.fk_o2o_field_in_base_model + ) + mapped_ids_queryset = ( + self.model.objects.filter(pk__in=base_instance_ids) + .only(*fields) + .values(*fields) + ) + mapped_ids_with_reverse = { + item["pk"]: { + key: item[key] for key in self.reverse_model_relation_to_base_model + } + for item in mapped_ids_queryset + } + with transaction.atomic(): + records_to_update = [] + for record in with_ref: + try: + for reverse_field in ( + list(self.reverse_model_relation_to_base_model.keys()) + + self.fk_o2o_field_in_base_model + ): + if reverse_field in list( + self.primary_key_mapping.keys() + ) + list(self.reverse_model_relation_to_base_model.keys()): + result = assign_related( + record, + reverse_field, + pk_values_mapping, + self.primary_key_mapping, + ) + record[reverse_field] = result + elif reverse_field in self.fk_mapping: + record.update( + { + reverse_field: data + for data in fk_values_mapping[reverse_field] + if getattr( + data, self.fk_mapping[reverse_field], None + ) + == record[reverse_field] + } + ) + records_to_update.append(record) + + except Exception as e: + error_records.append( + {"record": record[list(record.keys())[0]], "error": str(e)} + ) + bulk_base_fk_grouping = {} + bulk_update_reverse_related_grouping = {} + bulk_update_base_grouping = [] + + related_fields = list(self.reverse_model_relation_to_base_model.keys()) + fk_fields = self.fk_o2o_field_in_base_model + related_update_fields = {} + for record in records_to_update: + instance_record = record.copy() + for relation in related_fields: + if relation in instance_record: + del instance_record[relation] + for fk_field in self.fk_o2o_field_in_base_model: + if ( + fk_field in instance_record + and fk_field not in self.fk_mapping + ): + del instance_record[fk_field] + + instance_record["id"] = instance_record["id_import_reference"] + instance_record["pk"] = instance_record["id_import_reference"] + del instance_record["id_import_reference"] + + instance = self.model(**instance_record) + for relation in related_fields: + related_update_fields[relation] = record[relation].keys() + for relation in related_fields: + related_record = record[relation] + related_record[ + self.reverse_model_relation_to_base_model[relation] + ] = instance + related_record["id"] = mapped_ids_with_reverse[instance.id][ + relation + ] + related_record["pk"] = mapped_ids_with_reverse[instance.id][ + relation + ] + related_instance = self.import_related_model_column_mapping[ + relation + ](**related_record) + if related_instance.pk is not None: + bulk_update_reverse_related_grouping[relation] = ( + bulk_update_reverse_related_grouping.get(relation, []) + + [related_instance] + ) + + for fk_field in fk_fields: + if fk_field not in self.fk_mapping: + fk_record = record[fk_field] + fk_instance = self.import_related_model_column_mapping[ + fk_field + ](**fk_record) + bulk_base_fk_grouping[fk_field] = bulk_base_fk_grouping.get( + fk_field, [] + ) + [fk_instance] + setattr(instance, fk_field, fk_instance) + bulk_update_base_grouping.append(instance) + + if with_ref and bulk_update_base_grouping: + field_to_update = [ + key for key in instance_record.keys() if key not in ["id", "pk"] + ] + self.model.objects.bulk_update(bulk_update_base_grouping, field_to_update) + + if with_ref and related_update_fields: + for field in related_fields: + related_model = self.import_related_model_column_mapping[field] + if field in bulk_update_reverse_related_grouping: + update_fields = [ + key + for key in related_update_fields[field] + if key not in ["id", "pk"] + ] + related_model.objects.bulk_update( + bulk_update_reverse_related_grouping[field], update_fields + ) + + status = "Success" + if error_records: + status = "Error Found" + + return render( + request, + "cbv/import_response.html", + context={ + "view_id": self.view_id, + "status": status, + "imported": len(without_ref), + "updated": len(with_ref), + "errors": error_records[:10], # Optional: truncate if too large + "total_errors": error_records, # Optional: truncate if too large + "more_error": len(error_records) > 10, + }, + ) + def get_queryset(self, queryset=None, filtered=False, *args, **kwargs): if not self.queryset: self.queryset = super().get_queryset() if not queryset else queryset @@ -432,6 +849,28 @@ class HorillaListView(ListView): urlpatterns.append(path(self.export_path, self.export_data)) context["export_path"] = self.export_path + if self.import_fields: + get_import_sheet_path = ( + f"get-import-sheet-{self.view_id}-{self.request.session.session_key}/" + ) + post_import_sheet_path = ( + f"post-import-sheet-{self.view_id}-{self.request.session.session_key}/" + ) + urlpatterns.append( + path( + get_import_sheet_path, + self.serve_import_sheet, + ) + ) + urlpatterns.append( + path( + post_import_sheet_path, + self.import_records, + ) + ) + context["get_import_sheet_path"] = get_import_sheet_path + context["post_import_sheet_path"] = post_import_sheet_path + context["import_fields"] = self.import_fields if self.bulk_update_fields and self.bulk_update_accessibility(): get_bulk_path = ( f"get-bulk-update-{self.view_id}-{self.request.session.session_key}/" @@ -455,6 +894,8 @@ class HorillaListView(ListView): context["bulk_update_fields"] = self.bulk_update_fields context["bulk_path"] = get_bulk_path context["export_formats"] = self.export_formats + context["import_help"] = self.import_help + context["import_accessibility"] = self.import_accessibility() return context def select_all(self, *args, **kwargs): @@ -676,6 +1117,19 @@ class HorillaSectionView(TemplateView): context["style_static_paths"] = self.style_static_paths return context + @classmethod + def as_view(cls, **initkwargs): + def view(request, *args, **kwargs): + # Inject URL params into initkwargs + initkwargs_with_url = {**initkwargs, **kwargs} + self = cls(**initkwargs_with_url) + self.request = request + self.args = args + self.kwargs = kwargs + return self.dispatch(request, *args, **kwargs) + + return view + @method_decorator(hx_request_required, name="dispatch") class HorillaDetailedView(DetailView): @@ -775,6 +1229,19 @@ class HorillaTabView(TemplateView): tabs: list = [] + @classmethod + def as_view(cls, **initkwargs): + def view(request, *args, **kwargs): + # Inject URL params into initkwargs + initkwargs_with_url = {**initkwargs, **kwargs} + self = cls(**initkwargs_with_url) + self.request = request + self.args = args + self.kwargs = kwargs + return self.dispatch(request, *args, **kwargs) + + return view + def __init__(self, **kwargs: Any) -> None: super().__init__(**kwargs) request = getattr(_thread_locals, "request", None) @@ -941,6 +1408,19 @@ class HorillaCardView(ListView): ) return context + @classmethod + def as_view(cls, **initkwargs): + def view(request, *args, **kwargs): + # Inject URL params into initkwargs + initkwargs_with_url = {**initkwargs, **kwargs} + self = cls(**initkwargs_with_url) + self.request = request + self.args = args + self.kwargs = kwargs + return self.dispatch(request, *args, **kwargs) + + return view + @method_decorator(hx_request_required, name="dispatch") class ReloadMessages(TemplateView): @@ -1234,6 +1714,19 @@ class HorillaFormView(FormView): self.form = form return self.form + @classmethod + def as_view(cls, **initkwargs): + def view(request, *args, **kwargs): + # Inject URL params into initkwargs + initkwargs_with_url = {**initkwargs, **kwargs} + self = cls(**initkwargs_with_url) + self.request = request + self.args = args + self.kwargs = kwargs + return self.dispatch(request, *args, **kwargs) + + return view + @method_decorator(hx_request_required, name="dispatch") class HorillaNavView(TemplateView): @@ -1297,6 +1790,19 @@ class HorillaNavView(TemplateView): # CACHE.get(self.request.session.session_key + "cbv")[HorillaNavView] = context return context + @classmethod + def as_view(cls, **initkwargs): + def view(request, *args, **kwargs): + # Inject URL params into initkwargs + initkwargs_with_url = {**initkwargs, **kwargs} + self = cls(**initkwargs_with_url) + self.request = request + self.args = args + self.kwargs = kwargs + return self.dispatch(request, *args, **kwargs) + + return view + @method_decorator(hx_request_required, name="dispatch") class HorillaProfileView(DetailView): @@ -1389,6 +1895,19 @@ class HorillaProfileView(DetailView): return cls.tabs.index(index, tab) + @classmethod + def as_view(cls, **initkwargs): + def view(request, *args, **kwargs): + # Inject URL params into initkwargs + initkwargs_with_url = {**initkwargs, **kwargs} + self = cls(**initkwargs_with_url) + self.request = request + self.args = args + self.kwargs = kwargs + return self.dispatch(request, *args, **kwargs) + + return view + def get_context_data(self, **kwargs: Any) -> dict: context = super().get_context_data(**kwargs) context["instance"] = context["object"] diff --git a/horilla_views/templates/cbv/import_response.html b/horilla_views/templates/cbv/import_response.html new file mode 100644 index 000000000..690e80a3c --- /dev/null +++ b/horilla_views/templates/cbv/import_response.html @@ -0,0 +1,45 @@ + + + + + + + + + + + + +
    StatusImportedUpdated
    {{ status }}{{ imported }}{{ updated }}
    +{% if errors %} +
    Errors
    +
      + {% for error in errors %} +
    1. + {{ error.record }} : {{ error.error }} +
    2. + {% endfor %} + {% if more_error %} +
    3. And more errors...
    4. + {% endif %} +
    +{% endif %} + diff --git a/horilla_views/templates/generic/horilla_list_table.html b/horilla_views/templates/generic/horilla_list_table.html index b7cca8af8..53bec7adc 100644 --- a/horilla_views/templates/generic/horilla_list_table.html +++ b/horilla_views/templates/generic/horilla_list_table.html @@ -362,6 +362,7 @@

    {% trans "No Records found" %}

    {% trans "No records found." %} + {% include "generic/import_block.html" %}

    diff --git a/horilla_views/templates/generic/import_block.html b/horilla_views/templates/generic/import_block.html new file mode 100644 index 000000000..ca62dcb44 --- /dev/null +++ b/horilla_views/templates/generic/import_block.html @@ -0,0 +1,87 @@ +{% load generic_template_filters i18n %} +{% if import_fields and import_accessibility %} +
    + {% trans 'Import' %} + () +
    +
    +{% endif %} diff --git a/horilla_views/templates/generic/pipeline/kanban.html b/horilla_views/templates/generic/pipeline/kanban.html new file mode 100644 index 000000000..17148c336 --- /dev/null +++ b/horilla_views/templates/generic/pipeline/kanban.html @@ -0,0 +1,575 @@ +{% load i18n recruitmentfilters %} +{% load generic_template_filters %} + + + + + diff --git a/horilla_views/templates/generic/quick_actions.html b/horilla_views/templates/generic/quick_actions.html index 8ed5025fa..7930c36bf 100644 --- a/horilla_views/templates/generic/quick_actions.html +++ b/horilla_views/templates/generic/quick_actions.html @@ -1,4 +1,4 @@ -{% load i18n %} +{% load i18n generic_template_filters %} {% if request.actual_ids and request.session.prev_path == request.path %} {% endblock %} diff --git a/offboarding/views.py b/offboarding/views.py index 36eac9788..10835adbd 100644 --- a/offboarding/views.py +++ b/offboarding/views.py @@ -16,6 +16,7 @@ from base.methods import closest_numbers, eval_validate, paginator_qry, sortby from base.models import Department, JobPosition from base.views import general_settings from employee.models import Employee +from horilla import horilla_middlewares from horilla.decorators import ( hx_request_required, login_required, @@ -60,9 +61,21 @@ from offboarding.models import ( ) +def any_manager(employee: Employee): + """ + This method is used to check the employee is in managers + employee: Employee model instance + """ + return ( + Offboarding.objects.filter(managers=employee).exists() + | OffboardingStage.objects.filter(managers=employee).exists() + | OffboardingTask.objects.filter(managers=employee).exists() + ) + + def pipeline_grouper(filters={}, offboardings=[]): groups = [] - + request = getattr(horilla_middlewares._thread_locals, "request", None) for offboarding in offboardings: employees = [] stages = PipelineStageFilter( @@ -76,6 +89,15 @@ def pipeline_grouper(filters={}, offboardings=[]): filters, OffboardingEmployee.objects.filter(stage_id=stage), ).qs.order_by("stage_id__id") + + if request and not ( + request.user.has_perm("offboarding.view_offboarding") + or any_manager(request.user.employee_get) + ): + stage_employees = stage_employees.filter( + employee_id=request.user.employee_get + ) + page_name = "page" + stage.title + str(offboarding.id) employee_grouper = group_by( stage_employees, @@ -432,10 +454,14 @@ def change_stage(request): for employee in employees: employee.stage_id = stage employee.save() - # if stage.type == "archived": - # Employee.objects.filter( - # id__in=employees.values_list("employee_id__id", flat=True) - # ).update(is_active=False) + + target_state = False if stage.type == "archived" else True + employee_ids = employees.values_list("employee_id__id", flat=True) + Employee.objects.filter( + id__in=employee_ids, + is_active=not target_state, # Only update if is_active differs + ).update(is_active=target_state) + stage_forms = {} stage_forms[str(stage.offboarding_id.id)] = StageSelectForm( offboarding=stage.offboarding_id diff --git a/onboarding/filters.py b/onboarding/filters.py index 3ae4f89a5..39daa2f73 100644 --- a/onboarding/filters.py +++ b/onboarding/filters.py @@ -17,7 +17,7 @@ from onboarding.models import ( OnboardingStage, OnboardingTask, ) -from recruitment.filters import RecruitmentFilter +from recruitment.filters import RecruitmentFilter as rec_filter from recruitment.models import Candidate, Recruitment @@ -35,7 +35,7 @@ class CandidateTaskFilter(HorillaFilterSet): fields = "__all__" -class RecruitmentFilter(RecruitmentFilter): +class RecruitmentFilter(rec_filter): """ RecruitmentFilter """ diff --git a/onboarding/forms.py b/onboarding/forms.py index 93688477c..4b7ce8fec 100644 --- a/onboarding/forms.py +++ b/onboarding/forms.py @@ -32,10 +32,10 @@ from django.forms import DateInput, ValidationError from django.template.loader import render_to_string from django.utils.translation import gettext_lazy as _ +from base.forms import ModelForm from base.methods import reload_queryset from employee.filters import EmployeeFilter from employee.models import Employee, EmployeeBankDetails -from horilla import horilla_middlewares from horilla_widgets.widgets.horilla_multi_select_field import HorillaMultiSelectField from horilla_widgets.widgets.select_widgets import HorillaMultiSelectWidget from onboarding.models import ( @@ -47,63 +47,6 @@ from onboarding.models import ( from recruitment.models import Candidate -class ModelForm(forms.ModelForm): - """ - Overriding django default model form to apply some styles - """ - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - request = getattr(horilla_middlewares._thread_locals, "request", None) - reload_queryset(self.fields) - for _, field in self.fields.items(): - widget = field.widget - - if isinstance(widget, (forms.DateInput)): - field.initial = date.today() - - if isinstance(widget, (forms.DateInput)): - field.widget.attrs.update({"class": "oh-input w-100"}) - elif isinstance( - widget, (forms.NumberInput, forms.EmailInput, forms.TextInput) - ): - field.widget.attrs.update( - {"class": "oh-input w-100", "placeholder": field.label} - ) - elif isinstance(widget, (forms.Select,)): - field.widget.attrs.update( - {"class": "oh-select oh-select-2 select2-hidden-accessible"} - ) - elif isinstance(widget, (forms.Textarea)): - field.widget.attrs.update( - { - "class": "oh-input w-100", - "placeholder": field.label, - "rows": 2, - "cols": 40, - } - ) - elif isinstance( - widget, - ( - forms.CheckboxInput, - forms.CheckboxSelectMultiple, - ), - ): - field.widget.attrs.update({"class": "oh-switch__checkbox"}) - try: - self.fields["employee_id"].initial = request.user.employee_get - except: - pass - - try: - self.fields["company_id"].initial = ( - request.user.employee_get.get_company - ) - except: - pass - - class UserCreationFormCustom(UserForm): """ Overriding user creation form to apply some styles @@ -161,21 +104,6 @@ class UserCreationFormCustom(UserForm): field.widget.attrs.update({"class": "oh-switch__checkbox"}) -class OnboardingStageForm(ModelForm): - """ - Form for OnboardingStage model - """ - - class Meta: - """ - Meta class to add additional info - """ - - model = OnboardingStage - fields = "__all__" - exclude = ["sequence", "is_active"] - - class OnboardingCandidateForm(ModelForm): """ Form for Candidate model @@ -277,7 +205,7 @@ class OnboardingViewTaskForm(ModelForm): required=True, instance=self.instance, ), - label="Task Managers", + label=_("Task Managers"), ) reload_queryset(self.fields) @@ -313,7 +241,7 @@ class OnboardingTaskForm(ModelForm): required=True, instance=self.instance, ), - label="Task Managers", + label=self.fields["employee_id"].label, ) stage_id = self.initial.get("stage_id") if stage_id: @@ -340,8 +268,6 @@ class OnboardingViewStageForm(ModelForm): Form for OnboardingStageModel """ - verbose_name = "Stage" - class Meta: """ Meta class for add some additional options @@ -370,7 +296,7 @@ class OnboardingViewStageForm(ModelForm): required=True, instance=self.instance, ), - label="Stage Managers", + label=self.fields["employee_id"].label, ) # Loop through form fields and generate unique IDs for their attributes @@ -385,7 +311,7 @@ class OnboardingViewStageForm(ModelForm): Render the form fields as HTML table rows with Bootstrap styling. """ context = {"form": self} - table_html = render_to_string("common_form.html", context) + table_html = render_to_string("horilla_form.html", context) return table_html def clean(self): diff --git a/onboarding/models.py b/onboarding/models.py index 950e7f4f4..0d94bbe42 100644 --- a/onboarding/models.py +++ b/onboarding/models.py @@ -28,7 +28,7 @@ class OnboardingStage(HorillaModel): OnboardingStage models """ - stage_title = models.CharField(max_length=200) + stage_title = models.CharField(max_length=200, verbose_name=_("Stage Title")) recruitment_id = models.ForeignKey( Recruitment, verbose_name=_("Recruitment"), @@ -36,9 +36,11 @@ class OnboardingStage(HorillaModel): related_name="onboarding_stage", on_delete=models.CASCADE, ) - employee_id = models.ManyToManyField(Employee, verbose_name="Stage managers") + employee_id = models.ManyToManyField(Employee, verbose_name=_("Stage Managers")) sequence = models.IntegerField(null=True) - is_final_stage = models.BooleanField(default=False) + is_final_stage = models.BooleanField( + default=False, verbose_name=_("Is Final Stage") + ) objects = HorillaCompanyManager("recruitment_id__company_id") def __str__(self): @@ -49,6 +51,8 @@ class OnboardingStage(HorillaModel): Meta class for additional options """ + verbose_name = _("Onboarding Stage") + verbose_name_plural = _("Onboarding Stages") ordering = ["sequence"] @@ -70,7 +74,7 @@ class OnboardingTask(HorillaModel): OnboardingTask models """ - task_title = models.CharField(max_length=200) + task_title = models.CharField(max_length=200, verbose_name=_("Task Title")) # recruitment_id = models.ManyToManyField(Recruitment, related_name="onboarding_task") stage_id = models.ForeignKey( OnboardingStage, @@ -83,6 +87,7 @@ class OnboardingTask(HorillaModel): Candidate, blank=True, related_name="cand_onboarding_task", + verbose_name=_("Candidates"), ) employee_id = models.ManyToManyField( Employee, related_name="onboarding_task", verbose_name=_("Task Managers") @@ -103,6 +108,14 @@ class OnboardingTask(HorillaModel): def __str__(self): return f"{self.task_title}" + class Meta: + """ + Meta class to add some additional options + """ + + verbose_name = _("Onboarding Task") + verbose_name_plural = _("Onboarding Tasks") + class CandidateStage(HorillaModel): """ @@ -160,7 +173,7 @@ class CandidateStage(HorillaModel): Meta class for additional options """ - verbose_name = _("Candidate Onboarding stage") + verbose_name = _("Candidate Onboarding Stage") ordering = ["sequence"] @@ -216,8 +229,8 @@ class CandidateTask(HorillaModel): Meta class to add some additional options """ - verbose_name = _("Candidate onboarding task") - # unique_together = ("candidate_id", "onboarding_task_id") + verbose_name = _("Onboarding Task") + verbose_name_plural = _("Onboarding Tasks") class OnboardingPortal(HorillaModel): diff --git a/onboarding/templates/onboarding/candidates_view.html b/onboarding/templates/onboarding/candidates_view.html index b48ec5da4..d1ee50f6f 100644 --- a/onboarding/templates/onboarding/candidates_view.html +++ b/onboarding/templates/onboarding/candidates_view.html @@ -263,26 +263,10 @@ {% include 'onboarding/candidates.html' %}
    {% else %} -
    -
    - Page not found. 404. -
    - {% trans "At present, There are no Candidates onboarding." %} -
    -
    +
    + Page not found. 404. +

    {% trans "No Records found." %}

    +

    {% trans "At present, There are no Candidates onboarding." %}

    {% endif %}
    -{% endblock content %} +{% endblock content %} diff --git a/onboarding/templates/onboarding/stage_form.html b/onboarding/templates/onboarding/stage_form.html index bb6fa6d2a..8c2cc1668 100644 --- a/onboarding/templates/onboarding/stage_form.html +++ b/onboarding/templates/onboarding/stage_form.html @@ -3,17 +3,22 @@
    - {% for error in form.non_field_errors %} -
    - {{ error }} -
    +
    + {{ error }} +
    {% endfor %}
    {% endif %} +
    + {% trans "Create" %} {{form.verbose_name}} + +
    -
    + {{form.as_p}}
    diff --git a/onboarding/templates/onboarding/stage_update.html b/onboarding/templates/onboarding/stage_update.html index b8d02008a..34da50813 100644 --- a/onboarding/templates/onboarding/stage_update.html +++ b/onboarding/templates/onboarding/stage_update.html @@ -3,17 +3,22 @@
    - {% for error in form.non_field_errors %} -
    - {{ error }} -
    +
    + {{ error }} +
    {% endfor %}
    {% endif %} +
    + {% trans "Update" %} {{form.verbose_name}} + +
    -
    + {{form.as_p}}
    diff --git a/onboarding/templates/onboarding/task_form.html b/onboarding/templates/onboarding/task_form.html index 347eb65f3..45857b973 100644 --- a/onboarding/templates/onboarding/task_form.html +++ b/onboarding/templates/onboarding/task_form.html @@ -11,33 +11,40 @@
    {% endif %} -
    -
    -
    - - -
    - - {{ form.task_title }} - {{ form.task_title.errors }} -
    - -
    - - {{ form.managers }} - {{ form.managers.errors }} -
    - -
    - - {{ form.candidates }} - {{ form.candidates.errors }} -
    - -
    -
    +
    + {% trans "Create" %} {{form.verbose_name}} +
    + +
    +
    + + +
    + + {{ form.task_title }} + {{ form.task_title.errors }} +
    + +
    + + {{ form.managers }} + {{ form.managers.errors }} +
    + +
    + + {{ form.candidates }} + {{ form.candidates.errors }} +
    + + +
    +
    diff --git a/onboarding/templates/onboarding/task_update.html b/onboarding/templates/onboarding/task_update.html index af41e17cb..0e02797ec 100644 --- a/onboarding/templates/onboarding/task_update.html +++ b/onboarding/templates/onboarding/task_update.html @@ -3,7 +3,6 @@
    - {% for error in form.non_field_errors %}
    {{ error }} @@ -12,29 +11,39 @@
    {% endif %} -
    -
    -
    -
    - - {{form.task_title}} - {{form.task_title.errors}} -
    -
    - - {{form.employee_id}} - {{form.employee_id.errors}} -
    -
    - - {{form.candidates}} - {{form.candidates.errors}} -
    - -
    -
    +
    + {% trans "Update" %} {{form.verbose_name}} + +
    + +
    +
    + +
    + + {{ form.task_title }} + {{ form.task_title.errors }} +
    + +
    + + {{ form.employee_id }} + {{ form.employee_id.errors }} +
    + +
    + + {{ form.candidates }} + {{ form.candidates.errors }} +
    + + +
    diff --git a/onboarding/views.py b/onboarding/views.py index 2228de14d..95bb06079 100644 --- a/onboarding/views.py +++ b/onboarding/views.py @@ -310,16 +310,8 @@ def task_creation(request): icon="people-circle", redirect=reverse("onboarding-view"), ) - response = render( - request, - "onboarding/task_form.html", - {"form": form, "stage_id": stage_id}, - ) messages.success(request, _("New task created successfully...")) - - return HttpResponse( - response.content.decode("utf-8") + "" - ) + return HttpResponse(status=204, headers={"HX-Refresh": "true"}) return render( request, "onboarding/task_form.html", {"form": form, "stage_id": stage_id} ) @@ -344,6 +336,7 @@ def task_update( POST : return onboarding view """ onboarding_task = OnboardingTask.objects.get(id=task_id) + form = OnboardingTaskForm(instance=onboarding_task) if request.method == "POST": form = OnboardingTaskForm(request.POST, instance=onboarding_task) if form.is_valid(): @@ -369,18 +362,7 @@ def task_update( icon="people-circle", redirect=reverse("onboarding-view"), ) - response = render( - request, - "onboarding/task_update.html", - { - "form": form, - "task_id": task_id, - }, - ) - return HttpResponse( - response.content.decode("utf-8") + "" - ) - form = OnboardingTaskForm(instance=onboarding_task) + return HttpResponse(status=204, headers={"HX-Refresh": "true"}) return render( request, "onboarding/task_update.html", @@ -571,7 +553,7 @@ def paginator_qry(qryset, page_number): @login_required -@permission_required("candidate.view_candidate") +@permission_required(perm="recruitment.view_candidate") def candidates_view(request): """ function used to view hired candidates . @@ -632,7 +614,7 @@ def hired_candidate_view(request): @login_required @hx_request_required -@permission_required("candidate.view_candidate") +@permission_required(perm="recruitment.view_candidate") def candidate_filter(request): """ function used to filter hired candidates . @@ -1524,7 +1506,7 @@ def update_joining(request): @login_required -@permission_required("candidate.view_candidate") +@permission_required(perm="recruitment.view_candidate") def view_dashboard(request): recruitment = Recruitment.objects.all().values_list("title", flat=True) candidates = Candidate.objects.all() @@ -1545,7 +1527,7 @@ def view_dashboard(request): @login_required -@permission_required("candidate.view_candidate") +@permission_required(perm="recruitment.view_candidate") def dashboard_stage_chart(request): recruitment = request.GET.get("recruitment") labels = OnboardingStage.objects.filter( diff --git a/payroll/templates/payroll/loan/view_loan.html b/payroll/templates/payroll/loan/view_loan.html index 037bcb201..ac3fab9f3 100644 --- a/payroll/templates/payroll/loan/view_loan.html +++ b/payroll/templates/payroll/loan/view_loan.html @@ -18,15 +18,11 @@ {% include 'payroll/loan/records_card.html' %} {% else %} {% include 'filter_tags.html' %} -
    -
    -
    - Page not found. 404. -
    {% trans "There are currently no loans to consider." %}
    -
    -
    -
    +
    + Page not found. 404. +

    {% trans "No Records found." %}

    +

    {% trans "There are currently no loans to consider." %}

    +
    {% endif %}
    {% endblock %} diff --git a/payroll/templates/payroll/reimbursement/view_reimbursement.html b/payroll/templates/payroll/reimbursement/view_reimbursement.html index 7280766ba..dbe3d75f1 100644 --- a/payroll/templates/payroll/reimbursement/view_reimbursement.html +++ b/payroll/templates/payroll/reimbursement/view_reimbursement.html @@ -1,98 +1,97 @@ {% extends 'index.html' %} {% block content %} {% load static %} {% load i18n %} - {% include 'payroll/reimbursement/nav.html' %} - -
    + +
    {% if reimbursement_exists %} - {% if view == "list" %} - {% include 'payroll/reimbursement/reimbursement_list.html' %} + {% if view == "list" %} + {% include 'payroll/reimbursement/reimbursement_list.html' %} + {% else %} + {% include 'payroll/reimbursement/request_cards.html' %} + {% endif %} {% else %} - {% include 'payroll/reimbursement/request_cards.html' %} - {% endif %} - {% else %} - {% include "filter_tags.html" %} -
    -
    -
    - Page not found. 404. -
    {% trans "There are currently no reimbursement to consider." %}
    -
    + {% include "filter_tags.html" %} +
    + Page not found. 404. +

    {% trans "No Records found." %}

    +

    {% trans "There are currently no reimbursement to consider." %}

    -
    {% endif %} -
    - + + - + + +
    -
    +
    +
    +
    -
    -
    - -
    - - + + function hideEnlargeattachment() { + var enlargeattachmentContainer = $('#enlargeattachmentContainer') + enlargeattachmentContainer.empty() + } + $(document).on('click', function (event) { + if (!$(event.target).closest('#enlargeattachmentContainer').length) { + hideEnlargeattachment() + } + }) + {% endblock %} diff --git a/pms/models.py b/pms/models.py index e287c0fe3..25ebf19dc 100644 --- a/pms/models.py +++ b/pms/models.py @@ -1003,18 +1003,22 @@ class Feedback(HorillaModel): related_name="feedback_colleague", blank=True, verbose_name=_("Colleague"), + help_text=_("Employees working on the same department."), ) subordinate_id = models.ManyToManyField( Employee, related_name="feedback_subordinate", blank=True, verbose_name=_("Subordinates"), + help_text=_( + "Employees for whom the feedback requester is the reporting manager" + ), ) others_id = models.ManyToManyField( Employee, related_name="feedback_others", blank=True, - verbose_name=_("Employees"), + verbose_name=_("Other Employees"), ) question_template_id = models.ForeignKey( QuestionTemplate, diff --git a/base/templates/request_and_approve/feedback_answer.html b/pms/templates/dashboard/feedback_answer.html similarity index 92% rename from base/templates/request_and_approve/feedback_answer.html rename to pms/templates/dashboard/feedback_answer.html index 20f1fcf9a..004ba4131 100644 --- a/base/templates/request_and_approve/feedback_answer.html +++ b/pms/templates/dashboard/feedback_answer.html @@ -48,10 +48,9 @@
    {% else %}
    -

    - - {% trans "No records available at the moment." %} -

    + Page not found. 404. +

    {% trans "No Records found." %}

    +

    {% trans "No records available at the moment." %}

    {% endif %} {% if feedbacks.has_next or feedbacks.has_previous %} @@ -81,4 +80,4 @@ {% endif %}
    -{% endif %} +{% endif %} \ No newline at end of file diff --git a/pms/templates/feedback/feedback_creation.html b/pms/templates/feedback/feedback_creation.html index 41eb6691f..3b721a242 100644 --- a/pms/templates/feedback/feedback_creation.html +++ b/pms/templates/feedback/feedback_creation.html @@ -1,23 +1,16 @@ -{% extends 'index.html' %} -{% load static i18n %} -{% load i18n %} -{% load widget_tweaks %} - +{% extends 'index.html' %} {% load static i18n widget_tweaks %} {% block styles %} -{% endblock styles %} - -{% block content %} -{% if feedback_form.errors %} -
    -
    - {% for error in feedback_form.non_field_errors %} -
    - {{ error }} -
    - {% endfor %} +{% endblock styles %} {% block content %} {% if feedback_form.errors %} +
    +
    + {% for error in feedback_form.non_field_errors %} +
    + {{ error }}
    + {% endfor %}
    +
    {% endif %}
    @@ -29,10 +22,15 @@ {{feedback_form.non_field_errors}} {% csrf_token %}
    -

    {{feedback_form.verbose_name}}

    -
    - +

    + {{feedback_form.verbose_name}} +

    +
    + {{feedback_form.review_cycle}} {{feedback_form.review_cycle.errors}}
    @@ -40,26 +38,26 @@
    - + {{feedback_form.employee_id }} {{feedback_form.employee_id.errors }} -
    - + {{feedback_form.manager_id}} {{feedback_form.manager_id.errros}} -
    @@ -67,9 +65,18 @@
    +
    + + +
    - {{feedback_form.subordinate_id}} {{feedback_form.subordinate_id.errors}}
    @@ -77,21 +84,46 @@
    +
    + + +
    - {{feedback_form.colleague_id}} {{feedback_form.colleague_id.errors}}
    +
    +
    +
    + + {{feedback_form.others_id}} + {{feedback_form.others_id.errors}} +
    +
    +
    - + {{feedback_form.period}} {{feedback_form.period.errors}}
    @@ -100,8 +132,11 @@
    - + {{feedback_form.start_date}} {{feedback_form.start_date.errors}}
    @@ -110,8 +145,11 @@
    - + {{feedback_form.end_date}} {{feedback_form.end_date.errors}}
    @@ -121,19 +159,22 @@
    - + {{feedback_form.question_template_id}} {{feedback_form.question_template_id.errors}} -
    - + {{feedback_form.employee_key_results_id}} {{feedback_form.employee_key_results_id.errors}}
    @@ -142,17 +183,28 @@
    - +
    {{feedback_form.cyclic_feedback}}
    {{feedback_form.cyclic_feedback.errors}}
    - -