refactor: project module form cleanup

This commit is contained in:
Nishka Gosalia
2026-02-24 14:35:55 +05:30
parent 15eb5d9827
commit 3c9f520e68
5 changed files with 88 additions and 47 deletions

View File

@@ -205,7 +205,7 @@ frappe.ui.form.on("Project", {
collect_progress: function (frm) {
if (frm.doc.collect_progress && !frm.doc.subject) {
frm.set_value("subject", __("For project {0}, update your status", [frm.doc.name]));
frm.set_value("subject", __("For project - {0}, update your status", [frm.doc.project_name]));
}
},
});

View File

@@ -12,29 +12,21 @@
"project_name",
"status",
"project_type",
"is_active",
"percent_complete_method",
"percent_complete",
"column_break_5",
"project_template",
"expected_start_date",
"expected_end_date",
"priority",
"department",
"customer_details",
"customer",
"column_break_14",
"sales_order",
"users_section",
"users",
"copied_from",
"section_break0",
"notes",
"is_active",
"percent_complete",
"section_break_18",
"expected_start_date",
"actual_start_date",
"actual_time",
"column_break_20",
"expected_end_date",
"actual_end_date",
"costing_tab",
"project_details",
"estimated_costing",
"total_costing_amount",
@@ -50,7 +42,7 @@
"gross_margin",
"column_break_37",
"per_gross_margin",
"monitor_progress",
"monitor_progress_tab",
"collect_progress",
"holiday_list",
"frequency",
@@ -63,7 +55,18 @@
"weekly_time_to_send",
"column_break_45",
"subject",
"message"
"message",
"more_info_tab",
"customer_details",
"customer",
"column_break_14",
"sales_order",
"users_section",
"users",
"copied_from",
"section_break0",
"notes",
"connections_tab"
],
"fields": [
{
@@ -231,7 +234,7 @@
"collapsible": 1,
"fieldname": "section_break_18",
"fieldtype": "Section Break",
"label": "Start and End Dates"
"label": "Timeline"
},
{
"fieldname": "actual_start_date",
@@ -258,7 +261,6 @@
"read_only": 1
},
{
"collapsible": 1,
"fieldname": "project_details",
"fieldtype": "Section Break",
"label": "Costing and Billing",
@@ -329,7 +331,6 @@
"options": "Cost Center"
},
{
"collapsible": 1,
"fieldname": "margin",
"fieldtype": "Section Break",
"label": "Margin",
@@ -357,12 +358,6 @@
"oldfieldtype": "Currency",
"read_only": 1
},
{
"collapsible": 1,
"fieldname": "monitor_progress",
"fieldtype": "Section Break",
"label": "Monitor Progress"
},
{
"default": "0",
"fieldname": "collect_progress",
@@ -455,6 +450,27 @@
"fieldtype": "Data",
"label": "Subject",
"mandatory_depends_on": "collect_progress"
},
{
"fieldname": "costing_tab",
"fieldtype": "Tab Break",
"label": "Costing"
},
{
"fieldname": "monitor_progress_tab",
"fieldtype": "Tab Break",
"label": "Progress"
},
{
"fieldname": "more_info_tab",
"fieldtype": "Tab Break",
"label": "More Info"
},
{
"fieldname": "connections_tab",
"fieldtype": "Tab Break",
"label": "Connections",
"show_dashboard": 1
}
],
"icon": "fa fa-puzzle-piece",
@@ -462,7 +478,7 @@
"index_web_pages_for_search": 1,
"links": [],
"max_attachments": 4,
"modified": "2025-08-21 17:57:58.314809",
"modified": "2026-03-04 11:09:55.253367",
"modified_by": "Administrator",
"module": "Projects",
"name": "Project",

View File

