diff --git a/frappe/core/doctype/system_settings/system_settings.json b/frappe/core/doctype/system_settings/system_settings.json index 77e686128b..174ba0ba15 100644 --- a/frappe/core/doctype/system_settings/system_settings.json +++ b/frappe/core/doctype/system_settings/system_settings.json @@ -2,6 +2,7 @@ "allow_copy": 0, "allow_import": 0, "allow_rename": 0, + "beta": 0, "creation": "2014-04-17 16:53:52.640856", "custom": 0, "docstatus": 0, @@ -16,6 +17,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "", @@ -31,6 +33,32 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "country", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Country", + "length": 0, + "no_copy": 0, + "options": "Country", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { "allow_on_submit": 0, "bold": 0, @@ -39,6 +67,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Language", @@ -63,6 +92,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -86,6 +116,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Time Zone", @@ -101,6 +132,31 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "setup_complete", + "fieldtype": "Check", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Setup Complete", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { "allow_on_submit": 0, "bold": 0, @@ -109,6 +165,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Date and Number Format", @@ -132,6 +189,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Date Format", @@ -156,6 +214,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -179,6 +238,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Number Format", @@ -203,6 +263,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Float Precision", @@ -227,6 +288,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Background Workers", @@ -252,6 +314,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Enable Scheduled Jobs", @@ -275,6 +338,7 @@ "fieldtype": "Data", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Scheduler Last Event", @@ -299,6 +363,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Security", @@ -324,6 +389,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Session Expiry", @@ -350,6 +416,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Session Expiry Mobile", @@ -374,6 +441,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -398,6 +466,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Allow only one session per user", @@ -423,6 +492,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Ignore User Permissions If Missing", @@ -447,6 +517,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "EMail", @@ -472,6 +543,7 @@ "fieldtype": "Small Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Email Footer Address", @@ -496,6 +568,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -519,6 +592,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Disable Standard Email Footer", @@ -540,13 +614,14 @@ "hide_toolbar": 0, "icon": "icon-cog", "idx": 0, + "image_view": 0, "in_create": 0, "in_dialog": 0, "is_submittable": 0, "issingle": 1, "istable": 0, "max_attachments": 0, - "modified": "2016-02-15 17:13:57.326211", + "modified": "2016-06-25 19:25:20.090354", "modified_by": "Administrator", "module": "Core", "name": "System Settings", @@ -574,7 +649,9 @@ "write": 1 } ], + "quick_entry": 1, "read_only": 0, "read_only_onload": 0, - "sort_order": "ASC" + "sort_order": "ASC", + "track_seen": 0 } \ No newline at end of file diff --git a/frappe/desk/page/setup_wizard/setup_wizard.py b/frappe/desk/page/setup_wizard/setup_wizard.py index 2d3255a73a..3381034ca1 100755 --- a/frappe/desk/page/setup_wizard/setup_wizard.py +++ b/frappe/desk/page/setup_wizard/setup_wizard.py @@ -32,6 +32,8 @@ def setup_complete(args): frappe.get_attr(method)(args) frappe.db.set_default('desktop:home_page', 'desktop') + frappe.db.set_value('System Settings', 'System Settings', 'setup_complete', 1) + frappe.db.commit() frappe.clear_cache() except: @@ -58,12 +60,13 @@ def update_system_settings(args): system_settings = frappe.get_doc("System Settings", "System Settings") system_settings.update({ + "country": args.get("country"), "language": args.get("language"), "time_zone": args.get("timezone"), "float_precision": 3, 'date_format': frappe.db.get_value("Country", args.get("country"), "date_format"), 'number_format': number_format, - 'enable_scheduler': 1 if not frappe.flags.in_test else 0 + 'enable_scheduler': 1 if not frappe.flags.in_test else 0, }) system_settings.save() diff --git a/frappe/utils/__init__.py b/frappe/utils/__init__.py index adc7b2f2ac..4dfe651134 100644 --- a/frappe/utils/__init__.py +++ b/frappe/utils/__init__.py @@ -479,3 +479,31 @@ def sanitize_email(emails): sanitized.append(formataddr((fullname, email_id))) return ", ".join(sanitized) + +def get_site_info(): + from frappe.utils.user import get_system_managers + + # only get system users + users = frappe.get_all('User', filters={'user_type': 'System User'}, + fields=['name', 'first_name', 'last_name', 'enabled', + 'last_login', 'last_active', 'language', 'time_zone']) + system_managers = get_system_managers(only_name=True) + for u in users: + # tag system managers + u.is_system_manager = 1 if u.name in system_managers else 0 + + system_settings = frappe.db.get_singles_dict('System Settings') + + site_info = { + 'users': users, + 'country': system_settings.country, + 'language': system_settings.language or 'english', + 'time_zone': system_settings.time_zone, + 'setup_complete': cint(system_settings.setup_complete) + } + + # from other apps + for method_name in frappe.get_hooks('get_site_info'): + site_info.update(frappe.get_attr(method_name)(site_info) or {}) + + return frappe.as_json(site_info)