diff --git a/attendance/forms.py b/attendance/forms.py index 5dd41c4b8..7d927e4e9 100644 --- a/attendance/forms.py +++ b/attendance/forms.py @@ -119,7 +119,7 @@ class AttendanceUpdateForm(ModelForm): "requested_data", "is_validate_request", "is_validate_request_approved", - "attendance_overtime_approve", + "attendance_overtime", ] model = Attendance widgets = { @@ -134,6 +134,8 @@ class AttendanceUpdateForm(ModelForm): if instance := kwargs.get("instance"): # django forms not showing value inside the date, time html element. # so here overriding default forms instance method to set initial value + condition = AttendanceValidationCondition.objects.first() + condition = strtime_seconds(condition.minimum_overtime_to_approve) initial = { "attendance_date": instance.attendance_date.strftime("%Y-%m-%d"), "attendance_clock_in": instance.attendance_clock_in.strftime("%H:%M"), @@ -151,6 +153,11 @@ class AttendanceUpdateForm(ModelForm): kwargs["initial"] = initial super().__init__(*args, **kwargs) + self.fields['attendance_overtime_approve'].label = _("Approve overtime?") + self.fields['attendance_validated'].label = _("Validate Attendance?") + if strtime_seconds(instance.attendance_overtime) < condition or not instance.attendance_validated: + del self.fields['attendance_overtime_approve'] + def as_p(self, *args, **kwargs): """ Render the form fields as HTML table rows with Bootstrap styling. @@ -159,20 +166,6 @@ class AttendanceUpdateForm(ModelForm): table_html = render_to_string("attendance_form.html", context) return table_html - def clean(self) -> Dict[str, Any]: - super().clean() - overtime = strtime_seconds(self.cleaned_data["attendance_overtime"]) - minimum_hour = strtime_seconds(self.cleaned_data["minimum_hour"]) - at_work = strtime_seconds(self.cleaned_data["attendance_worked_hour"]) - if overtime > 0 and (at_work - minimum_hour) != overtime: - raise ValidationError( - { - "attendance_overtime": "OT will calculate automatically, So set it to 00:00 or \ - manually add the OT" - } - ) - return - class AttendanceForm(ModelForm): """ diff --git a/attendance/models.py b/attendance/models.py index 13eae1a24..957dbd383 100644 --- a/attendance/models.py +++ b/attendance/models.py @@ -135,18 +135,18 @@ class Attendance(models.Model): null=True, verbose_name=_("Attendance day"), ) - attendance_clock_in = models.TimeField( - null=True, verbose_name=_("Check-in"), help_text=_("First Check-in Time") - ) attendance_clock_in_date = models.DateField( null=True, verbose_name=_("Check-in date") ) - attendance_clock_out = models.TimeField( - null=True, verbose_name=_("Check-out"), help_text=_("Last Check-out Time") + attendance_clock_in = models.TimeField( + null=True, verbose_name=_("Check-in"), help_text=_("First Check-in Time") ) attendance_clock_out_date = models.DateField( null=True, verbose_name=_("Check-out date") ) + attendance_clock_out = models.TimeField( + null=True, verbose_name=_("Check-out"), help_text=_("Last Check-out Time") + ) attendance_worked_hour = models.CharField( null=True, default="00:00", diff --git a/attendance/templates/attendance/attendance/attendance_view.html b/attendance/templates/attendance/attendance/attendance_view.html index b3cac55cf..84993435c 100644 --- a/attendance/templates/attendance/attendance/attendance_view.html +++ b/attendance/templates/attendance/attendance/attendance_view.html @@ -29,8 +29,6 @@ var shiftId =selectElement.val() let parentForm = selectElement.parents().closest("form") var attendanceDate = parentForm.find("[name=attendance_date]").first().val() - console.log(attendanceDate); - console.log(shiftId); $.ajax({ type: "post", url: "{% url 'update-shift-details' %}", diff --git a/attendance/templates/attendance/attendance/tab_content.html b/attendance/templates/attendance/attendance/tab_content.html index 86af61b3c..7532b3380 100644 --- a/attendance/templates/attendance/attendance/tab_content.html +++ b/attendance/templates/attendance/attendance/tab_content.html @@ -2,6 +2,12 @@ {% load attendancefilters %} {% load basefilters %} {% include 'filter_tags.html' %} +
@@ -397,9 +403,15 @@ {{attendance.attendance_overtime}}
- + {% if attendance.attendance_overtime_approve %} + {% trans "Approve" %} + {% else %} + + {% trans "Approve" %} + + {% endif %}
diff --git a/attendance/templates/requests/attendance/request_lines.html b/attendance/templates/requests/attendance/request_lines.html index d6f92420b..fb7c583ae 100644 --- a/attendance/templates/requests/attendance/request_lines.html +++ b/attendance/templates/requests/attendance/request_lines.html @@ -301,10 +301,8 @@