# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors # For license information, please see license.txt import frappe def setup_education(): disable_desk_access_for_student_role() if frappe.db.exists("Academic Year", "2015-16"): # already setup return create_academic_sessions() def insert_record(records): for r in records: doc = frappe.new_doc(r.get("doctype")) doc.update(r) try: doc.insert(ignore_permissions=True) except frappe.DuplicateEntryError as e: # pass DuplicateEntryError and continue if e.args and e.args[0] == doc.doctype and e.args[1] == doc.name: # make sure DuplicateEntryError is for the exact same doc and not a related doc pass else: raise def create_academic_sessions(): data = [ {"doctype": "Academic Year", "academic_year_name": "2015-16"}, {"doctype": "Academic Year", "academic_year_name": "2016-17"}, {"doctype": "Academic Year", "academic_year_name": "2017-18"}, {"doctype": "Academic Year", "academic_year_name": "2018-19"}, {"doctype": "Academic Term", "academic_year": "2016-17", "term_name": "Semester 1"}, {"doctype": "Academic Term", "academic_year": "2016-17", "term_name": "Semester 2"}, {"doctype": "Academic Term", "academic_year": "2017-18", "term_name": "Semester 1"}, {"doctype": "Academic Term", "academic_year": "2017-18", "term_name": "Semester 2"}, ] insert_record(data) def disable_desk_access_for_student_role(): try: student_role = frappe.get_doc("Role", "Student") except frappe.DoesNotExistError: create_student_role() return student_role.desk_access = 0 student_role.save() def create_student_role(): student_role = frappe.get_doc( {"doctype": "Role", "role_name": "Student", "desk_access": 0, "restrict_to_domain": "Education"} ) student_role.insert()