fix: remove install_ssh server script, fix truck profile permissions, add truck profile to workspace, remove duplicate/disabled client scripts, export clean fixtures

This commit is contained in:
Woodhouse
2026-05-17 01:47:48 +00:00
parent 7bf916003d
commit 482bae141e
6 changed files with 404 additions and 178 deletions
+16 -10
View File
@@ -1,23 +1,29 @@
[
{
"name": "Pallet - View Serials",
"dt": "Pallet",
"script": "frappe.ui.form.on('Pallet', {\n refresh: function(frm) {\n frm.add_custom_button(__('View Serials'), function() {\n frappe.set_route('List', 'Serial No', {\n 'pallet': frm.doc.pallet_number || frm.doc.name\n });\n }, __('View'));\n \n frm.add_custom_button(__('Serials Spreadsheet'), function() {\n frappe.set_route('query-report', 'Serial Nos by Pallet', {\n 'pallet': frm.doc.pallet_number || frm.doc.name\n });\n }, __('View'));\n }\n});\n",
"name": "Scheduled Pickup - Auto Fill",
"dt": "Scheduled Pickup",
"view": "Form",
"enabled": 1
"module": null,
"enabled": 1,
"script": "frappe.ui.form.on('Scheduled Pickup', {\n customer_number: function(frm) {\n var customer = frm.doc.customer_number;\n if (!customer) {\n clear_supplier_fields(frm);\n return;\n }\n frappe.call({\n method: 'frappe.client.get',\n args: {doctype: 'Supplier', name: customer},\n callback: function(r) {\n if (!r.message) return;\n var s = r.message;\n if (!frm.doc.company_name && s.supplier_name) {\n frm.set_value('company_name', s.supplier_name);\n }\n if (s.supplier_primary_contact) {\n frappe.call({\n method: 'frappe.client.get',\n args: {doctype: 'Contact', name: s.supplier_primary_contact},\n callback: function(cr) {\n if (!cr.message) return;\n var ct = cr.message;\n var full_name = [ct.first_name, ct.last_name].filter(Boolean).join(' ');\n if (!frm.doc.contact_name) frm.set_value('contact_name', full_name);\n if (!frm.doc.contact_phone) frm.set_value('contact_phone', ct.phone || '');\n if (!frm.doc.contact_email) frm.set_value('contact_email', ct.email_id || '');\n }\n });\n }\n if (s.supplier_primary_address) {\n frappe.call({\n method: 'frappe.client.get',\n args: {doctype: 'Address', name: s.supplier_primary_address},\n callback: function(ar) {\n if (!ar.message) return;\n var a = ar.message;\n if (!frm.doc.address_line) frm.set_value('address_line', a.address_line1 || '');\n if (!frm.doc.city) frm.set_value('city', a.city || '');\n if (!frm.doc.state) frm.set_value('state', a.state || '');\n if (!frm.doc.zip_code) frm.set_value('zip_code', a.pincode || '');\n }\n });\n }\n if (s.geocoded && s.latitude && s.longitude) {\n frm.set_value('latitude', s.latitude);\n frm.set_value('longitude', s.longitude);\n frm.set_value('geocoded', 1);\n }\n }\n });\n }\n});\n\nfunction clear_supplier_fields(frm) {\n frm.set_value('company_name', '');\n frm.set_value('contact_name', '');\n frm.set_value('contact_phone', '');\n frm.set_value('contact_email', '');\n frm.set_value('address_line', '');\n frm.set_value('city', '');\n frm.set_value('state', '');\n frm.set_value('zip_code', '');\n frm.set_value('latitude', '');\n frm.set_value('longitude', '');\n frm.set_value('geocoded', 0);\n}\n",
"doctype": "Client Script"
},
{
"name": "Load - View Pallets Button",
"dt": "Load",
"script": "frappe.ui.form.on('Load', {\n refresh: function(frm) {\n frm.add_custom_button(__('View Pallets'), function() {\n frappe.set_route('List', 'Pallet', {'load': frm.doc.name});\n }, __('Actions'));\n }\n});\n",
"view": "Form",
"enabled": 1
"module": null,
"enabled": 1,
"script": "frappe.ui.form.on('Load', {\n refresh: function(frm) {\n frm.add_custom_button(__('View Pallets'), function() {\n frappe.set_route('List', 'Pallet', {'load': frm.doc.name});\n }, __('Actions'));\n }\n});\n",
"doctype": "Client Script"
},
{
"name": "Scheduled Pickup - Auto Fill",
"dt": "Scheduled Pickup",
"script": "frappe.ui.form.on('Scheduled Pickup', {\n customer_number: function(frm) {\n var customer = frm.doc.customer_number;\n if (!customer) {\n clear_supplier_fields(frm);\n return;\n }\n frappe.call({\n method: 'frappe.client.get',\n args: {doctype: 'Supplier', name: customer},\n callback: function(r) {\n if (!r.message) return;\n var s = r.message;\n if (!frm.doc.company_name && s.supplier_name) {\n frm.set_value('company_name', s.supplier_name);\n }\n if (s.supplier_primary_contact) {\n frappe.call({\n method: 'frappe.client.get',\n args: {doctype: 'Contact', name: s.supplier_primary_contact},\n callback: function(cr) {\n if (!cr.message) return;\n var ct = cr.message;\n var full_name = [ct.first_name, ct.last_name].filter(Boolean).join(' ');\n if (!frm.doc.contact_name) frm.set_value('contact_name', full_name);\n if (!frm.doc.contact_phone) frm.set_value('contact_phone', ct.phone || '');\n if (!frm.doc.contact_email) frm.set_value('contact_email', ct.email_id || '');\n }\n });\n }\n if (s.supplier_primary_address) {\n frappe.call({\n method: 'frappe.client.get',\n args: {doctype: 'Address', name: s.supplier_primary_address},\n callback: function(ar) {\n if (!ar.message) return;\n var a = ar.message;\n if (!frm.doc.address_line) frm.set_value('address_line', a.address_line1 || '');\n if (!frm.doc.city) frm.set_value('city', a.city || '');\n if (!frm.doc.state) frm.set_value('state', a.state || '');\n if (!frm.doc.zip_code) frm.set_value('zip_code', a.pincode || '');\n }\n });\n }\n if (s.geocoded && s.latitude && s.longitude) {\n frm.set_value('latitude', s.latitude);\n frm.set_value('longitude', s.longitude);\n frm.set_value('geocoded', 1);\n }\n }\n });\n }\n});\n\nfunction clear_supplier_fields(frm) {\n frm.set_value('company_name', '');\n frm.set_value('contact_name', '');\n frm.set_value('contact_phone', '');\n frm.set_value('contact_email', '');\n frm.set_value('address_line', '');\n frm.set_value('city', '');\n frm.set_value('state', '');\n frm.set_value('zip_code', '');\n frm.set_value('latitude', '');\n frm.set_value('longitude', '');\n frm.set_value('geocoded', 0);\n}\n",
"name": "Pallet - View Serials",
"dt": "Pallet",
"view": "Form",
"enabled": 1
"module": null,
"enabled": 1,
"script": "frappe.ui.form.on('Pallet', {\n refresh: function(frm) {\n frm.add_custom_button(__('View Serials'), function() {\n frappe.set_route('List', 'Serial No', {\n 'pallet': frm.doc.pallet_number || frm.doc.name\n });\n }, __('View'));\n \n frm.add_custom_button(__('Serials Spreadsheet'), function() {\n frappe.set_route('query-report', 'Serial Nos by Pallet', {\n 'pallet': frm.doc.pallet_number || frm.doc.name\n });\n }, __('View'));\n }\n});\n",
"doctype": "Client Script"
}
]
+202 -168
View File
@@ -15,160 +15,8 @@
"is_hidden": 0,
"content": "[{\"type\": \"header\", \"data\": {\"text\": \"<span class=\\\"h4\\\"><b>Westech Recyclers</b></span>\"}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"New Intake\"}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Pallets\"}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Pallet List\"}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Scheduled Pickups\"}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Route Planner\"}}, {\"type\": \"spacer\", \"data\": {}}, {\"type\": \"header\", \"data\": {\"text\": \"<span class=\\\"h4\\\"><b>Tools</b></span>\"}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"EIM Device Portal\"}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"R2 Data Tracking\"}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Wes AI Assistant\"}}, {\"type\": \"spacer\", \"data\": {}}, {\"type\": \"header\", \"data\": {\"text\": \"<span class=\\\"h4\\\"><b>Records</b></span>\"}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Customers\"}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Suppliers\"}}]",
"doctype": "Workspace",
"number_cards": [],
"roles": [],
"charts": [],
"custom_blocks": [],
"shortcuts": [
{
"name": "udas5ds8ot",
"type": "Page",
"link_to": "intake",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "New Intake",
"icon": "add",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut"
},
{
"name": "udait4ne28",
"type": "Page",
"link_to": "eim-portal",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "EIM Device Portal",
"icon": "scan",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut"
},
{
"name": "uda22lpk4d",
"type": "Page",
"link_to": "r2-tracking",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "R2 Data Tracking",
"icon": "table",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut"
},
{
"name": "uda1ujmmbm",
"type": "DocType",
"link_to": "Pallet",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "Pallets",
"icon": "stock",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut"
},
{
"name": "udacp7r9mm",
"type": "DocType",
"link_to": "Customer",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "Customers",
"icon": "customer",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut"
},
{
"name": "udata7hnp2",
"type": "DocType",
"link_to": "Supplier",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "Suppliers",
"icon": "users",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut"
},
{
"name": "32sa54pcd0",
"type": "Page",
"link_to": "pallet-list",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "Pallet List",
"icon": "list",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut"
},
{
"name": "dur8jjfd70",
"type": "Page",
"link_to": "route-planner",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "Route Planner",
"icon": "map",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut"
},
{
"name": "durrgfv1f7",
"type": "DocType",
"link_to": "Scheduled Pickup",
"url": null,
"doc_view": "List",
"kanban_board": null,
"label": "Scheduled Pickups",
"icon": "calendar",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut"
}
],
"quick_lists": [],
"links": [
{
"name": "a3kfn55i4u",
"type": "Card Break",
"label": "Stock",
"icon": null,
@@ -182,10 +30,11 @@
"onboard": 0,
"is_query_report": 0,
"link_count": 0,
"doctype": "Workspace Link"
"doctype": "Workspace Link",
"parentfield": "links",
"parenttype": "Workspace"
},
{
"name": "a3khtlprab",
"type": "Link",
"label": "Warehouses",
"icon": null,
@@ -199,10 +48,11 @@
"onboard": 0,
"is_query_report": 0,
"link_count": 0,
"doctype": "Workspace Link"
"doctype": "Workspace Link",
"parentfield": "links",
"parenttype": "Workspace"
},
{
"name": "a3kfh5qu2i",
"type": "Link",
"label": "Serial Nos",
"icon": null,
@@ -216,10 +66,11 @@
"onboard": 0,
"is_query_report": 0,
"link_count": 0,
"doctype": "Workspace Link"
"doctype": "Workspace Link",
"parentfield": "links",
"parenttype": "Workspace"
},
{
"name": "a3kd2bjk00",
"type": "Link",
"label": "Stock Entry",
"icon": null,
@@ -233,10 +84,11 @@
"onboard": 0,
"is_query_report": 0,
"link_count": 0,
"doctype": "Workspace Link"
"doctype": "Workspace Link",
"parentfield": "links",
"parenttype": "Workspace"
},
{
"name": "a3k18ofk9m",
"type": "Link",
"label": "Pallets",
"icon": null,
@@ -250,10 +102,11 @@
"onboard": 0,
"is_query_report": 0,
"link_count": 0,
"doctype": "Workspace Link"
"doctype": "Workspace Link",
"parentfield": "links",
"parenttype": "Workspace"
},
{
"name": "a3knidvhdq",
"type": "Link",
"label": "Stock Balance",
"icon": null,
@@ -267,10 +120,11 @@
"onboard": 0,
"is_query_report": 0,
"link_count": 0,
"doctype": "Workspace Link"
"doctype": "Workspace Link",
"parentfield": "links",
"parenttype": "Workspace"
},
{
"name": "q8h2lf3bto",
"type": "Card Break",
"label": "R2 Tracking",
"icon": "octicon octicon-shield-check",
@@ -284,10 +138,11 @@
"onboard": 0,
"is_query_report": 0,
"link_count": 0,
"doctype": "Workspace Link"
"doctype": "Workspace Link",
"parentfield": "links",
"parenttype": "Workspace"
},
{
"name": "q8hvn93ud9",
"type": "Link",
"label": "Loads",
"icon": null,
@@ -301,8 +156,187 @@
"onboard": 0,
"is_query_report": 0,
"link_count": 0,
"doctype": "Workspace Link"
"doctype": "Workspace Link",
"parentfield": "links",
"parenttype": "Workspace"
}
]
],
"quick_lists": [],
"custom_blocks": [],
"roles": [],
"number_cards": [],
"shortcuts": [
{
"type": "Page",
"link_to": "intake",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "New Intake",
"icon": "add",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut",
"parentfield": "shortcuts",
"parenttype": "Workspace"
},
{
"type": "Page",
"link_to": "eim-portal",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "EIM Device Portal",
"icon": "scan",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut",
"parentfield": "shortcuts",
"parenttype": "Workspace"
},
{
"type": "Page",
"link_to": "r2-tracking",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "R2 Data Tracking",
"icon": "table",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut",
"parentfield": "shortcuts",
"parenttype": "Workspace"
},
{
"type": "DocType",
"link_to": "Pallet",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "Pallets",
"icon": "stock",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut",
"parentfield": "shortcuts",
"parenttype": "Workspace"
},
{
"type": "DocType",
"link_to": "Customer",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "Customers",
"icon": "customer",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut",
"parentfield": "shortcuts",
"parenttype": "Workspace"
},
{
"type": "DocType",
"link_to": "Supplier",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "Suppliers",
"icon": "users",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut",
"parentfield": "shortcuts",
"parenttype": "Workspace"
},
{
"type": "Page",
"link_to": "pallet-list",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "Pallet List",
"icon": "list",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut",
"parentfield": "shortcuts",
"parenttype": "Workspace"
},
{
"type": "Page",
"link_to": "route-planner",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "Route Planner",
"icon": "map",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut",
"parentfield": "shortcuts",
"parenttype": "Workspace"
},
{
"type": "DocType",
"link_to": "Scheduled Pickup",
"url": null,
"doc_view": "List",
"kanban_board": null,
"label": "Scheduled Pickups",
"icon": "calendar",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut",
"parentfield": "shortcuts",
"parenttype": "Workspace"
},
{
"type": "DocType",
"link_to": "Truck Profile",
"url": null,
"doc_view": "",
"kanban_board": null,
"label": "Truck Profiles",
"icon": "truck",
"restrict_to_domain": null,
"report_ref_doctype": null,
"stats_filter": null,
"color": null,
"format": null,
"doctype": "Workspace Shortcut",
"parentfield": "shortcuts",
"parenttype": "Workspace"
}
],
"charts": []
}
]