User Progress (#10336)

* [user-progress] first cut

* [user-progress] Add users slide, remove taxes, make sample data

* wip tests

* [setup-wiz] UI test

* [user-progress] notif test, docs trim

* wip

* [user-progress] Setup Progress single to update action states, fixtures

* setup progress actions patch

* rename sales_target field patch

* [progress] wip reform slide data

* [progress] remove slide data

* [setup] add roles for GST doctypes, remove commit from fixtures
This commit is contained in:
Prateeksha Singh
2017-09-04 11:14:04 +05:30
committed by Rushabh Mehta
parent fd39d6bd3c
commit 95d8fd38f5
42 changed files with 1361 additions and 792 deletions

View File

@@ -7,7 +7,11 @@ frappe.pages['setup-wizard'].on_page_load = function(wrapper) {
}
};
var erpnext_slides = [
frappe.setup.on("before_load", function () {
erpnext.setup.slides_settings.map(frappe.setup.add_slide);
});
erpnext.setup.slides_settings = [
{
// Domain
name: 'domain',
@@ -18,14 +22,14 @@ var erpnext_slides = [
fieldname: 'domain', label: __('Domain'), fieldtype: 'Select',
options: [
{ "label": __("Distribution"), "value": "Distribution" },
{ "label": __("Education"), "value": "Education" },
{ "label": __("Manufacturing"), "value": "Manufacturing" },
{ "label": __("Retail"), "value": "Retail" },
{ "label": __("Services"), "value": "Services" }
{ "label": __("Services"), "value": "Services" },
{ "label": __("Education"), "value": "Education" }
], reqd: 1
},
],
help: __('Select the nature of your business.'),
// help: __('Select the nature of your business.'),
onload: function (slide) {
slide.get_input("domain").on("change", function () {
frappe.setup.domain = $(this).val();
@@ -40,7 +44,7 @@ var erpnext_slides = [
domains: ["all"],
icon: "fa fa-bookmark",
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).'),
fields: [
{
fieldtype: "Attach Image", fieldname: "attach_logo",
@@ -79,6 +83,12 @@ var erpnext_slides = [
slide.get_field("company_abbr").set_value("");
}
});
},
validate: function() {
if (!this.values.company_abbr) {
return false;
}
return true;
}
},
{
@@ -87,9 +97,9 @@ var erpnext_slides = [
domains: ["all"],
title: __("Your Organization"),
icon: "fa fa-building",
help: (frappe.setup.domain === 'Education' ?
__('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.')),
// help: (frappe.setup.domain === 'Education' ?
// __('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.')),
fields: [
{
fieldname: 'company_tagline',
@@ -189,213 +199,6 @@ var erpnext_slides = [
slide.form.fields_dict.fy_end_date.set_value(year_end_date);
});
}
},
{
// Users
name: 'users',
domains: ["all"],
title: __("Add Users"),
help: __("Add users to your organization, other than yourself"),
add_more: 1,
max_count: 3,
fields: [
{fieldtype:"Section Break"},
{fieldtype:"Data", fieldname:"user_fullname",
label:__("Full Name"), static: 1},
{fieldtype:"Data", fieldname:"user_email", label:__("Email ID"),
placeholder:__("user@example.com"), options: "Email", static: 1},
{fieldtype:"Column Break"},
{fieldtype: "Check", fieldname: "user_sales",
label:__("Sales"), "default": 1, static: 1,
hidden: frappe.setup.domain==='Education' ? 1 : 0},
{fieldtype: "Check", fieldname: "user_purchaser",
label:__("Purchaser"), "default": 1, static: 1,
hidden: frappe.setup.domain==='Education' ? 1 : 0},
{fieldtype: "Check", fieldname: "user_accountant",
label:__("Accountant"), "default": 1, static: 1,
hidden: frappe.setup.domain==='Education' ? 1 : 0},
]
},
{
// Sales Target
name: 'Goals',
domains: ['manufacturing', 'services', 'retail', 'distribution'],
title: __("Set your Target"),
help: __("Set a sales target you'd like to achieve."),
fields: [
{fieldtype:"Currency", fieldname:"sales_target", label:__("Monthly Sales Target")},
]
},
{
// Taxes
name: 'taxes',
domains: ['manufacturing', 'services', 'retail', 'distribution'],
icon: "fa fa-money",
title: __("Add Taxes"),
help: __("List your tax heads (e.g. VAT, Customs etc; they should have unique names) and their standard rates. This will create a standard template, which you can edit and add more later."),
add_more: 1,
max_count: 3,
mandatory_entry: 0,
fields: [
{fieldtype:"Section Break"},
{fieldtype:"Data", fieldname:"tax", label:__("Tax"),
placeholder:__("e.g. VAT")},
{fieldtype:"Column Break"},
{fieldtype:"Float", fieldname:"tax_rate", label:__("Rate (%)"), placeholder:__("e.g. 5")}
]
},
{
// Customers
name: 'customers',
domains: ['manufacturing', 'services', 'retail', 'distribution'],
icon: "fa fa-group",
title: __("Add Customers"),
help: __("List a few of your customers. They could be organizations or individuals."),
add_more: 1,
max_count: 5,
mandatory_entry: 1,
fields: [
{fieldtype:"Section Break"},
{fieldtype:"Data", fieldname:"customer", label:__("Customer"),
placeholder:__("Customer Name")},
{fieldtype:"Column Break"},
{fieldtype:"Data", fieldname:"customer_contact",
label:__("Contact Name"), placeholder:__("Contact Name")}
],
},
{
// Suppliers
name: 'suppliers',
domains: ['manufacturing', 'services', 'retail', 'distribution'],
icon: "fa fa-group",
title: __("Your Suppliers"),
help: __("List a few of your suppliers. They could be organizations or individuals."),
add_more: 1,
max_count: 5,
mandatory_entry: 1,
fields: [
{fieldtype:"Section Break"},
{fieldtype:"Data", fieldname:"supplier", label:__("Supplier"),
placeholder:__("Supplier Name")},
{fieldtype:"Column Break"},
{fieldtype:"Data", fieldname:"supplier_contact",
label:__("Contact Name"), placeholder:__("Contact Name")},
]
},
{
// Products
name: 'products',
domains: ['manufacturing', 'services', 'retail', 'distribution'],
icon: "fa fa-barcode",
title: __("Your Products or Services"),
help: __("List your products or services that you buy or sell. Make sure to check the Item Group, Unit of Measure and other properties when you start."),
add_more: 1,
max_count: 5,
mandatory_entry: 1,
fields: [
{fieldtype:"Section Break", show_section_border: true},
{fieldtype:"Data", fieldname:"item", label:__("Item"),
placeholder:__("A Product or Service")},
{fieldtype:"Select", label:__("Group"), fieldname:"item_group",
options:[__("Products"), __("Services"),
__("Raw Material"), __("Consumable"), __("Sub Assemblies")],
"default": __("Products"), static: 1},
{fieldtype:"Select", fieldname:"item_uom", label:__("UOM"),
options:[__("Unit"), __("Nos"), __("Box"), __("Pair"), __("Kg"), __("Set"),
__("Hour"), __("Minute"), __("Litre"), __("Meter"), __("Gram")],
"default": __("Unit"), static: 1},
{fieldtype: "Check", fieldname: "is_sales_item",
label:__("We sell this Item"), default: 1, static: 1},
{fieldtype: "Check", fieldname: "is_purchase_item",
label:__("We buy this Item"), default: 1, static: 1},
{fieldtype:"Column Break"},
{fieldtype:"Currency", fieldname:"item_price", label:__("Rate"), static: 1},
{fieldtype:"Attach Image", fieldname:"item_img", label:__("Attach Image"), is_private: 0, static: 1},
],
get_item_count: function() {
return this.item_count;
}
},
{
// Program
name: 'program',
domains: ["education"],
title: __("Program"),
help: __("Example: Masters in Computer Science"),
add_more: 1,
max_count: 5,
mandatory_entry: 1,
fields: [
{fieldtype:"Section Break", show_section_border: true},
{fieldtype:"Data", fieldname:"program", label:__("Program"), placeholder: __("Program Name")},
],
},
{
// Course
name: 'course',
domains: ["education"],
title: __("Course"),
help: __("Example: Basic Mathematics"),
add_more: 1,
max_count: 5,
mandatory_entry: 1,
fields: [
{fieldtype:"Section Break", show_section_border: true},
{fieldtype:"Data", fieldname:"course", label:__("Course"), placeholder: __("Course Name")},
]
},
{
// Instructor
name: 'instructor',
domains: ["education"],
title: __("Instructor"),
help: __("People who teach at your organisation"),
add_more: 1,
max_count: 5,
mandatory_entry: 1,
fields: [
{fieldtype:"Section Break", show_section_border: true},
{fieldtype:"Data", fieldname:"instructor", label:__("Instructor"), placeholder: __("Instructor Name")},
]
},
{
// Room
name: 'room',
domains: ["education"],
title: __("Room"),
help: __("Classrooms/ Laboratories etc where lectures can be scheduled."),
add_more: 1,
max_count: 3,
mandatory_entry: 1,
fields: [
{fieldtype:"Section Break", show_section_border: true},
{fieldtype:"Data", fieldname:"room", label:__("Room")},
{fieldtype:"Column Break"},
{fieldtype:"Int", fieldname:"room_capacity", label:__("Room") + " Capacity", static: 1},
]
},
{
// last slide: Sample Data
name: 'bootstrap',
domains: ["all"],
title: __("Sample Data"),
fields: [{fieldtype: "Section Break"},
{fieldtype: "Check", fieldname: "add_sample_data",
label: __("Add a few sample records"), "default": 1},
{fieldtype: "Check", fieldname: "setup_website",
label: __("Setup a simple website for my organization"), "default": 1}
]
}
];
@@ -422,23 +225,19 @@ erpnext.setup.fiscal_years = {
"United Kingdom": ["04-01", "03-31"],
};
frappe.setup.on("before_load", function () {
erpnext_slides.map(frappe.setup.add_slide);
});
var test_values_edu = {
"language": "english",
"domain": "Education",
"country": "India",
"timezone": "Asia/Kolkata",
"currency": "INR",
"first_name": "Tester",
"email": "test@example.com",
"password": "test",
"company_name": "Hogwarts",
"company_abbr": "HS",
"company_tagline": "School for magicians",
"bank_account": "Gringotts Wizarding Bank",
"fy_start_date": "2016-04-01",
"fy_end_date": "2017-03-31"
}
// var test_values_edu = {
// "language": "english",
// "domain": "Education",
// "country": "India",
// "timezone": "Asia/Kolkata",
// "currency": "INR",
// "first_name": "Tester",
// "email": "test@example.com",
// "password": "test",
// "company_name": "Hogwarts",
// "company_abbr": "HS",
// "company_tagline": "School for magicians",
// "bank_account": "Gringotts Wizarding Bank",
// "fy_start_date": "2016-04-01",
// "fy_end_date": "2017-03-31"
// }