updates to Setup Wizard, set language as first input
This commit is contained in:
parent
dbfcd328fb
commit
52e618d0b2
@ -3,14 +3,14 @@ from frappe.widgets.moduleview import add_setup_section
|
||||
|
||||
data = [
|
||||
{
|
||||
"label": _("Tools"),
|
||||
"label": _("Settings"),
|
||||
"icon": "icon-wrench",
|
||||
"items": [
|
||||
{
|
||||
"type": "doctype",
|
||||
"name": "Global Defaults",
|
||||
"label": _("Global Settings"),
|
||||
"description": _("Set the Date & Number Formats, Default Currency, Current Fiscal Year, etc."),
|
||||
"description": _("Set Default Values like Company, Currency, Current Fiscal Year, etc."),
|
||||
"hide_count": True
|
||||
}
|
||||
]
|
||||
@ -124,7 +124,7 @@ data = [
|
||||
|
||||
def get_data():
|
||||
out = list(data)
|
||||
|
||||
|
||||
for module, label, icon in (
|
||||
("accounts", _("Accounts"), "icon-money"),
|
||||
("stock", _("Stock"), "icon-truck"),
|
||||
@ -132,7 +132,7 @@ def get_data():
|
||||
("buying", _("Buying"), "icon-shopping-cart"),
|
||||
("hr", _("Human Resources"), "icon-group"),
|
||||
("support", _("Support"), "icon-phone")):
|
||||
|
||||
|
||||
add_setup_section(out, "erpnext", module, label, icon)
|
||||
|
||||
return out
|
||||
return out
|
||||
|
@ -5,12 +5,12 @@ $.extend(cur_frm.cscript, {
|
||||
onload: function(doc) {
|
||||
var me = this;
|
||||
this.timezone = doc.time_zone;
|
||||
|
||||
|
||||
frappe.call({
|
||||
method: "frappe.country_info.get_country_timezone_info",
|
||||
callback: function(data) {
|
||||
erpnext.country_info = data.message.country_info;
|
||||
erpnext.all_timezones = data.message.all_timezones;
|
||||
frappe.country_info = data.message.country_info;
|
||||
frappe.all_timezones = data.message.all_timezones;
|
||||
me.set_timezone_options();
|
||||
cur_frm.set_value("time_zone", me.timezone);
|
||||
}
|
||||
@ -28,7 +28,7 @@ $.extend(cur_frm.cscript, {
|
||||
var timezones = [];
|
||||
|
||||
if (this.frm.doc.country) {
|
||||
var timezones = (erpnext.country_info[this.frm.doc.country].timezones || []).sort();
|
||||
var timezones = (frappe.country_info[this.frm.doc.country].timezones || []).sort();
|
||||
}
|
||||
|
||||
this.frm.set_value("time_zone", timezones[0]);
|
||||
@ -38,10 +38,10 @@ $.extend(cur_frm.cscript, {
|
||||
set_timezone_options: function(filtered_options) {
|
||||
var me = this;
|
||||
if(!filtered_options) filtered_options = [];
|
||||
var remaining_timezones = $.map(erpnext.all_timezones, function(v)
|
||||
var remaining_timezones = $.map(frappe.all_timezones, function(v)
|
||||
{ return filtered_options.indexOf(v)===-1 ? v : null; });
|
||||
|
||||
this.frm.set_df_property("time_zone", "options",
|
||||
this.frm.set_df_property("time_zone", "options",
|
||||
(filtered_options.concat([""]).concat(remaining_timezones)).join("\n"));
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -1,174 +1,395 @@
|
||||
{
|
||||
"_last_update": null,
|
||||
"_user_tags": null,
|
||||
"allow_attach": null,
|
||||
"allow_copy": 1,
|
||||
"creation": "2013-05-02 17:53:24.000000",
|
||||
"allow_email": null,
|
||||
"allow_import": null,
|
||||
"allow_print": null,
|
||||
"allow_rename": null,
|
||||
"allow_trash": null,
|
||||
"autoname": null,
|
||||
"change_log": null,
|
||||
"client_script": null,
|
||||
"client_script_core": null,
|
||||
"client_string": null,
|
||||
"colour": null,
|
||||
"creation": "2013-05-02 17:53:24",
|
||||
"custom": null,
|
||||
"default_print_format": null,
|
||||
"description": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "DocType",
|
||||
"document_type": null,
|
||||
"dt_template": null,
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "date_and_number_settings",
|
||||
"allow_on_submit": null,
|
||||
"default": null,
|
||||
"depends_on": null,
|
||||
"description": null,
|
||||
"fieldname": "currency_settings",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Date and Number Settings",
|
||||
"permlevel": 0
|
||||
},
|
||||
{
|
||||
"default": "dd-mm-yyyy",
|
||||
"fieldname": "date_format",
|
||||
"fieldtype": "Select",
|
||||
"label": "Date Format",
|
||||
"options": "yyyy-mm-dd\ndd-mm-yyyy\ndd/mm/yyyy\nmm/dd/yyyy\nmm-dd-yyyy",
|
||||
"hidden": null,
|
||||
"ignore_restrictions": null,
|
||||
"in_filter": null,
|
||||
"in_list_view": 1,
|
||||
"label": "Currency Settings",
|
||||
"no_column": null,
|
||||
"no_copy": null,
|
||||
"oldfieldname": null,
|
||||
"oldfieldtype": null,
|
||||
"options": null,
|
||||
"permlevel": 0,
|
||||
"read_only": 0
|
||||
},
|
||||
{
|
||||
"description": "This is the default number format. For currencies, please set the number format in the currency master.",
|
||||
"fieldname": "number_format",
|
||||
"fieldtype": "Select",
|
||||
"label": "Number Format",
|
||||
"options": "\n#,###.##\n#.###,##\n# ###.##\n#,###.###\n#,##,###.##\n#.###\n#,###",
|
||||
"permlevel": 0,
|
||||
"read_only": 0
|
||||
},
|
||||
{
|
||||
"default": "3",
|
||||
"description": "Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3",
|
||||
"fieldname": "float_precision",
|
||||
"fieldtype": "Select",
|
||||
"label": "Float Precision",
|
||||
"options": "\n2\n3\n4\n5\n6",
|
||||
"permlevel": 0,
|
||||
"read_only": 0
|
||||
"print_hide": null,
|
||||
"print_width": null,
|
||||
"read_only": null,
|
||||
"report_hide": null,
|
||||
"reqd": null,
|
||||
"search_index": null,
|
||||
"set_only_once": null,
|
||||
"trigger": null,
|
||||
"width": null
|
||||
},
|
||||
{
|
||||
"allow_on_submit": null,
|
||||
"default": null,
|
||||
"depends_on": null,
|
||||
"description": "If disable, 'Rounded Total' field will not be visible in any transaction",
|
||||
"fieldname": "disable_rounded_total",
|
||||
"fieldtype": "Check",
|
||||
"hidden": null,
|
||||
"ignore_restrictions": null,
|
||||
"in_filter": null,
|
||||
"in_list_view": 1,
|
||||
"label": "Disable Rounded Total",
|
||||
"no_column": null,
|
||||
"no_copy": null,
|
||||
"oldfieldname": null,
|
||||
"oldfieldtype": null,
|
||||
"options": null,
|
||||
"permlevel": 0,
|
||||
"read_only": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "currency_settings",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Currency Settings",
|
||||
"permlevel": 0
|
||||
"print_hide": null,
|
||||
"print_width": null,
|
||||
"read_only": 0,
|
||||
"report_hide": null,
|
||||
"reqd": null,
|
||||
"search_index": null,
|
||||
"set_only_once": null,
|
||||
"trigger": null,
|
||||
"width": null
|
||||
},
|
||||
{
|
||||
"allow_on_submit": null,
|
||||
"default": "INR",
|
||||
"depends_on": null,
|
||||
"description": null,
|
||||
"fieldname": "default_currency",
|
||||
"fieldtype": "Link",
|
||||
"hidden": null,
|
||||
"ignore_restrictions": null,
|
||||
"in_filter": null,
|
||||
"in_list_view": 1,
|
||||
"label": "Default Currency",
|
||||
"no_column": null,
|
||||
"no_copy": null,
|
||||
"oldfieldname": null,
|
||||
"oldfieldtype": null,
|
||||
"options": "Currency",
|
||||
"permlevel": 0,
|
||||
"print_hide": null,
|
||||
"print_width": null,
|
||||
"read_only": 0,
|
||||
"reqd": 1
|
||||
"report_hide": null,
|
||||
"reqd": 1,
|
||||
"search_index": null,
|
||||
"set_only_once": null,
|
||||
"trigger": null,
|
||||
"width": null
|
||||
},
|
||||
{
|
||||
"allow_on_submit": null,
|
||||
"default": null,
|
||||
"depends_on": null,
|
||||
"description": "Do not show any symbol like $ etc next to currencies.",
|
||||
"fieldname": "hide_currency_symbol",
|
||||
"fieldtype": "Select",
|
||||
"hidden": null,
|
||||
"ignore_restrictions": null,
|
||||
"in_filter": null,
|
||||
"in_list_view": 1,
|
||||
"label": "Hide Currency Symbol",
|
||||
"no_column": null,
|
||||
"no_copy": null,
|
||||
"oldfieldname": null,
|
||||
"oldfieldtype": null,
|
||||
"options": "\nNo\nYes",
|
||||
"permlevel": 0,
|
||||
"read_only": 0
|
||||
"print_hide": null,
|
||||
"print_width": null,
|
||||
"read_only": 0,
|
||||
"report_hide": null,
|
||||
"reqd": null,
|
||||
"search_index": null,
|
||||
"set_only_once": null,
|
||||
"trigger": null,
|
||||
"width": null
|
||||
},
|
||||
{
|
||||
"allow_on_submit": null,
|
||||
"default": null,
|
||||
"depends_on": null,
|
||||
"description": null,
|
||||
"fieldname": "company",
|
||||
"fieldtype": "Section Break",
|
||||
"hidden": null,
|
||||
"ignore_restrictions": null,
|
||||
"in_filter": null,
|
||||
"in_list_view": 1,
|
||||
"label": "Company Settings",
|
||||
"no_column": null,
|
||||
"no_copy": null,
|
||||
"oldfieldname": null,
|
||||
"oldfieldtype": null,
|
||||
"options": null,
|
||||
"permlevel": 0,
|
||||
"read_only": 0
|
||||
"print_hide": null,
|
||||
"print_width": null,
|
||||
"read_only": 0,
|
||||
"report_hide": null,
|
||||
"reqd": null,
|
||||
"search_index": null,
|
||||
"set_only_once": null,
|
||||
"trigger": null,
|
||||
"width": null
|
||||
},
|
||||
{
|
||||
"allow_on_submit": null,
|
||||
"default": null,
|
||||
"depends_on": null,
|
||||
"description": null,
|
||||
"fieldname": "default_company",
|
||||
"fieldtype": "Link",
|
||||
"hidden": null,
|
||||
"ignore_restrictions": null,
|
||||
"in_filter": null,
|
||||
"in_list_view": null,
|
||||
"label": "Default Company",
|
||||
"no_column": null,
|
||||
"no_copy": null,
|
||||
"oldfieldname": null,
|
||||
"oldfieldtype": null,
|
||||
"options": "Company",
|
||||
"permlevel": 0,
|
||||
"print_hide": null,
|
||||
"print_width": null,
|
||||
"read_only": 0,
|
||||
"reqd": 0
|
||||
"report_hide": null,
|
||||
"reqd": 0,
|
||||
"search_index": null,
|
||||
"set_only_once": null,
|
||||
"trigger": null,
|
||||
"width": null
|
||||
},
|
||||
{
|
||||
"allow_on_submit": null,
|
||||
"default": null,
|
||||
"depends_on": null,
|
||||
"description": null,
|
||||
"fieldname": "current_fiscal_year",
|
||||
"fieldtype": "Link",
|
||||
"hidden": null,
|
||||
"ignore_restrictions": null,
|
||||
"in_filter": null,
|
||||
"in_list_view": null,
|
||||
"label": "Current Fiscal Year",
|
||||
"no_column": null,
|
||||
"no_copy": null,
|
||||
"oldfieldname": null,
|
||||
"oldfieldtype": null,
|
||||
"options": "Fiscal Year",
|
||||
"permlevel": 0,
|
||||
"print_hide": null,
|
||||
"print_width": null,
|
||||
"read_only": 0,
|
||||
"reqd": 1
|
||||
"report_hide": null,
|
||||
"reqd": 1,
|
||||
"search_index": null,
|
||||
"set_only_once": null,
|
||||
"trigger": null,
|
||||
"width": null
|
||||
},
|
||||
{
|
||||
"allow_on_submit": null,
|
||||
"default": null,
|
||||
"depends_on": null,
|
||||
"description": null,
|
||||
"fieldname": "system",
|
||||
"fieldtype": "Section Break",
|
||||
"hidden": null,
|
||||
"ignore_restrictions": null,
|
||||
"in_filter": null,
|
||||
"in_list_view": null,
|
||||
"label": "System Settings",
|
||||
"no_column": null,
|
||||
"no_copy": null,
|
||||
"oldfieldname": null,
|
||||
"oldfieldtype": null,
|
||||
"options": null,
|
||||
"permlevel": 0,
|
||||
"read_only": 0
|
||||
},
|
||||
{
|
||||
"description": "Session Expiry in Hours e.g. 06:00",
|
||||
"fieldname": "session_expiry",
|
||||
"fieldtype": "Data",
|
||||
"label": "Session Expiry",
|
||||
"permlevel": 0,
|
||||
"read_only": 0
|
||||
"print_hide": null,
|
||||
"print_width": null,
|
||||
"read_only": 0,
|
||||
"report_hide": null,
|
||||
"reqd": null,
|
||||
"search_index": null,
|
||||
"set_only_once": null,
|
||||
"trigger": null,
|
||||
"width": null
|
||||
},
|
||||
{
|
||||
"allow_on_submit": null,
|
||||
"default": null,
|
||||
"depends_on": null,
|
||||
"description": null,
|
||||
"fieldname": "country",
|
||||
"fieldtype": "Select",
|
||||
"hidden": null,
|
||||
"ignore_restrictions": null,
|
||||
"in_filter": null,
|
||||
"in_list_view": null,
|
||||
"label": "Country",
|
||||
"no_column": null,
|
||||
"no_copy": null,
|
||||
"oldfieldname": null,
|
||||
"oldfieldtype": null,
|
||||
"options": "link:Country",
|
||||
"permlevel": 0
|
||||
"permlevel": 0,
|
||||
"print_hide": null,
|
||||
"print_width": null,
|
||||
"read_only": null,
|
||||
"report_hide": null,
|
||||
"reqd": null,
|
||||
"search_index": null,
|
||||
"set_only_once": null,
|
||||
"trigger": null,
|
||||
"width": null
|
||||
},
|
||||
{
|
||||
"allow_on_submit": null,
|
||||
"default": null,
|
||||
"depends_on": null,
|
||||
"description": null,
|
||||
"fieldname": "sms_sender_name",
|
||||
"fieldtype": "Data",
|
||||
"hidden": null,
|
||||
"ignore_restrictions": null,
|
||||
"in_filter": null,
|
||||
"in_list_view": null,
|
||||
"label": "SMS Sender Name",
|
||||
"no_column": null,
|
||||
"no_copy": null,
|
||||
"oldfieldname": null,
|
||||
"oldfieldtype": null,
|
||||
"options": null,
|
||||
"permlevel": 0,
|
||||
"read_only": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_3",
|
||||
"fieldtype": "Column Break",
|
||||
"permlevel": 0,
|
||||
"read_only": 0
|
||||
"print_hide": null,
|
||||
"print_width": null,
|
||||
"read_only": 0,
|
||||
"report_hide": null,
|
||||
"reqd": null,
|
||||
"search_index": null,
|
||||
"set_only_once": null,
|
||||
"trigger": null,
|
||||
"width": null
|
||||
},
|
||||
{
|
||||
"allow_on_submit": null,
|
||||
"default": null,
|
||||
"depends_on": null,
|
||||
"description": "For Server Side Print Formats",
|
||||
"fieldname": "print_style",
|
||||
"fieldtype": "Select",
|
||||
"hidden": null,
|
||||
"ignore_restrictions": null,
|
||||
"in_filter": null,
|
||||
"in_list_view": null,
|
||||
"label": "Print Format Style",
|
||||
"no_column": null,
|
||||
"no_copy": null,
|
||||
"oldfieldname": null,
|
||||
"oldfieldtype": null,
|
||||
"options": "Standard\nClassic\nModern\nSpartan",
|
||||
"permlevel": 0,
|
||||
"read_only": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "time_zone",
|
||||
"fieldtype": "Select",
|
||||
"label": "Time Zone",
|
||||
"permlevel": 0
|
||||
"print_hide": null,
|
||||
"print_width": null,
|
||||
"read_only": 0,
|
||||
"report_hide": null,
|
||||
"reqd": null,
|
||||
"search_index": null,
|
||||
"set_only_once": null,
|
||||
"trigger": null,
|
||||
"width": null
|
||||
}
|
||||
],
|
||||
"hide_heading": null,
|
||||
"hide_toolbar": 0,
|
||||
"icon": "icon-cog",
|
||||
"idx": 1,
|
||||
"in_create": 1,
|
||||
"in_dialog": null,
|
||||
"is_submittable": null,
|
||||
"is_transaction_doc": null,
|
||||
"issingle": 1,
|
||||
"modified": "2014-02-19 19:11:58.000000",
|
||||
"istable": null,
|
||||
"max_attachments": null,
|
||||
"menu_index": null,
|
||||
"modified": "2014-04-17 16:58:54.093191",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Setup",
|
||||
"name": "Global Defaults",
|
||||
"name_case": null,
|
||||
"owner": "Administrator",
|
||||
"parent": null,
|
||||
"parent_node": null,
|
||||
"parentfield": null,
|
||||
"parenttype": null,
|
||||
"permissions": [
|
||||
{
|
||||
"amend": 0,
|
||||
"cancel": 0,
|
||||
"create": 1,
|
||||
"delete": null,
|
||||
"email": null,
|
||||
"export": null,
|
||||
"import": null,
|
||||
"match": null,
|
||||
"permlevel": 0,
|
||||
"print": null,
|
||||
"read": 1,
|
||||
"report": 0,
|
||||
"restrict": null,
|
||||
"restricted": null,
|
||||
"role": "System Manager",
|
||||
"submit": 0,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"read_only": 1
|
||||
"plugin": null,
|
||||
"print_outline": null,
|
||||
"read_only": 1,
|
||||
"read_only_onload": null,
|
||||
"search_fields": null,
|
||||
"section_style": null,
|
||||
"server_code": null,
|
||||
"server_code_compiled": null,
|
||||
"server_code_core": null,
|
||||
"server_code_error": null,
|
||||
"show_in_menu": null,
|
||||
"smallicon": null,
|
||||
"subject": null,
|
||||
"tag_fields": null,
|
||||
"title_field": null,
|
||||
"use_template": null,
|
||||
"version": null
|
||||
}
|
@ -4,9 +4,7 @@
|
||||
from __future__ import unicode_literals
|
||||
"""Global Defaults"""
|
||||
import frappe
|
||||
from frappe import _
|
||||
import frappe.defaults
|
||||
from frappe.utils import cint
|
||||
|
||||
keydict = {
|
||||
# "key in defaults": "key in Global Defaults"
|
||||
@ -15,11 +13,7 @@ keydict = {
|
||||
'company': 'default_company',
|
||||
'currency': 'default_currency',
|
||||
'hide_currency_symbol':'hide_currency_symbol',
|
||||
'date_format': 'date_format',
|
||||
'number_format': 'number_format',
|
||||
'float_precision': 'float_precision',
|
||||
'account_url':'account_url',
|
||||
'session_expiry': 'session_expiry',
|
||||
'disable_rounded_total': 'disable_rounded_total',
|
||||
}
|
||||
|
||||
@ -29,9 +23,6 @@ class GlobalDefaults(Document):
|
||||
|
||||
def on_update(self):
|
||||
"""update defaults"""
|
||||
self.validate_session_expiry()
|
||||
self.set_country_and_timezone()
|
||||
|
||||
for key in keydict:
|
||||
frappe.db.set_default(key, self.get(keydict[key], ''))
|
||||
|
||||
@ -53,15 +44,5 @@ class GlobalDefaults(Document):
|
||||
# clear cache
|
||||
frappe.clear_cache()
|
||||
|
||||
def validate_session_expiry(self):
|
||||
if self.session_expiry:
|
||||
parts = self.session_expiry.split(":")
|
||||
if len(parts)!=2 or not (cint(parts[0]) or cint(parts[1])):
|
||||
frappe.throw(_("Session Expiry must be in format {0}").format("hh:mm"))
|
||||
|
||||
def set_country_and_timezone(self):
|
||||
frappe.db.set_default("country", self.country)
|
||||
frappe.db.set_default("time_zone", self.time_zone)
|
||||
|
||||
def get_defaults(self):
|
||||
return frappe.defaults.get_defaults()
|
||||
|
@ -1,7 +1,16 @@
|
||||
#page-setup-wizard {
|
||||
position: fixed;
|
||||
top: 0px; bottom: 0px;
|
||||
left: 0px; right: 0px;
|
||||
overflow: auto;
|
||||
padding-top: 60px;
|
||||
}
|
||||
.setup-wizard-wrapper {
|
||||
margin: 0px auto;
|
||||
width: 600px;
|
||||
}
|
||||
#page-setup-wizard .panel {
|
||||
background-color: #fff;
|
||||
position: fixed; top:0; left: 0; width:100%; height:100%;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#page-setup-wizard .panel-body {
|
||||
|
@ -1,11 +1,11 @@
|
||||
frappe.pages['setup-wizard'].onload = function(wrapper) {
|
||||
frappe.pages['setup-wizard'].onload = function(wrapper) {
|
||||
if(sys_defaults.company) {
|
||||
frappe.set_route("desktop");
|
||||
return;
|
||||
}
|
||||
$(".navbar:first").toggle(false);
|
||||
$("body").css({"padding-top":"30px"});
|
||||
|
||||
|
||||
var wizard_settings = {
|
||||
page_name: "setup-wizard",
|
||||
parent: wrapper,
|
||||
@ -16,59 +16,87 @@ frappe.pages['setup-wizard'].onload = function(wrapper) {
|
||||
method: "erpnext.setup.page.setup_wizard.setup_wizard.setup_account",
|
||||
args: values,
|
||||
callback: function(r) {
|
||||
if(r.exc) {
|
||||
var d = msgprint(__("There were errors."));
|
||||
d.custom_onhide = function() {
|
||||
frappe.set_route(erpnext.wiz.page_name, "0");
|
||||
wiz.show_complete();
|
||||
setTimeout(function() {
|
||||
if(user==="Administrator") {
|
||||
msgprint(__("Login with your new User ID") + ":" + values.email);
|
||||
setTimeout(function() {
|
||||
frappe.app.logout();
|
||||
}, 2000);
|
||||
} else {
|
||||
window.location = "/desk";
|
||||
}
|
||||
} else {
|
||||
wiz.show_complete();
|
||||
setTimeout(function() {
|
||||
if(user==="Administrator") {
|
||||
msgprint(__("Login with your new User ID") + ":" + values.email);
|
||||
setTimeout(function() {
|
||||
frappe.app.logout();
|
||||
}, 2000);
|
||||
} else {
|
||||
window.location = "/desk";
|
||||
}
|
||||
}, 2000);
|
||||
}, 2000);
|
||||
},
|
||||
error: function(r) {
|
||||
var d = msgprint(__("There were errors."));
|
||||
d.custom_onhide = function() {
|
||||
frappe.set_route(erpnext.wiz.page_name, "0");
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
title: __("ERPNext Setup Guide"),
|
||||
title: __("Welcome"),
|
||||
welcome_html: '<h1 class="text-muted text-center"><i class="icon-magic"></i></h1>\
|
||||
<h2 class="text-center">'+__('ERPNext Setup')+'</h2>\
|
||||
<p class="text-center" style="margin: 0px 100px">' +
|
||||
__('Welcome to ERPNext. Over the next few minutes we will help you setup your ERPNext account. Try and fill in as much information as you have even if it takes a bit longer. It will save you a lot of time later. Good Luck!') +
|
||||
<p class="text-center" style="margin: 0px 100px">' +
|
||||
__('Welcome to ERPNext. Over the next few minutes we will help you setup your ERPNext account. Try and fill in as much information as you have even if it takes a bit longer. It will save you a lot of time later. Good Luck!') +
|
||||
'</p>',
|
||||
working_html: '<h3 class="text-muted text-center"><i class="icon-refresh icon-spin"></i></h3>\
|
||||
<h2 class="text-center">'+__('Setting up...')+'</h2>\
|
||||
<p class="text-center">' +
|
||||
__('Sit tight while your system is being setup. This may take a few moments.') +
|
||||
<p class="text-center">' +
|
||||
__('Sit tight while your system is being setup. This may take a few moments.') +
|
||||
'</p>',
|
||||
complete_html: '<h1 class="text-muted text-center"><i class="icon-thumbs-up"></i></h1>\
|
||||
<h2 class="text-center">'+__('Setup Complete!')+'</h2>\
|
||||
<p class="text-center">' +
|
||||
__('Your setup is complete. Refreshing...') +
|
||||
<p class="text-center">' +
|
||||
__('Your setup is complete. Refreshing...') +
|
||||
'</p>',
|
||||
slides: [
|
||||
// User
|
||||
{
|
||||
title: __("Select Your Language"),
|
||||
icon: "icon-globe",
|
||||
fields: [
|
||||
{"fieldname": "language", "label": __("Language"), "fieldtype": "Select",
|
||||
options: ["english", "العربية", "deutsch", "ελληνικά", "español", "français", "हिंदी", "hrvatski",
|
||||
"italiano", "nederlands", "português brasileiro", "português", "српски", "தமிழ்",
|
||||
"ไทย", "中国(简体", "中國(繁體"], reqd:1},
|
||||
],
|
||||
help: __("Welcome to ERPNext. Please select your language to begin the Setup Wizard."),
|
||||
onload: function(slide) {
|
||||
slide.get_input("language").on("change", function() {
|
||||
var lang = $(this).val();
|
||||
frappe.call({
|
||||
method: "erpnext.setup.page.setup_wizard.setup_wizard.load_messages",
|
||||
args: {
|
||||
language: lang
|
||||
},
|
||||
callback: function(r) {
|
||||
// re-render all slides
|
||||
$.each(slide.wiz.slide_dict, function(key, s) {
|
||||
s.make();
|
||||
});
|
||||
slide.get_input("language").val(lang);
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
},
|
||||
{
|
||||
title: __("The First User: You"),
|
||||
icon: "icon-user",
|
||||
fields: [
|
||||
{"fieldname": "first_name", "label": __("First Name"), "fieldtype": "Data",
|
||||
{"fieldname": "first_name", "label": __("First Name"), "fieldtype": "Data",
|
||||
reqd:1},
|
||||
{"fieldname": "last_name", "label": __("Last Name"), "fieldtype": "Data",
|
||||
{"fieldname": "last_name", "label": __("Last Name"), "fieldtype": "Data",
|
||||
reqd:1},
|
||||
{"fieldname": "email", "label": __("Email Id"), "fieldtype": "Data",
|
||||
{"fieldname": "email", "label": __("Email Id"), "fieldtype": "Data",
|
||||
reqd:1, "description":"Your Login Id", "options":"Email"},
|
||||
{"fieldname": "password", "label": __("Password"), "fieldtype": "Password",
|
||||
{"fieldname": "password", "label": __("Password"), "fieldtype": "Password",
|
||||
reqd:1},
|
||||
{fieldtype:"Attach Image", fieldname:"attach_user",
|
||||
label:"Attach Your User..."},
|
||||
{fieldtype:"Attach Image", fieldname:"attach_user",
|
||||
label: __("Attach Your Picture")},
|
||||
],
|
||||
help: __('The first user will become the System Manager (you can change that later).'),
|
||||
onload: function(slide) {
|
||||
@ -77,28 +105,28 @@ frappe.pages['setup-wizard'].onload = function(wrapper) {
|
||||
slide.form.fields_dict.email.$wrapper.toggle(false);
|
||||
slide.form.fields_dict.first_name.set_input(frappe.boot.user.first_name);
|
||||
slide.form.fields_dict.last_name.set_input(frappe.boot.user.last_name);
|
||||
|
||||
|
||||
delete slide.form.fields_dict.email;
|
||||
delete slide.form.fields_dict.password;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
// Organization
|
||||
{
|
||||
title: __("The Organization"),
|
||||
icon: "icon-building",
|
||||
fields: [
|
||||
{fieldname:'company_name', label: __('Company Name'), fieldtype:'Data', reqd:1,
|
||||
placeholder: 'e.g. "My Company LLC"'},
|
||||
placeholder: __('e.g. "My Company LLC"')},
|
||||
{fieldname:'company_abbr', label: __('Company Abbreviation'), fieldtype:'Data',
|
||||
placeholder:'e.g. "MC"',reqd:1},
|
||||
{fieldname:'fy_start_date', label:'Financial Year Start Date', fieldtype:'Date',
|
||||
description:'Your financial year begins on', reqd:1},
|
||||
{fieldname:'fy_end_date', label:'Financial Year End Date', fieldtype:'Date',
|
||||
description:'Your financial year ends on', reqd:1},
|
||||
placeholder: __('e.g. "MC"'),reqd:1},
|
||||
{fieldname:'fy_start_date', label:__('Financial Year Start Date'), fieldtype:'Date',
|
||||
description: __('Your financial year begins on'), reqd:1},
|
||||
{fieldname:'fy_end_date', label:__('Financial Year End Date'), fieldtype:'Date',
|
||||
description: __('Your financial year ends on'), reqd:1},
|
||||
{fieldname:'company_tagline', label: __('What does it do?'), fieldtype:'Data',
|
||||
placeholder:'e.g. "Build tools for builders"', reqd:1},
|
||||
placeholder:__('e.g. "Build tools for builders"'), reqd:1},
|
||||
],
|
||||
help: __('The name of your company for which you are setting up this system.'),
|
||||
onload: function(slide) {
|
||||
@ -109,7 +137,7 @@ frappe.pages['setup-wizard'].onload = function(wrapper) {
|
||||
}).val(frappe.boot.sysdefaults.company_name || "").trigger("change");
|
||||
|
||||
slide.get_input("fy_start_date").on("change", function() {
|
||||
var year_end_date =
|
||||
var year_end_date =
|
||||
frappe.datetime.add_days(frappe.datetime.add_months(
|
||||
frappe.datetime.user_to_obj(slide.get_input("fy_start_date").val()), 12), -1);
|
||||
slide.get_input("fy_end_date").val(frappe.datetime.obj_to_user(year_end_date));
|
||||
@ -117,7 +145,7 @@ frappe.pages['setup-wizard'].onload = function(wrapper) {
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
// Country
|
||||
{
|
||||
title: __("Country, Timezone and Currency"),
|
||||
@ -129,64 +157,64 @@ frappe.pages['setup-wizard'].onload = function(wrapper) {
|
||||
options: "", fieldtype: 'Select'},
|
||||
{fieldname:'timezone', label: __('Time Zone'), reqd:1,
|
||||
options: "", fieldtype: 'Select'},
|
||||
{fieldname:'chart_of_accounts', label: __('Chart of Accounts'),
|
||||
options: "", fieldtype: 'Select'}
|
||||
// {fieldname:'chart_of_accounts', label: __('Chart of Accounts'),
|
||||
// options: "", fieldtype: 'Select'}
|
||||
],
|
||||
help: __('Select your home country and check the timezone and currency.'),
|
||||
onload: function(slide, form) {
|
||||
frappe.call({
|
||||
method:"frappe.country_info.get_country_timezone_info",
|
||||
callback: function(data) {
|
||||
erpnext.country_info = data.message.country_info;
|
||||
erpnext.all_timezones = data.message.all_timezones;
|
||||
frappe.country_info = data.message.country_info;
|
||||
frappe.all_timezones = data.message.all_timezones;
|
||||
slide.get_input("country").empty()
|
||||
.add_options([""].concat(keys(erpnext.country_info).sort()));
|
||||
.add_options([""].concat(keys(frappe.country_info).sort()));
|
||||
slide.get_input("currency").empty()
|
||||
.add_options(frappe.utils.unique([""].concat($.map(erpnext.country_info,
|
||||
.add_options(frappe.utils.unique([""].concat($.map(frappe.country_info,
|
||||
function(opts, country) { return opts.currency; }))).sort());
|
||||
slide.get_input("timezone").empty()
|
||||
.add_options([""].concat(erpnext.all_timezones));
|
||||
.add_options([""].concat(frappe.all_timezones));
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
slide.get_input("country").on("change", function() {
|
||||
var country = slide.get_input("country").val();
|
||||
var $timezone = slide.get_input("timezone");
|
||||
$timezone.empty();
|
||||
// add country specific timezones first
|
||||
if(country){
|
||||
var timezone_list = erpnext.country_info[country].timezones || [];
|
||||
var timezone_list = frappe.country_info[country].timezones || [];
|
||||
$timezone.add_options(timezone_list.sort());
|
||||
slide.get_input("currency").val(erpnext.country_info[country].currency);
|
||||
slide.get_input("currency").val(frappe.country_info[country].currency);
|
||||
}
|
||||
// add all timezones at the end, so that user has the option to change it to any timezone
|
||||
$timezone.add_options([""].concat(erpnext.all_timezones));
|
||||
|
||||
$timezone.add_options([""].concat(frappe.all_timezones));
|
||||
|
||||
// get country specific chart of accounts
|
||||
frappe.call({
|
||||
method: "erpnext.accounts.doctype.chart_of_accounts.chart_of_accounts.get_charts_for_country",
|
||||
args: {"country": country},
|
||||
callback: function(r) {
|
||||
if(r.message)
|
||||
slide.get_input("chart_of_accounts").empty()
|
||||
.add_options([""].concat(r.message));
|
||||
}
|
||||
})
|
||||
// frappe.call({
|
||||
// method: "erpnext.accounts.doctype.chart_of_accounts.chart_of_accounts.get_charts_for_country",
|
||||
// args: {"country": country},
|
||||
// callback: function(r) {
|
||||
// if(r.message)
|
||||
// slide.get_input("chart_of_accounts").empty()
|
||||
// .add_options([""].concat(r.message));
|
||||
// }
|
||||
// })
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
// Logo
|
||||
{
|
||||
icon: "icon-bookmark",
|
||||
title: __("Logo and Letter Heads"),
|
||||
help: __('Upload your letter head and logo - you can edit them later.'),
|
||||
fields: [
|
||||
{fieldtype:"Attach Image", fieldname:"attach_letterhead", label:"Attach Letterhead..."},
|
||||
{fieldtype:"Attach Image", fieldname:"attach_logo", label:"Attach Logo..."},
|
||||
{fieldtype:"Attach Image", fieldname:"attach_letterhead", label: __("Attach Letterhead")},
|
||||
{fieldtype:"Attach Image", fieldname:"attach_logo", label:__("Attach Logo")},
|
||||
],
|
||||
},
|
||||
|
||||
|
||||
// Taxes
|
||||
{
|
||||
icon: "icon-money",
|
||||
@ -202,7 +230,7 @@ frappe.pages['setup-wizard'].onload = function(wrapper) {
|
||||
"help": __("List a few of your customers. They could be organizations or individuals."),
|
||||
"fields": [],
|
||||
},
|
||||
|
||||
|
||||
// Items to Sell
|
||||
{
|
||||
icon: "icon-barcode",
|
||||
@ -229,39 +257,39 @@ frappe.pages['setup-wizard'].onload = function(wrapper) {
|
||||
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
// taxes
|
||||
for(var i=1; i<4; i++) {
|
||||
wizard_settings.slides[4].fields = wizard_settings.slides[4].fields.concat([
|
||||
{fieldtype:"Data", fieldname:"tax_"+ i, label:"Tax " + 1, placeholder:"e.g. VAT"},
|
||||
wizard_settings.slides[5].fields = wizard_settings.slides[5].fields.concat([
|
||||
{fieldtype:"Data", fieldname:"tax_"+ i, label:__("Tax") + " " + i, placeholder:__("e.g. VAT")},
|
||||
{fieldtype:"Column Break"},
|
||||
{fieldtype:"Data", fieldname:"tax_rate_i", label:"Rate (%)", placeholder:"e.g. 5"},
|
||||
{fieldtype:"Data", fieldname:"tax_rate_i", label:__("Rate (%)"), placeholder:__("e.g. 5")},
|
||||
{fieldtype:"Section Break"},
|
||||
])
|
||||
}
|
||||
|
||||
|
||||
// customers
|
||||
for(var i=1; i<6; i++) {
|
||||
wizard_settings.slides[5].fields = wizard_settings.slides[5].fields.concat([
|
||||
{fieldtype:"Data", fieldname:"customer_" + i, label:"Customer " + i,
|
||||
placeholder:"Customer Name"},
|
||||
wizard_settings.slides[6].fields = wizard_settings.slides[6].fields.concat([
|
||||
{fieldtype:"Data", fieldname:"customer_" + i, label:__("Customer") + " " + i,
|
||||
placeholder:__("Customer Name")},
|
||||
{fieldtype:"Column Break"},
|
||||
{fieldtype:"Data", fieldname:"customer_contact_" + i,
|
||||
label:"Contact", placeholder:"Contact Name"},
|
||||
{fieldtype:"Data", fieldname:"customer_contact_" + i,
|
||||
label:__("Contact"), placeholder:__("Contact Name")},
|
||||
{fieldtype:"Section Break"}
|
||||
])
|
||||
}
|
||||
|
||||
|
||||
// products
|
||||
for(var i=1; i<6; i++) {
|
||||
wizard_settings.slides[6].fields = wizard_settings.slides[6].fields.concat([
|
||||
{fieldtype:"Data", fieldname:"item_" + i, label:"Item " + i,
|
||||
placeholder:"A Product or Service"},
|
||||
wizard_settings.slides[7].fields = wizard_settings.slides[7].fields.concat([
|
||||
{fieldtype:"Data", fieldname:"item_" + i, label:__("Item") + " " + i,
|
||||
placeholder:__("A Product or Service")},
|
||||
{fieldtype:"Column Break"},
|
||||
{fieldtype:"Attach", fieldname:"item_img_" + i, label:"Attach Image..."},
|
||||
{fieldtype:"Attach", fieldname:"item_img_" + i, label:__("Attach Image")},
|
||||
{fieldtype:"Section Break"},
|
||||
{fieldtype:"Column Break"},
|
||||
{fieldtype:"Select", label:"Group", fieldname:"item_group_" + i,
|
||||
{fieldtype:"Select", label:"Group", fieldname:"item_group_" + i,
|
||||
options:["Products", "Services", "Raw Material", "Sub Assemblies"]},
|
||||
{fieldtype:"Column Break"},
|
||||
{fieldtype:"Select", fieldname:"item_uom_" + i, label:"UOM",
|
||||
@ -271,32 +299,32 @@ frappe.pages['setup-wizard'].onload = function(wrapper) {
|
||||
}
|
||||
|
||||
for(var i=1; i<6; i++) {
|
||||
wizard_settings.slides[7].fields = wizard_settings.slides[7].fields.concat([
|
||||
{fieldtype:"Data", fieldname:"supplier_" + i, label:"Supplier " + i,
|
||||
wizard_settings.slides[8].fields = wizard_settings.slides[8].fields.concat([
|
||||
{fieldtype:"Data", fieldname:"supplier_" + i, label:__("Supplier")+" " + i,
|
||||
placeholder:"Supplier Name"},
|
||||
{fieldtype:"Column Break"},
|
||||
{fieldtype:"Data", fieldname:"supplier_contact_" + i,
|
||||
label:"Contact", placeholder:"Contact Name"},
|
||||
{fieldtype:"Data", fieldname:"supplier_contact_" + i,
|
||||
label:"Contact", placeholder:__("Contact Name")},
|
||||
{fieldtype:"Section Break"}
|
||||
])
|
||||
}
|
||||
|
||||
for(var i=1; i<6; i++) {
|
||||
wizard_settings.slides[8].fields = wizard_settings.slides[8].fields.concat([
|
||||
{fieldtype:"Data", fieldname:"item_buy_" + i, label:"Item " + i,
|
||||
placeholder:"A Product or Service"},
|
||||
wizard_settings.slides[9].fields = wizard_settings.slides[9].fields.concat([
|
||||
{fieldtype:"Data", fieldname:"item_buy_" + i, label: __("Item") + " " + i,
|
||||
placeholder:__("A Product or Service")},
|
||||
{fieldtype:"Column Break"},
|
||||
{fieldtype:"Section Break"},
|
||||
{fieldtype:"Column Break"},
|
||||
{fieldtype:"Select", fieldname:"item_buy_group_" + i, label: "Group",
|
||||
{fieldtype:"Select", fieldname:"item_buy_group_" + i, label: __("Group"),
|
||||
options:["Raw Material", "Consumable", "Sub Assemblies", "Services", "Products"]},
|
||||
{fieldtype:"Column Break"},
|
||||
{fieldtype:"Select", fieldname:"item_buy_uom_" + i, label: "UOM",
|
||||
{fieldtype:"Select", fieldname:"item_buy_uom_" + i, label: __("UOM"),
|
||||
options:["Unit", "Nos", "Box", "Pair", "Kg", "Set", "Hour", "Minute"]},
|
||||
{fieldtype:"Section Break"},
|
||||
])
|
||||
}
|
||||
|
||||
|
||||
erpnext.wiz = new frappe.wiz.Wizard(wizard_settings)
|
||||
}
|
||||
|
||||
@ -310,9 +338,16 @@ frappe.provide("frappe.wiz");
|
||||
frappe.wiz.Wizard = Class.extend({
|
||||
init: function(opts) {
|
||||
$.extend(this, opts);
|
||||
this.make();
|
||||
this.slides = this.slides;
|
||||
this.slide_dict = {};
|
||||
this.show_welcome();
|
||||
//this.show_welcome();
|
||||
this.welcomed = true;
|
||||
frappe.set_route(this.page_name, "0");
|
||||
},
|
||||
make: function() {
|
||||
frappe.ui.set_user_background(null, "#page-setup-wizard");
|
||||
this.parent = $('<div class="setup-wizard-wrapper">').appendTo(this.parent);
|
||||
},
|
||||
get_message: function(html) {
|
||||
return $(repl('<div class="panel panel-default">\
|
||||
@ -320,19 +355,19 @@ frappe.wiz.Wizard = Class.extend({
|
||||
</div>', {html:html}))
|
||||
},
|
||||
show_welcome: function() {
|
||||
if(this.$welcome)
|
||||
if(this.$welcome)
|
||||
return;
|
||||
var me = this;
|
||||
this.$welcome = this.get_message(this.welcome_html +
|
||||
this.$welcome = this.get_message(this.welcome_html +
|
||||
'<br><p class="text-center"><button class="btn btn-primary">'+__("Start")+'</button></p>')
|
||||
.appendTo(this.parent);
|
||||
|
||||
|
||||
this.$welcome.find(".btn").click(function() {
|
||||
me.$welcome.toggle(false);
|
||||
me.welcomed = true;
|
||||
frappe.set_route(me.page_name, "0");
|
||||
})
|
||||
|
||||
|
||||
this.current_slide = {"$wrapper": this.$welcome};
|
||||
},
|
||||
show_working: function() {
|
||||
@ -350,15 +385,15 @@ frappe.wiz.Wizard = Class.extend({
|
||||
return;
|
||||
}
|
||||
id = cint(id);
|
||||
if(this.current_slide && this.current_slide.id===id)
|
||||
if(this.current_slide && this.current_slide.id===id)
|
||||
return;
|
||||
if(!this.slide_dict[id]) {
|
||||
this.slide_dict[id] = new frappe.wiz.WizardSlide($.extend(this.slides[id], {wiz:this, id:id}));
|
||||
this.slide_dict[id].make();
|
||||
}
|
||||
|
||||
|
||||
this.hide_current_slide();
|
||||
|
||||
|
||||
this.current_slide = this.slide_dict[id];
|
||||
this.current_slide.$wrapper.toggle(true);
|
||||
},
|
||||
@ -380,40 +415,42 @@ frappe.wiz.Wizard = Class.extend({
|
||||
frappe.wiz.WizardSlide = Class.extend({
|
||||
init: function(opts) {
|
||||
$.extend(this, opts);
|
||||
this.$wrapper = $("<div>").appendTo(this.wiz.parent);
|
||||
},
|
||||
make: function() {
|
||||
var me = this;
|
||||
this.$wrapper = $(repl('<div class="panel panel-default">\
|
||||
if(this.$body) this.$body.remove();
|
||||
this.$body = $(repl('<div class="panel panel-default">\
|
||||
<div class="panel-heading">\
|
||||
<div class="panel-title row">\
|
||||
<div class="col-sm-8"><h3 style="margin: 0px;">\
|
||||
<div class="col-sm-12"><h3 style="margin: 0px;">\
|
||||
<i class="%(icon)s text-muted"></i> %(title)s</h3></div>\
|
||||
<div class="col-sm-4 text-right"><a class="prev-btn hide btn btn-default">Previous</a> \
|
||||
<a class="next-btn hide btn btn-primary">Next</a> \
|
||||
<a class="complete-btn hide btn btn-primary"><b>Complete Setup</b></a>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="panel-body">\
|
||||
<div class="progress">\
|
||||
<div class="progress-bar" style="width: %(width)s%"></div>\
|
||||
</div>\
|
||||
<br>\
|
||||
<div class="row">\
|
||||
<div class="col-sm-8 form"></div>\
|
||||
<div class="col-sm-4 help">\
|
||||
<p class="text-muted">%(help)s</p>\
|
||||
<div class="col-sm-12">\
|
||||
<p class="text-muted">%(help)s</p><br>\
|
||||
<div class="form"></div>\
|
||||
</div>\
|
||||
</div>\
|
||||
<hr>\
|
||||
<div class="footer"></div>\
|
||||
<div class="footer">\
|
||||
<div class="text-right"><a class="prev-btn hide btn btn-default">Previous</a> \
|
||||
<a class="next-btn hide btn btn-primary">'+__("Next")+'</a> \
|
||||
<a class="complete-btn hide btn btn-primary"><b>'+__("Complete Setup")+'</b></a>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>', {help:this.help, title:this.title, main_title:this.wiz.title, step: this.id + 1,
|
||||
</div>', {help: __(this.help), title:__(this.title), main_title:__(this.wiz.title), step: this.id + 1,
|
||||
width: (flt(this.id + 1) / (this.wiz.slides.length+1)) * 100, icon:this.icon}))
|
||||
.appendTo(this.wiz.parent);
|
||||
|
||||
this.body = this.$wrapper.find(".form")[0];
|
||||
|
||||
.appendTo(this.$wrapper);
|
||||
|
||||
this.body = this.$body.find(".form")[0];
|
||||
|
||||
if(this.fields) {
|
||||
this.form = new frappe.ui.FieldGroup({
|
||||
fields: this.fields,
|
||||
@ -424,32 +461,32 @@ frappe.wiz.WizardSlide = Class.extend({
|
||||
} else {
|
||||
$(this.body).html(this.html)
|
||||
}
|
||||
|
||||
|
||||
if(this.id > 0) {
|
||||
this.$prev = this.$wrapper.find('.prev-btn').removeClass("hide")
|
||||
.click(function() {
|
||||
frappe.set_route(me.wiz.page_name, me.id-1 + "");
|
||||
this.$prev = this.$body.find('.prev-btn').removeClass("hide")
|
||||
.click(function() {
|
||||
frappe.set_route(me.wiz.page_name, me.id-1 + "");
|
||||
})
|
||||
.css({"margin-right": "10px"});
|
||||
}
|
||||
if(this.id+1 < this.wiz.slides.length) {
|
||||
this.$next = this.$wrapper.find('.next-btn').removeClass("hide")
|
||||
.click(function() {
|
||||
this.$next = this.$body.find('.next-btn').removeClass("hide")
|
||||
.click(function() {
|
||||
me.values = me.form.get_values();
|
||||
if(me.values===null)
|
||||
if(me.values===null)
|
||||
return;
|
||||
frappe.set_route(me.wiz.page_name, me.id+1 + "");
|
||||
frappe.set_route(me.wiz.page_name, me.id+1 + "");
|
||||
})
|
||||
} else {
|
||||
this.$complete = this.$wrapper.find('.complete-btn').removeClass("hide")
|
||||
.click(function() {
|
||||
this.$complete = this.$body.find('.complete-btn').removeClass("hide")
|
||||
.click(function() {
|
||||
me.values = me.form.get_values();
|
||||
if(me.values===null)
|
||||
if(me.values===null)
|
||||
return;
|
||||
me.wiz.on_complete(me.wiz);
|
||||
me.wiz.on_complete(me.wiz);
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
if(this.onload) {
|
||||
this.onload(this);
|
||||
}
|
||||
@ -458,4 +495,4 @@ frappe.wiz.WizardSlide = Class.extend({
|
||||
get_input: function(fn) {
|
||||
return this.form.get_input(fn);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
@ -2,11 +2,12 @@
|
||||
# License: GNU General Public License v3. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe, json, base64
|
||||
import frappe, json
|
||||
|
||||
from frappe.utils import cint, cstr, getdate, now, nowdate, get_defaults
|
||||
from frappe import _
|
||||
from frappe.utils import cstr, getdate
|
||||
from frappe.utils.file_manager import save_file
|
||||
from frappe.translate import set_default_language, get_dict, get_lang_dict
|
||||
from frappe.country_info import get_country_info
|
||||
|
||||
@frappe.whitelist()
|
||||
def setup_account(args=None):
|
||||
@ -19,27 +20,50 @@ def setup_account(args=None):
|
||||
args = json.loads(args)
|
||||
args = frappe._dict(args)
|
||||
|
||||
if args.language != "english":
|
||||
set_default_language(args.language)
|
||||
|
||||
update_user_name(args)
|
||||
frappe.local.message_log = []
|
||||
|
||||
create_fiscal_year_and_company(args)
|
||||
frappe.local.message_log = []
|
||||
|
||||
set_defaults(args)
|
||||
frappe.local.message_log = []
|
||||
|
||||
create_territories()
|
||||
frappe.local.message_log = []
|
||||
|
||||
create_price_lists(args)
|
||||
frappe.local.message_log = []
|
||||
|
||||
create_feed_and_todo()
|
||||
frappe.local.message_log = []
|
||||
|
||||
create_email_digest()
|
||||
frappe.local.message_log = []
|
||||
|
||||
create_letter_head(args)
|
||||
frappe.local.message_log = []
|
||||
|
||||
create_taxes(args)
|
||||
frappe.local.message_log = []
|
||||
|
||||
create_items(args)
|
||||
frappe.local.message_log = []
|
||||
|
||||
create_customers(args)
|
||||
frappe.local.message_log = []
|
||||
|
||||
create_suppliers(args)
|
||||
frappe.local.message_log = []
|
||||
|
||||
frappe.db.set_default('desktop:home_page', 'desktop')
|
||||
|
||||
frappe.clear_cache()
|
||||
frappe.db.commit()
|
||||
|
||||
# suppress msgprints
|
||||
frappe.local.message_log = []
|
||||
|
||||
return "okay"
|
||||
|
||||
def update_user_name(args):
|
||||
if args.get("email"):
|
||||
@ -116,13 +140,23 @@ def set_defaults(args):
|
||||
'current_fiscal_year': args.curr_fiscal_year,
|
||||
'default_currency': args.get('currency'),
|
||||
'default_company':args.get('company_name'),
|
||||
'date_format': frappe.db.get_value("Country", args.get("country"), "date_format"),
|
||||
"float_precision": 3,
|
||||
"country": args.get("country"),
|
||||
"time_zone": args.get("time_zone")
|
||||
})
|
||||
|
||||
global_defaults.save()
|
||||
|
||||
system_settings = frappe.get_doc("System Settings", "System Settings")
|
||||
system_settings.update({
|
||||
"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': get_country_info(args.get("country")).get("number_format", "#,###.##"),
|
||||
})
|
||||
|
||||
system_settings.save()
|
||||
|
||||
|
||||
accounts_settings = frappe.get_doc("Accounts Settings")
|
||||
accounts_settings.auto_accounting_for_stock = 1
|
||||
accounts_settings.save()
|
||||
@ -317,7 +351,7 @@ def create_suppliers(args):
|
||||
|
||||
def create_letter_head(args):
|
||||
if args.get("attach_letterhead"):
|
||||
lh = frappe.get_doc({
|
||||
frappe.get_doc({
|
||||
"doctype":"Letter Head",
|
||||
"letter_head_name": "Standard",
|
||||
"is_default": 1
|
||||
@ -348,3 +382,13 @@ def create_territories():
|
||||
"parent_territory": root_territory,
|
||||
"is_group": "No"
|
||||
}).insert()
|
||||
|
||||
@frappe.whitelist()
|
||||
def load_messages(language):
|
||||
lang = get_lang_dict()[language]
|
||||
frappe.local.lang = lang
|
||||
m = get_dict("page", "setup-wizard")
|
||||
m.update(get_dict("boot"))
|
||||
frappe.local.response["__messages"] = m
|
||||
return lang
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user