fix: add new batch form enhancements

This commit is contained in:
pateljannat
2021-05-07 12:04:11 +05:30
parent da902d23f7
commit 9981baa13b
4 changed files with 29 additions and 25 deletions

View File

@@ -6,12 +6,23 @@ from __future__ import unicode_literals
import frappe
from frappe.model.document import Document
from community.www.courses.utils import get_member_with_email
from frappe import _
from community.lms.doctype.lms_batch_membership.lms_batch_membership import create_membership
class LMSBatch(Document):
def validate(self):
self.validate_if_mentor()
if not self.code:
self.generate_code()
def validate_if_mentor(self):
course = frappe.get_doc("LMS Course", self.course)
if not course.is_mentor(frappe.session.user):
frappe.throw(_("You are not a mentor of the course {0}").format(course.title))
def after_insert(self):
create_membership(batch=self.title, member_type="Mentor")
def generate_code(self):
short_code = frappe.db.get_value("LMS Course", self.course, "short_code")
course_batches = frappe.get_all("LMS Batch",{"course":self.course})

View File

@@ -29,7 +29,7 @@ class LMSBatchMembership(Document):
frappe.throw(_("{0} is already a {1} of {2} course through {3} batch").format(member_name, membership.member_type, course, membership.batch))
@frappe.whitelist()
def create_membership(batch, course=None, member=None, member_type="Student", role="Member"):
def create_membership(batch, member=None, member_type="Student", role="Member"):
if not member:
member = frappe.db.get_value("Community Member", {"email": frappe.session.user}, "name")
frappe.get_doc({
@@ -39,7 +39,4 @@ def create_membership(batch, course=None, member=None, member_type="Student", ro
"member_type": member_type,
"member": member
}).save(ignore_permissions=True)
if course:
course_slug = frappe.db.get_value("LMS Course", {"title": course}, ["slug"])
return course_slug
return "OK"

View File

@@ -1,19 +1,14 @@
frappe.ready(function () {
frappe.web_form.after_save = () => {
let data = frappe.web_form.get_values();
frappe.call({
"method": "community.lms.doctype.lms_batch_membership.lms_batch_membership.create_membership",
"args": {
"batch": data.title,
"member_type": "Mentor",
"course": data.course
},
"callback": (data) => {
if (data.message) {
window.location.href = `courses/${data.message}`
}
}
})
let slug = new URLSearchParams(window.location.search).get("slug")
frappe.msgprint({
message: __("Batch {0} has been successfully created!", [data.title]),
clear: true
});
setTimeout(function () {
window.location.href = `courses/${slug}`;
}, 2000);
}
frappe.web_form.validate = () => {
@@ -21,8 +16,13 @@ frappe.ready(function () {
let time_format = sysdefaults && sysdefaults.time_format ? sysdefaults.time_format : 'HH:mm:ss';
let data = frappe.web_form.get_values();
data.start_time = moment(data.start_time,time_format).format(time_format)
data.end_time = moment(data.end_time,time_format).format(time_format)
data.start_time = moment(data.start_time, time_format).format(time_format)
data.end_time = moment(data.end_time, time_format).format(time_format)
if (data.start_date < frappe.datetime.nowdate()) {
frappe.msgprint(__('Start date cannot be a past date.'))
return false;
}
if (!frappe.datetime.validate(data.start_time) || !frappe.datetime.validate(data.end_time)) {
frappe.msgprint(__('Invalid Start or End Time.'));
@@ -34,10 +34,6 @@ frappe.ready(function () {
return false;
}
if (data.start_date < date.nowdate()) {
frappe.msgprint(__('Start date cannot be a past date.'))
return false;
}
return true;
};
})

View File

@@ -111,11 +111,11 @@
{% endfor %}
</div>
<a class="btn btn-primary add-batch margin-bottom" href="/add-a-new-batch?new=1&course={{course.title}}">Add a new batch</a>
<a class="btn btn-primary add-batch margin-bottom" href="/add-a-new-batch?new=1&course={{course.title}}&slug={{course.slug}}">Add a new batch</a>
{% else %}
<div class="mentor_message">
<p> You are a mentor for this course. </p>
<a class="btn btn-primary" href="/add-a-new-batch?new=1&course={{course.title}}" >Create your first batch</a>
<a class="btn btn-primary" href="/add-a-new-batch?new=1&course={{course.title}}&slug={{course.slug}}" >Create your first batch</a>
</div>
{% endif %}
{% endmacro %}