From 0da929ff0cc4dce76db299150b0f2f5f7fbc480a Mon Sep 17 00:00:00 2001 From: Horilla Date: Mon, 30 Jun 2025 14:56:41 +0530 Subject: [PATCH] [FIX] LEAVE: Prevent duplicate compensatory leave types by excluding current instance in model validation --- leave/models.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/leave/models.py b/leave/models.py index ee5f03a95..9d38c5de4 100644 --- a/leave/models.py +++ b/leave/models.py @@ -281,8 +281,14 @@ class LeaveType(HorillaModel): def clean(self, *args, **kwargs): if self.is_compensatory_leave: - if LeaveType.objects.filter(is_compensatory_leave=True).count() >= 1: - raise ValidationError(_("Compensatory Leave Request already exists.")) + if ( + LeaveType.objects.filter(is_compensatory_leave=True) + .exclude(pk=self.pk) + .exists() + ): + raise ValidationError( + {"name": _("Compensatory Leave Request already exists.")} + ) def save(self, *args, **kwargs): if (