From 775e9e423a0a462b95f763f08017bbca21f4916d Mon Sep 17 00:00:00 2001 From: Himanshu Warekar Date: Wed, 29 May 2019 00:05:58 +0530 Subject: [PATCH] refactor: QMS refactor initial bringup --- .../customer_feedback/customer_feedback.js | 29 - .../customer_feedback/customer_feedback.json | 259 ----- .../customer_feedback_dashboard.py | 12 - .../customer_feedback_list.js | 11 - .../test_customer_feedback.js | 23 - .../test_customer_feedback.py | 31 - .../customer_feedback_table.json | 142 --- .../customer_feedback_template.js | 5 - .../customer_feedback_template.json | 259 ----- .../customer_feedback_template.py | 9 - .../test_customer_feedback_template.js | 23 - .../test_customer_feedback_template.py | 35 - .../customer_feedback_template_table.json | 75 -- .../doctype/quality_action/quality_action.js | 95 +- .../quality_action/quality_action.json | 582 ++--------- .../doctype/quality_action/quality_action.py | 14 +- .../quality_action/quality_action_list.js | 11 - .../quality_action/test_quality_action.py | 34 +- .../__init__.py | 0 .../quality_action_resolution.json | 40 + .../quality_action_resolution.py | 10 + .../quality_action_table.json | 205 ---- .../__init__.py | 0 .../quality_feedback/quality_feedback.js | 25 + .../quality_feedback/quality_feedback.json | 95 ++ .../quality_feedback.py} | 5 +- .../quality_feedback/test_quality_feedback.py | 42 + .../__init__.py | 0 .../quality_feedback_parameter.json | 57 ++ .../quality_feedback_parameter.py | 10 + .../__init__.py | 0 .../quality_feedback_template.js | 8 + .../quality_feedback_template.json | 59 ++ .../quality_feedback_template.py | 10 + .../test_quality_feedback_template.py | 37 + .../__init__.py | 0 .../quality_feedback_template_parameter.json | 28 + .../quality_feedback_template_parameter.py | 10 + .../doctype/quality_goal/quality_goal.js | 37 +- .../doctype/quality_goal/quality_goal.json | 951 +++--------------- .../doctype/quality_goal/quality_goal.py | 6 +- .../quality_goal/quality_goal_dashboard.py | 22 +- .../doctype/quality_goal/test_quality_goal.py | 18 +- .../__init__.py | 0 .../quality_goal_objective.json | 51 + .../quality_goal_objective.py} | 5 +- .../quality_meeting/quality_meeting.json | 292 ++---- .../quality_meeting/quality_meeting.py | 11 +- .../quality_meeting/test_quality_meeting.py | 34 +- .../__init__.py | 0 .../quality_meeting_agenda.js | 8 + .../quality_meeting_agenda.json | 28 + .../quality_meeting_agenda.py} | 5 +- .../test_quality_meeting_agenda.py | 10 + .../__init__.py | 0 .../quality_meeting_minutes.json | 55 + .../quality_meeting_minutes.py} | 5 +- .../quality_meeting_table.json | 175 ---- .../quality_objective/quality_objective.json | 144 --- .../quality_objective/quality_objective.py | 9 - .../quality_procedure/quality_procedure.json | 460 ++------- .../quality_procedure/quality_procedure.py | 39 +- .../quality_procedure_dashboard.py | 34 +- .../test_quality_procedure.py | 34 +- .../__init__.py | 0 .../quality_procedure_process.json | 36 + .../quality_procedure_process.py | 10 + .../quality_procedure_table.json | 176 ---- .../quality_procedure_table.py | 9 - .../doctype/quality_review/quality_review.js | 80 +- .../quality_review/quality_review.json | 500 ++------- .../doctype/quality_review/quality_review.py | 81 +- .../quality_review_dashboard.py | 16 - .../quality_review/test_quality_review.py | 29 +- .../quality_review_objective/__init__.py | 0 .../quality_review_objective.json | 64 ++ .../quality_review_objective.py} | 5 +- .../quality_review_table.json | 207 ---- .../quality_review_table.py | 9 - 79 files changed, 1427 insertions(+), 4518 deletions(-) delete mode 100644 erpnext/quality_management/doctype/customer_feedback/customer_feedback.js delete mode 100644 erpnext/quality_management/doctype/customer_feedback/customer_feedback.json delete mode 100644 erpnext/quality_management/doctype/customer_feedback/customer_feedback_dashboard.py delete mode 100644 erpnext/quality_management/doctype/customer_feedback/customer_feedback_list.js delete mode 100644 erpnext/quality_management/doctype/customer_feedback/test_customer_feedback.js delete mode 100644 erpnext/quality_management/doctype/customer_feedback/test_customer_feedback.py delete mode 100644 erpnext/quality_management/doctype/customer_feedback_table/customer_feedback_table.json delete mode 100644 erpnext/quality_management/doctype/customer_feedback_template/customer_feedback_template.js delete mode 100644 erpnext/quality_management/doctype/customer_feedback_template/customer_feedback_template.json delete mode 100644 erpnext/quality_management/doctype/customer_feedback_template/customer_feedback_template.py delete mode 100644 erpnext/quality_management/doctype/customer_feedback_template/test_customer_feedback_template.js delete mode 100644 erpnext/quality_management/doctype/customer_feedback_template/test_customer_feedback_template.py delete mode 100644 erpnext/quality_management/doctype/customer_feedback_template_table/customer_feedback_template_table.json delete mode 100644 erpnext/quality_management/doctype/quality_action/quality_action_list.js rename erpnext/quality_management/doctype/{customer_feedback => quality_action_resolution}/__init__.py (100%) create mode 100644 erpnext/quality_management/doctype/quality_action_resolution/quality_action_resolution.json create mode 100644 erpnext/quality_management/doctype/quality_action_resolution/quality_action_resolution.py delete mode 100644 erpnext/quality_management/doctype/quality_action_table/quality_action_table.json rename erpnext/quality_management/doctype/{customer_feedback_table => quality_feedback}/__init__.py (100%) create mode 100644 erpnext/quality_management/doctype/quality_feedback/quality_feedback.js create mode 100644 erpnext/quality_management/doctype/quality_feedback/quality_feedback.json rename erpnext/quality_management/doctype/{customer_feedback/customer_feedback.py => quality_feedback/quality_feedback.py} (58%) create mode 100644 erpnext/quality_management/doctype/quality_feedback/test_quality_feedback.py rename erpnext/quality_management/doctype/{customer_feedback_template => quality_feedback_parameter}/__init__.py (100%) create mode 100644 erpnext/quality_management/doctype/quality_feedback_parameter/quality_feedback_parameter.json create mode 100644 erpnext/quality_management/doctype/quality_feedback_parameter/quality_feedback_parameter.py rename erpnext/quality_management/doctype/{customer_feedback_template_table => quality_feedback_template}/__init__.py (100%) create mode 100644 erpnext/quality_management/doctype/quality_feedback_template/quality_feedback_template.js create mode 100644 erpnext/quality_management/doctype/quality_feedback_template/quality_feedback_template.json create mode 100644 erpnext/quality_management/doctype/quality_feedback_template/quality_feedback_template.py create mode 100644 erpnext/quality_management/doctype/quality_feedback_template/test_quality_feedback_template.py rename erpnext/quality_management/doctype/{quality_action_table => quality_feedback_template_parameter}/__init__.py (100%) create mode 100644 erpnext/quality_management/doctype/quality_feedback_template_parameter/quality_feedback_template_parameter.json create mode 100644 erpnext/quality_management/doctype/quality_feedback_template_parameter/quality_feedback_template_parameter.py rename erpnext/quality_management/doctype/{quality_meeting_table => quality_goal_objective}/__init__.py (100%) create mode 100644 erpnext/quality_management/doctype/quality_goal_objective/quality_goal_objective.json rename erpnext/quality_management/doctype/{customer_feedback_template_table/customer_feedback_template_table.py => quality_goal_objective/quality_goal_objective.py} (57%) rename erpnext/quality_management/doctype/{quality_objective => quality_meeting_agenda}/__init__.py (100%) create mode 100644 erpnext/quality_management/doctype/quality_meeting_agenda/quality_meeting_agenda.js create mode 100644 erpnext/quality_management/doctype/quality_meeting_agenda/quality_meeting_agenda.json rename erpnext/quality_management/doctype/{customer_feedback_table/customer_feedback_table.py => quality_meeting_agenda/quality_meeting_agenda.py} (57%) create mode 100644 erpnext/quality_management/doctype/quality_meeting_agenda/test_quality_meeting_agenda.py rename erpnext/quality_management/doctype/{quality_procedure_table => quality_meeting_minutes}/__init__.py (100%) create mode 100644 erpnext/quality_management/doctype/quality_meeting_minutes/quality_meeting_minutes.json rename erpnext/quality_management/doctype/{quality_action_table/quality_action_table.py => quality_meeting_minutes/quality_meeting_minutes.py} (57%) delete mode 100644 erpnext/quality_management/doctype/quality_meeting_table/quality_meeting_table.json delete mode 100644 erpnext/quality_management/doctype/quality_objective/quality_objective.json delete mode 100644 erpnext/quality_management/doctype/quality_objective/quality_objective.py rename erpnext/quality_management/doctype/{quality_review_table => quality_procedure_process}/__init__.py (100%) create mode 100644 erpnext/quality_management/doctype/quality_procedure_process/quality_procedure_process.json create mode 100644 erpnext/quality_management/doctype/quality_procedure_process/quality_procedure_process.py delete mode 100644 erpnext/quality_management/doctype/quality_procedure_table/quality_procedure_table.json delete mode 100644 erpnext/quality_management/doctype/quality_procedure_table/quality_procedure_table.py delete mode 100644 erpnext/quality_management/doctype/quality_review/quality_review_dashboard.py create mode 100644 erpnext/quality_management/doctype/quality_review_objective/__init__.py create mode 100644 erpnext/quality_management/doctype/quality_review_objective/quality_review_objective.json rename erpnext/quality_management/doctype/{quality_meeting_table/quality_meeting_table.py => quality_review_objective/quality_review_objective.py} (56%) delete mode 100644 erpnext/quality_management/doctype/quality_review_table/quality_review_table.json delete mode 100644 erpnext/quality_management/doctype/quality_review_table/quality_review_table.py diff --git a/erpnext/quality_management/doctype/customer_feedback/customer_feedback.js b/erpnext/quality_management/doctype/customer_feedback/customer_feedback.js deleted file mode 100644 index 16ae9a1e82..0000000000 --- a/erpnext/quality_management/doctype/customer_feedback/customer_feedback.js +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 2018, Frappe and contributors -// For license information, please see license.txt - -frappe.ui.form.on('Customer Feedback', { - onload: function(frm){ - frm.set_value("date", frappe.datetime.get_today()); - $(".grid-add-row").hide(); - frm.refresh(); - }, - template: function(frm){ // Used to fetch the parameters of the selected feedback template - frm.fields_dict.feedback.grid.remove_all(); - if(frm.doc.template){ - frappe.call({ - "method": "frappe.client.get", - args: { - doctype: "Customer Feedback Template", - name: frm.doc.template - }, - callback: function (data) { - for (var i = 0; i < data.message.feedback_parameter.length; i++ ){ - frm.add_child("feedback"); - frm.fields_dict.feedback.get_value()[i].parameter = data.message.feedback_parameter[i].parameter; - } - frm.refresh(); - } - }); - } - } -}); diff --git a/erpnext/quality_management/doctype/customer_feedback/customer_feedback.json b/erpnext/quality_management/doctype/customer_feedback/customer_feedback.json deleted file mode 100644 index ffa7e4d924..0000000000 --- a/erpnext/quality_management/doctype/customer_feedback/customer_feedback.json +++ /dev/null @@ -1,259 +0,0 @@ -{ - "allow_copy": 0, - "allow_events_in_timeline": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "QMS-FDBK-.#####", - "beta": 0, - "creation": "2018-10-02 12:23:38.437696", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", - "fields": [ - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "customer", - "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": "Customer", - "length": 0, - "no_copy": 0, - "options": "Customer", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "date", - "fieldtype": "Date", - "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": "Date", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "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, - "allow_in_quick_entry": 0, - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "template", - "fieldtype": "Link", - "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": "Template", - "length": 0, - "no_copy": 0, - "options": "Customer Feedback Template", - "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": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "feedback_section", - "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, - "label": "Feedback", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fetch_from": "template.feedback_values", - "fieldname": "feedback", - "fieldtype": "Table", - "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": "feedback", - "length": 0, - "no_copy": 0, - "options": "Customer Feedback Table", - "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, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 0, - "max_attachments": 0, - "modified": "2018-11-12 14:39:18.044191", - "modified_by": "Administrator", - "module": "Quality Management", - "name": "Customer Feedback", - "name_case": "", - "owner": "Administrator", - "permissions": [ - { - "amend": 0, - "cancel": 0, - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, - "write": 1 - } - ], - "quick_entry": 0, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0, - "track_views": 0 -} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/customer_feedback/customer_feedback_dashboard.py b/erpnext/quality_management/doctype/customer_feedback/customer_feedback_dashboard.py deleted file mode 100644 index 44ae12347d..0000000000 --- a/erpnext/quality_management/doctype/customer_feedback/customer_feedback_dashboard.py +++ /dev/null @@ -1,12 +0,0 @@ -from frappe import _ - -def get_data(): - return { - 'fieldname': 'feedback', - 'transactions': [ - { - 'label': _('Action'), - 'items': ['Quality Action'] - } - ], - } \ No newline at end of file diff --git a/erpnext/quality_management/doctype/customer_feedback/customer_feedback_list.js b/erpnext/quality_management/doctype/customer_feedback/customer_feedback_list.js deleted file mode 100644 index 7c5f767841..0000000000 --- a/erpnext/quality_management/doctype/customer_feedback/customer_feedback_list.js +++ /dev/null @@ -1,11 +0,0 @@ -frappe.listview_settings['Customer Feedback'] = { - add_fields: ["action"], - get_indicator: function(doc) { - if(doc.action == "No Action") { - return [__("No Action"), "green", "action,=,No Action"]; - } - else if(doc.action == "Action Initialised") { - return [__("Action Initialised"), "red", "action,=,Action Initialised"]; - } - } -}; \ No newline at end of file diff --git a/erpnext/quality_management/doctype/customer_feedback/test_customer_feedback.js b/erpnext/quality_management/doctype/customer_feedback/test_customer_feedback.js deleted file mode 100644 index 1003ee54f4..0000000000 --- a/erpnext/quality_management/doctype/customer_feedback/test_customer_feedback.js +++ /dev/null @@ -1,23 +0,0 @@ -/* eslint-disable */ -// rename this file from _test_[name] to test_[name] to activate -// and remove above this line - -QUnit.test("test: Customer Feedback", function (assert) { - let done = assert.async(); - - // number of asserts - assert.expect(1); - - frappe.run_serially([ - // insert a new Customer Survey - () => frappe.tests.make('Customer Feedback', [ - // values to be set - {key: 'value'} - ]), - () => { - assert.equal(cur_frm.doc.key, 'value'); - }, - () => done() - ]); - -}); diff --git a/erpnext/quality_management/doctype/customer_feedback/test_customer_feedback.py b/erpnext/quality_management/doctype/customer_feedback/test_customer_feedback.py deleted file mode 100644 index b5d6141938..0000000000 --- a/erpnext/quality_management/doctype/customer_feedback/test_customer_feedback.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2018, Frappe and Contributors -# See license.txt -from __future__ import unicode_literals - -import frappe -import unittest -from erpnext.quality_management.doctype.customer_feedback_template.test_customer_feedback_template import create_template -class TestCustomerFeedback(unittest.TestCase): - def test_customer_feedback(self): - create_template() - test_create_feedback = create_feedback() - test_get_feedback = get_feedback() - self.assertEquals(test_create_feedback.name, test_get_feedback.name) - -def create_feedback(): - feedback = frappe.get_doc({ - "doctype": "Customer Feedback", - "template": "FDBK-TMPL-_Test Customer Feedback Template", - "date": ""+ frappe.utils.nowdate() +"" - }) - feedback_exist = frappe.get_list("Customer Feedback", filters={"date": ""+ feedback.date +""}, limit=1) - if len(feedback_exist) == 0: - feedback.insert() - return feedback - else: - return feedback_exist[0] - -def get_feedback(): - feedback = frappe.get_list("Customer Feedback", limit=1) - return feedback[0] \ No newline at end of file diff --git a/erpnext/quality_management/doctype/customer_feedback_table/customer_feedback_table.json b/erpnext/quality_management/doctype/customer_feedback_table/customer_feedback_table.json deleted file mode 100644 index b9516b2f3d..0000000000 --- a/erpnext/quality_management/doctype/customer_feedback_table/customer_feedback_table.json +++ /dev/null @@ -1,142 +0,0 @@ -{ - "allow_copy": 0, - "allow_events_in_timeline": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "beta": 0, - "creation": "2018-10-15 15:36:27.193355", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", - "fields": [ - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "parameter", - "fieldtype": "Data", - "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": "Parameter", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "1", - "fieldname": "rating", - "fieldtype": "Select", - "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": "Rating", - "length": 0, - "no_copy": 0, - "options": "1\n2\n3\n4\n5", - "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": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "", - "fieldname": "qualitative_feedback", - "fieldtype": "Data", - "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": "Qualitative Feedback", - "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": 1, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - } - ], - "has_web_view": 0, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 1, - "max_attachments": 0, - "modified": "2018-11-01 14:29:03.273927", - "modified_by": "Administrator", - "module": "Quality Management", - "name": "Customer Feedback Table", - "name_case": "", - "owner": "Administrator", - "permissions": [], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0, - "track_views": 0 -} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/customer_feedback_template/customer_feedback_template.js b/erpnext/quality_management/doctype/customer_feedback_template/customer_feedback_template.js deleted file mode 100644 index e318bf7281..0000000000 --- a/erpnext/quality_management/doctype/customer_feedback_template/customer_feedback_template.js +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright (c) 2018, Frappe and contributors -// For license information, please see license.txt - -frappe.ui.form.on('Customer Feedback Template', { -}); diff --git a/erpnext/quality_management/doctype/customer_feedback_template/customer_feedback_template.json b/erpnext/quality_management/doctype/customer_feedback_template/customer_feedback_template.json deleted file mode 100644 index 1d1e34447b..0000000000 --- a/erpnext/quality_management/doctype/customer_feedback_template/customer_feedback_template.json +++ /dev/null @@ -1,259 +0,0 @@ -{ - "allow_copy": 0, - "allow_events_in_timeline": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "format:FDBK-TMPL-{template}", - "beta": 0, - "creation": "2018-10-18 15:11:26.215480", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", - "fields": [ - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "template", - "fieldtype": "Data", - "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": "Template", - "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": 1, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_3", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "scope", - "fieldtype": "Select", - "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": "Scope", - "length": 0, - "no_copy": 0, - "options": "Company\nDepartment", - "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": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:doc.scope == 'Department'", - "fieldname": "department", - "fieldtype": "Link", - "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": "Department", - "length": 0, - "no_copy": 0, - "options": "Department", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "feedback_section", - "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, - "label": "Feedback", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "feedback_parameter", - "fieldtype": "Table", - "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": "Feedback", - "length": 0, - "no_copy": 0, - "options": "Customer Feedback Template Table", - "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, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 0, - "max_attachments": 0, - "modified": "2018-11-01 14:27:07.935761", - "modified_by": "Administrator", - "module": "Quality Management", - "name": "Customer Feedback Template", - "name_case": "", - "owner": "Administrator", - "permissions": [ - { - "amend": 0, - "cancel": 0, - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, - "write": 1 - } - ], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0, - "track_views": 0 -} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/customer_feedback_template/customer_feedback_template.py b/erpnext/quality_management/doctype/customer_feedback_template/customer_feedback_template.py deleted file mode 100644 index 7f2eb3d29c..0000000000 --- a/erpnext/quality_management/doctype/customer_feedback_template/customer_feedback_template.py +++ /dev/null @@ -1,9 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2018, Frappe and contributors -# For license information, please see license.txt - -from __future__ import unicode_literals -from frappe.model.document import Document - -class CustomerFeedbackTemplate(Document): - pass \ No newline at end of file diff --git a/erpnext/quality_management/doctype/customer_feedback_template/test_customer_feedback_template.js b/erpnext/quality_management/doctype/customer_feedback_template/test_customer_feedback_template.js deleted file mode 100644 index 77168e0377..0000000000 --- a/erpnext/quality_management/doctype/customer_feedback_template/test_customer_feedback_template.js +++ /dev/null @@ -1,23 +0,0 @@ -/* eslint-disable */ -// rename this file from _test_[name] to test_[name] to activate -// and remove above this line - -QUnit.test("test: Customer Feedback Template", function (assert) { - let done = assert.async(); - - // number of asserts - assert.expect(1); - - frappe.run_serially([ - // insert a new Customer Feedback Template - () => frappe.tests.make('Customer Feedback Template', [ - // values to be set - {key: 'value'} - ]), - () => { - assert.equal(cur_frm.doc.key, 'value'); - }, - () => done() - ]); - -}); diff --git a/erpnext/quality_management/doctype/customer_feedback_template/test_customer_feedback_template.py b/erpnext/quality_management/doctype/customer_feedback_template/test_customer_feedback_template.py deleted file mode 100644 index 2bc4334c70..0000000000 --- a/erpnext/quality_management/doctype/customer_feedback_template/test_customer_feedback_template.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2018, Frappe and Contributors -# See license.txt -from __future__ import unicode_literals - -import frappe -import unittest - -class TestCustomerFeedbackTemplate(unittest.TestCase): - def test_customer_feedback_template(self): - test_create_template = create_template() - test_get_template = get_template() - self.assertEquals(test_get_template.name, test_create_template.name) - -def create_template(): - template = frappe.get_doc({ - "doctype": "Customer Feedback Template", - "template": "_Test Customer Feedback Template", - "scope": "Company", - "feedback_parameter": [ - { - "parameter": "_Test Customer Feedback Template Parameter", - } - ] - }) - template_exist = frappe.get_list("Customer Feedback Template", filters={"template": ""+ template.template +""}, fields=["name"], limit=1) - if len(template_exist) == 0: - template.insert() - return template - else: - return template_exist[0] - -def get_template(): - template = frappe.get_list("Customer Feedback Template", filters={"template": "_Test Customer Feedback Template"}, limit=1) - return template[0] \ No newline at end of file diff --git a/erpnext/quality_management/doctype/customer_feedback_template_table/customer_feedback_template_table.json b/erpnext/quality_management/doctype/customer_feedback_template_table/customer_feedback_template_table.json deleted file mode 100644 index d28bb5d93a..0000000000 --- a/erpnext/quality_management/doctype/customer_feedback_template_table/customer_feedback_template_table.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "allow_copy": 0, - "allow_events_in_timeline": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "beta": 0, - "creation": "2018-10-18 15:23:03.854925", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", - "fields": [ - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "parameter", - "fieldtype": "Data", - "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": "Parameter", - "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": 1, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - } - ], - "has_web_view": 0, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 1, - "max_attachments": 0, - "modified": "2018-11-01 14:28:50.626709", - "modified_by": "Administrator", - "module": "Quality Management", - "name": "Customer Feedback Template Table", - "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": 1, - "track_seen": 0, - "track_views": 0 -} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_action/quality_action.js b/erpnext/quality_management/doctype/quality_action/quality_action.js index 8cf8aa9136..d279a7390c 100644 --- a/erpnext/quality_management/doctype/quality_action/quality_action.js +++ b/erpnext/quality_management/doctype/quality_action/quality_action.js @@ -5,83 +5,28 @@ frappe.ui.form.on('Quality Action', { onload: function(frm) { frm.set_value("date", frappe.datetime.get_today()); frm.refresh(); - $(".grid-add-row").hide(); - if (frm.doc.review){ - frm.set_value("type", "Quality Review"); - } - else{ - frm.set_value("type", "Customer Feedback"); - } }, - review: function(frm){ - frm.fields_dict.description.grid.remove_all(); - if(frm.doc.review){ - var problems = ""; - frappe.call({ - "method": "frappe.client.get", - args: { - doctype: "Quality Review", - name: frm.doc.review - }, - callback: function (data) { - for (var i = 0; i < data.message.values.length; i++){ - if (data.message.values[i].achieved < data.message.values[i].target){ - problems += data.message.values[i].objective +"-"+ data.message.values[i].achieved + " " + data.message.values[i].unit + "\n"; - } - } - problems= problems.replace(/\n$/, "").split("\n"); - for (i = 0; i < problems.length; i++){ - frm.add_child("description"); - frm.fields_dict.description.get_value()[i].problem = problems[i]; - } - frm.refresh(); + document_name: function(frm){ + frappe.call({ + "method": "frappe.client.get", + args: { + doctype: frm.doc.document_type, + name: frm.doc.document_name + }, + callback: function(data){ + frm.fields_dict.resolutions.grid.remove_all(); + let objectives = []; + if(frm.doc.document_type === "Quality Review"){ + for(var i in data.message.reviews) objectives.push(data.message.reviews[i].review); + } else { + for(var i in data.message.parameters) objectives.push(data.message.parameters[i].feedback); } - }); - frappe.call({ - "method": "frappe.client.get", - args: { - doctype: "Quality Goal", - name: frm.doc.goal - }, - callback: function (data) { - frm.doc.procedure = data.message.procedure; - frm.refresh(); + for (var objective in objectives){ + frm.add_child("resolutions"); + frm.fields_dict.resolutions.get_value()[objective].problem = objectives[objective]; } - }); - } - else{ - frm.doc.goal = ''; - frm.doc.procedure = ''; - frm.refresh(); - } + frm.refresh(); + } + }); }, - feedback: function(frm) { - frm.fields_dict.description.grid.remove_all(); - if(frm.doc.feedback){ - frappe.call({ - "method": "frappe.client.get", - args: { - doctype: "Customer Feedback", - name: frm.doc.feedback - }, - callback: function(data){ - for (var i = 0; i < data.message.feedback.length; i++ ){ - frm.add_child("description"); - frm.fields_dict.description.get_value()[i].problem = data.message.feedback[i].parameter +"-"+ data.message.feedback[i].qualitative_feedback; - } - frm.refresh(); - } - }); - } - }, - type: function(frm){ - if(frm.doc.description){ - frm.fields_dict.description.grid.remove_all(); - frm.doc.review = ''; - frm.doc.feedback = ''; - frm.doc.goal = ''; - frm.doc.procedure = ''; - frm.refresh(); - } - } }); \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_action/quality_action.json b/erpnext/quality_management/doctype/quality_action/quality_action.json index e564a56ed5..8835b479cc 100644 --- a/erpnext/quality_management/doctype/quality_action/quality_action.json +++ b/erpnext/quality_management/doctype/quality_action/quality_action.json @@ -1,493 +1,125 @@ { - "allow_copy": 0, - "allow_events_in_timeline": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "format:QMS-ACTN-{#####}", - "beta": 0, - "creation": "2018-10-02 11:40:43.666100", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", + "autoname": "format:ACTN-{#####}", + "creation": "2018-10-02 11:40:43.666100", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "corrective_preventive", + "document_type", + "goal", + "cb_00", + "date", + "document_name", + "procedure", + "status", + "sb_00", + "resolutions" + ], "fields": [ { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "action", - "fieldtype": "Select", - "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": "Corrective/Preventive", - "length": 0, - "no_copy": 0, - "options": "Corrective\nPreventive", - "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": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, + "depends_on": "eval:doc.type == 'Quality Review'", + "fetch_from": "review.goal", + "fieldname": "goal", + "fieldtype": "Link", + "label": "Goal", + "options": "Quality Goal", + "read_only": 1 + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:doc.type == 'Quality Review'", - "fieldname": "review", - "fieldtype": "Link", - "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": "Review", - "length": 0, - "no_copy": 0, - "options": "Quality Review", - "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 - }, + "fieldname": "date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Date", + "read_only": 1 + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:doc.type == 'Customer Feedback'", - "fieldname": "feedback", - "fieldtype": "Link", - "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": "Feedback", - "length": 0, - "no_copy": 0, - "options": "Customer Feedback", - "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 - }, + "depends_on": "eval:doc.type == 'Quality Review'", + "fieldname": "procedure", + "fieldtype": "Link", + "label": "Procedure", + "options": "Quality Procedure", + "read_only": 1 + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:doc.type == 'Quality Review'", - "fetch_from": "review.goal", - "fieldname": "goal", - "fieldtype": "Link", - "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": "Quality Goal", - "length": 0, - "no_copy": 0, - "options": "Quality Goal", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, + "default": "Open", + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Status", + "options": "Open\nClosed" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_3", - "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 - }, + "fieldname": "document_name", + "fieldtype": "Dynamic Link", + "label": "Document Name", + "options": "document_type" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "type", - "fieldtype": "Select", - "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": "Type", - "length": 0, - "no_copy": 0, - "options": "Quality Review\nCustomer Feedback", - "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": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, + "fieldname": "document_type", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Document Type", + "options": "Quality Review\nQuality Feedback", + "reqd": 1 + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "date", - "fieldtype": "Date", - "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": "Date", - "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 - }, + "default": "Corrective", + "fieldname": "corrective_preventive", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Corrective/Preventive", + "options": "Corrective\nPreventive", + "reqd": 1 + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:doc.type == 'Quality Review'", - "fetch_from": "", - "fieldname": "procedure", - "fieldtype": "Link", - "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": "Procedure", - "length": 0, - "no_copy": 0, - "options": "Quality Procedure", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, + "fieldname": "cb_00", + "fieldtype": "Column Break" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "status_section", - "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, - "label": "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 - }, + "fieldname": "sb_00", + "fieldtype": "Section Break", + "label": "Resolution" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "Under Review", - "fieldname": "status", - "fieldtype": "Select", - "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": "Status", - "length": 0, - "no_copy": 0, - "options": "Under Review\nClose", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_10", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "problem_resolution", - "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, - "label": "Description", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "description", - "fieldtype": "Table", - "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": "Action Description", - "length": 0, - "no_copy": 0, - "options": "Quality Action Table", - "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 + "fieldname": "resolutions", + "fieldtype": "Table", + "label": "Resolutions", + "options": "Quality Action Resolution" } - ], - "has_web_view": 0, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 0, - "max_attachments": 0, - "modified": "2018-11-12 14:27:07.724362", - "modified_by": "Administrator", - "module": "Quality Management", - "name": "Quality Action", - "name_case": "", - "owner": "Administrator", + ], + "modified": "2019-05-28 13:10:44.092497", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Action", + "owner": "Administrator", "permissions": [ { - "amend": 0, - "cancel": 0, - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "All", + "share": 1, "write": 1 } - ], - "quick_entry": 0, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0, - "track_views": 0 + ], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 } \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_action/quality_action.py b/erpnext/quality_management/doctype/quality_action/quality_action.py index 620252e299..88d4bd844a 100644 --- a/erpnext/quality_management/doctype/quality_action/quality_action.py +++ b/erpnext/quality_management/doctype/quality_action/quality_action.py @@ -3,18 +3,8 @@ # For license information, please see license.txt from __future__ import unicode_literals +import frappe from frappe.model.document import Document class QualityAction(Document): - def validate(self): - status_flag = '' - for value in self.description: - if value.resolution == None: - value.status = 'Open' - status_flag = 'Under Review' - else: - value.status = 'Close' - if status_flag == 'Under Review': - self.status = 'Under Review' - else: - self.status = 'Close' \ No newline at end of file + pass \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_action/quality_action_list.js b/erpnext/quality_management/doctype/quality_action/quality_action_list.js deleted file mode 100644 index da6b65d907..0000000000 --- a/erpnext/quality_management/doctype/quality_action/quality_action_list.js +++ /dev/null @@ -1,11 +0,0 @@ -frappe.listview_settings['Quality Action'] = { - add_fields: ["status"], - get_indicator: function(doc) { - if(doc.status == "Planned") { - return [__("Planned"), "green", "status,=,Planned"]; - } - else{ - return [__("Under Review"), "red", "status,=,Under Review"]; - } - } -}; \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_action/test_quality_action.py b/erpnext/quality_management/doctype/quality_action/test_quality_action.py index c47955cb52..51178d6225 100644 --- a/erpnext/quality_management/doctype/quality_action/test_quality_action.py +++ b/erpnext/quality_management/doctype/quality_action/test_quality_action.py @@ -19,28 +19,28 @@ class TestQualityAction(unittest.TestCase): create_review() test_create_action = create_action() test_get_action = get_action() - self.assertEquals(test_create_action.name, test_get_action.name) - self.assertEquals(test_create_action.goal, test_get_action.goal) + + self.assertEquals(test_create_action, test_get_action) def create_action(): - review = frappe.get_list("Quality Review", limit=1) + review = frappe.db.exists("Quality Review", {"goal": "GOAL-_Test Quality Goal"}) action = frappe.get_doc({ - 'doctype': 'Quality Action', - 'action': 'Corrective', - 'type': 'Quality Review', - 'review': ''+ review[0].name +'', - 'date': ''+ frappe.utils.nowdate() +'', - 'goal': '_Test Quality Goal', - 'procedure': '_Test Quality Procedure' + "doctype": "Quality Action", + "action": "Corrective", + "document_type": "Quality Review", + "document_name": review, + "date": frappe.utils.nowdate(), + "goal": "GOAL-_Test Quality Goal", + "procedure": "PRC-_Test Quality Procedure" }) - action_exist = frappe.get_list("Quality Action", filters={"review": ""+ review[0].name +""}, fields=["name", "goal"], limit=1) - if len(action_exist) == 0: + action_exist = frappe.db.exists("Quality Action", {"review": review}) + + if not action_exist: action.insert() - return action + return action.name else: - return action_exist[0] + return action_exist def get_action(): - review = frappe.get_list("Quality Review", limit=1) - action = frappe.get_list("Quality Action", filters={"review": ""+ review[0].name +""}, fields=["name", "goal"], limit=1) - return action[0] \ No newline at end of file + review = frappe.db.exists("Quality Review", {"goal": "GOAL-_Test Quality Goal"}) + return frappe.db.exists("Quality Action", {"document_name": review}) \ No newline at end of file diff --git a/erpnext/quality_management/doctype/customer_feedback/__init__.py b/erpnext/quality_management/doctype/quality_action_resolution/__init__.py similarity index 100% rename from erpnext/quality_management/doctype/customer_feedback/__init__.py rename to erpnext/quality_management/doctype/quality_action_resolution/__init__.py diff --git a/erpnext/quality_management/doctype/quality_action_resolution/quality_action_resolution.json b/erpnext/quality_management/doctype/quality_action_resolution/quality_action_resolution.json new file mode 100644 index 0000000000..74370cc3ef --- /dev/null +++ b/erpnext/quality_management/doctype/quality_action_resolution/quality_action_resolution.json @@ -0,0 +1,40 @@ +{ + "creation": "2019-05-26 20:36:44.337186", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "problem", + "sb_00", + "resolution" + ], + "fields": [ + { + "fieldname": "problem", + "fieldtype": "Long Text", + "in_list_view": 1, + "label": "Problem" + }, + { + "fieldname": "sb_00", + "fieldtype": "Section Break" + }, + { + "fieldname": "resolution", + "fieldtype": "Text Editor", + "in_list_view": 1, + "label": "Resolution" + } + ], + "istable": 1, + "modified": "2019-05-28 13:09:50.435323", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Action Resolution", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_action_resolution/quality_action_resolution.py b/erpnext/quality_management/doctype/quality_action_resolution/quality_action_resolution.py new file mode 100644 index 0000000000..de8873feb0 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_action_resolution/quality_action_resolution.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +# import frappe +from frappe.model.document import Document + +class QualityActionResolution(Document): + pass diff --git a/erpnext/quality_management/doctype/quality_action_table/quality_action_table.json b/erpnext/quality_management/doctype/quality_action_table/quality_action_table.json deleted file mode 100644 index a5f7fb6702..0000000000 --- a/erpnext/quality_management/doctype/quality_action_table/quality_action_table.json +++ /dev/null @@ -1,205 +0,0 @@ -{ - "allow_copy": 0, - "allow_events_in_timeline": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "beta": 0, - "creation": "2018-10-15 15:36:53.624990", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", - "fields": [ - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "problem", - "fieldtype": "Data", - "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": "Problem", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "resolution", - "fieldtype": "Data", - "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": "Resolution", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "status", - "fieldtype": "Select", - "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": "Status", - "length": 0, - "no_copy": 0, - "options": "Open\nClose", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "responsible", - "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": "Responsible", - "length": 0, - "no_copy": 0, - "options": "Role", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "completion_date", - "fieldtype": "Date", - "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": "Completion Date", - "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, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 1, - "max_attachments": 0, - "modified": "2018-11-12 14:33:46.260600", - "modified_by": "Administrator", - "module": "Quality Management", - "name": "Quality Action Table", - "name_case": "", - "owner": "Administrator", - "permissions": [], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0, - "track_views": 0 -} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/customer_feedback_table/__init__.py b/erpnext/quality_management/doctype/quality_feedback/__init__.py similarity index 100% rename from erpnext/quality_management/doctype/customer_feedback_table/__init__.py rename to erpnext/quality_management/doctype/quality_feedback/__init__.py diff --git a/erpnext/quality_management/doctype/quality_feedback/quality_feedback.js b/erpnext/quality_management/doctype/quality_feedback/quality_feedback.js new file mode 100644 index 0000000000..63747afb3f --- /dev/null +++ b/erpnext/quality_management/doctype/quality_feedback/quality_feedback.js @@ -0,0 +1,25 @@ +// Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Quality Feedback', { + refresh: function(frm) { + frm.set_value("date", frappe.datetime.get_today()); + }, + template: function(frm){ + frappe.call({ + "method": "frappe.client.get", + args: { + doctype: "Quality Feedback Template", + name: frm.doc.template + }, + callback: function(data){ + frm.fields_dict.parameters.grid.remove_all(); + for (var i in data.message.parameters){ + frm.add_child("parameters"); + frm.fields_dict.parameters.get_value()[i].parameter = data.message.parameters[i].parameter; + } + frm.refresh(); + } + }); + } +}); diff --git a/erpnext/quality_management/doctype/quality_feedback/quality_feedback.json b/erpnext/quality_management/doctype/quality_feedback/quality_feedback.json new file mode 100644 index 0000000000..460438af62 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_feedback/quality_feedback.json @@ -0,0 +1,95 @@ +{ + "autoname": "format:FDBK-{#####}", + "creation": "2019-05-26 21:23:05.308379", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "document_type", + "template", + "cb_00", + "document_name", + "date", + "sb_00", + "parameters" + ], + "fields": [ + { + "fieldname": "template", + "fieldtype": "Link", + "label": "Template", + "options": "Quality Feedback Template", + "reqd": 1 + }, + { + "fieldname": "cb_00", + "fieldtype": "Column Break" + }, + { + "fieldname": "date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Date", + "read_only": 1 + }, + { + "fieldname": "sb_00", + "fieldtype": "Section Break" + }, + { + "fetch_from": "template.feedback_values", + "fieldname": "parameters", + "fieldtype": "Table", + "label": "Parameters", + "options": "Quality Feedback Parameter" + }, + { + "fieldname": "document_type", + "fieldtype": "Select", + "label": "Type", + "options": "User\nCustomer", + "reqd": 1 + }, + { + "fieldname": "document_name", + "fieldtype": "Dynamic Link", + "label": "Name", + "options": "document_type", + "reqd": 1 + } + ], + "modified": "2019-05-28 15:16:01.161662", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Feedback", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "All", + "share": 1, + "write": 1 + } + ], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/customer_feedback/customer_feedback.py b/erpnext/quality_management/doctype/quality_feedback/quality_feedback.py similarity index 58% rename from erpnext/quality_management/doctype/customer_feedback/customer_feedback.py rename to erpnext/quality_management/doctype/quality_feedback/quality_feedback.py index 6211c42c66..9894181004 100644 --- a/erpnext/quality_management/doctype/customer_feedback/customer_feedback.py +++ b/erpnext/quality_management/doctype/quality_feedback/quality_feedback.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2018, Frappe and contributors +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors # For license information, please see license.txt from __future__ import unicode_literals +import frappe from frappe.model.document import Document -class CustomerFeedback(Document): +class QualityFeedback(Document): pass \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_feedback/test_quality_feedback.py b/erpnext/quality_management/doctype/quality_feedback/test_quality_feedback.py new file mode 100644 index 0000000000..9ea34357b4 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_feedback/test_quality_feedback.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt +from __future__ import unicode_literals + +import frappe +import unittest +from erpnext.quality_management.doctype.quality_feedback_template.test_quality_feedback_template import create_template + +class TestQualityFeedback(unittest.TestCase): + + def test_quality_feedback(self): + create_template() + test_create_feedback = create_feedback() + test_get_feedback = get_feedback() + + self.assertEqual(test_create_feedback, test_get_feedback) + +def create_feedback(): + feedabck = frappe.get_doc({ + "doctype": "Quality Feedback", + "template": "TMPL-_Test Feedback Template", + "date": frappe.utils.nowdate(), + "parameters": [ + { + "parameter": "Test Parameter", + "rating": 3, + "feedback": "Test Feedback" + } + ] + }) + + feedback_exists = frappe.db.exists("Quality Feedback", {"template": "TMPL-_Test Feedback Template"}) + + if not feedback_exists: + feedabck.insert() + return feedabck.name + else: + return feedback_exists + +def get_feedback(): + return frappe.db.exists("Quality Feedback", {"template": "TMPL-_Test Feedback Template"}) diff --git a/erpnext/quality_management/doctype/customer_feedback_template/__init__.py b/erpnext/quality_management/doctype/quality_feedback_parameter/__init__.py similarity index 100% rename from erpnext/quality_management/doctype/customer_feedback_template/__init__.py rename to erpnext/quality_management/doctype/quality_feedback_parameter/__init__.py diff --git a/erpnext/quality_management/doctype/quality_feedback_parameter/quality_feedback_parameter.json b/erpnext/quality_management/doctype/quality_feedback_parameter/quality_feedback_parameter.json new file mode 100644 index 0000000000..d0b368f293 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_feedback_parameter/quality_feedback_parameter.json @@ -0,0 +1,57 @@ +{ + "creation": "2019-05-26 21:25:01.715807", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "parameter", + "cb_00", + "rating", + "sb_00", + "feedback" + ], + "fields": [ + { + "fieldname": "parameter", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Parameter", + "read_only": 1 + }, + { + "fieldname": "cb_00", + "fieldtype": "Column Break" + }, + { + "default": "1", + "fieldname": "rating", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Rating", + "options": "1\n2\n3\n4\n5", + "reqd": 1 + }, + { + "fieldname": "sb_00", + "fieldtype": "Section Break" + }, + { + "fieldname": "feedback", + "fieldtype": "Text Editor", + "in_list_view": 1, + "label": "Feedback", + "reqd": 1 + } + ], + "istable": 1, + "modified": "2019-05-26 21:50:48.951264", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Feedback Parameter", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_feedback_parameter/quality_feedback_parameter.py b/erpnext/quality_management/doctype/quality_feedback_parameter/quality_feedback_parameter.py new file mode 100644 index 0000000000..d652e8a57b --- /dev/null +++ b/erpnext/quality_management/doctype/quality_feedback_parameter/quality_feedback_parameter.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +# import frappe +from frappe.model.document import Document + +class QualityFeedbackParameter(Document): + pass diff --git a/erpnext/quality_management/doctype/customer_feedback_template_table/__init__.py b/erpnext/quality_management/doctype/quality_feedback_template/__init__.py similarity index 100% rename from erpnext/quality_management/doctype/customer_feedback_template_table/__init__.py rename to erpnext/quality_management/doctype/quality_feedback_template/__init__.py diff --git a/erpnext/quality_management/doctype/quality_feedback_template/quality_feedback_template.js b/erpnext/quality_management/doctype/quality_feedback_template/quality_feedback_template.js new file mode 100644 index 0000000000..490eed9706 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_feedback_template/quality_feedback_template.js @@ -0,0 +1,8 @@ +// Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Quality Feedback Template', { + // refresh: function(frm) { + + // } +}); diff --git a/erpnext/quality_management/doctype/quality_feedback_template/quality_feedback_template.json b/erpnext/quality_management/doctype/quality_feedback_template/quality_feedback_template.json new file mode 100644 index 0000000000..31efd04682 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_feedback_template/quality_feedback_template.json @@ -0,0 +1,59 @@ +{ + "autoname": "format:TMPL-{template}", + "creation": "2019-05-26 21:17:24.283061", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "template", + "cb_00", + "sb_00", + "parameters" + ], + "fields": [ + { + "fieldname": "template", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Template", + "reqd": 1 + }, + { + "fieldname": "cb_00", + "fieldtype": "Column Break" + }, + { + "fieldname": "sb_00", + "fieldtype": "Section Break" + }, + { + "fieldname": "parameters", + "fieldtype": "Table", + "label": "Parameters", + "options": "Quality Feedback Template Parameter" + } + ], + "modified": "2019-05-26 21:48:47.770610", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Feedback Template", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_feedback_template/quality_feedback_template.py b/erpnext/quality_management/doctype/quality_feedback_template/quality_feedback_template.py new file mode 100644 index 0000000000..0c6dfc0780 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_feedback_template/quality_feedback_template.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +# import frappe +from frappe.model.document import Document + +class QualityFeedbackTemplate(Document): + pass diff --git a/erpnext/quality_management/doctype/quality_feedback_template/test_quality_feedback_template.py b/erpnext/quality_management/doctype/quality_feedback_template/test_quality_feedback_template.py new file mode 100644 index 0000000000..36dbe137a5 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_feedback_template/test_quality_feedback_template.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt +from __future__ import unicode_literals + +import frappe +import unittest + +class TestQualityFeedbackTemplate(unittest.TestCase): + + def test_quality_feedback_template(self): + test_create_template = create_template() + test_get_template = get_template() + + self.assertEqual(test_create_template, test_get_template) + +def create_template(): + template = frappe.get_doc({ + "doctype": "Quality Feedback Template", + "template": "_Test Feedback Template", + "parameters": [ + { + "parameter": "Test Parameter" + } + ] + }) + + template_exists = frappe.db.exists("Quality Feedback Template", {"template": "_Test Feedback Template"}) + + if not template_exists: + template.insert() + return template.name + else: + return template_exists + +def get_template(): + return frappe.db.exists("Quality Feedback Template", {"template": "_Test Feedback Template"}) \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_action_table/__init__.py b/erpnext/quality_management/doctype/quality_feedback_template_parameter/__init__.py similarity index 100% rename from erpnext/quality_management/doctype/quality_action_table/__init__.py rename to erpnext/quality_management/doctype/quality_feedback_template_parameter/__init__.py diff --git a/erpnext/quality_management/doctype/quality_feedback_template_parameter/quality_feedback_template_parameter.json b/erpnext/quality_management/doctype/quality_feedback_template_parameter/quality_feedback_template_parameter.json new file mode 100644 index 0000000000..02a9b03b50 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_feedback_template_parameter/quality_feedback_template_parameter.json @@ -0,0 +1,28 @@ +{ + "creation": "2019-05-26 21:20:40.520197", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "parameter" + ], + "fields": [ + { + "fieldname": "parameter", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Parameter" + } + ], + "istable": 1, + "modified": "2019-05-26 21:23:53.574743", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Feedback Template Parameter", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_feedback_template_parameter/quality_feedback_template_parameter.py b/erpnext/quality_management/doctype/quality_feedback_template_parameter/quality_feedback_template_parameter.py new file mode 100644 index 0000000000..3f3348fd7f --- /dev/null +++ b/erpnext/quality_management/doctype/quality_feedback_template_parameter/quality_feedback_template_parameter.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +# import frappe +from frappe.model.document import Document + +class QualityFeedbackTemplateParameter(Document): + pass diff --git a/erpnext/quality_management/doctype/quality_goal/quality_goal.js b/erpnext/quality_management/doctype/quality_goal/quality_goal.js index 3bb6e12e3a..ff58c5ad21 100644 --- a/erpnext/quality_management/doctype/quality_goal/quality_goal.js +++ b/erpnext/quality_management/doctype/quality_goal/quality_goal.js @@ -2,40 +2,7 @@ // For license information, please see license.txt frappe.ui.form.on('Quality Goal', { - onload: function(frm){ - if(frm.doc.measurable == "No"){ - hide_target_unit(frm); - } - else{ - show_target_unit(frm); - } - }, - revision: function(frm) { - if(!frm.doc.revised_on){ - frm.set_value("revised_on", frappe.datetime.get_today()); - } - }, - measurable: function(frm) { - frm.fields_dict.objective.grid.remove_all(); - if(frm.doc.measurable == "No"){ - hide_target_unit(frm); - } - else{ - show_target_unit(frm); - } + refresh: function(frm) { + frm.doc.created_by = frappe.session.user; } }); - -function hide_target_unit(frm){ - // hides target and unit columns as the goal cannot be measured in numeric values - frm.fields_dict.objective.grid.docfields[1].hidden = 1; - frm.fields_dict.objective.grid.docfields[2].hidden = 1; - frm.refresh(); -} - -function show_target_unit(frm){ - // shows target and unit columns as the goal can be measured in numeric values - frm.fields_dict.objective.grid.docfields[1].hidden = 0; - frm.fields_dict.objective.grid.docfields[2].hidden = 0; - frm.refresh(); -} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_goal/quality_goal.json b/erpnext/quality_management/doctype/quality_goal/quality_goal.json index 93f1bd142c..c32610948e 100644 --- a/erpnext/quality_management/doctype/quality_goal/quality_goal.json +++ b/erpnext/quality_management/doctype/quality_goal/quality_goal.json @@ -1,824 +1,149 @@ { - "allow_copy": 0, - "allow_events_in_timeline": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "format:{goal}", - "beta": 0, - "creation": "2018-10-02 12:17:41.727541", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", + "autoname": "format:GOAL-{goal}", + "creation": "2018-10-02 12:17:41.727541", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "goal", + "frequency", + "created_by", + "cb_00", + "procedure", + "weekday", + "quarter", + "date", + "sb_00", + "revision", + "cb_01", + "revised_on", + "sb_01", + "objectives" + ], "fields": [ { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "goal", - "fieldtype": "Data", - "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": "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": 1, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, + "fieldname": "created_by", + "fieldtype": "Link", + "label": "Created By", + "options": "User", + "read_only": 1 + }, + { + "default": "None", + "fieldname": "frequency", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Monitoring Frequency", + "options": "None\nDaily\nWeekly\nMonthly\nQuarterly" + }, + { + "fieldname": "procedure", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Procedure", + "options": "Quality Procedure" + }, + { + "depends_on": "eval:doc.frequency == 'Monthly' || doc.frequency == 'Quarterly';", + "fieldname": "date", + "fieldtype": "Select", + "label": "Date", + "options": "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30" + }, + { + "default": "0", + "fieldname": "revision", + "fieldtype": "Int", + "label": "Revision", + "read_only": 1 + }, + { + "fieldname": "revised_on", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Revised On", + "read_only": 1 + }, + { + "depends_on": "eval:doc.frequency == 'Weekly';", + "fieldname": "weekday", + "fieldtype": "Select", + "label": "Weekday", + "options": "Monday\nTuesday\nWednesday\nThursday\nFriday\nSaturday" + }, + { + "fieldname": "cb_00", + "fieldtype": "Column Break" + }, + { + "fieldname": "sb_00", + "fieldtype": "Section Break", + "label": "Revision and Revised On" + }, + { + "fieldname": "cb_01", + "fieldtype": "Column Break" + }, + { + "fieldname": "sb_01", + "fieldtype": "Section Break", + "label": "Objectives" + }, + { + "fieldname": "objectives", + "fieldtype": "Table", + "label": "Objectives", + "options": "Quality Goal Objective" + }, + { + "fieldname": "goal", + "fieldtype": "Data", + "label": "Goal", + "reqd": 1, "unique": 1 - }, + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "created_by", - "fieldtype": "Link", - "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": "Created By", - "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": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "None", - "fieldname": "frequency", - "fieldtype": "Select", - "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": "Monitoring Frequency", - "length": 0, - "no_copy": 0, - "options": "None\nDaily\nWeekly\nMonthly\nQuarterly\nHalf Yearly\nYearly", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "January-April-July-October", - "depends_on": "eval:doc.frequency == 'Quarterly'", - "fieldname": "quarterly", - "fieldtype": "Data", - "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": "Day", - "length": 0, - "no_copy": 0, - "options": "", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "January-July", - "depends_on": "eval:doc.frequency == 'Half Yearly'", - "fieldname": "half", - "fieldtype": "Data", - "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": "Day", - "length": 0, - "no_copy": 0, - "options": "", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "January", - "depends_on": "eval:doc.frequency == 'Yearly'", - "fieldname": "yearly", - "fieldtype": "Select", - "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": "Day", - "length": 0, - "no_copy": 0, - "options": "January\nFebruary\nMarch\nApril\nMay\nJune\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember", - "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, - "allow_in_quick_entry": 0, - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "procedure", - "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": "Procedure", - "length": 0, - "no_copy": 0, - "options": "Quality Procedure", - "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": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "scope", - "fieldtype": "Select", - "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": "Scope", - "length": 0, - "no_copy": 0, - "options": "Company\nDepartment", - "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": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:doc.frequency == 'Daily'", - "fieldname": "daily", - "fieldtype": "Select", - "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": "Day", - "length": 0, - "no_copy": 0, - "options": "Everyday", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:doc.frequency == 'Weekly'", - "fieldname": "weekly", - "fieldtype": "Select", - "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": "Day", - "length": 0, - "no_copy": 0, - "options": "Monday\nTuesday\nWednesday\nThursday\nFriday\nSaturday", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:doc.frequency == 'Quarterly' || doc.frequency == 'Half Yearly' || doc.frequency == 'Yearly' || doc.frequency == 'Monthly'", - "fieldname": "date", - "fieldtype": "Select", - "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": "Date", - "length": 0, - "no_copy": 0, - "options": "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:doc.scope == 'Department'", - "fieldname": "department", - "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": "Department", - "length": 0, - "no_copy": 0, - "options": "Department", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "section_break_8", - "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, - "label": "Revision and Revised On", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "revision", - "fieldtype": "Data", - "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": "Revision", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_10", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "revised_on", - "fieldtype": "Date", - "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": "Revised On", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "measurable_section", - "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, - "label": "Measurable Goal", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "Yes", - "fieldname": "measurable", - "fieldtype": "Select", - "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": "Measurable Goal", - "length": 0, - "no_copy": 0, - "options": "Yes\nNo", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_20", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "Target and Unit are disabled", - "depends_on": "eval:doc.measurable == 'No'", - "fieldname": "measurable_display", - "fieldtype": "Data", - "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": "Measurable", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "section_break_11", - "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, - "label": "Goal Objectives", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "objective", - "fieldtype": "Table", - "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": "Objective", - "length": 0, - "no_copy": 0, - "options": "Quality Objective", - "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 + "default": "January-April-July-October", + "depends_on": "eval:doc.frequency == 'Quarterly';", + "fieldname": "quarter", + "fieldtype": "Select", + "label": "Quarter", + "options": "January-April-July-October", + "read_only": 1 } - ], - "has_web_view": 0, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 0, - "max_attachments": 0, - "modified": "2018-11-12 14:35:18.498549", - "modified_by": "Administrator", - "module": "Quality Management", - "name": "Quality Goal", - "name_case": "", - "owner": "Administrator", + ], + "modified": "2019-05-28 14:49:12.768863", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Goal", + "owner": "Administrator", "permissions": [ { - "amend": 0, - "cancel": 0, - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "All", + "share": 1, "write": 1 } - ], - "quick_entry": 0, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0, - "track_views": 0 + ], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 } \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_goal/quality_goal.py b/erpnext/quality_management/doctype/quality_goal/quality_goal.py index 236c72ae87..4ae015e4a1 100644 --- a/erpnext/quality_management/doctype/quality_goal/quality_goal.py +++ b/erpnext/quality_management/doctype/quality_goal/quality_goal.py @@ -3,8 +3,12 @@ # For license information, please see license.txt from __future__ import unicode_literals +import frappe + from frappe.model.document import Document class QualityGoal(Document): - pass + def validate(self): + self.revision += 1 + self.revised_on = frappe.utils.today() diff --git a/erpnext/quality_management/doctype/quality_goal/quality_goal_dashboard.py b/erpnext/quality_management/doctype/quality_goal/quality_goal_dashboard.py index 0acc1daf89..22af3c0f74 100644 --- a/erpnext/quality_management/doctype/quality_goal/quality_goal_dashboard.py +++ b/erpnext/quality_management/doctype/quality_goal/quality_goal_dashboard.py @@ -1,16 +1,12 @@ from frappe import _ def get_data(): - return { - 'fieldname': 'goal', - 'transactions': [ - { - 'label': _('Review'), - 'items': ['Quality Review'] - }, - { - 'label': _('Action'), - 'items': ['Quality Action'] - } - ] - } \ No newline at end of file + return { + 'fieldname': 'goal', + 'transactions': [ + { + 'label': _('Review'), + 'items': ['Quality Review'] + } + ] + } \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_goal/test_quality_goal.py b/erpnext/quality_management/doctype/quality_goal/test_quality_goal.py index 19512d9d09..34cd87b2d4 100644 --- a/erpnext/quality_management/doctype/quality_goal/test_quality_goal.py +++ b/erpnext/quality_management/doctype/quality_goal/test_quality_goal.py @@ -14,33 +14,31 @@ class TestQualityGoal(unittest.TestCase): create_unit() test_create_goal = create_goal() test_get_goal = get_goal() + self.assertEquals(test_create_goal, test_get_goal) def create_goal(): goal = frappe.get_doc({ "doctype": "Quality Goal", "goal": "_Test Quality Goal", - "revision": "1", - "procedure": "_Test Quality Procedure", - "frequency": "Daily", - "measureable": "Yes", - "objective": [ + "procedure": "PRC-_Test Quality Procedure", + "objectives": [ { "objective": "_Test Quality Objective", "target": "4", - "unit": "_Test UOM" + "uom": "_Test UOM" } ] }) - goal_exist = frappe.db.exists("Quality Goal", ""+ goal.goal +"") + goal_exist = frappe.db.exists("Quality Goal", {"goal": goal.goal}) if not goal_exist: goal.insert() - return goal.goal + return goal else: return goal_exist def get_goal(): - goal = frappe.db.exists("Quality Goal", "_Test Quality Goal") + goal = frappe.db.exists("Quality Goal", "GOAL-_Test Quality Goal") return goal def create_unit(): @@ -48,6 +46,6 @@ def create_unit(): "doctype": "UOM", "uom_name": "_Test UOM", }) - unit_exist = frappe.db.exists("UOM", ""+ unit.uom_name +"") + unit_exist = frappe.db.exists("UOM", unit.uom_name) if not unit_exist: unit.insert() diff --git a/erpnext/quality_management/doctype/quality_meeting_table/__init__.py b/erpnext/quality_management/doctype/quality_goal_objective/__init__.py similarity index 100% rename from erpnext/quality_management/doctype/quality_meeting_table/__init__.py rename to erpnext/quality_management/doctype/quality_goal_objective/__init__.py diff --git a/erpnext/quality_management/doctype/quality_goal_objective/quality_goal_objective.json b/erpnext/quality_management/doctype/quality_goal_objective/quality_goal_objective.json new file mode 100644 index 0000000000..e3dbd660b5 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_goal_objective/quality_goal_objective.json @@ -0,0 +1,51 @@ +{ + "autoname": "format:{####}", + "creation": "2019-05-26 15:03:43.996455", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "objective", + "cb_00", + "target", + "uom" + ], + "fields": [ + { + "fetch_from": "goal.objective", + "fieldname": "objective", + "fieldtype": "Text", + "in_list_view": 1, + "label": "Objective", + "reqd": 1 + }, + { + "fieldname": "target", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Target" + }, + { + "fieldname": "uom", + "fieldtype": "Link", + "in_list_view": 1, + "label": "UOM", + "options": "UOM" + }, + { + "fieldname": "cb_00", + "fieldtype": "Column Break" + } + ], + "istable": 1, + "modified": "2019-05-26 16:12:54.832058", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Goal Objective", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/customer_feedback_template_table/customer_feedback_template_table.py b/erpnext/quality_management/doctype/quality_goal_objective/quality_goal_objective.py similarity index 57% rename from erpnext/quality_management/doctype/customer_feedback_template_table/customer_feedback_template_table.py rename to erpnext/quality_management/doctype/quality_goal_objective/quality_goal_objective.py index 082046df46..f4bd357f1b 100644 --- a/erpnext/quality_management/doctype/customer_feedback_template_table/customer_feedback_template_table.py +++ b/erpnext/quality_management/doctype/quality_goal_objective/quality_goal_objective.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2018, Frappe and contributors +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors # For license information, please see license.txt from __future__ import unicode_literals +# import frappe from frappe.model.document import Document -class CustomerFeedbackTemplateTable(Document): +class QualityGoalObjective(Document): pass diff --git a/erpnext/quality_management/doctype/quality_meeting/quality_meeting.json b/erpnext/quality_management/doctype/quality_meeting/quality_meeting.json index 45183c53d5..6985632e49 100644 --- a/erpnext/quality_management/doctype/quality_meeting/quality_meeting.json +++ b/erpnext/quality_management/doctype/quality_meeting/quality_meeting.json @@ -1,225 +1,93 @@ { - "allow_copy": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "format:QMS-MTN-{date}", - "beta": 0, - "creation": "2018-10-15 16:25:41.548432", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", + "autoname": "format:MTNG-{date}", + "creation": "2018-10-15 16:25:41.548432", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "date", + "cb_00", + "status", + "sb_00", + "agenda", + "sb_01", + "minutes" + ], "fields": [ { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "date", - "fieldtype": "Date", - "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": "Meeting Date", - "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 - }, + "fieldname": "date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Date", + "read_only": 1 + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "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 - }, + "default": "Open", + "fieldname": "status", + "fieldtype": "Select", + "label": "Status", + "options": "Open\nClose" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "Open", - "fieldname": "status", - "fieldtype": "Select", - "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": "Status", - "length": 0, - "no_copy": 0, - "options": "Open\nClose", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, + "fieldname": "minutes", + "fieldtype": "Table", + "label": "Minutes", + "options": "Quality Meeting Minutes" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "minutes_break", - "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, - "label": "Minutes", - "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 - }, + "fieldname": "cb_00", + "fieldtype": "Column Break" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "minutes", - "fieldtype": "Table", - "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": "Minutes", - "length": 0, - "no_copy": 0, - "options": "Quality Meeting Table", - "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 + "fieldname": "sb_00", + "fieldtype": "Section Break", + "label": "Agenda" + }, + { + "fieldname": "agenda", + "fieldtype": "Table", + "label": "Agenda", + "options": "Quality Meeting Agenda" + }, + { + "fieldname": "sb_01", + "fieldtype": "Section Break", + "label": "Minutes" } - ], - "has_web_view": 0, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 0, - "max_attachments": 0, - "modified": "2018-10-18 14:44:04.494395", - "modified_by": "Administrator", - "module": "Quality Management", - "name": "Quality Meeting", - "name_case": "", - "owner": "Administrator", + ], + "modified": "2019-05-26 23:12:23.364357", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Meeting", + "owner": "Administrator", "permissions": [ { - "amend": 0, - "cancel": 0, - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "All", + "share": 1, "write": 1 } - ], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0, - "track_views": 0 + ], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 } \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_meeting/quality_meeting.py b/erpnext/quality_management/doctype/quality_meeting/quality_meeting.py index 88653a95b9..f8de22958b 100644 --- a/erpnext/quality_management/doctype/quality_meeting/quality_meeting.py +++ b/erpnext/quality_management/doctype/quality_meeting/quality_meeting.py @@ -6,13 +6,4 @@ from __future__ import unicode_literals from frappe.model.document import Document class QualityMeeting(Document): - def validate(self): - problem = '' - for data in self.minutes: - if data.status == 'Open': - problem = 'set' - - if problem == 'set': - self.status = 'Open' - else: - self.status = 'Close' \ No newline at end of file + pass \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_meeting/test_quality_meeting.py b/erpnext/quality_management/doctype/quality_meeting/test_quality_meeting.py index b680a1bdc2..e61b5dfc57 100644 --- a/erpnext/quality_management/doctype/quality_meeting/test_quality_meeting.py +++ b/erpnext/quality_management/doctype/quality_meeting/test_quality_meeting.py @@ -5,27 +5,41 @@ from __future__ import unicode_literals import frappe import unittest +from erpnext.quality_management.doctype.quality_review.test_quality_review import create_review class TestQualityMeeting(unittest.TestCase): def test_quality_meeting(self): + create_review() test_create_meeting = create_meeting() test_get_meeting = get_meeting() - self.assertEquals(test_create_meeting.name, test_get_meeting.name) + self.assertEquals(test_create_meeting, test_get_meeting) def create_meeting(): meeting = frappe.get_doc({ "doctype": "Quality Meeting", - "scope": "Company", - "status": "Close", - "date": ""+ frappe.as_unicode(frappe.utils.nowdate()) +"" + "status": "Open", + "date": frappe.utils.nowdate(), + "agenda": [ + { + "agenda": "Test Agenda" + } + ], + "minutes": [ + { + "document_type": "Quality Review", + "document_name": frappe.db.exists("Quality Review", {"goal": "GOAL-_Test Quality Goal"}), + "minute": "Test Minute" + } + ] }) - meeting_exist = frappe.get_list("Quality Meeting", filters={"date": ""+ meeting.date +""}, fields=["name"], limit=1) - if len(meeting_exist) == 0: + meeting_exist = frappe.db.exists("Quality Meeting", {"date": frappe.utils.nowdate(), "status": "Open"}) + + if not meeting_exist: meeting.insert() - return meeting + return meeting.name else: - return meeting_exist[0] + return meeting_exist def get_meeting(): - meeting = frappe.get_list("Quality Meeting", limit=1) - return meeting[0] \ No newline at end of file + meeting = frappe.db.exists("Quality Meeting", {"date": frappe.utils.nowdate(), "status": "Open"}) + return meeting \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_objective/__init__.py b/erpnext/quality_management/doctype/quality_meeting_agenda/__init__.py similarity index 100% rename from erpnext/quality_management/doctype/quality_objective/__init__.py rename to erpnext/quality_management/doctype/quality_meeting_agenda/__init__.py diff --git a/erpnext/quality_management/doctype/quality_meeting_agenda/quality_meeting_agenda.js b/erpnext/quality_management/doctype/quality_meeting_agenda/quality_meeting_agenda.js new file mode 100644 index 0000000000..09989dc643 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_meeting_agenda/quality_meeting_agenda.js @@ -0,0 +1,8 @@ +// Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Quality Meeting Agenda', { + // refresh: function(frm) { + + // } +}); diff --git a/erpnext/quality_management/doctype/quality_meeting_agenda/quality_meeting_agenda.json b/erpnext/quality_management/doctype/quality_meeting_agenda/quality_meeting_agenda.json new file mode 100644 index 0000000000..e53d18650c --- /dev/null +++ b/erpnext/quality_management/doctype/quality_meeting_agenda/quality_meeting_agenda.json @@ -0,0 +1,28 @@ +{ + "creation": "2019-05-26 20:46:57.999300", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "agenda" + ], + "fields": [ + { + "fieldname": "agenda", + "fieldtype": "Text Editor", + "in_list_view": 1, + "label": "Agenda" + } + ], + "istable": 1, + "modified": "2019-05-26 20:49:01.328146", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Meeting Agenda", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "ASC", + "track_changes": 1 +} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/customer_feedback_table/customer_feedback_table.py b/erpnext/quality_management/doctype/quality_meeting_agenda/quality_meeting_agenda.py similarity index 57% rename from erpnext/quality_management/doctype/customer_feedback_table/customer_feedback_table.py rename to erpnext/quality_management/doctype/quality_meeting_agenda/quality_meeting_agenda.py index ef1b1838b0..5d77975d74 100644 --- a/erpnext/quality_management/doctype/customer_feedback_table/customer_feedback_table.py +++ b/erpnext/quality_management/doctype/quality_meeting_agenda/quality_meeting_agenda.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2018, Frappe and contributors +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors # For license information, please see license.txt from __future__ import unicode_literals +# import frappe from frappe.model.document import Document -class CustomerFeedbackTable(Document): +class QualityMeetingAgenda(Document): pass diff --git a/erpnext/quality_management/doctype/quality_meeting_agenda/test_quality_meeting_agenda.py b/erpnext/quality_management/doctype/quality_meeting_agenda/test_quality_meeting_agenda.py new file mode 100644 index 0000000000..4750cc1f7a --- /dev/null +++ b/erpnext/quality_management/doctype/quality_meeting_agenda/test_quality_meeting_agenda.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt +from __future__ import unicode_literals + +# import frappe +import unittest + +class TestQualityMeetingAgenda(unittest.TestCase): + pass diff --git a/erpnext/quality_management/doctype/quality_procedure_table/__init__.py b/erpnext/quality_management/doctype/quality_meeting_minutes/__init__.py similarity index 100% rename from erpnext/quality_management/doctype/quality_procedure_table/__init__.py rename to erpnext/quality_management/doctype/quality_meeting_minutes/__init__.py diff --git a/erpnext/quality_management/doctype/quality_meeting_minutes/quality_meeting_minutes.json b/erpnext/quality_management/doctype/quality_meeting_minutes/quality_meeting_minutes.json new file mode 100644 index 0000000000..3b9133ac70 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_meeting_minutes/quality_meeting_minutes.json @@ -0,0 +1,55 @@ +{ + "creation": "2019-05-26 20:45:26.226428", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "document_type", + "cb_00", + "document_name", + "sb_00", + "minute" + ], + "fields": [ + { + "fieldname": "sb_00", + "fieldtype": "Section Break" + }, + { + "fieldname": "minute", + "fieldtype": "Text Editor", + "in_list_view": 1, + "label": "Minute" + }, + { + "fieldname": "document_type", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Document Type", + "options": "Quality Review\nQuality Action\nQuality Feedback", + "reqd": 1 + }, + { + "fieldname": "cb_00", + "fieldtype": "Column Break" + }, + { + "fieldname": "document_name", + "fieldtype": "Dynamic Link", + "in_list_view": 1, + "label": "Document Name", + "options": "document_type" + } + ], + "istable": 1, + "modified": "2019-05-26 22:00:24.833920", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Meeting Minutes", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_action_table/quality_action_table.py b/erpnext/quality_management/doctype/quality_meeting_minutes/quality_meeting_minutes.py similarity index 57% rename from erpnext/quality_management/doctype/quality_action_table/quality_action_table.py rename to erpnext/quality_management/doctype/quality_meeting_minutes/quality_meeting_minutes.py index 9beb148ac1..47b2c95bd9 100644 --- a/erpnext/quality_management/doctype/quality_action_table/quality_action_table.py +++ b/erpnext/quality_management/doctype/quality_meeting_minutes/quality_meeting_minutes.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2018, Frappe and contributors +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors # For license information, please see license.txt from __future__ import unicode_literals +# import frappe from frappe.model.document import Document -class QualityActionTable(Document): +class QualityMeetingMinutes(Document): pass diff --git a/erpnext/quality_management/doctype/quality_meeting_table/quality_meeting_table.json b/erpnext/quality_management/doctype/quality_meeting_table/quality_meeting_table.json deleted file mode 100644 index 8e34a62b9a..0000000000 --- a/erpnext/quality_management/doctype/quality_meeting_table/quality_meeting_table.json +++ /dev/null @@ -1,175 +0,0 @@ -{ - "allow_copy": 0, - "allow_events_in_timeline": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "beta": 0, - "creation": "2018-10-15 16:28:59.840039", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", - "fields": [ - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "review", - "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": "Review", - "length": 0, - "no_copy": 0, - "options": "Quality Review", - "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": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "action", - "fieldtype": "Select", - "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": "Action", - "length": 0, - "no_copy": 0, - "options": "Under Review\nPlanned", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "responsible", - "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": "Responsible", - "length": 0, - "no_copy": 0, - "options": "Role", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "status", - "fieldtype": "Select", - "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": "Status", - "length": 0, - "no_copy": 0, - "options": "Open\nClose", - "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, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 1, - "max_attachments": 0, - "modified": "2018-11-01 14:34:53.964306", - "modified_by": "Administrator", - "module": "Quality Management", - "name": "Quality Meeting Table", - "name_case": "", - "owner": "Administrator", - "permissions": [], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0, - "track_views": 0 -} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_objective/quality_objective.json b/erpnext/quality_management/doctype/quality_objective/quality_objective.json deleted file mode 100644 index 49ffde9c35..0000000000 --- a/erpnext/quality_management/doctype/quality_objective/quality_objective.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "allow_copy": 0, - "allow_events_in_timeline": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "format:{####}", - "beta": 0, - "creation": "2018-10-02 16:47:59.600155", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", - "fields": [ - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fetch_from": "goal.objective", - "fieldname": "objective", - "fieldtype": "Text", - "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": "Objective", - "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": 1, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "", - "fieldname": "target", - "fieldtype": "Data", - "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": "Target", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "", - "fieldname": "unit", - "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": "Unit", - "length": 0, - "no_copy": 0, - "options": "UOM", - "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, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 1, - "max_attachments": 0, - "modified": "2018-11-11 13:31:16.044780", - "modified_by": "Administrator", - "module": "Quality Management", - "name": "Quality Objective", - "name_case": "", - "owner": "Administrator", - "permissions": [], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0, - "track_views": 0 -} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_objective/quality_objective.py b/erpnext/quality_management/doctype/quality_objective/quality_objective.py deleted file mode 100644 index 9e6a8fd044..0000000000 --- a/erpnext/quality_management/doctype/quality_objective/quality_objective.py +++ /dev/null @@ -1,9 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2018, Frappe and contributors -# For license information, please see license.txt - -from __future__ import unicode_literals -from frappe.model.document import Document - -class QualityObjective(Document): - pass diff --git a/erpnext/quality_management/doctype/quality_procedure/quality_procedure.json b/erpnext/quality_management/doctype/quality_procedure/quality_procedure.json index 8733c7c255..7b241ef787 100644 --- a/erpnext/quality_management/doctype/quality_procedure/quality_procedure.json +++ b/erpnext/quality_management/doctype/quality_procedure/quality_procedure.json @@ -1,386 +1,106 @@ { - "allow_copy": 0, - "allow_events_in_timeline": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "format:{procedure}", - "beta": 0, - "creation": "2018-10-06 00:06:29.756804", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", + "autoname": "format:PRC-{procedure}", + "creation": "2018-10-06 00:06:29.756804", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "procedure", + "parent_quality_procedure", + "is_group", + "sb_00", + "processes", + "lft", + "rgt", + "old_parent" + ], "fields": [ { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "procedure", - "fieldtype": "Data", - "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": "Procedure", - "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": 1, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, + "fieldname": "parent_quality_procedure", + "fieldtype": "Link", + "label": "Parent Procedure", + "options": "Quality Procedure", + "read_only": 1 + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "parent_quality_procedure", - "fieldtype": "Link", - "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": "Parent Procedure", - "length": 0, - "no_copy": 0, - "options": "Quality Procedure", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, + "default": "0", + "fieldname": "is_group", + "fieldtype": "Check", + "label": "Is Group", + "read_only": 1 + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "is_group", - "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": "Is Group", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, + "fieldname": "lft", + "fieldtype": "Int", + "hidden": 1, + "label": "Lft", + "read_only": 1 + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "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 - }, + "fieldname": "rgt", + "fieldtype": "Int", + "hidden": 1, + "label": "Rgt", + "read_only": 1 + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "department", - "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": "Department", - "length": 0, - "no_copy": 0, - "options": "Department", - "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 - }, + "fieldname": "old_parent", + "fieldtype": "Data", + "hidden": 1, + "label": "old_parent", + "read_only": 1 + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "procedure_steps_section", - "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, - "label": "Procedure Steps", - "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 - }, + "fieldname": "sb_00", + "fieldtype": "Section Break", + "label": "Processes" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "procedure_step", - "fieldtype": "Table", - "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": "Procedure", - "length": 0, - "no_copy": 0, - "options": "Quality Procedure Table", - "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 - }, + "fieldname": "processes", + "fieldtype": "Table", + "label": "Processes", + "options": "Quality Procedure Process" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "lft", - "fieldtype": "Int", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Lft", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "rgt", - "fieldtype": "Int", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Rgt", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "old_parent", - "fieldtype": "Data", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "old_parent", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 + "fieldname": "procedure", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Procedure", + "reqd": 1 } - ], - "has_web_view": 0, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 0, - "max_attachments": 0, - "modified": "2018-11-12 14:30:19.803693", - "modified_by": "Administrator", - "module": "Quality Management", - "name": "Quality Procedure", - "name_case": "", - "owner": "Administrator", + ], + "modified": "2019-05-26 22:11:53.771428", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Procedure", + "owner": "Administrator", "permissions": [ { - "amend": 0, - "cancel": 0, - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "All", + "share": 1, "write": 1 } - ], - "quick_entry": 0, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0, - "track_views": 0 + ], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 } \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_procedure/quality_procedure.py b/erpnext/quality_management/doctype/quality_procedure/quality_procedure.py index 126b8c7b2a..52c3320840 100644 --- a/erpnext/quality_management/doctype/quality_procedure/quality_procedure.py +++ b/erpnext/quality_management/doctype/quality_procedure/quality_procedure.py @@ -11,12 +11,11 @@ class QualityProcedure(NestedSet): nsm_parent_field = 'parent_quality_procedure' def before_save(self): - for data in self.procedure_step: - if data.procedure == 'Procedure' and data.procedure_name: - data.step = data.procedure_name - doc = frappe.get_doc("Quality Procedure", data.procedure_name) - if(doc.parent_quality_procedure): - frappe.throw(_("'"+ data.procedure_name +"' already has a Parent Procedure '"+ doc.parent_quality_procedure +"'")) + for process in self.processes: + if process.procedure: + doc = frappe.get_doc("Quality Procedure", process.procedure) + if doc.parent_quality_procedure: + frappe.throw(_("{0} already has a Parent Procedure {1}.".format(process.procedure, doc.parent_quality_procedure))) self.is_group = 1 def on_update(self): @@ -28,25 +27,28 @@ class QualityProcedure(NestedSet): def on_trash(self): if self.parent_quality_procedure: doc = frappe.get_doc("Quality Procedure", self.parent_quality_procedure) - for data in doc.procedure_step: - if data.procedure_name == self.name: - doc.procedure_step.remove(data) - doc.save() + for process in doc.processes: + if process.procedure == self.name: + doc.processes.remove(process) + doc.save(ignore_permissions=True) + flag_is_group = 0 doc.load_from_db() - for data in doc.procedure_step: - if data.procedure == "Procedure": + + for process in doc.processes: + if process.procedure: flag_is_group = 1 + if flag_is_group == 0: doc.is_group = 0 - doc.save() + doc.save(ignore_permissions=True) def set_parent(self): - for data in self.procedure_step: - if data.procedure == 'Procedure' and data.procedure_name: - doc = frappe.get_doc("Quality Procedure", data.procedure_name) + for process in self.processes: + if process.procedure: + doc = frappe.get_doc("Quality Procedure", process.procedure) doc.parent_quality_procedure = self.name - doc.save() + doc.save(ignore_permissions=True) @frappe.whitelist() def get_children(doctype, parent=None, parent_quality_procedure=None, is_root=False): @@ -57,8 +59,11 @@ def get_children(doctype, parent=None, parent_quality_procedure=None, is_root=Fa @frappe.whitelist() def add_node(): from frappe.desk.treeview import make_tree_args + args = frappe.form_dict args = make_tree_args(**args) + if args.parent_quality_procedure == 'All Quality Procedures': args.parent_quality_procedure = None + frappe.get_doc(args).insert() \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_procedure/quality_procedure_dashboard.py b/erpnext/quality_management/doctype/quality_procedure/quality_procedure_dashboard.py index 8eff33c1e1..407028bb82 100644 --- a/erpnext/quality_management/doctype/quality_procedure/quality_procedure_dashboard.py +++ b/erpnext/quality_management/doctype/quality_procedure/quality_procedure_dashboard.py @@ -1,20 +1,20 @@ from frappe import _ def get_data(): - return { - 'fieldname': 'procedure', - 'transactions': [ - { - 'label': _('Goal'), - 'items': ['Quality Goal'] - }, - { - 'label': _('Review'), - 'items': ['Quality Review'] - }, - { - 'label': _('Action'), - 'items': ['Quality Action'] - } - ], - } \ No newline at end of file + return { + 'fieldname': 'procedure', + 'transactions': [ + { + 'label': _('Goal'), + 'items': ['Quality Goal'] + }, + { + 'label': _('Review'), + 'items': ['Quality Review'] + }, + { + 'label': _('Action'), + 'items': ['Quality Action'] + } + ], + } \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_procedure/test_quality_procedure.py b/erpnext/quality_management/doctype/quality_procedure/test_quality_procedure.py index af7adec90d..79f8771395 100644 --- a/erpnext/quality_management/doctype/quality_procedure/test_quality_procedure.py +++ b/erpnext/quality_management/doctype/quality_procedure/test_quality_procedure.py @@ -11,25 +11,26 @@ class TestQualityProcedure(unittest.TestCase): test_create_procedure = create_procedure() test_create_nested_procedure = create_nested_procedure() test_get_procedure, test_get_nested_procedure = get_procedure() - self.assertEquals(test_create_procedure, test_get_procedure.name) - self.assertEquals(test_create_nested_procedure, test_get_nested_procedure.name) - self.assertEquals(test_get_nested_procedure.name, test_get_procedure.parent_quality_procedure) + + self.assertEquals(test_create_procedure, test_get_procedure.get("name")) + self.assertEquals(test_create_nested_procedure, test_get_nested_procedure.get("name")) def create_procedure(): procedure = frappe.get_doc({ "doctype": "Quality Procedure", "procedure": "_Test Quality Procedure", - "procedure_step": [ + "processes": [ { - "procedure": "Step", - "step": "_Test Quality Procedure Table", + "process_description": "_Test Quality Procedure Table", } ] }) - procedure_exist = frappe.db.exists("Quality Procedure",""+ procedure.procedure +"") + + procedure_exist = frappe.db.exists("Quality Procedure", "PRC-_Test Quality Procedure") + if not procedure_exist: procedure.insert() - return procedure.procedure + return procedure.name else: return procedure_exist @@ -37,21 +38,22 @@ def create_nested_procedure(): nested_procedure = frappe.get_doc({ "doctype": "Quality Procedure", "procedure": "_Test Nested Quality Procedure", - "procedure_step": [ + "processes": [ { - "procedure": "Procedure", - "procedure_name": "_Test Quality Procedure", + "procedure": "PRC-_Test Quality Procedure" } ] }) - nested_procedure_exist = frappe.db.exists("Quality Procedure",""+ nested_procedure.procedure +"") + + nested_procedure_exist = frappe.db.exists("Quality Procedure", "PRC-_Test Nested Quality Procedure") + if not nested_procedure_exist: nested_procedure.insert() - return nested_procedure.procedure + return nested_procedure.name else: return nested_procedure_exist def get_procedure(): - procedure = frappe.get_all("Quality Procedure", filters={"procedure": "_Test Quality Procedure"}, fields=["name", "parent_quality_procedure"], limit=1) - nested_procedure = frappe.get_all("Quality Procedure", filters={"procedure": "_Test Nested Quality Procedure"}, fields=["name", "parent_quality_procedure"], limit=1) - return procedure[0], nested_procedure[0] \ No newline at end of file + procedure = frappe.get_doc("Quality Procedure", "PRC-_Test Quality Procedure") + nested_procedure = frappe.get_doc("Quality Procedure", "PRC-_Test Nested Quality Procedure") + return {"name": procedure.name}, {"name": nested_procedure.name, "parent_quality_procedure": nested_procedure.parent_quality_procedure} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_review_table/__init__.py b/erpnext/quality_management/doctype/quality_procedure_process/__init__.py similarity index 100% rename from erpnext/quality_management/doctype/quality_review_table/__init__.py rename to erpnext/quality_management/doctype/quality_procedure_process/__init__.py diff --git a/erpnext/quality_management/doctype/quality_procedure_process/quality_procedure_process.json b/erpnext/quality_management/doctype/quality_procedure_process/quality_procedure_process.json new file mode 100644 index 0000000000..f5c0fbc252 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_procedure_process/quality_procedure_process.json @@ -0,0 +1,36 @@ +{ + "creation": "2019-05-26 00:10:00.248885", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "process_description", + "procedure" + ], + "fields": [ + { + "fieldname": "process_description", + "fieldtype": "Text Editor", + "in_list_view": 1, + "label": "Process Description" + }, + { + "description": "Link existing Quality Procedure.", + "fieldname": "procedure", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Procedure", + "options": "Quality Procedure" + } + ], + "istable": 1, + "modified": "2019-05-26 22:05:49.007189", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Procedure Process", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_procedure_process/quality_procedure_process.py b/erpnext/quality_management/doctype/quality_procedure_process/quality_procedure_process.py new file mode 100644 index 0000000000..0d9a286052 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_procedure_process/quality_procedure_process.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +# import frappe +from frappe.model.document import Document + +class QualityProcedureProcess(Document): + pass diff --git a/erpnext/quality_management/doctype/quality_procedure_table/quality_procedure_table.json b/erpnext/quality_management/doctype/quality_procedure_table/quality_procedure_table.json deleted file mode 100644 index 965edbcc40..0000000000 --- a/erpnext/quality_management/doctype/quality_procedure_table/quality_procedure_table.json +++ /dev/null @@ -1,176 +0,0 @@ -{ - "allow_copy": 0, - "allow_events_in_timeline": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "beta": 0, - "creation": "2018-10-17 15:48:57.617831", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 0, - "engine": "InnoDB", - "fields": [ - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "procedure", - "fieldtype": "Select", - "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": "Procedure", - "length": 0, - "no_copy": 0, - "options": "Step\nProcedure", - "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": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:doc.procedure == \"Procedure\"", - "fieldname": "procedure_name", - "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": "Procedure", - "length": 0, - "no_copy": 0, - "options": "Quality Procedure", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:doc.procedure == \"Step\"", - "fieldname": "step", - "fieldtype": "Text", - "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": "Step", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "responsible_individual", - "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": "Responsible Individual", - "length": 0, - "no_copy": 0, - "options": "Role", - "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, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 1, - "max_attachments": 0, - "modified": "2018-11-01 14:26:33.558345", - "modified_by": "Administrator", - "module": "Quality Management", - "name": "Quality Procedure Table", - "name_case": "", - "owner": "Administrator", - "permissions": [], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0, - "track_views": 0 -} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_procedure_table/quality_procedure_table.py b/erpnext/quality_management/doctype/quality_procedure_table/quality_procedure_table.py deleted file mode 100644 index 6fe927adc7..0000000000 --- a/erpnext/quality_management/doctype/quality_procedure_table/quality_procedure_table.py +++ /dev/null @@ -1,9 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2018, Frappe and contributors -# For license information, please see license.txt - -from __future__ import unicode_literals -from frappe.model.document import Document - -class QualityProcedureTable(Document): - pass diff --git a/erpnext/quality_management/doctype/quality_review/quality_review.js b/erpnext/quality_management/doctype/quality_review/quality_review.js index 48b5c882fd..b6245818f5 100644 --- a/erpnext/quality_management/doctype/quality_review/quality_review.js +++ b/erpnext/quality_management/doctype/quality_review/quality_review.js @@ -4,69 +4,25 @@ frappe.ui.form.on('Quality Review', { onload: function(frm){ frm.set_value("date", frappe.datetime.get_today()); - $(".grid-add-row").hide(); - if(frm.doc.measurable == "Yes"){ - show_target_achieved_unit(frm); - } - else{ - hide_target_achieved_unit(frm); - } - frm.refresh(); }, goal: function(frm) { - frm.fields_dict.values.grid.remove_all(); - if (frm.doc.goal){ - frappe.call({ - "method": "frappe.client.get", - args: { - doctype: "Quality Goal", - name: frm.doc.goal - }, - callback: function (data) { - for (var i = 0; i < data.message.objective.length; i++ ){ - frm.add_child("values"); - frm.fields_dict.values.get_value()[i].objective = data.message.objective[i].objective; - if(frm.doc.measurable == "Yes"){ - if(i < 1){ - show_target_achieved_unit(frm); - } - frm.fields_dict.values.get_value()[i].target = data.message.objective[i].target; - frm.fields_dict.values.get_value()[i].achieved = 0; - frm.fields_dict.values.get_value()[i].unit = data.message.objective[i].unit; - } - if(frm.doc.measurable == "No"){ - if(i < 1){ - hide_target_achieved_unit(frm); - } - frm.fields_dict.values.get_value()[i].yes_no = "No"; - } - } - frm.refresh(); + frappe.call({ + "method": "frappe.client.get", + args: { + doctype: "Quality Goal", + name: frm.doc.goal + }, + callback: function(data){ + frm.fields_dict.reviews.grid.remove_all(); + let objectives = data.message.objectives; + for (var i in objectives) { + frm.add_child("reviews"); + frm.fields_dict.reviews.get_value()[i].objective = objectives[i].objective; + frm.fields_dict.reviews.get_value()[i].target = objectives[i].target; + frm.fields_dict.reviews.get_value()[i].uom = objectives[i].uom; } - }); - } - else{ - frm.doc.procedure = ''; - frm.doc.scope = ''; - frm.doc.action = ''; - frm.doc.measurable = ''; - frm.refresh(); - } + frm.refresh(); + } + }); }, -}); - -function show_target_achieved_unit(frm){ - // shows target, achieved and unit columns as the goal can be measured in numeric values - frm.fields_dict.values.grid.docfields[1].hidden = 0; - frm.fields_dict.values.grid.docfields[2].hidden = 0; - frm.fields_dict.values.grid.docfields[3].hidden = 0; - frm.fields_dict.values.grid.docfields[4].hidden = 1; -} - -function hide_target_achieved_unit(frm){ - // hides target and unit columns as the goal cannot be measured in numeric values - frm.fields_dict.values.grid.docfields[1].hidden = 1; - frm.fields_dict.values.grid.docfields[2].hidden = 1; - frm.fields_dict.values.grid.docfields[3].hidden = 1; - frm.fields_dict.values.grid.docfields[4].hidden = 0; -} \ No newline at end of file +}); \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_review/quality_review.json b/erpnext/quality_management/doctype/quality_review/quality_review.json index 689c1c5c6e..bd5e9351f4 100644 --- a/erpnext/quality_management/doctype/quality_review/quality_review.json +++ b/erpnext/quality_management/doctype/quality_review/quality_review.json @@ -1,424 +1,110 @@ { - "allow_copy": 0, - "allow_events_in_timeline": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "QMS-REV-.#####", - "beta": 0, - "creation": "2018-10-02 11:45:16.301955", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", + "autoname": "format:REV-{#####}", + "creation": "2018-10-02 11:45:16.301955", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "goal", + "date", + "cb_00", + "procedure", + "status", + "sb_00", + "reviews", + "sb_01", + "additional_information" + ], "fields": [ { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fetch_from": "", - "fieldname": "goal", - "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": "Quality Goal", - "length": 0, - "no_copy": 0, - "options": "Quality Goal", - "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": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, + "fieldname": "date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Date", + "read_only": 1 + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "date", - "fieldtype": "Date", - "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": "Evaluation Date", - "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 - }, + "fetch_from": "goal.procedure", + "fieldname": "procedure", + "fieldtype": "Link", + "label": "Procedure", + "options": "Quality Procedure", + "read_only": 1 + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fetch_from": "goal.measurable", - "fieldname": "measurable", - "fieldtype": "Data", - "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": "Measurable Goal", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, + "fieldname": "additional_information", + "fieldtype": "Text", + "label": "Additional Information" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_4", - "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 - }, + "fieldname": "cb_00", + "fieldtype": "Column Break" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fetch_from": "goal.procedure", - "fieldname": "procedure", - "fieldtype": "Link", - "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": "Procedure", - "length": 0, - "no_copy": 0, - "options": "Quality Procedure", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, + "fieldname": "sb_00", + "fieldtype": "Section Break", + "label": "Review" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fetch_from": "goal.scope", - "fieldname": "scope", - "fieldtype": "Data", - "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": "Scope", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, + "collapsible": 1, + "fieldname": "sb_01", + "fieldtype": "Section Break", + "label": "Additional Information" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:doc.scope == 'Department'", - "fetch_from": "goal.department", - "fieldname": "department", - "fieldtype": "Data", - "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": "Department", - "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 - }, + "fieldname": "reviews", + "fieldtype": "Table", + "label": "Reviews", + "options": "Quality Review Objective" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "values_section", - "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, - "label": "Values", - "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 - }, + "default": "Open", + "fieldname": "status", + "fieldtype": "Select", + "label": "Status", + "options": "Open\nClosed" + }, { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "values", - "fieldtype": "Table", - "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": "Values", - "length": 0, - "no_copy": 0, - "options": "Quality Review Table", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 1, - "columns": 0, - "fieldname": "additional_info_section", - "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, - "label": "Additional Information", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "additional_information", - "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": "Additional Information", - "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 + "fieldname": "goal", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Goal", + "options": "Quality Goal", + "reqd": 1 } - ], - "has_web_view": 0, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 0, - "max_attachments": 0, - "modified": "2018-11-12 14:25:02.383387", - "modified_by": "Administrator", - "module": "Quality Management", - "name": "Quality Review", - "name_case": "", - "owner": "Administrator", + ], + "modified": "2019-05-26 23:12:47.302189", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Review", + "owner": "Administrator", "permissions": [ { - "amend": 0, - "cancel": 0, - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "All", + "share": 1, "write": 1 } - ], - "quick_entry": 0, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0, - "track_views": 0 + ], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 } \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_review/quality_review.py b/erpnext/quality_management/doctype/quality_review/quality_review.py index 8a28335e28..2bc8867ef7 100644 --- a/erpnext/quality_management/doctype/quality_review/quality_review.py +++ b/erpnext/quality_management/doctype/quality_review/quality_review.py @@ -5,63 +5,50 @@ from __future__ import unicode_literals import frappe from frappe.model.document import Document -import datetime + class QualityReview(Document): pass def review(): - now = datetime.datetime.now() - day = now.day - day_name = now.strftime("%A") - month=now.strftime("%B") + day = frappe.utils.getdate().day + weekday = frappe.utils.getdate().strftime("%A") + month = frappe.utils.getdate().strftime("%B") - for data in frappe.get_all("Quality Goal",fields=['name', 'frequency', 'date', 'weekly', 'measurable']): - if data.frequency == 'Daily': - create_review(data.name, data.measurable) + for goal in frappe.get_list("Quality Goal", fields=['name', 'frequency', 'date', 'weekday']): + if goal.frequency == 'Daily': + create_review(goal.name) - elif data.frequency == 'Weekly': - if data.weekly == day_name: - create_review(data.name, data.measurable) + elif goal.frequency == 'Weekly' and goal.weekday == weekday: + create_review(goal.name) - elif data.frequency == 'Monthly': - if data.date == str(day): - create_review(data.name, data.measurable) + elif goal.frequency == 'Monthly' and goal.date == str(day): + create_review(goal.name) - elif data.frequency == 'Quarterly': - if (month == 'January' or month == 'April' or month == 'July' or month == 'October') and str(day) == data.date: - create_review(data.name, data.measurable) + elif goal.frequency == 'Quarterly' and goal.data == str(day) and get_quarter(month): + create_review(goal.name) - elif data.frequency == 'Half Yearly': - if (month == 'January' or month == 'July') and str(day) == data.date: - create_review(data.name, data.measurable) +def create_review(goal): + goal = frappe.get_doc("Quality Goal", goal) - elif data.frequency == 'Yearly': - if month == data.yearly and str(day) == data.date: - create_review(data.name, data.measurable) - - else: - pass - -def create_review(name, measurable): - objectives = frappe.get_all("Quality Objective", filters={'parent': name }, fields=['objective', 'target', 'unit']) - doc = frappe.get_doc({ + review = frappe.get_doc({ "doctype": "Quality Review", - "goal": name, - "date": frappe.as_unicode(frappe.utils.nowdate()), - "measurable": measurable, + "goal": goal.name, + "date": frappe.utils.getdate() }) - if measurable == 'Yes': - for objective in objectives: - doc.append("values",{ - 'objective': objective.objective, - 'target': objective.target, - 'achieved': 0, - 'unit': objective.unit - }) + + for objective in goal.objectives: + review.append("reviews", + { + "objective": objective.objective, + "target": objective.target, + "uom": objective.uom + } + ) + + review.insert(ignore_permissions=True) + +def get_quarter(month): + if month in ["January", "April", "July", "October"]: + return True else: - for objective in objectives: - doc.append("values",{ - 'objective': objective.objective, - }) - doc.insert() - frappe.db.commit() \ No newline at end of file + return False \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_review/quality_review_dashboard.py b/erpnext/quality_management/doctype/quality_review/quality_review_dashboard.py deleted file mode 100644 index 85e4cccaa1..0000000000 --- a/erpnext/quality_management/doctype/quality_review/quality_review_dashboard.py +++ /dev/null @@ -1,16 +0,0 @@ -from frappe import _ - -def get_data(): - return { - 'fieldname': 'review', - 'transactions': [ - { - 'label': _('Action'), - 'items': ['Quality Action'] - }, - { - 'label': _('Meeting'), - 'items': ['Quality Meeting'] - } - ], - } \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_review/test_quality_review.py b/erpnext/quality_management/doctype/quality_review/test_quality_review.py index 421d20dcbc..8add6db9c9 100644 --- a/erpnext/quality_management/doctype/quality_review/test_quality_review.py +++ b/erpnext/quality_management/doctype/quality_review/test_quality_review.py @@ -17,31 +17,30 @@ class TestQualityReview(unittest.TestCase): create_goal() test_create_review = create_review() test_get_review = get_review() - self.assertEquals(test_create_review.name, test_get_review.name) + self.assertEquals(test_create_review, test_get_review) def create_review(): review = frappe.get_doc({ "doctype": "Quality Review", - "goal": "_Test Quality Goal", - "procedure": "_Test Quality Procedure", - "scope": "Company", - "date": ""+ frappe.utils.nowdate() +"", - "values": [ + "goal": "GOAL-_Test Quality Goal", + "procedure": "PRC-_Test Quality Procedure", + "date": frappe.utils.nowdate(), + "reviews": [ { "objective": "_Test Quality Objective", "target": "100", - "achieved": "100", - "unit": "_Test UOM" + "uom": "_Test UOM", + "review": "Test Review" } ] }) - review_exist = frappe.get_list("Quality Review", filters={"goal": "_Test Quality Goal"}, limit=1) - if len(review_exist) == 0: - review.insert() - return review + review_exist = frappe.db.exists("Quality Review", {"goal": "GOAL-_Test Quality Goal"}) + if not review_exist: + review.insert(ignore_permissions=True) + return review.name else: - return review_exist[0] + return review_exist def get_review(): - review = frappe.get_list("Quality Review", filters={"goal": "_Test Quality Goal"}, limit=1) - return review[0] \ No newline at end of file + review = frappe.db.exists("Quality Review", {"goal": "GOAL-_Test Quality Goal"}) + return review \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_review_objective/__init__.py b/erpnext/quality_management/doctype/quality_review_objective/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/erpnext/quality_management/doctype/quality_review_objective/quality_review_objective.json b/erpnext/quality_management/doctype/quality_review_objective/quality_review_objective.json new file mode 100644 index 0000000000..91f7bc07c7 --- /dev/null +++ b/erpnext/quality_management/doctype/quality_review_objective/quality_review_objective.json @@ -0,0 +1,64 @@ +{ + "creation": "2019-05-26 15:17:44.796958", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "objective", + "cb_00", + "target", + "uom", + "sb_00", + "review" + ], + "fields": [ + { + "fieldname": "objective", + "fieldtype": "Text", + "in_list_view": 1, + "label": "Objective", + "read_only": 1 + }, + { + "fieldname": "target", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Target", + "read_only": 1 + }, + { + "fetch_from": "target_unit", + "fieldname": "uom", + "fieldtype": "Link", + "in_list_view": 1, + "label": "UOM", + "options": "UOM", + "read_only": 1 + }, + { + "fieldname": "review", + "fieldtype": "Text Editor", + "in_list_view": 1, + "label": "Review" + }, + { + "fieldname": "sb_00", + "fieldtype": "Section Break", + "label": "Review" + }, + { + "fieldname": "cb_00", + "fieldtype": "Column Break" + } + ], + "istable": 1, + "modified": "2019-05-26 16:14:12.586128", + "modified_by": "Administrator", + "module": "Quality Management", + "name": "Quality Review Objective", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_meeting_table/quality_meeting_table.py b/erpnext/quality_management/doctype/quality_review_objective/quality_review_objective.py similarity index 56% rename from erpnext/quality_management/doctype/quality_meeting_table/quality_meeting_table.py rename to erpnext/quality_management/doctype/quality_review_objective/quality_review_objective.py index 2e39c2482b..3092a1e997 100644 --- a/erpnext/quality_management/doctype/quality_meeting_table/quality_meeting_table.py +++ b/erpnext/quality_management/doctype/quality_review_objective/quality_review_objective.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2018, Frappe and contributors +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors # For license information, please see license.txt from __future__ import unicode_literals +# import frappe from frappe.model.document import Document -class QualityMeetingTable(Document): +class QualityReviewObjective(Document): pass diff --git a/erpnext/quality_management/doctype/quality_review_table/quality_review_table.json b/erpnext/quality_management/doctype/quality_review_table/quality_review_table.json deleted file mode 100644 index 442c4c6b8a..0000000000 --- a/erpnext/quality_management/doctype/quality_review_table/quality_review_table.json +++ /dev/null @@ -1,207 +0,0 @@ -{ - "allow_copy": 0, - "allow_events_in_timeline": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "beta": 0, - "creation": "2018-10-09 13:03:37.666929", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", - "fields": [ - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "objective", - "fieldtype": "Data", - "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": "objective", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "target", - "fieldtype": "Int", - "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": "Target", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "", - "fieldname": "achieved", - "fieldtype": "Int", - "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": "Achieved", - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fetch_from": "target_unit", - "fieldname": "unit", - "fieldtype": "Data", - "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": "Unit", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "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, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "", - "fieldname": "yes_no", - "fieldtype": "Select", - "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": "Yes/No", - "length": 0, - "no_copy": 0, - "options": "No\nYes", - "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, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 1, - "max_attachments": 0, - "modified": "2018-11-03 11:10:53.818818", - "modified_by": "Administrator", - "module": "Quality Management", - "name": "Quality Review Table", - "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": 1, - "track_seen": 0, - "track_views": 0 -} \ No newline at end of file diff --git a/erpnext/quality_management/doctype/quality_review_table/quality_review_table.py b/erpnext/quality_management/doctype/quality_review_table/quality_review_table.py deleted file mode 100644 index 5760cbcb06..0000000000 --- a/erpnext/quality_management/doctype/quality_review_table/quality_review_table.py +++ /dev/null @@ -1,9 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2018, Frappe and contributors -# For license information, please see license.txt - -from __future__ import unicode_literals -from frappe.model.document import Document - -class QualityReviewTable(Document): - pass