Skip to content

Instantly share code, notes, and snippets.

@jvfiel
Created January 31, 2019 09:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jvfiel/3f9e5a07cfc5362665f21de9a4a3ad59 to your computer and use it in GitHub Desktop.
Save jvfiel/3f9e5a07cfc5362665f21de9a4a3ad59 to your computer and use it in GitHub Desktop.
import frappe
#khs.kong_hua_school.update_report_roles
def update_report_roles():
#KHS Student Rankings
#KHS Mastersheets
#KHS Report Cards
#Kong Hua School
for report in frappe.db.sql("""SELECT name FROM `tabReport` WHERE `tabReport`.module
IN ('KHS Student Rankings',
'KHS Mastersheets',
'KHS Report Cards',
'Kong Hua School')"""):
print(report)
report_doc = frappe.get_doc("Report",report[0])
# report_doc.set_doctype_roles()
# report_doc.save()
meta = frappe.get_meta(report_doc.ref_doctype)
roles = [{'role': d.role} for d in meta.permissions if d.permlevel == 0]
report_doc.set('roles', roles)
args = {
'report': report[0]
}
name = frappe.db.get_value('Custom Role', args, "name")
args.update({
'doctype': 'Custom Role',
'roles': roles
})
# if self.report:
args.update({'ref_doctype': frappe.db.get_value('Report', report[0], 'ref_doctype')})
if name:
custom_role = frappe.get_doc("Custom Role", name)
roles_ = []
for data in roles:
if data['role'] != "All":
roles_.append({
'role': data['role'],
'parenttype': 'Custom Role'
})
custom_role.set('roles', roles_)
custom_role.save()
else:
frappe.get_doc(args).insert()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment