brotherton-erpnext/erpnext/www/lms/content.py

41 lines
1.5 KiB
Python
Raw Normal View History

from __future__ import unicode_literals
import erpnext.education.utils as utils
import frappe
no_cache = 1
def get_context(context):
if frappe.session.user == "Guest":
frappe.local.flags.redirect_location = '/lms'
raise frappe.Redirect
context.course = frappe.form_dict['course']
context.topic = frappe.form_dict['topic']
content = frappe.form_dict['content']
context.content_type = frappe.form_dict['type']
context.content = frappe.get_doc(context.content_type, content).as_dict()
context.previous = get_previous_content(context.topic, context.course, context.content, context.content_type)
context.next = get_next_content(context.topic, context.course, context.content, context.content_type)
def get_next_content(topic, course, content, content_type):
if frappe.session.user == "Guest":
return None
topic = frappe.get_doc("Topic", topic)
content_list = [{'content_type':item.doctype, 'content':item.name} for item in topic.get_contents()]
current_index = content_list.index({'content': content.name, 'content_type': content_type})
try:
return content_list[current_index + 1]
except IndexError:
return None
def get_previous_content(topic, course, content, content_type):
if frappe.session.user == "Guest":
return None
topic = frappe.get_doc("Topic", topic)
content_list = [{'content_type':item.doctype, 'content':item.name} for item in topic.get_contents()]
current_index = content_list.index({'content': content.name, 'content_type': content_type})
if current_index == 0:
return None
else:
return content_list[current_index - 1]