fix: Project fixes (#18343)

* fix: Add fetch from in Full Name

* fix: Remove deprecated buttons

* fix: Show Project to Administrator
This commit is contained in:
Faris Ansari 2019-07-16 09:40:09 +05:30 committed by Nabin Hait
parent ce3594796c
commit 82770d9152
3 changed files with 78 additions and 340 deletions

View File

@ -1,333 +1,85 @@
{ {
"allow_copy": 0, "creation": "2016-03-25 02:52:19.283003",
"allow_events_in_timeline": 0, "doctype": "DocType",
"allow_guest_to_view": 0, "editable_grid": 1,
"allow_import": 0, "engine": "InnoDB",
"allow_rename": 0, "field_order": [
"beta": 0, "user",
"creation": "2016-03-25 02:52:19.283003", "email",
"custom": 0, "image",
"docstatus": 0, "column_break_2",
"doctype": "DocType", "full_name",
"document_type": "", "welcome_email_sent",
"editable_grid": 1, "view_attachments",
"section_break_5",
"project_status"
],
"fields": [ "fields": [
{ {
"allow_bulk_edit": 0, "fieldname": "user",
"allow_in_quick_entry": 0, "fieldtype": "Link",
"allow_on_submit": 0, "in_list_view": 1,
"bold": 0, "label": "User",
"collapsible": 0, "options": "User",
"columns": 0, "reqd": 1,
"fieldname": "user", "search_index": 1
"fieldtype": "Link", },
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "User",
"length": 0,
"no_copy": 0,
"options": "User",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 1,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "fetch_from": "user.email",
"allow_in_quick_entry": 0, "fieldname": "email",
"allow_on_submit": 0, "fieldtype": "Read Only",
"bold": 0, "label": "Email"
"collapsible": 0, },
"columns": 0,
"fetch_from": "user.email",
"fieldname": "email",
"fieldtype": "Read Only",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Email",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "fetch_from": "user.user_image",
"allow_in_quick_entry": 0, "fieldname": "image",
"allow_on_submit": 0, "fieldtype": "Read Only",
"bold": 0, "hidden": 1,
"collapsible": 0, "in_global_search": 1,
"columns": 0, "label": "Image"
"fetch_from": "user.user_image", },
"fieldname": "image",
"fieldtype": "Read Only",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 1,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Image",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "fieldname": "column_break_2",
"allow_in_quick_entry": 0, "fieldtype": "Column Break"
"allow_on_submit": 0, },
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "column_break_2",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "fetch_from": "user.full_name",
"allow_in_quick_entry": 0, "fieldname": "full_name",
"allow_on_submit": 0, "fieldtype": "Read Only",
"bold": 0, "label": "Full Name"
"collapsible": 0, },
"columns": 0,
"default": "user.full_name",
"fieldname": "full_name",
"fieldtype": "Read Only",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Full Name",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "default": "0",
"allow_in_quick_entry": 0, "fieldname": "welcome_email_sent",
"allow_on_submit": 0, "fieldtype": "Check",
"bold": 0, "label": "Welcome email sent"
"collapsible": 0, },
"columns": 0,
"fieldname": "welcome_email_sent",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Welcome email sent",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "columns": 1,
"allow_in_quick_entry": 0, "default": "0",
"allow_on_submit": 0, "fieldname": "view_attachments",
"bold": 0, "fieldtype": "Check",
"collapsible": 0, "in_list_view": 1,
"columns": 1, "label": "View attachments"
"fieldname": "view_attachments", },
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "View attachments",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "fieldname": "section_break_5",
"allow_in_quick_entry": 0, "fieldtype": "Section Break"
"allow_on_submit": 0, },
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "section_break_5",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "depends_on": "eval:parent.doctype == 'Project Update'",
"allow_in_quick_entry": 0, "fieldname": "project_status",
"allow_on_submit": 0, "fieldtype": "Text",
"bold": 0, "label": "Project Status"
"collapsible": 0,
"columns": 0,
"depends_on": "eval:parent.doctype == 'Project Update'",
"fieldname": "project_status",
"fieldtype": "Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Project Status",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
} }
], ],
"has_web_view": 0, "istable": 1,
"hide_heading": 0, "modified": "2019-07-15 19:37:26.942294",
"hide_toolbar": 0, "modified_by": "Administrator",
"idx": 0, "module": "Projects",
"image_view": 0, "name": "Project User",
"in_create": 0, "owner": "Administrator",
"is_submittable": 0, "permissions": [],
"issingle": 0, "sort_field": "modified",
"istable": 1, "sort_order": "DESC"
"max_attachments": 0,
"modified": "2019-01-17 17:10:05.339735",
"modified_by": "Administrator",
"module": "Projects",
"name": "Project User",
"name_case": "",
"owner": "Administrator",
"permissions": [],
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 0,
"track_seen": 0,
"track_views": 0
} }

