feat: send email to batch students

This commit is contained in:
Jannat Patel
2023-10-11 12:58:07 +05:30
parent affd2b47bd
commit a0255e1743
10 changed files with 40 additions and 19 deletions

View File

@@ -3,7 +3,7 @@
import frappe import frappe
from frappe.model.document import Document from frappe.model.document import Document
from lms.lms.utils import can_create_courses from lms.lms.utils import has_course_moderator_role, has_course_instructor_role
class LMSAssignment(Document): class LMSAssignment(Document):
@@ -12,7 +12,7 @@ class LMSAssignment(Document):
@frappe.whitelist() @frappe.whitelist()
def save_assignment(assignment, title, type, question): def save_assignment(assignment, title, type, question):
if not can_create_courses(): if not has_course_moderator_role() or not has_course_instructor_role():
return return
if assignment: if assignment:

View File

@@ -216,7 +216,7 @@ def save_course(
course_price=None, course_price=None,
currency=None, currency=None,
): ):
if not can_create_courses(): if not can_create_courses(course):
return return
if course: if course:

View File

@@ -6,7 +6,11 @@ import frappe
from frappe import _ from frappe import _
from frappe.model.document import Document from frappe.model.document import Document
from frappe.utils import cstr from frappe.utils import cstr
from lms.lms.utils import generate_slug, has_course_moderator_role, can_create_courses from lms.lms.utils import (
generate_slug,
has_course_moderator_role,
has_course_instructor_role,
)
class LMSQuiz(Document): class LMSQuiz(Document):
@@ -148,7 +152,7 @@ def quiz_summary(quiz, results):
def save_quiz( def save_quiz(
quiz_title, max_attempts=1, quiz=None, show_answers=1, show_submission_history=0 quiz_title, max_attempts=1, quiz=None, show_answers=1, show_submission_history=0
): ):
if not can_create_courses(): if not has_course_moderator_role() or not has_course_instructor_role():
return return
values = { values = {

View File

@@ -521,21 +521,35 @@ def has_course_instructor_role(member=None):
) )
def can_create_courses(member=None): def can_create_courses(course, member=None):
if not member: if not member:
member = frappe.session.user member = frappe.session.user
instructors = frappe.get_all(
"Course Instructor",
{
"parent": course,
},
pluck="instructor",
)
if frappe.session.user == "Guest": if frappe.session.user == "Guest":
return False return False
if has_course_instructor_role(member) or has_course_moderator_role(member): if has_course_moderator_role(member):
return True
if has_course_instructor_role(member) and member in instructors:
return True return True
portal_course_creation = frappe.db.get_single_value( portal_course_creation = frappe.db.get_single_value(
"LMS Settings", "portal_course_creation" "LMS Settings", "portal_course_creation"
) )
return portal_course_creation == "Anyone" if portal_course_creation == "Anyone" and member in instructors:
return True
return False
def has_course_moderator_role(member=None): def has_course_moderator_role(member=None):
@@ -727,7 +741,7 @@ def get_chart_data(chart_name, timespan, timegrain, from_date, to_date):
} }
@frappe.whitelist() @frappe.whitelist(allow_guest=True)
def get_course_completion_data(): def get_course_completion_data():
all_membership = frappe.db.count("LMS Enrollment") all_membership = frappe.db.count("LMS Enrollment")
completed = frappe.db.count("LMS Enrollment", {"progress": ["like", "%100%"]}) completed = frappe.db.count("LMS Enrollment", {"progress": ["like", "%100%"]})

View File

@@ -1,12 +1,12 @@
import frappe import frappe
from frappe import _ from frappe import _
from lms.lms.utils import can_create_courses from lms.lms.utils import has_course_moderator_role, has_course_instructor_role
def get_context(context): def get_context(context):
context.no_cache = 1 context.no_cache = 1
if not can_create_courses(): if not has_course_moderator_role() or not has_course_instructor_role():
message = "You do not have permission to access this page." message = "You do not have permission to access this page."
if frappe.session.user == "Guest": if frappe.session.user == "Guest":
message = "Please login to access this page." message = "Please login to access this page."

View File

@@ -1,13 +1,13 @@
import frappe import frappe
from frappe.utils import cstr from frappe.utils import cstr
from frappe import _ from frappe import _
from lms.lms.utils import can_create_courses from lms.lms.utils import has_course_instructor_role, has_course_moderator_role
def get_context(context): def get_context(context):
context.no_cache = 1 context.no_cache = 1
if not can_create_courses(): if not has_course_moderator_role() or not has_course_instructor_role():
message = "You do not have permission to access this page." message = "You do not have permission to access this page."
if frappe.session.user == "Guest": if frappe.session.user == "Guest":
message = "Please login to access this page." message = "Please login to access this page."

View File

@@ -1,12 +1,12 @@
import frappe import frappe
from lms.lms.utils import can_create_courses, has_course_moderator_role from lms.lms.utils import has_course_instructor_role, has_course_moderator_role
from frappe import _ from frappe import _
def get_context(context): def get_context(context):
context.no_cache = 1 context.no_cache = 1
if not can_create_courses(): if not has_course_moderator_role() or not has_course_instructor_role():
message = "You do not have permission to access this page." message = "You do not have permission to access this page."
if frappe.session.user == "Guest": if frappe.session.user == "Guest":
message = "Please login to access this page." message = "Please login to access this page."

View File

@@ -23,7 +23,7 @@ def get_context(context):
redirect_to_courses_list() redirect_to_courses_list()
if course_name == "new-course": if course_name == "new-course":
if not can_create_courses(): if not can_create_courses(course_name):
message = "You do not have permission to access this page." message = "You do not have permission to access this page."
if frappe.session.user == "Guest": if frappe.session.user == "Guest":
message = "Please login to access this page." message = "Please login to access this page."

View File

@@ -15,7 +15,7 @@ def get_context(context):
except KeyError: except KeyError:
redirect_to_courses_list() redirect_to_courses_list()
if not can_create_courses(): if not can_create_courses(course_name):
message = "You do not have permission to access this page." message = "You do not have permission to access this page."
if frappe.session.user == "Guest": if frappe.session.user == "Guest":
message = "Please login to access this page." message = "Please login to access this page."

View File

@@ -1,7 +1,6 @@
import frappe import frappe
from frappe import _ from frappe import _
from lms.lms.utils import ( from lms.lms.utils import (
can_create_courses,
check_profile_restriction, check_profile_restriction,
get_restriction_details, get_restriction_details,
has_course_moderator_role, has_course_moderator_role,
@@ -21,7 +20,11 @@ def get_context(context):
context.created_courses = get_authored_courses(None, False) context.created_courses = get_authored_courses(None, False)
context.review_courses = get_courses_under_review() context.review_courses = get_courses_under_review()
context.restriction = check_profile_restriction() context.restriction = check_profile_restriction()
context.show_creators_section = can_create_courses()
portal_course_creation = frappe.db.get_single_value(
"LMS Settings", "portal_course_creation"
)
context.show_creators_section = True if portal_course_creation == "Anyone" else False
context.show_review_section = ( context.show_review_section = (
has_course_moderator_role() and frappe.session.user != "Guest" has_course_moderator_role() and frappe.session.user != "Guest"
) )