From 3033319a1264a19c30c0efe09b6961a3f778a4b2 Mon Sep 17 00:00:00 2001 From: Horilla Date: Tue, 23 Dec 2025 15:06:33 +0530 Subject: [PATCH] [UPDT] BASE: Updated modules with translation --- employee/filters.py | 6 ++-- employee/models.py | 4 +-- employee/views.py | 2 +- facedetection/forms.py | 2 +- helpdesk/models.py | 61 +++++++++++++++++----------------- horilla_documents/forms.py | 3 +- horilla_documents/models.py | 55 +++++++++++++----------------- leave/forms.py | 7 ++-- onboarding/sidebar.py | 1 - payroll/models/models.py | 6 +++- templates/floating_button.html | 10 +++--- 11 files changed, 72 insertions(+), 85 deletions(-) diff --git a/employee/filters.py b/employee/filters.py index de70fdd8a..4ae944943 100644 --- a/employee/filters.py +++ b/employee/filters.py @@ -63,7 +63,7 @@ class EmployeeFilter(HorillaFilterSet): label="Is Active", choices=[ (True, _("Yes")), - (False, "No"), + (False, _("No")), ], ) @@ -72,7 +72,7 @@ class EmployeeFilter(HorillaFilterSet): label="Is From Onboarding", choices=[ (True, _("Yes")), - (False, "No"), + (False, _("No")), ], ) is_directly_converted = django_filters.ChoiceFilter( @@ -80,7 +80,7 @@ class EmployeeFilter(HorillaFilterSet): label="Is Directly Converted", choices=[ (True, _("Yes")), - (False, "No"), + (False, _("No")), ], ) probation_from = django_filters.DateFilter( diff --git a/employee/models.py b/employee/models.py index 4774a5cca..3fd0b4e60 100644 --- a/employee/models.py +++ b/employee/models.py @@ -848,9 +848,7 @@ class Policy(HorillaModel): ) specific_employees = models.ManyToManyField(Employee, blank=True, editable=False) attachments = models.ManyToManyField(PolicyMultipleFile, blank=True) - company_id = models.ManyToManyField( - Company, blank=True, verbose_name=trans("Company") - ) + company_id = models.ManyToManyField(Company, blank=True, verbose_name=_("Company")) objects = HorillaCompanyManager("company_id") diff --git a/employee/views.py b/employee/views.py index 8fc692b3f..3b0ac6135 100755 --- a/employee/views.py +++ b/employee/views.py @@ -3523,7 +3523,7 @@ def initial_prefix(request): form = EmployeeGeneralSettingPrefixForm(request.POST, instance=instance) if form.is_valid(): form.save() - messages.success(request, __("Initial prefix updated successfully.")) + messages.success(request, _("Initial prefix updated successfully.")) return HttpResponseRedirect(request.META.get("HTTP_REFERER", "/")) else: messages.error(request, "There was an error updating the prefix.") diff --git a/facedetection/forms.py b/facedetection/forms.py index 4d554c43c..71345d56d 100644 --- a/facedetection/forms.py +++ b/facedetection/forms.py @@ -1,8 +1,8 @@ from django.template.loader import render_to_string +from django.utils.translation import gettext_lazy as _ from base.forms import ModelForm from facedetection.models import FaceDetection -from django.utils.translation import gettext_lazy as _ class FaceDetectionSetupForm(ModelForm): diff --git a/helpdesk/models.py b/helpdesk/models.py index ec5c8cc90..d2725d2b9 100644 --- a/helpdesk/models.py +++ b/helpdesk/models.py @@ -5,8 +5,7 @@ from django import apps from django.db import models from django.db.models.signals import post_delete, post_save from django.forms import ValidationError -from django.utils.translation import gettext as _ -from django.utils.translation import gettext_lazy as trans +from django.utils.translation import gettext_lazy as _ from base.horilla_company_manager import HorillaCompanyManager from base.models import Company, Department, JobPosition, Tags @@ -17,32 +16,31 @@ from horilla_audit.methods import get_diff from horilla_audit.models import HorillaAuditInfo, HorillaAuditLog PRIORITY = [ - ("low", trans("Low")), - ("medium", trans("Medium")), - ("high", trans("High")), + ("low", _("Low")), + ("medium", _("Medium")), + ("high", _("High")), ] - MANAGER_TYPES = [ - ("department", trans("Department")), - ("job_position", trans("Job Position")), - ("individual", trans("Individual")), + ("department", _("Department")), + ("job_position", _("Job Position")), + ("individual", _("Individual")), ] TICKET_TYPES = [ - ("suggestion", trans("Suggestion")), - ("complaint", trans("Complaint")), - ("service_request", trans("Service Request")), - ("meeting_request", trans("Meeting Request")), - ("anounymous_complaint", trans("Anonymous Complaint")), - ("others", trans("Others")), + ("suggestion", _("Suggestion")), + ("complaint", _("Complaint")), + ("service_request", _("Service Request")), + ("meeting_request", _("Meeting Request")), + ("anounymous_complaint", _("Anonymous Complaint")), + ("others", _("Others")), ] TICKET_STATUS = [ - ("new", trans("New")), - ("in_progress", trans("In Progress")), - ("on_hold", trans("On Hold")), - ("resolved", trans("Resolved")), - ("canceled", trans("Canceled")), + ("new", _("New")), + ("in_progress", _("In Progress")), + ("on_hold", _("On Hold")), + ("resolved", _("Resolved")), + ("canceled", _("Canceled")), ] @@ -76,11 +74,9 @@ class DepartmentManager(HorillaModel): class TicketType(HorillaModel): - title = models.CharField(max_length=100, unique=True, verbose_name=trans("Title")) - type = models.CharField( - choices=TICKET_TYPES, max_length=50, verbose_name=trans("Type") - ) - prefix = models.CharField(max_length=3, unique=True, verbose_name=trans("Prefix")) + title = models.CharField(max_length=100, unique=True, verbose_name=_("Title")) + type = models.CharField(choices=TICKET_TYPES, max_length=50, verbose_name=_("Type")) + prefix = models.CharField(max_length=3, unique=True, verbose_name=_("Prefix")) company_id = models.ForeignKey( Company, null=True, editable=False, on_delete=models.PROTECT ) @@ -90,20 +86,23 @@ class TicketType(HorillaModel): return self.title class Meta: - verbose_name = trans("Ticket Type") - verbose_name_plural = trans("Ticket Types") + verbose_name = _("Ticket Type") + verbose_name_plural = _("Ticket Types") class Ticket(HorillaModel): title = models.CharField(max_length=50) employee_id = models.ForeignKey( - Employee, on_delete=models.PROTECT, related_name="ticket", verbose_name="Owner" + Employee, + on_delete=models.PROTECT, + related_name="ticket", + verbose_name=_("Owner"), ) ticket_type = models.ForeignKey( TicketType, on_delete=models.PROTECT, - verbose_name=trans("Ticket Type"), + verbose_name=_("Ticket Type"), ) description = models.TextField(max_length=255) priority = models.CharField(choices=PRIORITY, max_length=100, default="low") @@ -246,9 +245,9 @@ class Attachment(HorillaModel): class FAQCategory(HorillaModel): - title = models.CharField(max_length=30, verbose_name=trans("Title")) + title = models.CharField(max_length=30, verbose_name=_("Title")) description = models.TextField( - blank=True, null=True, max_length=255, verbose_name=trans("Description") + blank=True, null=True, max_length=255, verbose_name=_("Description") ) company_id = models.ForeignKey( Company, diff --git a/horilla_documents/forms.py b/horilla_documents/forms.py index d3b7f7055..265e0ef06 100644 --- a/horilla_documents/forms.py +++ b/horilla_documents/forms.py @@ -1,5 +1,6 @@ from django import forms 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 @@ -9,8 +10,6 @@ from horilla_documents.models import Document, DocumentRequest from horilla_widgets.widgets.horilla_multi_select_field import HorillaMultiSelectField from horilla_widgets.widgets.select_widgets import HorillaMultiSelectWidget -from django.utils.translation import gettext as _ - class DocumentRequestForm(ModelForm): """form to create a new Document Request""" diff --git a/horilla_documents/models.py b/horilla_documents/models.py index 5d64c6f21..22d7d1a36 100644 --- a/horilla_documents/models.py +++ b/horilla_documents/models.py @@ -7,16 +7,15 @@ from django.db.models.signals import m2m_changed, post_save from django.dispatch import receiver from django.forms import ValidationError from django.utils.translation import gettext as _ -from django.utils.translation import gettext_lazy as trans from base.horilla_company_manager import HorillaCompanyManager from employee.models import Employee from horilla.models import HorillaModel, upload_path STATUS = [ - ("requested", "Requested"), - ("approved", "Approved"), - ("rejected", "Rejected"), + ("requested", _("Requested")), + ("approved", _("Approved")), + ("rejected", _("Rejected")), ] FORMATS = [ ("any", "Any"), @@ -43,16 +42,14 @@ def document_create(instance): class DocumentRequest(HorillaModel): - title = models.CharField(max_length=100, verbose_name=trans("Title")) - employee_id = models.ManyToManyField(Employee, verbose_name=trans("Employee")) - format = models.CharField( - choices=FORMATS, max_length=10, verbose_name=trans("Format") - ) + title = models.CharField(max_length=100, verbose_name=_("Title")) + employee_id = models.ManyToManyField(Employee, verbose_name=_("Employees")) + format = models.CharField(choices=FORMATS, max_length=10, verbose_name=_("Format")) max_size = models.IntegerField( - blank=True, null=True, verbose_name=trans("Max size (In MB)") + blank=True, null=True, verbose_name=_("Max size (In MB)") ) description = models.TextField( - blank=True, null=True, max_length=255, verbose_name=trans("Description") + blank=True, null=True, max_length=255, verbose_name=_("Description") ) objects = HorillaCompanyManager( related_company_field="employee_id__employee_work_info__company_id" @@ -63,8 +60,8 @@ class DocumentRequest(HorillaModel): Meta class to add additional options """ - verbose_name = trans("Document Request") - verbose_name_plural = trans("Document Requests") + verbose_name = _("Document Request") + verbose_name_plural = _("Document Requests") def __str__(self): return self.title @@ -82,31 +79,27 @@ def document_request_m2m_changed(sender, instance, action, **kwargs): class Document(HorillaModel): title = models.CharField(max_length=250) employee_id = models.ForeignKey( - Employee, on_delete=models.PROTECT, verbose_name=trans("Employee") + Employee, on_delete=models.PROTECT, verbose_name=_("Employee") ) document_request_id = models.ForeignKey( DocumentRequest, on_delete=models.PROTECT, null=True ) document = models.FileField( - upload_to=upload_path, null=True, verbose_name=trans("Document") + upload_to=upload_path, null=True, verbose_name=_("Document") ) status = models.CharField( - choices=STATUS, max_length=10, default="requested", verbose_name=trans("Status") + choices=STATUS, max_length=10, default="requested", verbose_name=_("Status") ) reject_reason = models.TextField( - blank=True, null=True, max_length=255, verbose_name=trans("Reject Reason") - ) - issue_date = models.DateField( - null=True, blank=True, verbose_name=trans("Issue Date") - ) - expiry_date = models.DateField( - null=True, blank=True, verbose_name=trans("Expiry Date") + 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( - default=1, null=True, verbose_name=trans("Notify Before") + default=1, null=True, verbose_name=_("Notify Before") ) is_digital_asset = models.BooleanField( - default=False, verbose_name=trans("Is Digital Asset") + default=False, verbose_name=_("Is Digital Asset") ) objects = HorillaCompanyManager( related_company_field="employee_id__employee_work_info__company_id" @@ -117,8 +110,8 @@ class Document(HorillaModel): Meta class to add additional options """ - verbose_name = trans("Document") - verbose_name_plural = trans("Documents") + verbose_name = _("Document") + verbose_name_plural = _("Documents") def __str__(self) -> str: return f"{self.title}" @@ -128,9 +121,7 @@ class Document(HorillaModel): file = self.document if len(self.title) < 3: - raise ValidationError( - {"title": trans("Title must be at least 3 characters")} - ) + raise ValidationError({"title": _("Title must be at least 3 characters")}) if file and self.document_request_id: format = self.document_request_id.format @@ -138,7 +129,7 @@ class Document(HorillaModel): if max_size: if file.size > max_size * 1024 * 1024: raise ValidationError( - {"document": trans("File size exceeds the limit")} + {"document": _("File size exceeds the limit")} ) ext = file.name.split(".")[1].lower() @@ -146,7 +137,7 @@ class Document(HorillaModel): pass elif ext != format: raise ValidationError( - {"document": trans("Please upload {} file only.").format(format)} + {"document": _("Please upload {} file only.").format(format)} ) def save(self, *args, **kwargs): diff --git a/leave/forms.py b/leave/forms.py index 80eac9fd2..bd0baa71a 100644 --- a/leave/forms.py +++ b/leave/forms.py @@ -15,8 +15,7 @@ from django.core.exceptions import ValidationError from django.db.models import Q from django.forms.widgets import TextInput from django.template.loader import render_to_string -from django.utils.translation import gettext as _ -from django.utils.translation import gettext_lazy as trans +from django.utils.translation import gettext_lazy as _ from base.forms import ModelForm as BaseModelForm from base.methods import filtersubordinatesemployeemodel, reload_queryset @@ -708,8 +707,8 @@ class AssignLeaveForm(HorillaForm): attrs={"class": "oh-select oh-select-2 mb-2", "required": True} ), empty_label=None, + label=_("Leave Type"), required=False, - label=trans("Leave Type"), ) employee_id = HorillaMultiSelectField( queryset=Employee.objects.all(), @@ -720,7 +719,7 @@ class AssignLeaveForm(HorillaForm): filter_template_path="employee_filters.html", required=True, ), - label=trans("Employee"), + label=_("Employee"), ) def clean(self): diff --git a/onboarding/sidebar.py b/onboarding/sidebar.py index c06d63598..546f552d6 100644 --- a/onboarding/sidebar.py +++ b/onboarding/sidebar.py @@ -6,7 +6,6 @@ To set Horilla sidebar for onboarding from django.contrib.auth.context_processors import PermWrapper from django.urls import reverse - from django.utils.translation import gettext_lazy as _ from onboarding.templatetags.onboardingfilters import is_taskmanager diff --git a/payroll/models/models.py b/payroll/models/models.py index 492230bc0..da5c777e5 100644 --- a/payroll/models/models.py +++ b/payroll/models/models.py @@ -1885,7 +1885,11 @@ class PayslipAutoGenerate(models.Model): ) auto_generate = models.BooleanField(default=False, verbose_name=_("Auto generate")) company_id = models.OneToOneField( - Company, on_delete=models.CASCADE, null=True, blank=True, verbose_name="Company" + Company, + on_delete=models.CASCADE, + null=True, + blank=True, + verbose_name=_("Company"), ) def clean(self): diff --git a/templates/floating_button.html b/templates/floating_button.html index 1bd074483..88ce4e1e2 100644 --- a/templates/floating_button.html +++ b/templates/floating_button.html @@ -1,6 +1,4 @@ -{% load i18n %} - -{% load static %} +{% load static i18n %} {% load horillafilters %}