fix: user progress code cleanup
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 9e74bfd..a88bb44 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -40,8 +40,6 @@
boot_session = "erpnext.startup.boot.boot_session"
notification_config = "erpnext.startup.notifications.get_notification_config"
get_help_messages = "erpnext.utilities.activation.get_help_messages"
-get_user_progress_slides = "erpnext.utilities.user_progress.get_user_progress_slides"
-update_and_get_user_progress = "erpnext.utilities.user_progress_utils.update_default_domain_actions_and_get_state"
leaderboards = "erpnext.startup.leaderboard.get_leaderboards"
diff --git a/erpnext/public/images/illustrations/collaboration.png b/erpnext/public/images/illustrations/collaboration.png
new file mode 100644
index 0000000..12c67e3
--- /dev/null
+++ b/erpnext/public/images/illustrations/collaboration.png
Binary files differ
diff --git a/erpnext/public/images/illustrations/customer.png b/erpnext/public/images/illustrations/customer.png
new file mode 100644
index 0000000..b2ddbf3
--- /dev/null
+++ b/erpnext/public/images/illustrations/customer.png
Binary files differ
diff --git a/erpnext/public/images/illustrations/letterhead.png b/erpnext/public/images/illustrations/letterhead.png
new file mode 100644
index 0000000..37df6d7
--- /dev/null
+++ b/erpnext/public/images/illustrations/letterhead.png
Binary files differ
diff --git a/erpnext/public/images/illustrations/onboard.png b/erpnext/public/images/illustrations/onboard.png
new file mode 100644
index 0000000..094aa3f
--- /dev/null
+++ b/erpnext/public/images/illustrations/onboard.png
Binary files differ
diff --git a/erpnext/public/images/illustrations/product.png b/erpnext/public/images/illustrations/product.png
new file mode 100644
index 0000000..f864b7a
--- /dev/null
+++ b/erpnext/public/images/illustrations/product.png
Binary files differ
diff --git a/erpnext/public/images/illustrations/supplier.png b/erpnext/public/images/illustrations/supplier.png
new file mode 100644
index 0000000..87f7789
--- /dev/null
+++ b/erpnext/public/images/illustrations/supplier.png
Binary files differ
diff --git a/erpnext/public/images/illustrations/user.png b/erpnext/public/images/illustrations/user.png
new file mode 100644
index 0000000..7dd7db2
--- /dev/null
+++ b/erpnext/public/images/illustrations/user.png
Binary files differ
diff --git a/erpnext/setup/doctype/setup_progress/__init__.py b/erpnext/setup/doctype/setup_progress/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/setup/doctype/setup_progress/__init__.py
+++ /dev/null
diff --git a/erpnext/setup/doctype/setup_progress/setup_progress.js b/erpnext/setup/doctype/setup_progress/setup_progress.js
deleted file mode 100644
index 5c78bd5..0000000
--- a/erpnext/setup/doctype/setup_progress/setup_progress.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
-// For license information, please see license.txt
-
-frappe.ui.form.on('Setup Progress', {
- refresh: function() {
-
- }
-});
diff --git a/erpnext/setup/doctype/setup_progress/setup_progress.json b/erpnext/setup/doctype/setup_progress/setup_progress.json
deleted file mode 100644
index 09072d4..0000000
--- a/erpnext/setup/doctype/setup_progress/setup_progress.json
+++ /dev/null
@@ -1,123 +0,0 @@
-{
- "allow_copy": 0,
- "allow_guest_to_view": 0,
- "allow_import": 0,
- "allow_rename": 0,
- "beta": 0,
- "creation": "2017-08-27 21:01:42.032109",
- "custom": 0,
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "",
- "editable_grid": 1,
- "engine": "InnoDB",
- "fields": [
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "actions_sb",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Actions",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "actions",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Actions",
- "length": 0,
- "no_copy": 0,
- "options": "Setup Progress Action",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- }
- ],
- "has_web_view": 0,
- "hide_heading": 0,
- "hide_toolbar": 0,
- "idx": 0,
- "image_view": 0,
- "in_create": 1,
- "is_submittable": 0,
- "issingle": 1,
- "istable": 0,
- "max_attachments": 0,
- "modified": "2017-09-21 11:52:56.106659",
- "modified_by": "Administrator",
- "module": "Setup",
- "name": "Setup Progress",
- "name_case": "",
- "owner": "Administrator",
- "permissions": [
- {
- "amend": 0,
- "apply_user_permissions": 0,
- "cancel": 0,
- "create": 0,
- "delete": 0,
- "email": 1,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 0,
- "role": "All",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 0,
- "write": 1
- }
- ],
- "quick_entry": 1,
- "read_only": 1,
- "read_only_onload": 0,
- "show_name_in_global_search": 0,
- "sort_field": "modified",
- "sort_order": "DESC",
- "track_changes": 1,
- "track_seen": 0
-}
\ No newline at end of file
diff --git a/erpnext/setup/doctype/setup_progress/setup_progress.py b/erpnext/setup/doctype/setup_progress/setup_progress.py
deleted file mode 100644
index e1402f5..0000000
--- a/erpnext/setup/doctype/setup_progress/setup_progress.py
+++ /dev/null
@@ -1,63 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe, json
-from frappe.model.document import Document
-
-class SetupProgress(Document):
- pass
-
-def get_setup_progress():
- if not getattr(frappe.local, "setup_progress", None):
- frappe.local.setup_progress = frappe.get_doc("Setup Progress", "Setup Progress")
-
- return frappe.local.setup_progress
-
-def get_action_completed_state(action_name):
- for d in get_setup_progress().actions:
- if d.action_name == action_name:
- return d.is_completed
-
-def update_action_completed_state(action_name):
- action_table_doc = [d for d in get_setup_progress().actions
- if d.action_name == action_name][0]
- update_action(action_table_doc)
-
-def update_action(doc):
- doctype = doc.action_doctype
- docname = doc.action_document
- field = doc.action_field
-
- if not doc.is_completed:
- if doc.min_doc_count:
- if frappe.db.count(doctype) >= doc.min_doc_count:
- doc.is_completed = 1
- doc.save()
- if docname and field:
- d = frappe.get_doc(doctype, docname)
- if d.get(field):
- doc.is_completed = 1
- doc.save()
-
-def update_domain_actions(domain):
- for d in get_setup_progress().actions:
- domains = json.loads(d.domains)
- if domains == [] or domain in domains:
- update_action(d)
-
-def get_domain_actions_state(domain):
- state = {}
- for d in get_setup_progress().actions:
- domains = json.loads(d.domains)
- if domains == [] or domain in domains:
- state[d.action_name] = d.is_completed
- return state
-
-@frappe.whitelist()
-def set_action_completed_state(action_name):
- action_table_doc = [d for d in get_setup_progress().actions
- if d.action_name == action_name][0]
- action_table_doc.is_completed = 1
- action_table_doc.save()
diff --git a/erpnext/setup/doctype/setup_progress/test_setup_progress.js b/erpnext/setup/doctype/setup_progress/test_setup_progress.js
deleted file mode 100644
index 9e84e0c..0000000
--- a/erpnext/setup/doctype/setup_progress/test_setup_progress.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* eslint-disable */
-// rename this file from _test_[name] to test_[name] to activate
-// and remove above this line
-
-QUnit.test("test: Setup Progress", function (assert) {
- let done = assert.async();
-
- // number of asserts
- assert.expect(1);
-
- frappe.run_serially([
- // insert a new Setup Progress
- () => frappe.tests.make('Setup Progress', [
- // values to be set
- {key: 'value'}
- ]),
- () => {
- assert.equal(cur_frm.doc.key, 'value');
- },
- () => done()
- ]);
-
-});
diff --git a/erpnext/setup/doctype/setup_progress/test_setup_progress.py b/erpnext/setup/doctype/setup_progress/test_setup_progress.py
deleted file mode 100644
index 8926219..0000000
--- a/erpnext/setup/doctype/setup_progress/test_setup_progress.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
-# See license.txt
-from __future__ import unicode_literals
-
-import unittest
-
-class TestSetupProgress(unittest.TestCase):
- pass
diff --git a/erpnext/setup/doctype/setup_progress_action/__init__.py b/erpnext/setup/doctype/setup_progress_action/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/setup/doctype/setup_progress_action/__init__.py
+++ /dev/null
diff --git a/erpnext/setup/doctype/setup_progress_action/setup_progress_action.json b/erpnext/setup/doctype/setup_progress_action/setup_progress_action.json
deleted file mode 100644
index e9abcbc..0000000
--- a/erpnext/setup/doctype/setup_progress_action/setup_progress_action.json
+++ /dev/null
@@ -1,253 +0,0 @@
-{
- "allow_copy": 0,
- "allow_guest_to_view": 0,
- "allow_import": 0,
- "allow_rename": 0,
- "beta": 0,
- "creation": "2017-08-27 21:00:40.715360",
- "custom": 0,
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "",
- "editable_grid": 1,
- "engine": "InnoDB",
- "fields": [
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "action_name",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Action Name",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "action_doctype",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Action Doctype",
- "length": 0,
- "no_copy": 0,
- "options": "DocType",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "action_document",
- "fieldtype": "Dynamic Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Action Document",
- "length": 0,
- "no_copy": 0,
- "options": "action_doctype",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "action_field",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Action Field",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "min_doc_count",
- "fieldtype": "Int",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Min Doc Count",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "domains",
- "fieldtype": "Code",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Domains",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "is_completed",
- "fieldtype": "Check",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Is Completed",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- }
- ],
- "has_web_view": 0,
- "hide_heading": 0,
- "hide_toolbar": 0,
- "idx": 0,
- "image_view": 0,
- "in_create": 1,
- "is_submittable": 0,
- "issingle": 0,
- "istable": 1,
- "max_attachments": 0,
- "modified": "2017-09-01 14:34:59.685730",
- "modified_by": "Administrator",
- "module": "Setup",
- "name": "Setup Progress Action",
- "name_case": "",
- "owner": "Administrator",
- "permissions": [],
- "quick_entry": 1,
- "read_only": 1,
- "read_only_onload": 0,
- "show_name_in_global_search": 0,
- "sort_field": "modified",
- "sort_order": "DESC",
- "track_changes": 1,
- "track_seen": 0
-}
\ No newline at end of file
diff --git a/erpnext/setup/doctype/setup_progress_action/setup_progress_action.py b/erpnext/setup/doctype/setup_progress_action/setup_progress_action.py
deleted file mode 100644
index 24af943..0000000
--- a/erpnext/setup/doctype/setup_progress_action/setup_progress_action.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-from frappe.model.document import Document
-
-class SetupProgressAction(Document):
- pass
diff --git a/erpnext/utilities/onboarding_utils.py b/erpnext/utilities/onboarding_utils.py
index 35f2b6a..7b775a7 100644
--- a/erpnext/utilities/onboarding_utils.py
+++ b/erpnext/utilities/onboarding_utils.py
@@ -7,19 +7,12 @@
import json
from frappe import _
from frappe.utils import flt
-from erpnext.setup.doctype.setup_progress.setup_progress import update_domain_actions, get_domain_actions_state
-
-@frappe.whitelist()
-def set_sales_target(args_data):
- args = json.loads(args_data)
- defaults = frappe.defaults.get_defaults()
- frappe.db.set_value("Company", defaults.get("company"), "monthly_sales_target", args.get('monthly_sales_target'))
@frappe.whitelist()
def create_customers(args_data):
args = json.loads(args_data)
defaults = frappe.defaults.get_defaults()
- for i in range(1,4):
+ for i in range(1,args.get('max_count')):
customer = args.get("customer_name_" + str(i))
if customer:
try:
@@ -57,7 +50,7 @@
def create_suppliers(args_data):
args = json.loads(args_data)
defaults = frappe.defaults.get_defaults()
- for i in range(1,4):
+ for i in range(1,args.get('max_count')):
supplier = args.get("supplier_name_" + str(i))
if supplier:
try:
@@ -90,7 +83,7 @@
def create_items(args_data):
args = json.loads(args_data)
defaults = frappe.defaults.get_defaults()
- for i in range(1,4):
+ for i in range(1, args.get('max_count')):
item = args.get("item_" + str(i))
if item:
default_warehouse = ""
@@ -141,7 +134,7 @@
@frappe.whitelist()
def create_program(args_data):
args = json.loads(args_data)
- for i in range(1,4):
+ for i in range(1,args.get('max_count')):
if args.get("program_" + str(i)):
program = frappe.new_doc("Program")
program.program_code = args.get("program_" + str(i))
@@ -154,7 +147,7 @@
@frappe.whitelist()
def create_course(args_data):
args = json.loads(args_data)
- for i in range(1,4):
+ for i in range(1,args.get('max_count')):
if args.get("course_" + str(i)):
course = frappe.new_doc("Course")
course.course_code = args.get("course_" + str(i))
@@ -167,7 +160,7 @@
@frappe.whitelist()
def create_instructor(args_data):
args = json.loads(args_data)
- for i in range(1,4):
+ for i in range(1,args.get('max_count')):
if args.get("instructor_" + str(i)):
instructor = frappe.new_doc("Instructor")
instructor.instructor_name = args.get("instructor_" + str(i))
@@ -179,7 +172,7 @@
@frappe.whitelist()
def create_room(args_data):
args = json.loads(args_data)
- for i in range(1,4):
+ for i in range(1,args.get('max_count')):
if args.get("room_" + str(i)):
room = frappe.new_doc("Room")
room.room_name = args.get("room_" + str(i))
@@ -195,7 +188,7 @@
return
args = json.loads(args_data)
defaults = frappe.defaults.get_defaults()
- for i in range(1,4):
+ for i in range(1,args.get('max_count')):
email = args.get("user_email_" + str(i))
fullname = args.get("user_fullname_" + str(i))
if email:
@@ -231,4 +224,4 @@
emp.flags.ignore_mandatory = True
emp.insert(ignore_permissions = True)
-# Ennumerate the setup hooks you're going to need, apart from the slides
+# Enumerate the setup hooks you're going to need, apart from the slides
diff --git a/erpnext/utilities/user_progress.py b/erpnext/utilities/user_progress.py
deleted file mode 100644
index 5cec3ca..0000000
--- a/erpnext/utilities/user_progress.py
+++ /dev/null
@@ -1,287 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-import frappe, erpnext
-from frappe import _
-from erpnext.setup.doctype.setup_progress.setup_progress import get_action_completed_state
-
-def get_slide_settings():
- defaults = frappe.defaults.get_defaults()
- domain = frappe.get_cached_value('Company', erpnext.get_default_company(), 'domain')
- company = defaults.get("company") or ''
- currency = defaults.get("currency") or ''
-
- doc = frappe.get_doc("Setup Progress")
- item = [d for d in doc.get("actions") if d.action_name == "Set Sales Target"]
-
- if len(item):
- item = item[0]
- if not item.action_document:
- item.action_document = company
- doc.save()
-
- # Initial state of slides
- return [
- frappe._dict(
- action_name='Add Company',
- title=_("Setup Company") if domain != 'Education' else _("Setup Institution"),
- help=_('Setup your ' + ('company' if domain != 'Education' else 'institution') + ' and brand.'),
- # image_src="/assets/erpnext/images/illustrations/shop.jpg",
- fields=[],
- done_state_title=_("You added " + company),
- done_state_title_route=["Form", "Company", company],
- help_links=[
- {
- "label": _("Chart of Accounts"),
- "url": ["https://erpnext.com/docs/user/manual/en/accounts/chart-of-accounts"]
- },
- {
- "label": _("Opening Balances"),
- "video_id": "U5wPIvEn-0c"
- }
- ]
- ),
- frappe._dict(
- action_name='Set Sales Target',
- domains=('Manufacturing', 'Services', 'Retail', 'Distribution'),
- title=_("Set a Target"),
- help=_("Set a sales goal you'd like to achieve for your company."),
- fields=[
- {"fieldtype":"Currency", "fieldname":"monthly_sales_target",
- "label":_("Monthly Sales Target (" + currency + ")"), "reqd":1},
- ],
- submit_method="erpnext.utilities.user_progress_utils.set_sales_target",
- done_state_title=_("Go to " + company),
- done_state_title_route=["Form", "Company", company],
- help_links=[
- {
- "label": _('Learn More'),
- "url": ["https://erpnext.com/docs/user/manual/en/setting-up/setting-company-sales-goal"]
- }
- ]
- ),
- frappe._dict(
- action_name='Add Customers',
- domains=('Manufacturing', 'Services', 'Retail', 'Distribution'),
- title=_("Add Customers"),
- help=_("List a few of your customers. They could be organizations or individuals."),
- 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")}
- ],
- add_more=1, max_count=3, mandatory_entry=1,
- submit_method="erpnext.utilities.user_progress_utils.create_customers",
- done_state_title=_("Go to Customers"),
- done_state_title_route=["List", "Customer"],
- help_links=[
- {
- "label": _('Learn More'),
- "url": ["https://erpnext.com/docs/user/manual/en/CRM/customer.html"]
- }
- ]
- ),
-
- frappe._dict(
- action_name='Add Letterhead',
- domains=('Manufacturing', 'Services', 'Retail', 'Distribution', 'Education'),
- title=_("Add Letterhead"),
- help=_("Upload your letter head (Keep it web friendly as 900px by 100px)"),
- fields=[
- {"fieldtype":"Attach Image", "fieldname":"letterhead",
- "is_private": 0,
- "align": "center"
- },
- ],
- mandatory_entry=1,
- submit_method="erpnext.utilities.user_progress_utils.create_letterhead",
- done_state_title=_("Go to Letterheads"),
- done_state_title_route=["List", "Letter Head"]
- ),
-
- frappe._dict(
- action_name='Add 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."),
- 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")},
- ],
- add_more=1, max_count=3, mandatory_entry=1,
- submit_method="erpnext.utilities.user_progress_utils.create_suppliers",
- done_state_title=_("Go to Suppliers"),
- done_state_title_route=["List", "Supplier"],
- help_links=[
- {
- "label": _('Learn More'),
- "url": ["https://erpnext.com/docs/user/manual/en/buying/supplier"]
- },
- {
- "label": _('Customers and Suppliers'),
- "video_id": "zsrrVDk6VBs"
- },
- ]
- ),
- frappe._dict(
- action_name='Add 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."),
- fields=[
- {"fieldtype":"Section Break", "show_section_border": 1},
- {"fieldtype":"Data", "fieldname":"item", "label":_("Item"),
- "placeholder":_("A Product")},
- {"fieldtype":"Column Break"},
- {"fieldtype":"Select", "fieldname":"item_uom", "label":_("UOM"),
- "options":[_("Unit"), _("Nos"), _("Box"), _("Pair"), _("Kg"), _("Set"),
- _("Hour"), _("Minute"), _("Litre"), _("Meter"), _("Gram")],
- "default": _("Unit"), "static": 1},
- {"fieldtype":"Column Break"},
- {"fieldtype":"Currency", "fieldname":"item_price", "label":_("Rate"), "static": 1}
- ],
- add_more=1, max_count=3, mandatory_entry=1,
- submit_method="erpnext.utilities.user_progress_utils.create_items",
- done_state_title=_("Go to Items"),
- done_state_title_route=["List", "Item"],
- help_links=[
- {
- "label": _("Explore Sales Cycle"),
- "video_id": "1eP90MWoDQM"
- },
- ]
- ),
-
- # Education slides begin
- frappe._dict(
- action_name='Add Programs',
- domains=("Education"),
- title=_("Program"),
- help=_("Example: Masters in Computer Science"),
- fields=[
- {"fieldtype":"Section Break", "show_section_border": 1},
- {"fieldtype":"Data", "fieldname":"program", "label":_("Program"), "placeholder": _("Program Name")},
- ],
- add_more=1, max_count=3, mandatory_entry=1,
- submit_method="erpnext.utilities.user_progress_utils.create_program",
- done_state_title=_("Go to Programs"),
- done_state_title_route=["List", "Program"],
- help_links=[
- {
- "label": _("Student Application"),
- "video_id": "l8PUACusN3E"
- },
- ]
-
- ),
- frappe._dict(
- action_name='Add Courses',
- domains=["Education"],
- title=_("Course"),
- help=_("Example: Basic Mathematics"),
- fields=[
- {"fieldtype":"Section Break", "show_section_border": 1},
- {"fieldtype":"Data", "fieldname":"course", "label":_("Course"), "placeholder": _("Course Name")},
- ],
- add_more=1, max_count=3, mandatory_entry=1,
- submit_method="erpnext.utilities.user_progress_utils.create_course",
- done_state_title=_("Go to Courses"),
- done_state_title_route=["List", "Course"],
- help_links=[
- {
- "label": _('Add Students'),
- "route": ["List", "Student"]
- }
- ]
- ),
- frappe._dict(
- action_name='Add Instructors',
- domains=["Education"],
- title=_("Instructor"),
- help=_("People who teach at your organisation"),
- fields=[
- {"fieldtype":"Section Break", "show_section_border": 1},
- {"fieldtype":"Data", "fieldname":"instructor", "label":_("Instructor"), "placeholder": _("Instructor Name")},
- ],
- add_more=1, max_count=3, mandatory_entry=1,
- submit_method="erpnext.utilities.user_progress_utils.create_instructor",
- done_state_title=_("Go to Instructors"),
- done_state_title_route=["List", "Instructor"],
- help_links=[
- {
- "label": _('Student Batches'),
- "route": ["List", "Student Batch"]
- }
- ]
- ),
- frappe._dict(
- action_name='Add Rooms',
- domains=["Education"],
- title=_("Room"),
- help=_("Classrooms/ Laboratories etc where lectures can be scheduled."),
- fields=[
- {"fieldtype":"Section Break", "show_section_border": 1},
- {"fieldtype":"Data", "fieldname":"room", "label":_("Room")},
- {"fieldtype":"Column Break"},
- {"fieldtype":"Int", "fieldname":"room_capacity", "label":_("Room Capacity"), "static": 1},
- ],
- add_more=1, max_count=3, mandatory_entry=1,
- submit_method="erpnext.utilities.user_progress_utils.create_room",
- done_state_title=_("Go to Rooms"),
- done_state_title_route=["List", "Room"],
- help_links=[]
- ),
- # Education slides end
-
- frappe._dict(
- action_name='Add Users',
- title=_("Add Users"),
- help=_("Add users to your organization, other than yourself."),
- fields=[
- {"fieldtype":"Section Break"},
- {"fieldtype":"Data", "fieldname":"user_email", "label":_("Email ID"),
- "placeholder":_("user@example.com"), "options": "Email", "static": 1},
- {"fieldtype":"Column Break"},
- {"fieldtype":"Data", "fieldname":"user_fullname",
- "label":_("Full Name"), "static": 1},
- ],
- add_more=1, max_count=3, mandatory_entry=1,
- submit_method="erpnext.utilities.user_progress_utils.create_users",
- done_state_title=_("Go to Users"),
- done_state_title_route=["List", "User"],
- help_links=[
- {
- "label": _('Learn More'),
- "url": ["https://erpnext.com/docs/user/manual/en/setting-up/users-and-permissions"]
- },
- {
- "label": _('Users and Permissions'),
- "video_id": "8Slw1hsTmUI"
- },
- ]
- )
- ]
-
-def get_user_progress_slides():
- slides = []
- slide_settings = get_slide_settings()
-
- domains = frappe.get_active_domains()
- for s in slide_settings:
- 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.done = get_action_completed_state(s.action_name) or 0
- slides.append(s)
-
- return slides
-