+ {% else %}
+ {{sg.title}}
+ {% endif %}
+
{{sg.num_mentors}} Mentors
|
diff --git a/school/www/cohorts/cohort.py b/school/www/cohorts/cohort.py
index 54fb17af..c6d5cf57 100644
--- a/school/www/cohorts/cohort.py
+++ b/school/www/cohorts/cohort.py
@@ -8,27 +8,25 @@ def get_context(context):
raise frappe.Redirect()
course = utils.get_course()
- cohort = course and get_cohort(course, frappe.form_dict["cohort"])
-
+ cohort = course and utils.get_cohort(course, frappe.form_dict["cohort"])
if not cohort:
context.template = "www/404.html"
return
+ user = frappe.session.user
+ mentor = cohort.get_mentor(user)
+ is_mentor = mentor is not None
+ is_admin = cohort.is_admin(user) or "System Manager" in frappe.get_roles()
+
+ if not is_admin and not is_mentor :
+ frappe.throw("Permission Deined", frappe.PermissionError)
+
utils.add_nav(context, "All Courses", "/courses")
utils.add_nav(context, course.title, "/courses/" + course.name)
utils.add_nav(context, "Cohorts", "/courses/" + course.name + "/manage")
context.course = course
context.cohort = cohort
-
-def get_cohort(course, cohort_slug):
- cohort = utils.get_cohort(course, cohort_slug)
-
- if cohort.is_mentor(frappe.session.user):
- mentor = cohort.get_mentor(frappe.session.user)
- sg = frappe.get_doc("Cohort Subgroup", mentor.subgroup)
- frappe.local.flags.redirect_location = f"/courses/{course.name}/subgroups/{cohort.slug}/{sg.slug}"
- raise frappe.Redirect
- elif cohort.is_admin(frappe.session.user) or "System Manager" in frappe.get_roles():
- return cohort
-
+ context.mentor = mentor
+ context.is_mentor = is_mentor
+ context.is_admin = is_admin
diff --git a/school/www/cohorts/index.py b/school/www/cohorts/index.py
index 5f27ef2f..2d1f648b 100644
--- a/school/www/cohorts/index.py
+++ b/school/www/cohorts/index.py
@@ -13,6 +13,9 @@ def get_context(context):
return
context.cohorts = get_cohorts(context.course)
+ if len(context.cohorts) == 1:
+ frappe.local.flags.redirect_location = context.cohorts[0].get_url()
+ raise frappe.Redirect
add_nav(context, "All Courses", "/courses")
add_nav(context, context.course.title, "/courses/" + context.course.name)
@@ -24,7 +27,5 @@ def get_cohorts(course):
staff_roles = frappe.get_all("Cohort Staff", filters={"course": course.name}, fields=["cohort"])
mentor_roles = frappe.get_all("Cohort Mentor", filters={"course": course.name}, fields=["cohort"])
roles = staff_roles + mentor_roles
- print(roles)
names = {role.cohort for role in roles}
- print(names)
return [frappe.get_doc("Cohort", name) for name in names]