[cleanup] added dashboard in project
This commit is contained in:
parent
b2b02a574a
commit
02772442b6
@ -7,6 +7,8 @@ frappe.ui.form.on("Supplier", {
|
||||
frappe.setup_language_field(frm);
|
||||
},
|
||||
refresh: function(frm) {
|
||||
frm.dashboard.show_heatmap = true;
|
||||
frm.dashboard.heatmap_message = __('This is based on transactions against this Supplier. See timeline below for details');
|
||||
frm.dashboard.show_dashboard();
|
||||
|
||||
if(frappe.defaults.get_default("supp_master_name")!="Naming Series") {
|
||||
|
@ -27,14 +27,6 @@ def get_data():
|
||||
"type": "link",
|
||||
"link": "List/Supplier"
|
||||
},
|
||||
{
|
||||
"module_name": "Income Statement",
|
||||
"_doctype": "Account",
|
||||
"color": "#3498db",
|
||||
"icon": "octicon octicon-repo",
|
||||
"type": "link",
|
||||
"link": "query-report/Profit and Loss Statement"
|
||||
},
|
||||
{
|
||||
"_doctype": "Employee",
|
||||
"module_name": "Employee",
|
||||
@ -67,6 +59,14 @@ def get_data():
|
||||
"type": "link",
|
||||
"link": "List/Lead"
|
||||
},
|
||||
{
|
||||
"module_name": "Profit and Loss Statment",
|
||||
"_doctype": "Account",
|
||||
"color": "#3498db",
|
||||
"icon": "octicon octicon-repo",
|
||||
"type": "link",
|
||||
"link": "query-report/Profit and Loss Statement"
|
||||
},
|
||||
|
||||
# old
|
||||
{
|
||||
|
@ -25,6 +25,8 @@ erpnext.hr.EmployeeController = frappe.ui.form.Controller.extend({
|
||||
refresh: function() {
|
||||
var me = this;
|
||||
erpnext.toggle_naming_series();
|
||||
this.frm.dashboard.show_heatmap = true;
|
||||
this.frm.dashboard.heatmap_message = __('This is based on the attendance of this Employee');
|
||||
this.frm.dashboard.show_dashboard();
|
||||
},
|
||||
|
||||
|
@ -9,6 +9,7 @@ frappe.listview_settings['Production Order'] = {
|
||||
return [__(doc.status), {
|
||||
"Draft": "red",
|
||||
"Stopped": "red",
|
||||
"Not Started": "red",
|
||||
"In Process": "orange",
|
||||
"Completed": "green",
|
||||
"Cancelled": "darkgrey"
|
||||
|
@ -3,6 +3,8 @@
|
||||
|
||||
frappe.ui.form.on("Project", {
|
||||
onload: function(frm) {
|
||||
frm.hide_first = true;
|
||||
|
||||
var so = frappe.meta.get_docfield("Project", "sales_order");
|
||||
so.get_route_options_for_new_doc = function(field) {
|
||||
if(frm.is_new()) return;
|
||||
@ -40,26 +42,23 @@ frappe.ui.form.on("Project", {
|
||||
frappe.route_options = {"project": frm.doc.name,
|
||||
"start": frm.doc.expected_start_date, "end": frm.doc.expected_end_date};
|
||||
frappe.set_route("Gantt", "Task");
|
||||
}, __("View"), true);
|
||||
frm.add_custom_button(__("Tasks"), function() {
|
||||
frappe.route_options = {"project": frm.doc.name}
|
||||
frappe.set_route("List", "Task");
|
||||
}, __("View"), true);
|
||||
});
|
||||
}
|
||||
|
||||
if(frappe.model.can_read("Time Log")) {
|
||||
frm.add_custom_button(__("Time Logs"), function() {
|
||||
frappe.route_options = {"project": frm.doc.name}
|
||||
frappe.set_route("List", "Time Log");
|
||||
}, __("View"), true);
|
||||
}
|
||||
frm.dashboard.show_dashboard();
|
||||
frm.dashboard.add_section(frappe.render_template('project_dashboard', {project: frm.doc}));
|
||||
|
||||
// var bars = [];
|
||||
// bars.push({
|
||||
// 'title': __('Percent Complete'),
|
||||
// 'width': (frm.doc.percent_complete || 1) + '%',
|
||||
// 'progress_class': 'progress-bar-success'
|
||||
// })
|
||||
//
|
||||
// var message = __("{0}% complete", [frm.doc.percent_complete]);
|
||||
//
|
||||
// frm.dashboard.add_progress(__('Status'), bars, message);
|
||||
|
||||
if(frappe.model.can_read("Expense Claim")) {
|
||||
frm.add_custom_button(__("Expense Claims"), function() {
|
||||
frappe.route_options = {"project": frm.doc.name}
|
||||
frappe.set_route("List", "Expense Claim");
|
||||
}, __("View"), true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -26,6 +26,8 @@ class Project(Document):
|
||||
"task_id": task.name
|
||||
})
|
||||
|
||||
self.set_onload('links', self.meta.get_links_setup())
|
||||
|
||||
def __setup__(self):
|
||||
self.onload()
|
||||
|
||||
@ -144,6 +146,16 @@ class Project(Document):
|
||||
user.welcome_email_sent=1
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_dashboard_data(name):
|
||||
'''load dashboard related data'''
|
||||
frappe.has_permission(doc=frappe.get_doc('Project', name), throw=True)
|
||||
|
||||
from frappe.desk.notifications import get_open_count
|
||||
return {
|
||||
'count': get_open_count('Project', name),
|
||||
}
|
||||
|
||||
def get_project_list(doctype, txt, filters, limit_start, limit_page_length=20):
|
||||
return frappe.db.sql('''select distinct project.*
|
||||
from tabProject project, `tabProject User` project_user
|
||||
|
10
erpnext/projects/doctype/project/project_dashboard.html
Normal file
10
erpnext/projects/doctype/project/project_dashboard.html
Normal file
@ -0,0 +1,10 @@
|
||||
<h5 style="margin-top: 0px;">Tasks</h5>
|
||||
{% if(project.tasks.length) { %}
|
||||
{% project.tasks.forEach(function(d) { %}
|
||||
<p><span class="indicator {{
|
||||
{"Open": "red", "Closed": "green", "Cancelled": "darkgrey"}[d.status] || "orange" }}"><a style="font-weight: normal"
|
||||
href="#Form/Task/{{ d.task_id }}">{{ d.title }}</a></span></p>
|
||||
{% }); %}
|
||||
{% } else { %}
|
||||
<p class="text-muted small">No Tasks Defined</p>
|
||||
{% } %}
|
23
erpnext/projects/doctype/project/project_links.py
Normal file
23
erpnext/projects/doctype/project/project_links.py
Normal file
@ -0,0 +1,23 @@
|
||||
from frappe import _
|
||||
|
||||
links = {
|
||||
'fieldname': 'project',
|
||||
'transactions': [
|
||||
{
|
||||
'label': _('Project'),
|
||||
'items': ['Task', 'Time Log', 'Expense Claim', 'Issue']
|
||||
},
|
||||
{
|
||||
'label': _('Material'),
|
||||
'items': ['Material Request', 'BOM', 'Stock Entry']
|
||||
},
|
||||
{
|
||||
'label': _('Sales'),
|
||||
'items': ['Sales Order', 'Delivery Note', 'Sales Invoice']
|
||||
},
|
||||
{
|
||||
'label': _('Purchase'),
|
||||
'items': ['Purchase Order', 'Purchase Receipt', 'Purchase Invoice']
|
||||
},
|
||||
]
|
||||
}
|
@ -34,12 +34,12 @@ frappe.ui.form.on("Task", {
|
||||
frm.add_custom_button(__("Close"), function() {
|
||||
frm.set_value("status", "Closed");
|
||||
frm.save();
|
||||
}, __("Status"));
|
||||
});
|
||||
} else {
|
||||
frm.add_custom_button(__("Reopen"), function() {
|
||||
frm.set_value("status", "Open");
|
||||
frm.save();
|
||||
}, __("Status"));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,8 @@ frappe.ui.form.on("Customer", {
|
||||
frappe.setup_language_field(frm);
|
||||
},
|
||||
refresh: function(frm) {
|
||||
frm.dashboard.show_heatmap = true;
|
||||
frm.dashboard.heatmap_message = __('This is based on transactions against this Customer. See timeline below for details');
|
||||
frm.dashboard.show_dashboard();
|
||||
|
||||
if(frappe.defaults.get_default("cust_master_name")!="Naming Series") {
|
||||
|
@ -11,6 +11,10 @@ links = {
|
||||
'label': _('Orders'),
|
||||
'items': ['Sales Order', 'Delivery Note', 'Sales Invoice']
|
||||
},
|
||||
{
|
||||
'label': _('Support'),
|
||||
'items': ['Issue']
|
||||
},
|
||||
{
|
||||
'label': _('Projects'),
|
||||
'items': ['Project']
|
||||
|
@ -76,6 +76,9 @@ frappe.ui.form.on("Item", {
|
||||
|
||||
erpnext.item.toggle_attributes(frm);
|
||||
|
||||
frm.dashboard.show_heatmap = frm.doc.is_stock_item;
|
||||
frm.dashboard.heatmap_message = __('This is based on stock movement. See {0} for details',
|
||||
['<a href="#query-report/Stock Ledger">' + __('Stock Ledger') + '</a>']);
|
||||
frm.dashboard.show_dashboard();
|
||||
},
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
<div style="padding-left: 15px; padding-right: 15px;">
|
||||
<h5>Stock Levels</h5>
|
||||
<ul class="list-group">
|
||||
<div>
|
||||
<h5 style="margin-top: 0px;">Stock Levels</h5>
|
||||
<ul class="list-group" style="margin: 0px;">
|
||||
{% for(var i=0; i < data.length; i++) { var d = data[i]; %}
|
||||
<li class="list-group-item" style="background-color: inherit;">
|
||||
<div class="row">
|
||||
|
Loading…
x
Reference in New Issue
Block a user