blob: 2b82da556c3ca475609fbf0fba897708570a30a6 [file] [log] [blame]
Manas Solanki966f1412017-11-23 15:22:10 +05301# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
2# For license information, please see license.txt
3
Manas Solanki966f1412017-11-23 15:22:10 +05304
5import frappe
Manas Solanki966f1412017-11-23 15:22:10 +05306
7
8def setup_education():
Shivam Mishra08425d42019-05-29 15:42:57 +05309 disable_desk_access_for_student_role()
10 if frappe.db.exists("Academic Year", "2015-16"):
Manas Solanki966f1412017-11-23 15:22:10 +053011 # already setup
12 return
13 create_academic_sessions()
14
Ankush Menat457d6162022-01-21 21:40:47 +053015
16def insert_record(records):
17 for r in records:
18 doc = frappe.new_doc(r.get("doctype"))
19 doc.update(r)
20 try:
21 doc.insert(ignore_permissions=True)
22 except frappe.DuplicateEntryError as e:
23 # pass DuplicateEntryError and continue
Ankush Menat494bd9e2022-03-28 18:52:46 +053024 if e.args and e.args[0] == doc.doctype and e.args[1] == doc.name:
Ankush Menat457d6162022-01-21 21:40:47 +053025 # make sure DuplicateEntryError is for the exact same doc and not a related doc
26 pass
27 else:
28 raise
29
Ankush Menat494bd9e2022-03-28 18:52:46 +053030
Manas Solanki966f1412017-11-23 15:22:10 +053031def create_academic_sessions():
32 data = [
33 {"doctype": "Academic Year", "academic_year_name": "2015-16"},
34 {"doctype": "Academic Year", "academic_year_name": "2016-17"},
35 {"doctype": "Academic Year", "academic_year_name": "2017-18"},
36 {"doctype": "Academic Year", "academic_year_name": "2018-19"},
37 {"doctype": "Academic Term", "academic_year": "2016-17", "term_name": "Semester 1"},
38 {"doctype": "Academic Term", "academic_year": "2016-17", "term_name": "Semester 2"},
39 {"doctype": "Academic Term", "academic_year": "2017-18", "term_name": "Semester 1"},
Ankush Menat494bd9e2022-03-28 18:52:46 +053040 {"doctype": "Academic Term", "academic_year": "2017-18", "term_name": "Semester 2"},
Manas Solanki966f1412017-11-23 15:22:10 +053041 ]
42 insert_record(data)
Shivam Mishra08425d42019-05-29 15:42:57 +053043
Ankush Menat494bd9e2022-03-28 18:52:46 +053044
Shivam Mishra08425d42019-05-29 15:42:57 +053045def disable_desk_access_for_student_role():
46 try:
47 student_role = frappe.get_doc("Role", "Student")
48 except frappe.DoesNotExistError:
49 create_student_role()
50 return
51
52 student_role.desk_access = 0
53 student_role.save()
54
Ankush Menat494bd9e2022-03-28 18:52:46 +053055
Shivam Mishra08425d42019-05-29 15:42:57 +053056def create_student_role():
Ankush Menat494bd9e2022-03-28 18:52:46 +053057 student_role = frappe.get_doc(
58 {"doctype": "Role", "role_name": "Student", "desk_access": 0, "restrict_to_domain": "Education"}
59 )
Shivam Mishra9cad9432019-06-05 17:52:21 +053060 student_role.insert()