Merge pull request #852 from pateljannat/issues-14

fix: evaluation related issues
This commit is contained in:
Jannat Patel
2024-05-30 12:24:32 +05:30
committed by GitHub
4 changed files with 31 additions and 9 deletions

View File

@@ -116,7 +116,7 @@ function submitEvaluation(close) {
if (!evaluation.start_time) { if (!evaluation.start_time) {
return 'Please select a slot.' return 'Please select a slot.'
} }
if (dayjs(evaluation.date).isSameOrBefore(dayjs(), 'day')) { if (dayjs(evaluation.date).isBefore(dayjs(), 'day')) {
return 'Please select a future date.' return 'Please select a future date.'
} }
if (dayjs(evaluation.date).isAfter(dayjs(props.endDate), 'day')) { if (dayjs(evaluation.date).isAfter(dayjs(props.endDate), 'day')) {

View File

@@ -84,7 +84,7 @@
type="date" type="date"
:label="__('From')" :label="__('From')"
v-model="from" v-model="from"
@change.stop=" @blur="
() => { () => {
updateUnavailability.submit({ updateUnavailability.submit({
field: 'unavailable_from', field: 'unavailable_from',
@@ -97,7 +97,7 @@
type="date" type="date"
:label="__('To')" :label="__('To')"
v-model="to" v-model="to"
@change.stop=" @blur="
() => { () => {
updateUnavailability.submit({ updateUnavailability.submit({
field: 'unavailable_to', field: 'unavailable_to',

View File

@@ -6,7 +6,7 @@ from frappe import _
from frappe.model.document import Document from frappe.model.document import Document
from lms.lms.utils import get_evaluator from lms.lms.utils import get_evaluator
from datetime import datetime from datetime import datetime
from frappe.utils import get_time from frappe.utils import get_time, getdate
class CourseEvaluator(Document): class CourseEvaluator(Document):
@@ -18,7 +18,7 @@ class CourseEvaluator(Document):
if ( if (
self.unavailable_from self.unavailable_from
and self.unavailable_to and self.unavailable_to
and self.unavailable_from >= self.unavailable_to and getdate(self.unavailable_from) >= getdate(self.unavailable_to)
): ):
frappe.throw(_("Unavailable From Date cannot be greater than Unavailable To Date")) frappe.throw(_("Unavailable From Date cannot be greater than Unavailable To Date"))

View File

@@ -5,7 +5,15 @@ import frappe
from frappe import _ from frappe import _
from frappe.model.document import Document from frappe.model.document import Document
from frappe.model.mapper import get_mapped_doc from frappe.model.mapper import get_mapped_doc
from frappe.utils import format_date, format_time, getdate, add_to_date, get_datetime from frappe.utils import (
format_date,
format_time,
getdate,
add_to_date,
get_datetime,
nowtime,
get_time,
)
from lms.lms.utils import get_evaluator from lms.lms.utils import get_evaluator
@@ -54,13 +62,23 @@ class LMSCertificateRequest(Document):
def validate_if_existing_requests(self): def validate_if_existing_requests(self):
existing_requests = frappe.get_all( existing_requests = frappe.get_all(
"LMS Certificate Request", "LMS Certificate Request",
{"member": self.member, "course": self.course, "name": ["!=", self.name]}, {
"member": self.member,
"course": self.course,
"name": ["!=", self.name],
},
["date", "start_time", "course"], ["date", "start_time", "course"],
) )
for req in existing_requests: for req in existing_requests:
if (
if req.date == getdate(self.date) or getdate() <= getdate(req.date): req.date == getdate(self.date)
or getdate() < getdate(req.date)
or (
getdate() == getdate(req.date)
and getdate(self.start_time) < getdate(req.start_time)
)
):
course_title = frappe.db.get_value("LMS Course", req.course, "title") course_title = frappe.db.get_value("LMS Course", req.course, "title")
frappe.throw( frappe.throw(
_("You already have an evaluation on {0} at {1} for the course {2}.").format( _("You already have an evaluation on {0} at {1} for the course {2}.").format(
@@ -69,6 +87,10 @@ class LMSCertificateRequest(Document):
course_title, course_title,
) )
) )
if getdate() == getdate(self.date) and get_time(self.start_time) < get_time(
nowtime()
):
frappe.throw(_("You cannot schedule evaluations for past slots."))
def validate_evaluation_end_date(self): def validate_evaluation_end_date(self):
if self.batch_name: if self.batch_name: