refactor: remove form tour settings
This commit is contained in:
parent
639de716d5
commit
81c103a741
12 changed files with 36 additions and 213 deletions
|
|
@ -8,6 +8,7 @@ import frappe
|
|||
import frappe.defaults
|
||||
import frappe.desk.desk_page
|
||||
from frappe.core.doctype.navbar_settings.navbar_settings import get_app_logo, get_navbar_settings
|
||||
from frappe.desk.doctype.form_tour.form_tour import get_onboarding_ui_tours
|
||||
from frappe.desk.doctype.route_history.route_history import frequently_visited_links
|
||||
from frappe.desk.form.load import get_meta_bundle
|
||||
from frappe.email.inbox import get_email_accounts
|
||||
|
|
@ -68,11 +69,7 @@ def get_bootinfo():
|
|||
bootinfo.home_folder = frappe.db.get_value("File", {"is_home_folder": 1})
|
||||
bootinfo.navbar_settings = get_navbar_settings()
|
||||
bootinfo.notification_settings = get_notification_settings()
|
||||
bootinfo.onboarding_tours = (
|
||||
frappe.parse_json(frappe.db.get_single_value("Form Tour Settings", "onboarding_tours") or "[]")
|
||||
if frappe.get_system_settings("enable_onboarding")
|
||||
else []
|
||||
)
|
||||
bootinfo.onboarding_tours = get_onboarding_ui_tours()
|
||||
set_time_zone(bootinfo)
|
||||
|
||||
# ipinfo
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
# Copyright (c) 2021, Frappe Technologies and contributors
|
||||
# License: MIT. See LICENSE
|
||||
|
||||
import json
|
||||
|
||||
import frappe
|
||||
from frappe.model.document import Document
|
||||
from frappe.modules.export_file import export_to_files
|
||||
|
|
@ -32,40 +34,12 @@ class FormTour(Document):
|
|||
|
||||
def on_update(self):
|
||||
frappe.cache().delete_key("bootinfo")
|
||||
if self.ui_tour:
|
||||
form_tour_settings = frappe.get_doc("Form Tour Settings", "Form Tour Settings")
|
||||
in_settings = False
|
||||
child_index = 0
|
||||
for tour in form_tour_settings.form_tours:
|
||||
if tour.form_tour == self.name:
|
||||
in_settings = True
|
||||
child_index = tour.idx
|
||||
form_tour_settings.remove(tour)
|
||||
if not in_settings:
|
||||
child_index = len(form_tour_settings.form_tours) + 1
|
||||
child = frappe.new_doc("Form Tour Settings Item")
|
||||
child.update(
|
||||
{
|
||||
"idx": child_index,
|
||||
"form_tour": self.name,
|
||||
"parent": "Form Tour Settings",
|
||||
"parentfield": "form_tours",
|
||||
"parenttype": "Form Tour Settings",
|
||||
}
|
||||
)
|
||||
child.save()
|
||||
form_tour_settings.form_tours.insert(child_index, child)
|
||||
form_tour_settings.save()
|
||||
|
||||
if frappe.conf.developer_mode and self.is_standard:
|
||||
export_to_files([["Form Tour", self.name]], self.module)
|
||||
|
||||
def on_trash(self):
|
||||
if self.ui_tour:
|
||||
form_tour_settings = frappe.get_doc("Form Tour Settings", "Form Tour Settings")
|
||||
for tour in form_tour_settings.form_tours:
|
||||
if tour.form_tour == self.name:
|
||||
form_tour_settings.remove(tour)
|
||||
form_tour_settings.save()
|
||||
frappe.cache().delete_key("bootinfo")
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
|
|
@ -76,3 +50,31 @@ def reset_tour(tour_name):
|
|||
onboarding_status.pop(tour_name, None)
|
||||
user_doc.onboarding_status = frappe.as_json(onboarding_status)
|
||||
user_doc.save()
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def update_user_status(value, step):
|
||||
from frappe.utils.telemetry import capture
|
||||
|
||||
step = frappe.parse_json(step)
|
||||
tour = frappe.parse_json(value)
|
||||
|
||||
capture(
|
||||
frappe.scrub(f"{step.parent}_{step.title}"),
|
||||
app="frappe_ui_tours",
|
||||
properties={"is_completed": tour.is_completed},
|
||||
)
|
||||
frappe.db.set_value(
|
||||
"User", frappe.session.user, "onboarding_status", value, update_modified=False
|
||||
)
|
||||
|
||||
frappe.cache().hdel("bootinfo", frappe.session.user)
|
||||
|
||||
|
||||
def get_onboarding_ui_tours():
|
||||
if not frappe.get_system_settings("enable_onboarding"):
|
||||
return []
|
||||
|
||||
ui_tours = frappe.get_all("Form Tour", filters={"ui_tour": 1}, fields=["page_route", "name"])
|
||||
|
||||
return [[tour.name, json.loads(tour.page_route)] for tour in ui_tours]
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
// Copyright (c) 2023, Frappe Technologies and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on("Form Tour Settings", {
|
||||
refresh(frm) {
|
||||
frm.dashboard.add_comment(
|
||||
"This page is used to set priority for the UI form tours. If there are more than 1 matching tours found for the page, the tour with the highest priority will run.",
|
||||
"blue",
|
||||
true
|
||||
);
|
||||
},
|
||||
});
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
{
|
||||
"actions": [],
|
||||
"allow_rename": 1,
|
||||
"creation": "2023-05-11 18:07:26.879273",
|
||||
"default_view": "List",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"onboarding_tours",
|
||||
"form_tours"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "form_tours",
|
||||
"fieldtype": "Table",
|
||||
"label": "Form Tours",
|
||||
"options": "Form Tour Settings Item"
|
||||
},
|
||||
{
|
||||
"default": "\"[]\"",
|
||||
"fieldname": "onboarding_tours",
|
||||
"fieldtype": "Small Text",
|
||||
"hidden": 1,
|
||||
"label": "Onboarding Tours"
|
||||
}
|
||||
],
|
||||
"index_web_pages_for_search": 1,
|
||||
"issingle": 1,
|
||||
"links": [],
|
||||
"modified": "2023-05-24 12:05:52.676242",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Desk",
|
||||
"name": "Form Tour Settings",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"role": "System Manager",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"states": []
|
||||
}
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
# Copyright (c) 2023, Frappe Technologies and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
import json
|
||||
|
||||
import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
|
||||
class FormTourSettings(Document):
|
||||
def before_save(self):
|
||||
self.onboarding_tours = json.dumps(
|
||||
[[tour.form_tour, json.loads(tour.page_route)] for tour in self.form_tours]
|
||||
)
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def update_user_status(value, step):
|
||||
from frappe.utils.telemetry import capture
|
||||
|
||||
step = frappe.parse_json(step)
|
||||
tour = frappe.parse_json(value)
|
||||
# from frappe.utils.telemetry import capture
|
||||
capture(
|
||||
frappe.scrub(f"{step.parent}_{step.title}"),
|
||||
app="frappe_ui_tours",
|
||||
properties={"is_completed": tour.is_completed},
|
||||
)
|
||||
frappe.db.set_value(
|
||||
"User", frappe.session.user, "onboarding_status", value, update_modified=False
|
||||
)
|
||||
frappe.cache().hdel("bootinfo", frappe.session.user)
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
# Copyright (c) 2023, Frappe Technologies and Contributors
|
||||
# See license.txt
|
||||
|
||||
# import frappe
|
||||
from frappe.tests.utils import FrappeTestCase
|
||||
|
||||
|
||||
class TestFormTourSettings(FrappeTestCase):
|
||||
pass
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
{
|
||||
"actions": [],
|
||||
"allow_rename": 1,
|
||||
"creation": "2023-05-11 18:10:15.194034",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"form_tour",
|
||||
"view",
|
||||
"list_view",
|
||||
"page_route"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "form_tour",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"label": "Form Tour",
|
||||
"options": "Form Tour",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fetch_from": "form_tour.view_name",
|
||||
"fieldname": "view",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "View",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fetch_from": "form_tour.list_name",
|
||||
"fieldname": "list_view",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "List View",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fetch_from": "form_tour.page_route",
|
||||
"fieldname": "page_route",
|
||||
"fieldtype": "Data",
|
||||
"hidden": 1,
|
||||
"in_list_view": 1,
|
||||
"label": "Page Route",
|
||||
"read_only": 1
|
||||
}
|
||||
],
|
||||
"index_web_pages_for_search": 1,
|
||||
"istable": 1,
|
||||
"links": [],
|
||||
"modified": "2023-05-17 22:22:58.507769",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Desk",
|
||||
"name": "Form Tour Settings Item",
|
||||
"owner": "Administrator",
|
||||
"permissions": [],
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"states": []
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
# Copyright (c) 2023, Frappe Technologies and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
|
||||
class FormTourSettingsItem(Document):
|
||||
pass
|
||||
|
|
@ -42,7 +42,7 @@ frappe.ui.OnboardingTour = class OnboardingTour {
|
|||
}
|
||||
|
||||
frappe.call({
|
||||
method: "frappe.desk.doctype.form_tour_settings.form_tour_settings.update_user_status",
|
||||
method: "frappe.desk.doctype.form_tour.form_tour.update_user_status",
|
||||
args: {
|
||||
value: JSON.stringify(frappe.boot.user.onboarding_status),
|
||||
step: JSON.stringify(step.options.step_info),
|
||||
|
|
@ -87,7 +87,7 @@ frappe.ui.OnboardingTour = class OnboardingTour {
|
|||
}
|
||||
this.last_step_saved = step;
|
||||
frappe.call({
|
||||
method: "frappe.desk.doctype.form_tour_settings.form_tour_settings.update_user_status",
|
||||
method: "frappe.desk.doctype.form_tour.form_tour.update_user_status",
|
||||
args: {
|
||||
value: JSON.stringify(frappe.boot.user.onboarding_status),
|
||||
step: JSON.stringify(step),
|
||||
|
|
|
|||
|
|
@ -14,8 +14,6 @@ def before_install():
|
|||
frappe.reload_doc("core", "doctype", "doctype_action")
|
||||
frappe.reload_doc("core", "doctype", "doctype_link")
|
||||
frappe.reload_doc("desk", "doctype", "form_tour_step")
|
||||
frappe.reload_doc("desk", "doctype", "form_tour_settings")
|
||||
frappe.reload_doc("desk", "doctype", "form_tour_settings_item")
|
||||
frappe.reload_doc("desk", "doctype", "form_tour")
|
||||
frappe.reload_doc("core", "doctype", "doctype")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue