[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)
|
setattr(_thread_locals, "queryset_filter", queryset)
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
def get_all(self):
|
def entire(self):
|
||||||
"""
|
"""
|
||||||
Fetch all datas from a model without applying any company filter.
|
Fetch all datas from a model without applying any company filter.
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -191,6 +191,25 @@ class EmployeeForm(ModelForm):
|
|||||||
context = {"form": self}
|
context = {"form": self}
|
||||||
return render_to_string("employee/create_form/personal_info_as_p.html", context)
|
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):
|
def get_next_badge_id(self):
|
||||||
"""
|
"""
|
||||||
This method is used to generate badge id
|
This method is used to generate badge id
|
||||||
@@ -248,7 +267,7 @@ class EmployeeForm(ModelForm):
|
|||||||
"""
|
"""
|
||||||
badge_id = self.cleaned_data["badge_id"]
|
badge_id = self.cleaned_data["badge_id"]
|
||||||
if 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(
|
queryset = all_employees.filter(badge_id=badge_id).exclude(
|
||||||
pk=self.instance.pk if self.instance else None
|
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
|
work_info_history = True
|
||||||
|
|
||||||
employee = Employee.objects.filter(id=obj_id).first()
|
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()
|
emp = all_employees.filter(id=obj_id).first()
|
||||||
if employee is None:
|
if employee is None:
|
||||||
employee = emp
|
employee = emp
|
||||||
all_work_info = EmployeeWorkInformation.objects.get_all()
|
all_work_info = EmployeeWorkInformation.objects.entire()
|
||||||
cmpny = Company.objects.get(id=company)
|
cmpny = Company.objects.get(id=company)
|
||||||
work = all_work_info.filter(employee_id=employee).first()
|
work = all_work_info.filter(employee_id=employee).first()
|
||||||
if company != "all":
|
if company != "all":
|
||||||
|
|||||||
Reference in New Issue
Block a user