Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
// Copyright (c) 2026, Aakvatech and contributors
// For license information, please see license.txt

frappe.ui.form.on("Implementation Handover Snapshot", {
refresh(frm) {
frm.remove_custom_button(__("Add All Sections"));
frm.remove_custom_button(__("Generate Snapshot"));

frm.add_custom_button(__("Add All Sections"), () => {
frm.trigger("add_all_sections");
});

frm.add_custom_button(__("Generate Snapshot"), () => {
frm.trigger("generate_snapshot");
});
},

add_all_sections(frm) {
return get_snapshot_section_options().then((sections) => {
frm.clear_table("table_qvkt");

sections.forEach((section) => {
const row = frm.add_child("table_qvkt");
row.reference = section;
});

frm.refresh_field("table_qvkt");
});
},

generate_snapshot(frm) {
return ensure_sections(frm)
.then(() => frm.call("generate_snapshot"))
.then((r) => {
if (!r.message) {
return;
}

frm.doc.name = r.message.name || frm.doc.name;
frm.doc.__islocal = 0;
frm.set_value("site_name", r.message.site_name);
frm.set_value("generated_on", r.message.generated_on);
frm.set_value("generated_by", r.message.generated_by);
frm.clear_table("table_ldiu");

(r.message.table_ldiu || []).forEach((snapshot_json) => {
const row = frm.add_child("table_ldiu");
row.type = snapshot_json.type;
row.json_type = snapshot_json.json_type;
});

frm.refresh_field("table_ldiu");
frm.doc.__unsaved = 0;
frm.refresh_fields();
});
},
});

function ensure_sections(frm) {
if ((frm.doc.table_qvkt || []).length) {
return Promise.resolve();
}

return frm.trigger("add_all_sections");
}

function get_snapshot_section_options() {
return frappe
.call("av_tools.av_tools.doctype.implementation_handover_snapshot.implementation_handover_snapshot.get_snapshot_section_options")
.then((r) => r.message || []);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
{
"actions": [],
"allow_rename": 1,
"autoname": "format:CHS-{####}",
"creation": "2026-07-27 00:00:00",
"doctype": "DocType",
"engine": "InnoDB",
"field_order": [
"customer",
"site_name",
"column_break_lwng",
"generated_on",
"generated_by",
"from_date",
"to_date",
"snapshot_sections_section",
"table_qvkt",
"json_section_section",
"table_ldiu"
],
"fields": [
{
"fieldname": "customer",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Customer",
"reqd": 1
},
{
"fieldname": "site_name",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Site Name",
"read_only": 1
},
{
"fieldname": "column_break_lwng",
"fieldtype": "Column Break"
},
{
"fieldname": "generated_on",
"fieldtype": "Datetime",
"in_list_view": 1,
"label": "Generated On",
"read_only": 1
},
{
"fieldname": "generated_by",
"fieldtype": "Link",
"label": "Generated By",
"options": "User",
"read_only": 1
},
{
"fieldname": "snapshot_sections_section",
"fieldtype": "Section Break",
"label": "Snapshot Sections"
},
{
"fieldname": "table_qvkt",
"fieldtype": "Table",
"options": "Snapshot"
},
{
"fieldname": "json_section_section",
"fieldtype": "Section Break",
"label": "JSON Section"
},
{
"fieldname": "table_ldiu",
"fieldtype": "Table",
"options": "Snapshot Json"
},
{
"fieldname": "from_date",
"fieldtype": "Date",
"label": "From Date"
},
{
"fieldname": "to_date",
"fieldtype": "Date",
"label": "To date"
}
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2026-08-07 12:25:31.984378",
"modified_by": "Administrator",
"module": "Av Tools",
"name": "Implementation Handover Snapshot",
"naming_rule": "Expression (old style)",
"owner": "Administrator",
"permissions": [
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"share": 1,
"write": 1
}
],
"row_format": "Dynamic",
"sort_field": "modified",
"sort_order": "DESC",
"states": [],
"track_changes": 1
}
Loading
Loading