@@ -13,7 +13,6 @@
"type",
"color",
"is_group",
"is_template",
"column_break0",
"status",
"priority",
@@ -21,17 +20,21 @@
"parent_task",
"completed_by",
"completed_on",
"section_break_dafi",
"is_template",
"column_break_vvfp",
"start",
"duration",
"sb_timeline",
"exp_start_date",
"expected_time",
"start",
"column_break_11",
"exp_end_date",
"progress",
"duration",
"is_milestone",
"sb_details",
"description",
"dependencies_tab",
"sb_depends_on",
"depends_on",
"depends_on_tasks",
@@ -44,12 +47,13 @@
"total_costing_amount",
"column_break_20",
"total_billing_amount",
"more_info_tab",
"sb_more_info",
"company",
"review_date",
"closing_date",
"column_break_22",
"department",
"company",
"lft",
"rgt",
"old_parent",
@@ -78,7 +82,6 @@
"oldfieldname": "project",
"oldfieldtype": "Link",
"options": "Project",
"remember_last_selected_value": 1,
"search_index": 1
},
{
@@ -218,7 +221,6 @@
{
"fieldname": "sb_depends_on",
"fieldtype": "Section Break",
"label": "Dependencies",
"oldfieldtype": "Section Break"
},
{
@@ -298,10 +300,9 @@
"read_only": 1
},
{
"collapsible": 1,
"fieldname": "sb_more_info",
"fieldtype": "Section Break",
"label": "More Info"
"label": "Additional Info"
},
{
"depends_on": "eval:doc.status == \"Closed\" || doc.status == \"Pending Review\"",
@@ -334,8 +335,7 @@
"fieldname": "company",
"fieldtype": "Link",
"label": "Company",
"options": "Company",
"remember_last_selected_value": 1
"options": "Company"
},
{
"fieldname": "lft",
@@ -398,6 +398,24 @@
"fieldtype": "Data",
"hidden": 1,
"label": "Template Task"
},
{
"fieldname": "dependencies_tab",
"fieldtype": "Tab Break",
"label": "Dependencies"
},
{
"fieldname": "more_info_tab",
"fieldtype": "Tab Break",
"label": "More Info"
},
{
"fieldname": "section_break_dafi",
"fieldtype": "Section Break"
},
{
"fieldname": "column_break_vvfp",
"fieldtype": "Column Break"
}
],
"icon": "fa fa-check",
@@ -405,7 +423,7 @@
"is_tree": 1,
"links": [],
"max_attachments": 5,
"modified": "2026-02-05 09:58:38.052875",
"modified": "2026-03-04 11:47:10.454548",
"modified_by": "Administrator",
"module": "Projects",
"name": "Task",

View File

@@ -138,6 +138,8 @@ class Task(NestedSet):
def validate_status(self):
if self.is_template and self.status != "Template":
self.status = "Template"
if self.status == "Template" and not self.is_template:
self.status = "Open"
if self.status != self.get_db_value("status") and self.status == "Completed":
for d in self.depends_on:
if frappe.db.get_value("Task", d.task, "status") not in ("Completed", "Cancelled"):

View File

@@ -18,28 +18,29 @@
"column_break_3",
"status",
"parent_project",
"employee_detail",
"employee",
"employee_name",
"department",
"column_break_9",
"user",
"start_date",
"end_date",
"employee_detail",
"employee",
"department",
"column_break_9",
"employee_name",
"section_break_5",
"time_logs",
"working_hours",
"total_hours",
"billing_tab",
"billing_details",
"total_billable_hours",
"total_billable_amount",
"total_costing_amount",
"base_total_billable_amount",
"base_total_billed_amount",
"base_total_costing_amount",
"column_break_10",
"total_billed_hours",
"total_billable_amount",
"total_billed_amount",
"total_costing_amount",
"base_total_billed_amount",
"per_billed",
"section_break_18",
"note",
@@ -176,7 +177,6 @@
"read_only": 1
},
{
"collapsible": 1,
"fieldname": "billing_details",
"fieldtype": "Section Break",
"label": "Billing Details",
@@ -304,13 +304,18 @@
"fieldname": "exchange_rate",
"fieldtype": "Float",
"label": "Exchange Rate"
},
{
"fieldname": "billing_tab",
"fieldtype": "Tab Break",
"label": "Billing"
}
],
"icon": "fa fa-clock-o",
"idx": 1,
"is_submittable": 1,
"links": [],
"modified": "2025-12-19 13:48:23.453636",
"modified": "2026-03-04 11:56:51.438298",
"modified_by": "Administrator",
"module": "Projects",
"name": "Timesheet",