blob: 3606c58bc2f137e48da7aae0517b24843ced16c9 [file] [log] [blame]
Rushabh Mehta2dd05812016-05-11 15:13:44 +05301# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
2# See license.txt
3
4from __future__ import unicode_literals
5import frappe
6
7domains = {
8 'Manufacturing': {
9 'desktop_icons': ['Item', 'BOM', 'Customer', 'Supplier', 'Sales Order',
Umair Sayyed99f75282016-05-12 17:56:23 +053010 'Production Order', 'Stock Entry', 'Purchase Order', 'Buying', 'Selling', 'Accounts'],
11 'remove_roles': ['Maintenance Manager', 'Maintenance User', 'Support Manager', 'Support Team'],
Rushabh Mehta2dd05812016-05-11 15:13:44 +053012 },
Umair Sayyed99f75282016-05-12 17:56:23 +053013
Rushabh Mehta2dd05812016-05-11 15:13:44 +053014 'Retail': {
Umair Sayyed99f75282016-05-12 17:56:23 +053015 'desktop_icons': ['POS', 'Item', 'Customer', 'Sales Invoice', 'Purchase Order', 'Accounts',
16 'Buying'],
Rushabh Mehta2dd05812016-05-11 15:13:44 +053017 'remove_roles': ['Manufacturing User', 'Manufacturing Manager', 'Maintenance User'],
Rushabh Mehta2dd05812016-05-11 15:13:44 +053018 },
Umair Sayyed99f75282016-05-12 17:56:23 +053019
Rushabh Mehta2dd05812016-05-11 15:13:44 +053020 'Distribution': {
Umair Sayyed99f75282016-05-12 17:56:23 +053021 'desktop_icons': ['Item', 'Customer', 'Supplier', 'Lead', 'Sales Order',
22 'Sales Invoice', 'CRM', 'Selling', 'Buying', 'Stock', 'Accounts'],
Rushabh Mehta2dd05812016-05-11 15:13:44 +053023 'remove_roles': ['Manufacturing User', 'Manufacturing Manager', 'Maintenance User'],
Umair Sayyed99f75282016-05-12 17:56:23 +053024 'properties': [
25 {'doctype': 'Item', 'fieldname': 'manufacturing', 'property': 'hidden', 'value': 1},
26 ]
Rushabh Mehta2dd05812016-05-11 15:13:44 +053027 },
Umair Sayyed99f75282016-05-12 17:56:23 +053028
Rushabh Mehta2dd05812016-05-11 15:13:44 +053029 'Services': {
30 'desktop_icons': ['Project', 'Time Log', 'Customer', 'Sales Invoice', 'Lead', 'Opportunity',
31 'Expense Claim', 'Employee'],
32 'remove_roles': ['Manufacturing User', 'Manufacturing Manager', 'Maintenance User'],
33 'properties': [
Rushabh Mehtad42167e2016-05-11 16:47:14 +053034 {'doctype': 'Item', 'fieldname': 'is_stock_item', 'property': 'default', 'value': 0},
Rushabh Mehta4b9238a2016-05-12 15:22:59 +053035 ],
36 'set_value': [
Rushabh Mehta48c76582016-05-12 16:26:01 +053037 ['Stock Settings', None, 'show_barcode', 0]
Rushabh Mehta2dd05812016-05-11 15:13:44 +053038 ]
39 }
40}
41
42def setup_domain(domain):
43 if not domain in domains:
44 return
45
46 from frappe.desk.doctype.desktop_icon.desktop_icon import set_desktop_icons
47 data = frappe._dict(domains[domain])
48
49 if data.remove_roles:
50 for role in data.remove_roles:
51 frappe.db.sql('delete from tabUserRole where role=%s', role)
52
53 if data.desktop_icons:
54 set_desktop_icons(data.desktop_icons)
55
56 if data.properties:
57 for args in data.properties:
58 frappe.make_property_setter(args)
59
Rushabh Mehta48c76582016-05-12 16:26:01 +053060 if data.set_value:
61 for args in data.set_value:
62 doc = frappe.get_doc(args[0], args[1] or args[0])
63 doc.set(args[2], args[3])
64 doc.save()
65
Rushabh Mehta2dd05812016-05-11 15:13:44 +053066 frappe.clear_cache()
67
68def reset():
69 from frappe.desk.page.setup_wizard.setup_wizard import add_all_roles_to
70 add_all_roles_to('Administrator')
71
72 frappe.db.sql('delete from `tabProperty Setter`')