View File

@ -42,20 +42,6 @@ frappe.ui.form.on("Task", {
frappe.set_route("List", "Expense Claim"); frappe.set_route("List", "Expense Claim");
}, __("View"), true); }, __("View"), true);
} }
if (frm.perm[0].write) {
if (!["Closed", "Cancelled"].includes(frm.doc.status)) {
frm.add_custom_button(__("Close"), () => {
frm.set_value("status", "Closed");
frm.save();
});
} else {
frm.add_custom_button(__("Reopen"), () => {
frm.set_value("status", "Open");
frm.save();
});
}
}
} }
} }
}, },

View File

@ -7,22 +7,22 @@ import json
def get_context(context): def get_context(context):
project_user = frappe.db.get_value("Project User", {"parent": frappe.form_dict.project, "user": frappe.session.user} , ["user", "view_attachments"], as_dict= True) project_user = frappe.db.get_value("Project User", {"parent": frappe.form_dict.project, "user": frappe.session.user} , ["user", "view_attachments"], as_dict= True)
if not project_user or frappe.session.user == 'Guest': if frappe.session.user != 'Administrator' and (not project_user or frappe.session.user == 'Guest'):
raise frappe.PermissionError raise frappe.PermissionError
context.no_cache = 1 context.no_cache = 1
context.show_sidebar = True context.show_sidebar = True
project = frappe.get_doc('Project', frappe.form_dict.project) project = frappe.get_doc('Project', frappe.form_dict.project)
project.has_permission('read') project.has_permission('read')
project.tasks = get_tasks(project.name, start=0, item_status='open', project.tasks = get_tasks(project.name, start=0, item_status='open',
search=frappe.form_dict.get("search")) search=frappe.form_dict.get("search"))
project.timesheets = get_timesheets(project.name, start=0, project.timesheets = get_timesheets(project.name, start=0,
search=frappe.form_dict.get("search")) search=frappe.form_dict.get("search"))
if project_user.view_attachments: if project_user and project_user.view_attachments:
project.attachments = get_attachments(project.name) project.attachments = get_attachments(project.name)
context.doc = project context.doc = project
@ -46,7 +46,7 @@ def get_tasks(project, start=0, search=None, item_status=None):
task.todo=task.todo[0] task.todo=task.todo[0]
task.todo.user_image = frappe.db.get_value('User', task.todo.owner, 'user_image') task.todo.user_image = frappe.db.get_value('User', task.todo.owner, 'user_image')
task.comment_count = len(json.loads(task._comments or "[]")) task.comment_count = len(json.loads(task._comments or "[]"))
task.css_seen = '' task.css_seen = ''
@ -86,7 +86,7 @@ def get_timesheets(project, start=0, search=None):
timesheet.info.css_seen = '' timesheet.info.css_seen = ''
if timesheet.info._seen: if timesheet.info._seen:
if frappe.session.user in json.loads(timesheet.info._seen): if frappe.session.user in json.loads(timesheet.info._seen):
timesheet.info.css_seen = 'seen' timesheet.info.css_seen = 'seen'
return timesheets return timesheets
@frappe.whitelist() @frappe.whitelist()