feat: allow all mentors to see the cohort status

Issue #271
This commit is contained in:
Anand Chitipothu
2021-12-04 07:25:15 +05:30
parent d84302682e
commit d5da5bd8aa
3 changed files with 30 additions and 18 deletions

View File

@@ -13,13 +13,26 @@
| {{ stats.join_requests }} join requests
</p>
<h5>Subgroups</h5>
{% if is_mentor %}
<div class="alert alert-info">
{% set sg = mentor.get_subgroup() %}
<p>You are a mentor of <b>{{sg.title}}</b> subgroup.</p>
<p><a href="{{sg.get_url()}}" class="btn btn-primary">Visit Your Subgroup &rarr;</a></p>
</div>
{% endif %}
<h5>All Subgroups</h5>
<ul class="list-group">
{% for sg in cohort.get_subgroups(include_counts=True) %}
<li class="list-group-item">
<div>
{% if is_admin %}
<a class="subgroup-title" href="/courses/{{course.name}}/subgroups/{{cohort.slug}}/{{sg.slug}}">{{sg.title}}</a>
</div>
{% else %}
<span class="subgroup-title">{{sg.title}}</span>
{% endif %}
</div>
<div style="font-size: 0.8em;">
{{sg.num_mentors}} Mentors
|

View File

@@ -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

View File

@@ -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]