# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt

import frappe
import frappe.permissions

def execute():
	frappe.reload_doc("core", "doctype", "block_module")
	frappe.reload_doctype("User")
	frappe.reload_doctype("Lead")
	frappe.reload_doctype("Contact")

	frappe.reload_doc('crm', 'doctype', 'newsletter_list')
	frappe.reload_doc('crm', 'doctype', 'newsletter_list_subscriber')
	frappe.reload_doc('crm', 'doctype', 'newsletter')

	frappe.permissions.reset_perms("Newsletter")

	if not frappe.db.exists("Role", "Newsletter Manager"):
		frappe.get_doc({"doctype": "Role", "role": "Newsletter Manager"}).insert()

	for userrole in frappe.get_all("UserRole", "parent", {"role": "Sales Manager"}):
		if frappe.db.exists("User", userrole.parent):
			user = frappe.get_doc("User", userrole.parent)
			user.append("user_roles", {
				"doctype": "UserRole",
				"role": "Newsletter Manager"
			})
			user.flags.ignore_mandatory = True
			user.save()

	# create default lists
	general = frappe.new_doc("Newsletter List")
	general.title = "General"
	general.insert()
	general.import_from("Lead")
	general.import_from("Contact")
