fix: user progress code cleanup

This commit is contained in:
Rucha Mahabal 2019-11-25 11:58:14 +05:30
parent 3cf2c2b3d5
commit 00677f334e
19 changed files with 9 additions and 793 deletions

View File

@ -40,8 +40,6 @@ after_install = "erpnext.setup.install.after_install"
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"

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@ -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() {
}
});

View File

@ -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
}

View File

@ -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()

View File

@ -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()
]);
});

View File

@ -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

View File

@ -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
}

View File

@ -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

View File

@ -7,19 +7,12 @@ import frappe, erpnext
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_letterhead(args_data):
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_contact(contact, party_type, party):
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 @@ def make_item_price(item, price_list_name, item_price):
@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 @@ def create_program(args_data):
@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 @@ def create_course(args_data):
@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 @@ def create_instructor(args_data):
@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 @@ def create_users(args_data):
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 @@ def create_users(args_data):
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

View File

@ -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