[multicheck] Select multiple domains in setup (#11709)

* [multicheck] select multiple domains in setup

* use multiple domains in make_sample_data

* revert to setting in domains child table

* domains slide validation

* update setup wizard test
This commit is contained in:
Prateeksha Singh
2017-12-06 13:28:06 +05:30
committed by Nabin Hait
parent cd477fc187
commit 7351709980
6 changed files with 28 additions and 27 deletions

View File

@@ -15,11 +15,12 @@ erpnext.setup.slides_settings = [
{ {
// Domain // Domain
name: 'domain', name: 'domain',
domains: ["all"], title: __('Select your Domains'),
title: __('Select your Domain'),
fields: [ fields: [
{ {
fieldname: 'domain', label: __('Domain'), fieldtype: 'Select', fieldname: 'domains',
label: __('Domains'),
fieldtype: 'MultiCheck',
options: [ options: [
{ "label": __("Distribution"), "value": "Distribution" }, { "label": __("Distribution"), "value": "Distribution" },
{ "label": __("Manufacturing"), "value": "Manufacturing" }, { "label": __("Manufacturing"), "value": "Manufacturing" },
@@ -32,18 +33,19 @@ erpnext.setup.slides_settings = [
}, },
], ],
// help: __('Select the nature of your business.'), // help: __('Select the nature of your business.'),
onload: function (slide) { validate: function () {
slide.get_input("domain").on("change", function () { if (this.values.domains.length === 0) {
frappe.setup.domain = $(this).val(); frappe.msgprint(__("Please select at least one domain."));
frappe.wizard.refresh_slides(); return false;
}); }
frappe.setup.domains = this.values.domains;
return true;
}, },
}, },
{ {
// Brand // Brand
name: 'brand', name: 'brand',
domains: ["all"],
icon: "fa fa-bookmark", icon: "fa fa-bookmark",
title: __("The Brand"), title: __("The Brand"),
// help: __('Upload your letter head and logo. (you can edit them later).'), // help: __('Upload your letter head and logo. (you can edit them later).'),
@@ -57,14 +59,14 @@ erpnext.setup.slides_settings = [
}, },
{ {
fieldname: 'company_name', fieldname: 'company_name',
label: frappe.setup.domain === 'Education' ? label: frappe.setup.domains.includes('Education') ?
__('Institute Name') : __('Company Name'), __('Institute Name') : __('Company Name'),
fieldtype: 'Data', fieldtype: 'Data',
reqd: 1 reqd: 1
}, },
{ {
fieldname: 'company_abbr', fieldname: 'company_abbr',
label: frappe.setup.domain === 'Education' ? label: frappe.setup.domains.includes('Education') ?
__('Institute Abbreviation') : __('Company Abbreviation'), __('Institute Abbreviation') : __('Company Abbreviation'),
fieldtype: 'Data' fieldtype: 'Data'
} }
@@ -100,10 +102,9 @@ erpnext.setup.slides_settings = [
{ {
// Organisation // Organisation
name: 'organisation', name: 'organisation',
domains: ["all"],
title: __("Your Organization"), title: __("Your Organization"),
icon: "fa fa-building", icon: "fa fa-building",
// help: (frappe.setup.domain === 'Education' ? // help: frappe.setup.domains.includes('Education') ?
// __('The name of the institute for which you are setting up this system.') : // __('The name of the institute for which you are setting up this system.') :
// __('The name of your company for which you are setting up this system.')), // __('The name of your company for which you are setting up this system.')),
fields: [ fields: [
@@ -111,7 +112,7 @@ erpnext.setup.slides_settings = [
fieldname: 'company_tagline', fieldname: 'company_tagline',
label: __('What does it do?'), label: __('What does it do?'),
fieldtype: 'Data', fieldtype: 'Data',
placeholder: frappe.setup.domain === 'Education' ? placeholder: frappe.setup.domains.includes('Education') ?
__('e.g. "Primary School" or "University"') : __('e.g. "Primary School" or "University"') :
__('e.g. "Build tools for builders"'), __('e.g. "Build tools for builders"'),
reqd: 1 reqd: 1

View File

@@ -8,7 +8,7 @@
"currency": "INR", "currency": "INR",
"customer_1": "Test Customer 1", "customer_1": "Test Customer 1",
"customer_2": "Test Customer 2", "customer_2": "Test Customer 2",
"domain": "Manufacturing", "domains": ["Manufacturing"],
"email": "great@example.com", "email": "great@example.com",
"full_name": "Great Tester", "full_name": "Great Tester",
"fy_end_date": "2018-03-31", "fy_end_date": "2018-03-31",

View File

@@ -10,7 +10,7 @@ import random, os, json
from frappe import _ from frappe import _
from markdown2 import markdown from markdown2 import markdown
def make_sample_data(domain, make_dependent = False): def make_sample_data(domains, make_dependent = False):
"""Create a few opportunities, quotes, material requests, issues, todos, projects """Create a few opportunities, quotes, material requests, issues, todos, projects
to help the user get started""" to help the user get started"""
@@ -28,7 +28,7 @@ def make_sample_data(domain, make_dependent = False):
if items and warehouses: if items and warehouses:
make_material_request(frappe.get_all("Item")) make_material_request(frappe.get_all("Item"))
make_projects(domain) make_projects(domains)
import_email_alert() import_email_alert()
frappe.db.commit() frappe.db.commit()
@@ -89,7 +89,7 @@ def make_material_request(items):
def make_issue(): def make_issue():
pass pass
def make_projects(domain): def make_projects(domains):
current_date = frappe.utils.nowdate() current_date = frappe.utils.nowdate()
project = frappe.get_doc({ project = frappe.get_doc({
"doctype": "Project", "doctype": "Project",
@@ -104,7 +104,7 @@ def make_projects(domain):
"file": "explore.md" "file": "explore.md"
}] }]
if domain == 'Education': if 'Education' in domains:
tasks += [ tasks += [
{ {
"title": _("Setup your Institute in ERPNext"), "title": _("Setup your Institute in ERPNext"),

View File

@@ -39,8 +39,10 @@ def setup_complete(args=None):
create_logo(args) create_logo(args)
frappe.local.message_log = [] frappe.local.message_log = []
domains = args.get('domains')
domain_settings = frappe.get_single('Domain Settings') domain_settings = frappe.get_single('Domain Settings')
domain_settings.set_active_domains([args.get('domain')]) domain_settings.set_active_domains(domains)
frappe.db.commit() frappe.db.commit()
login_as_first_user(args) login_as_first_user(args)
@@ -49,7 +51,7 @@ def setup_complete(args=None):
frappe.clear_cache() frappe.clear_cache()
try: try:
make_sample_data(args.get('domain')) make_sample_data(domains)
frappe.clear_cache() frappe.clear_cache()
except: except:
# clear message # clear message
@@ -80,7 +82,7 @@ def create_fiscal_year_and_company(args):
'country': args.get('country'), 'country': args.get('country'),
'create_chart_of_accounts_based_on': 'Standard Template', 'create_chart_of_accounts_based_on': 'Standard Template',
'chart_of_accounts': args.get('chart_of_accounts'), 'chart_of_accounts': args.get('chart_of_accounts'),
'domain': args.get('domain') 'domain': args.get('domains')[0]
}).insert() }).insert()
#Enable shopping cart #Enable shopping cart

View File

@@ -40,8 +40,7 @@ def run_setup_wizard_test():
time.sleep(1) time.sleep(1)
# domain slide # domain slide
# time.sleep(3) driver.set_multicheck("domains", ["Manufacturing"])
driver.set_select("domain", "Manufacturing")
time.sleep(1) time.sleep(1)
driver.click(".next-btn") driver.click(".next-btn")

View File

@@ -272,10 +272,9 @@ def get_user_progress_slides():
slides = [] slides = []
slide_settings = get_slide_settings() slide_settings = get_slide_settings()
domain = frappe.db.get_value('Company', erpnext.get_default_company(), 'domain') domains = frappe.get_active_domains()
for s in slide_settings: for s in slide_settings:
if not s.domains or (domain and domain in s.domains): if not s.domains or any(d in domains for d in s.domains):
s.mark_as_done_method = "erpnext.setup.doctype.setup_progress.setup_progress.set_action_completed_state" s.mark_as_done_method = "erpnext.setup.doctype.setup_progress.setup_progress.set_action_completed_state"
s.done = get_action_completed_state(s.action_name) or 0 s.done = get_action_completed_state(s.action_name) or 0
slides.append(s) slides.append(s)