[UPDT] Add translation strings

This commit is contained in:
Horilla
2023-09-20 14:54:33 +05:30
parent fa8ef358d0
commit 42c5ec9d86
10 changed files with 152 additions and 63 deletions

View File

@@ -80,7 +80,7 @@ class JobPosition(models.Model):
job_position = models.CharField(max_length=50, blank=False, null=False, unique=True)
department_id = models.ForeignKey(
Department,
on_delete=models.CASCADE,
on_delete=models.PROTECT,
blank=True,
related_name="job_position",
verbose_name=_("Department"),
@@ -95,7 +95,7 @@ class JobRole(models.Model):
"""JobRole model"""
job_position_id = models.ForeignKey(
JobPosition, on_delete=models.CASCADE, verbose_name=_("Job Position")
JobPosition, on_delete=models.PROTECT, verbose_name=_("Job Position")
)
job_role = models.CharField(max_length=50, blank=False, null=True)
objects = models.Manager()
@@ -131,13 +131,13 @@ class RotatingWorkType(models.Model):
name = models.CharField(max_length=50)
work_type1 = models.ForeignKey(
WorkType,
on_delete=models.CASCADE,
on_delete=models.PROTECT,
related_name="work_type1",
verbose_name=_("Work Type 1"),
)
work_type2 = models.ForeignKey(
WorkType,
on_delete=models.CASCADE,
on_delete=models.PROTECT,
related_name="work_type2",
verbose_name=_("Work Type 2"),
)
@@ -181,12 +181,12 @@ class RotatingWorkTypeAssign(models.Model):
employee_id = models.ForeignKey(
"employee.Employee",
on_delete=models.CASCADE,
on_delete=models.PROTECT,
null=True,
verbose_name=_("Employee"),
)
rotating_work_type_id = models.ForeignKey(
RotatingWorkType, on_delete=models.CASCADE, verbose_name=_("Rotating work type")
RotatingWorkType, on_delete=models.PROTECT, verbose_name=_("Rotating work type")
)
next_change_date = models.DateField(null=True)
start_date = models.DateField(default=django.utils.timezone.now)
@@ -203,11 +203,11 @@ class RotatingWorkTypeAssign(models.Model):
current_work_type = models.ForeignKey(
WorkType,
null=True,
on_delete=models.DO_NOTHING,
on_delete=models.PROTECT,
related_name="current_work_type",
)
next_work_type = models.ForeignKey(
WorkType, null=True, on_delete=models.DO_NOTHING, related_name="next_work_type"
WorkType, null=True, on_delete=models.PROTECT, related_name="next_work_type"
)
is_active = models.BooleanField(default=True)
objects = models.Manager()
@@ -254,7 +254,6 @@ class EmployeeShiftDay(models.Model):
def __str__(self) -> str:
return str(_(self.day))
from django.utils.translation import gettext_lazy as _
class EmployeeShift(models.Model):
"""
EmployeeShift model
@@ -288,10 +287,10 @@ class EmployeeShiftSchedule(models.Model):
"""
day = models.ForeignKey(
EmployeeShiftDay, on_delete=models.CASCADE, related_name="day_schedule"
EmployeeShiftDay, on_delete=models.PROTECT, related_name="day_schedule"
)
shift_id = models.ForeignKey(
EmployeeShift, on_delete=models.CASCADE, verbose_name=_("Shift")
EmployeeShift, on_delete=models.PROTECT, verbose_name=_("Shift")
)
minimum_working_hour = models.CharField(
default="08:15", max_length=5, validators=[validate_time_format]
@@ -329,13 +328,13 @@ class RotatingShift(models.Model):
shift1 = models.ForeignKey(
EmployeeShift,
related_name="shift1",
on_delete=models.CASCADE,
on_delete=models.PROTECT,
verbose_name=_("Shift 1"),
)
shift2 = models.ForeignKey(
EmployeeShift,
related_name="shift2",
on_delete=models.CASCADE,
on_delete=models.PROTECT,
verbose_name=_("Shift 2"),
)
objects = models.Manager()
@@ -354,10 +353,10 @@ class RotatingShiftAssign(models.Model):
"""
employee_id = models.ForeignKey(
"employee.Employee", on_delete=models.CASCADE, verbose_name=_("Employee")
"employee.Employee", on_delete=models.PROTECT, verbose_name=_("Employee")
)
rotating_shift_id = models.ForeignKey(
RotatingShift, on_delete=models.CASCADE, verbose_name=_("Rotating Shift")
RotatingShift, on_delete=models.PROTECT, verbose_name=_("Rotating Shift")
)
next_change_date = models.DateField(null=True)
start_date = models.DateField(
@@ -375,12 +374,12 @@ class RotatingShiftAssign(models.Model):
)
current_shift = models.ForeignKey(
EmployeeShift,
on_delete=models.DO_NOTHING,
on_delete=models.PROTECT,
null=True,
related_name="current_shift",
)
next_shift = models.ForeignKey(
EmployeeShift, on_delete=models.DO_NOTHING, null=True, related_name="next_shift"
EmployeeShift, on_delete=models.PROTECT, null=True, related_name="next_shift"
)
is_active = models.BooleanField(default=True)
objects = models.Manager()
@@ -411,7 +410,7 @@ class WorkTypeRequest(models.Model):
employee_id = models.ForeignKey(
"employee.Employee",
on_delete=models.CASCADE,
on_delete=models.PROTECT,
null=True,
related_name="work_type_request",
verbose_name=_("Employee"),
@@ -422,13 +421,13 @@ class WorkTypeRequest(models.Model):
)
work_type_id = models.ForeignKey(
WorkType,
on_delete=models.CASCADE,
on_delete=models.PROTECT,
related_name="requested_work_type",
verbose_name=_("Work Type"),
)
previous_work_type_id = models.ForeignKey(
WorkType,
on_delete=models.DO_NOTHING,
on_delete=models.PROTECT,
null=True,
blank=True,
related_name="previous_work_type",
@@ -470,7 +469,7 @@ class ShiftRequest(models.Model):
employee_id = models.ForeignKey(
"employee.Employee",
on_delete=models.CASCADE,
on_delete=models.PROTECT,
null=True,
related_name="shift_request",
verbose_name=_("Employee"),
@@ -481,13 +480,13 @@ class ShiftRequest(models.Model):
)
shift_id = models.ForeignKey(
EmployeeShift,
on_delete=models.CASCADE,
on_delete=models.PROTECT,
related_name="requested_shift",
verbose_name=_("Shift"),
)
previous_shift_id = models.ForeignKey(
EmployeeShift,
on_delete=models.DO_NOTHING,
on_delete=models.PROTECT,
null=True,
blank=True,
related_name="previous_shift",

View File

@@ -50,7 +50,7 @@
<a href="{% url 'company-update' company.id %}" class="oh-btn oh-btn--light-bkg w-50" title="{% trans 'Edit' %}"><ion-icon name="create-outline"></ion-icon></a>
{% endif %}
{% if perms.base.delete_company %}
<form action="{% url 'company-delete' company.id %}" onsubmit="return confirm('{% trans "Are you sure you want to delete this company?" %}');" method='post'>
<form action="{% url 'company-delete' company.id %}" onsubmit="return confirm('{% trans "Are you sure you want to delete this company?" %}');" method='post' class='w-50'>
{% csrf_token %}
<button type='submit' class="oh-btn oh-btn--danger-outline oh-btn--light-bkg w-100" title="{% trans 'Remove' %}"><ion-icon name="trash-outline"></ion-icon></button>
</form>

View File

@@ -21,9 +21,9 @@
<a href="{% url 'department-update' dep.id %}" type="button" class="oh-btn oh-btn--light-bkg w-50"> <ion-icon name="create-outline"></ion-icon></a>
{% endif %}
{% if perms.base.delete_deaprtment %}
<form action="{% url 'department-delete' dep.id %}" onsubmit="return confirm('{% trans "Are you sure you want to delete this department?" %}');" method='post'>
<form action="{% url 'department-delete' dep.id %}" class="w-50" onsubmit="return confirm('{% trans "Are you sure you want to delete this department?" %}');" method='post'>
{% csrf_token %}
<button type='submit' class="oh-btn oh-btn--danger-outline oh-btn--light-bkg w-40" title="{% trans 'Remove' %}"><ion-icon name="trash-outline"></ion-icon></button>
<button type='submit' class="oh-btn oh-btn--danger-outline oh-btn--light-bkg w-100" title="{% trans 'Remove' %}"><ion-icon name="trash-outline"></ion-icon></button>
</form>
{% endif %}
</div>

View File

@@ -20,7 +20,7 @@
<a href="{% url 'employee-type-update' type.id %}" type="button" class="oh-btn oh-btn--light-bkg w-50"> <ion-icon name="create-outline"></ion-icon></a>
{% endif %}
{% if perms.base.delete_employeetype %}
<form action="{% url 'employee-type-delete' type.id %}" onsubmit="return confirm('{% trans "Are you sure you want to delete this employee type?" %}');" method='post'>
<form action="{% url 'employee-type-delete' type.id %}" class="w-50" onsubmit="return confirm('{% trans "Are you sure you want to delete this employee type?" %}');" method='post'>
{% csrf_token %}
<button type='submit' class="oh-btn oh-btn--danger-outline oh-btn--light-bkg w-100" title="{% trans 'Remove' %}"><ion-icon name="trash-outline"></ion-icon></button>
</form>

View File

@@ -30,6 +30,7 @@
action="{% url 'rotating-shift-delete' rshift.id %}"
onsubmit="return confirm('{% trans "Are you sure you want to delete this rotating shift?" %}');"
method="post"
class="w-50"
>
{% csrf_token %}
<button

View File

@@ -27,7 +27,7 @@
></a>
{% endif %} {% if perms.base.delete_rotatingworktype %}
<form
action="{% url 'rotating-work-type-delete' rwork.id %}"
action="{% url 'rotating-work-type-delete' rwork.id %}" class="w-50"
onsubmit="return confirm('{% trans "Are you sure you want to delete this rotating work type?" %}');"
method="post"
>

View File

@@ -28,7 +28,7 @@
<a href="{% url 'employee-shift-update' shift.id %}" type="button" class="oh-btn oh-btn--light-bkg w-50"> <ion-icon name="create-outline"></ion-icon></a>
{% endif %}
{% if perms.base.delete_employeeshift %}
<form action="{% url 'employee-shift-delete' shift.id %}" onsubmit="return confirm('{% trans "Are you sure you want to delete this shift?" %}');" method='post'>
<form action="{% url 'employee-shift-delete' shift.id %}" class="w-50" onsubmit="return confirm('{% trans "Are you sure you want to delete this shift?" %}');" method='post'>
{% csrf_token %}
<button type='submit' class="oh-btn oh-btn--danger-outline oh-btn--light-bkg w-100" title="{% trans 'Remove' %}"><ion-icon name="trash-outline"></ion-icon></button>
</form>

View File

@@ -19,7 +19,7 @@
<ion-icon name="create-outline"></ion-icon></a>
{% endif %}
{% if perms.base.delete_worktype %}
<form action="{% url 'work-type-delete' type.id %}"
<form action="{% url 'work-type-delete' type.id %}" class="w-50"
onsubmit="return confirm('{% trans "Are you sure you want to delete this work type?" %}');" method='post'>
{% csrf_token %}
<button type='submit' class="oh-btn oh-btn--danger-outline oh-btn--light-bkg w-100"

View File

@@ -182,4 +182,10 @@ _("Asset category"),
_("Asset status"),
_("True"),
_("False"),
_("Onboarding Portal S…"),
_("Onboarding Portal S…"),
_("Employee work information"),
_("Rotating work type assign"),
_("Employee shift schedule"),
_("Rotating shift assign"),
_("Onboarding portal"),
_(""),

View File

@@ -75,7 +75,7 @@ from base.methods import (
)
def custom404(request, exception):
def custom404(request):
"""
Custom 404 method
"""
@@ -90,21 +90,21 @@ def is_reportingmanger(request, instance):
"""
manager = request.user.employee_get
try:
employee_workinfo_manager = (
employee_work_info_manager = (
instance.employee_id.employee_work_info.reporting_manager_id
)
except Exception:
return HttpResponse("This Employee Dont Have any work information")
return manager == employee_workinfo_manager
return manager == employee_work_info_manager
def paginator_qry(qryset, page_number):
def paginator_qry(queryset, page_number):
"""
Common paginator method
"""
paginator = Paginator(qryset, 50)
qryset = paginator.get_page(page_number)
return qryset
paginator = Paginator(queryset, 50)
queryset = paginator.get_page(page_number)
return queryset
def login_user(request):
@@ -412,7 +412,6 @@ def user_group_delete(request, id):
return redirect("/settings/user-group-create")
@login_required
@permission_required("base.add_company")
def company_create(request):
@@ -475,8 +474,15 @@ def company_delete(request, id):
messages.success(request, _("Company deleted."))
except Company.DoesNotExist:
messages.error(request, _("Company not found."))
except ProtectedError:
messages.error(request, _("This company already in use"))
except ProtectedError as e:
model_verbose_names_set = set()
for obj in e.protected_objects:
model_verbose_names_set.add(_(obj._meta.verbose_name.capitalize()))
model_names_str = ", ".join(model_verbose_names_set)
messages.error(
request, _("This company is already in use for {}.".format(model_names_str))
)
return redirect(company_create)
@@ -541,8 +547,16 @@ def department_delete(request, id):
messages.success(request, _("Department deleted."))
except Department.DoesNotExist:
messages.error(request, _("Department not found."))
except ProtectedError:
messages.error(request, _("Department already in use."))
except ProtectedError as e:
model_verbose_names_set = set()
for obj in e.protected_objects:
model_verbose_names_set.add(_(obj._meta.verbose_name.capitalize()))
model_names_str = ", ".join(model_verbose_names_set)
messages.error(
request,
_("This department is already in use for {}.".format(model_names_str)),
)
return redirect("/settings/department-creation")
@@ -607,8 +621,16 @@ def job_position_delete(request, id):
messages.success(request, _("Job Position Deleted."))
except JobPosition.DoesNotExist:
messages.error(request, _("JobPosition not found."))
except ProtectedError:
messages.error(request, _("This job position already in use."))
except ProtectedError as e:
model_verbose_names_set = set()
for obj in e.protected_objects:
model_verbose_names_set.add(_(obj._meta.verbose_name.capitalize()))
model_names_str = ", ".join(model_verbose_names_set)
messages.error(
request,
_("This job position is already in use for {}.".format(model_names_str)),
)
return redirect("/settings/job-position-creation")
@@ -671,8 +693,17 @@ def job_role_delete(request, id):
messages.success(request, _("Job Role Deleted."))
except JobRole.DoesNotExist:
messages.error(request, _("Job role not found."))
except ProtectedError:
messages.error(request, _("This job role already in use."))
except ProtectedError as e:
model_verbose_names_set = set()
for obj in e.protected_objects:
model_verbose_names_set.add(_(obj._meta.verbose_name.capitalize()))
model_names_str = ", ".join(model_verbose_names_set)
messages.error(
request,
_("This job role is already in use for {}.".format(model_names_str)),
)
return redirect("/settings/job-role-create")
@@ -739,8 +770,17 @@ def work_type_delete(request, id):
messages.success(request, _("Work type deleted."))
except WorkType.DoesNotExist:
messages.error(request, _("Work type not found."))
except ProtectedError:
messages.error(request, _("This work type already in use."))
except ProtectedError as e:
model_verbose_names_set = set()
for obj in e.protected_objects:
model_verbose_names_set.add(_(obj._meta.verbose_name.capitalize()))
model_names_str = ", ".join(model_verbose_names_set)
messages.error(
request,
_("This work type is already in use for {}.".format(model_names_str)),
)
return redirect("/settings/work-type-create")
@@ -807,8 +847,21 @@ def rotating_work_type_delete(request, id):
messages.success(request, _("Rotating work type deleted."))
except RotatingWorkType.DoesNotExist:
messages.error(request, _("Rotating work type not found."))
except ProtectedError:
messages.error(request, _("This rotating work type already in use."))
except ProtectedError as e:
model_verbose_names_set = set()
for obj in e.protected_objects:
model_verbose_names_set.add(_(obj._meta.verbose_name.capitalize()))
model_names_str = ", ".join(model_verbose_names_set)
messages.error(
request,
_(
"This rotating work type is already in use for {}.".format(
model_names_str
)
),
)
return redirect("/settings/rotating-work-type-create")
@@ -1133,9 +1186,18 @@ def employee_type_delete(request, id):
messages.success(request, _("Employee type deleted."))
except EmployeeType.DoesNotExist:
messages.error(request, _("Employee type not found."))
except ProtectedError:
messages.error(request, _("This Employee type already in use."))
except ProtectedError as e:
model_verbose_names_set = set()
for obj in e.protected_objects:
model_verbose_names_set.add(_(obj._meta.verbose_name.capitalize()))
model_names_str = ", ".join(model_verbose_names_set)
messages.error(
request,
_("This employee type is already in use for {}.".format(model_names_str)),
)
return redirect("/settings/employee-type-create")
@@ -1197,10 +1259,18 @@ def employee_shift_delete(request, id):
messages.success(request, _("Employee shift deleted."))
except EmployeeShift.DoesNotExist:
messages.error(request, _("This shift not found."))
except ProtectedError:
messages.error(request, _("This shift already in use."))
except ProtectedError as e:
model_verbose_names_set = set()
for obj in e.protected_objects:
model_verbose_names_set.add(_(obj._meta.verbose_name.capitalize()))
model_names_str = ", ".join(model_verbose_names_set)
messages.error(
request, _("This shift is already in use for {}.".format(model_names_str))
)
return redirect("/settings/employee-shift-create")
@login_required
@permission_required("base.add_employeeshiftschedule")
def employee_shift_schedule_create(request):
@@ -1329,8 +1399,16 @@ def rotating_shift_delete(request, id):
messages.success(request, _("Rotating shift deleted."))
except RotatingShift.DoesNotExist:
messages.error(request, _("Rotating shift not found."))
except ProtectedError:
messages.error(request, _("You cannot delete this rotating shift"))
except ProtectedError as e:
model_verbose_names_set = set()
for obj in e.protected_objects:
model_verbose_names_set.add(_(obj._meta.verbose_name.capitalize()))
model_names_str = ", ".join(model_verbose_names_set)
messages.error(
request,
_("This rotating shift is already in use for {}.".format(model_names_str)),
)
return redirect(rotating_shift_create)
@@ -1756,7 +1834,8 @@ def work_type_request(request):
recipient=(
instance.employee_id.employee_work_info.reporting_manager_id.employee_user_id
),
verb=f"You have new work type request to validate for {instance.employee_id}",
verb=f"You have new work type request to \
validate for {instance.employee_id}",
verb_ar=f"لديك طلب نوع وظيفة جديد للتحقق من \
{instance.employee_id}",
verb_de=f"Sie haben eine neue Arbeitstypanfrage zur \
@@ -2072,11 +2151,15 @@ def shift_request(request):
recipient=(
instance.employee_id.employee_work_info.reporting_manager_id.employee_user_id
),
verb=f"You have new shift request to approve for {instance.employee_id}",
verb=f"You have new shift request to approve \
for {instance.employee_id}",
verb_ar=f"لديك طلب وردية جديد للموافقة عليه لـ {instance.employee_id}",
verb_de=f"Sie müssen eine neue Schichtanfrage für {instance.employee_id} genehmigen",
verb_es=f"Tiene una nueva solicitud de turno para aprobar para {instance.employee_id}",
verb_fr=f"Vous avez une nouvelle demande de quart de travail à approuver pour {instance.employee_id}",
verb_de=f"Sie müssen eine neue Schichtanfrage \
für {instance.employee_id} genehmigen",
verb_es=f"Tiene una nueva solicitud de turno para \
aprobar para {instance.employee_id}",
verb_fr=f"Vous avez une nouvelle demande de quart de\
travail à approuver pour {instance.employee_id}",
icon="information",
redirect="/shift-requests/shift-request-view",
)