[UPDT] EMPLOYEE: Updated employee form by adding additional def clean method for email exist validation
This commit is contained in:
@@ -104,7 +104,7 @@ class HorillaCompanyManager(models.Manager):
|
||||
setattr(_thread_locals, "queryset_filter", queryset)
|
||||
return queryset
|
||||
|
||||
def get_all(self):
|
||||
def entire(self):
|
||||
"""
|
||||
Fetch all datas from a model without applying any company filter.
|
||||
"""
|
||||
|
||||
@@ -191,6 +191,25 @@ class EmployeeForm(ModelForm):
|
||||
context = {"form": self}
|
||||
return render_to_string("employee/create_form/personal_info_as_p.html", context)
|
||||
|
||||
def clean(self):
|
||||
super().clean()
|
||||
email = self.cleaned_data["email"]
|
||||
all_employees = Employee.objects.entire()
|
||||
exit_employee = all_employees.filter(email=email).first()
|
||||
|
||||
if exit_employee:
|
||||
company_id = getattr(
|
||||
getattr(exit_employee, "employee_work_info", None), "company_id", None
|
||||
)
|
||||
if company_id:
|
||||
error_message = _(
|
||||
"Employee with this Email already exists in company {}"
|
||||
).format(company_id)
|
||||
else:
|
||||
error_message = _(f"Employee with this Email already exists")
|
||||
|
||||
raise forms.ValidationError({"email": error_message})
|
||||
|
||||
def get_next_badge_id(self):
|
||||
"""
|
||||
This method is used to generate badge id
|
||||
@@ -248,7 +267,7 @@ class EmployeeForm(ModelForm):
|
||||
"""
|
||||
badge_id = self.cleaned_data["badge_id"]
|
||||
if badge_id:
|
||||
all_employees = Employee.objects.get_all()
|
||||
all_employees = Employee.objects.entire()
|
||||
queryset = all_employees.filter(badge_id=badge_id).exclude(
|
||||
pk=self.instance.pk if self.instance else None
|
||||
)
|
||||
|
||||
@@ -1353,11 +1353,11 @@ def employee_view_update(request, obj_id, **kwargs):
|
||||
work_info_history = True
|
||||
|
||||
employee = Employee.objects.filter(id=obj_id).first()
|
||||
all_employees = Employee.objects.get_all()
|
||||
all_employees = Employee.objects.entire()
|
||||
emp = all_employees.filter(id=obj_id).first()
|
||||
if employee is None:
|
||||
employee = emp
|
||||
all_work_info = EmployeeWorkInformation.objects.get_all()
|
||||
all_work_info = EmployeeWorkInformation.objects.entire()
|
||||
cmpny = Company.objects.get(id=company)
|
||||
work = all_work_info.filter(employee_id=employee).first()
|
||||
if company != "all":
|
||||
|
||||
Reference in New Issue
Block a user