mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-31 18:59:08 +00:00
style: bulk format code with black
v13 port because otherwise backports will result in conflicts always
This commit is contained in:
@@ -7,4 +7,4 @@ from frappe.model.document import Document
|
||||
|
||||
class QualityAction(Document):
|
||||
def validate(self):
|
||||
self.status = 'Open' if any([d.status=='Open' for d in self.resolutions]) else 'Completed'
|
||||
self.status = "Open" if any([d.status == "Open" for d in self.resolutions]) else "Completed"
|
||||
|
||||
@@ -9,15 +9,12 @@ from frappe.model.document import Document
|
||||
class QualityFeedback(Document):
|
||||
@frappe.whitelist()
|
||||
def set_parameters(self):
|
||||
if self.template and not getattr(self, 'parameters', []):
|
||||
for d in frappe.get_doc('Quality Feedback Template', self.template).parameters:
|
||||
self.append('parameters', dict(
|
||||
parameter = d.parameter,
|
||||
rating = 1
|
||||
))
|
||||
if self.template and not getattr(self, "parameters", []):
|
||||
for d in frappe.get_doc("Quality Feedback Template", self.template).parameters:
|
||||
self.append("parameters", dict(parameter=d.parameter, rating=1))
|
||||
|
||||
def validate(self):
|
||||
if not self.document_name:
|
||||
self.document_type ='User'
|
||||
self.document_type = "User"
|
||||
self.document_name = frappe.session.user
|
||||
self.set_parameters()
|
||||
|
||||
@@ -8,21 +8,22 @@ import frappe
|
||||
|
||||
class TestQualityFeedback(unittest.TestCase):
|
||||
def test_quality_feedback(self):
|
||||
template = frappe.get_doc(dict(
|
||||
doctype = 'Quality Feedback Template',
|
||||
template = 'Test Template',
|
||||
parameters = [
|
||||
dict(parameter='Test Parameter 1'),
|
||||
dict(parameter='Test Parameter 2')
|
||||
]
|
||||
)).insert()
|
||||
template = frappe.get_doc(
|
||||
dict(
|
||||
doctype="Quality Feedback Template",
|
||||
template="Test Template",
|
||||
parameters=[dict(parameter="Test Parameter 1"), dict(parameter="Test Parameter 2")],
|
||||
)
|
||||
).insert()
|
||||
|
||||
feedback = frappe.get_doc(dict(
|
||||
doctype = 'Quality Feedback',
|
||||
template = template.name,
|
||||
document_type = 'User',
|
||||
document_name = frappe.session.user
|
||||
)).insert()
|
||||
feedback = frappe.get_doc(
|
||||
dict(
|
||||
doctype="Quality Feedback",
|
||||
template=template.name,
|
||||
document_type="User",
|
||||
document_name=frappe.session.user,
|
||||
)
|
||||
).insert()
|
||||
|
||||
self.assertEqual(template.parameters[0].parameter, feedback.parameters[0].parameter)
|
||||
|
||||
|
||||
@@ -13,12 +13,13 @@ class TestQualityGoal(unittest.TestCase):
|
||||
self.assertTrue(goal)
|
||||
goal.delete()
|
||||
|
||||
|
||||
def get_quality_goal():
|
||||
return frappe.get_doc(dict(
|
||||
doctype = 'Quality Goal',
|
||||
goal = 'Test Quality Module',
|
||||
frequency = 'Daily',
|
||||
objectives = [
|
||||
dict(objective = 'Check test cases', target='100', uom='Percent')
|
||||
]
|
||||
)).insert()
|
||||
return frappe.get_doc(
|
||||
dict(
|
||||
doctype="Quality Goal",
|
||||
goal="Test Quality Module",
|
||||
frequency="Daily",
|
||||
objectives=[dict(objective="Check test cases", target="100", uom="Percent")],
|
||||
)
|
||||
).insert()
|
||||
|
||||
@@ -8,7 +8,7 @@ from frappe.utils.nestedset import NestedSet
|
||||
|
||||
|
||||
class QualityProcedure(NestedSet):
|
||||
nsm_parent_field = 'parent_quality_procedure'
|
||||
nsm_parent_field = "parent_quality_procedure"
|
||||
|
||||
def before_save(self):
|
||||
self.check_for_incorrect_child()
|
||||
@@ -29,14 +29,19 @@ class QualityProcedure(NestedSet):
|
||||
|
||||
def on_trash(self):
|
||||
# clear from child table (sub procedures)
|
||||
frappe.db.sql('''update `tabQuality Procedure Process`
|
||||
set `procedure`='' where `procedure`=%s''', self.name)
|
||||
frappe.db.sql(
|
||||
"""update `tabQuality Procedure Process`
|
||||
set `procedure`='' where `procedure`=%s""",
|
||||
self.name,
|
||||
)
|
||||
NestedSet.on_trash(self, allow_root_deletion=True)
|
||||
|
||||
def set_parent(self):
|
||||
for process in self.processes:
|
||||
# Set parent for only those children who don't have a parent
|
||||
has_parent = frappe.db.get_value("Quality Procedure", process.procedure, "parent_quality_procedure")
|
||||
has_parent = frappe.db.get_value(
|
||||
"Quality Procedure", process.procedure, "parent_quality_procedure"
|
||||
)
|
||||
if not has_parent and process.procedure:
|
||||
frappe.db.set_value(self.doctype, process.procedure, "parent_quality_procedure", self.name)
|
||||
|
||||
@@ -45,10 +50,17 @@ class QualityProcedure(NestedSet):
|
||||
if process.procedure:
|
||||
self.is_group = 1
|
||||
# Check if any child process belongs to another parent.
|
||||
parent_quality_procedure = frappe.db.get_value("Quality Procedure", process.procedure, "parent_quality_procedure")
|
||||
parent_quality_procedure = frappe.db.get_value(
|
||||
"Quality Procedure", process.procedure, "parent_quality_procedure"
|
||||
)
|
||||
if parent_quality_procedure and parent_quality_procedure != self.name:
|
||||
frappe.throw(_("{0} already has a Parent Procedure {1}.").format(frappe.bold(process.procedure), frappe.bold(parent_quality_procedure)),
|
||||
title=_("Invalid Child Procedure"))
|
||||
frappe.throw(
|
||||
_("{0} already has a Parent Procedure {1}.").format(
|
||||
frappe.bold(process.procedure), frappe.bold(parent_quality_procedure)
|
||||
),
|
||||
title=_("Invalid Child Procedure"),
|
||||
)
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_children(doctype, parent=None, parent_quality_procedure=None, is_root=False):
|
||||
@@ -56,16 +68,23 @@ def get_children(doctype, parent=None, parent_quality_procedure=None, is_root=Fa
|
||||
parent = ""
|
||||
|
||||
if parent:
|
||||
parent_procedure = frappe.get_doc('Quality Procedure', parent)
|
||||
parent_procedure = frappe.get_doc("Quality Procedure", parent)
|
||||
# return the list in order
|
||||
return [dict(
|
||||
value=d.procedure,
|
||||
expandable=frappe.db.get_value('Quality Procedure', d.procedure, 'is_group'))
|
||||
for d in parent_procedure.processes if d.procedure
|
||||
]
|
||||
return [
|
||||
dict(
|
||||
value=d.procedure, expandable=frappe.db.get_value("Quality Procedure", d.procedure, "is_group")
|
||||
)
|
||||
for d in parent_procedure.processes
|
||||
if d.procedure
|
||||
]
|
||||
else:
|
||||
return frappe.get_all(doctype, fields=['name as value', 'is_group as expandable'],
|
||||
filters = dict(parent_quality_procedure = parent), order_by='name asc')
|
||||
return frappe.get_all(
|
||||
doctype,
|
||||
fields=["name as value", "is_group as expandable"],
|
||||
filters=dict(parent_quality_procedure=parent),
|
||||
order_by="name asc",
|
||||
)
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def add_node():
|
||||
@@ -74,7 +93,7 @@ def add_node():
|
||||
args = frappe.form_dict
|
||||
args = make_tree_args(**args)
|
||||
|
||||
if args.parent_quality_procedure == 'All Quality Procedures':
|
||||
if args.parent_quality_procedure == "All Quality Procedures":
|
||||
args.parent_quality_procedure = None
|
||||
|
||||
return frappe.get_doc(args).insert()
|
||||
|
||||
@@ -11,16 +11,21 @@ from .quality_procedure import add_node
|
||||
class TestQualityProcedure(unittest.TestCase):
|
||||
def test_add_node(self):
|
||||
try:
|
||||
procedure = frappe.get_doc(dict(
|
||||
doctype = 'Quality Procedure',
|
||||
quality_procedure_name = 'Test Procedure 1',
|
||||
processes = [
|
||||
dict(process_description = 'Test Step 1')
|
||||
]
|
||||
)).insert()
|
||||
procedure = frappe.get_doc(
|
||||
dict(
|
||||
doctype="Quality Procedure",
|
||||
quality_procedure_name="Test Procedure 1",
|
||||
processes=[dict(process_description="Test Step 1")],
|
||||
)
|
||||
).insert()
|
||||
|
||||
frappe.form_dict = dict(doctype = 'Quality Procedure', quality_procedure_name = 'Test Child 1',
|
||||
parent_quality_procedure = procedure.name, cmd='test', is_root='false')
|
||||
frappe.form_dict = dict(
|
||||
doctype="Quality Procedure",
|
||||
quality_procedure_name="Test Child 1",
|
||||
parent_quality_procedure=procedure.name,
|
||||
cmd="test",
|
||||
is_root="false",
|
||||
)
|
||||
node = add_node()
|
||||
|
||||
procedure.reload()
|
||||
@@ -39,12 +44,13 @@ class TestQualityProcedure(unittest.TestCase):
|
||||
finally:
|
||||
procedure.delete()
|
||||
|
||||
|
||||
def create_procedure():
|
||||
return frappe.get_doc(dict(
|
||||
doctype = 'Quality Procedure',
|
||||
quality_procedure_name = 'Test Procedure 1',
|
||||
is_group = 1,
|
||||
processes = [
|
||||
dict(process_description = 'Test Step 1')
|
||||
]
|
||||
)).insert()
|
||||
return frappe.get_doc(
|
||||
dict(
|
||||
doctype="Quality Procedure",
|
||||
quality_procedure_name="Test Procedure 1",
|
||||
is_group=1,
|
||||
processes=[dict(process_description="Test Step 1")],
|
||||
)
|
||||
).insert()
|
||||
|
||||
@@ -10,55 +10,52 @@ class QualityReview(Document):
|
||||
def validate(self):
|
||||
# fetch targets from goal
|
||||
if not self.reviews:
|
||||
for d in frappe.get_doc('Quality Goal', self.goal).objectives:
|
||||
self.append('reviews', dict(
|
||||
objective = d.objective,
|
||||
target = d.target,
|
||||
uom = d.uom
|
||||
))
|
||||
for d in frappe.get_doc("Quality Goal", self.goal).objectives:
|
||||
self.append("reviews", dict(objective=d.objective, target=d.target, uom=d.uom))
|
||||
|
||||
self.set_status()
|
||||
|
||||
def set_status(self):
|
||||
# if any child item is failed, fail the parent
|
||||
if not len(self.reviews or []) or any([d.status=='Open' for d in self.reviews]):
|
||||
self.status = 'Open'
|
||||
elif any([d.status=='Failed' for d in self.reviews]):
|
||||
self.status = 'Failed'
|
||||
if not len(self.reviews or []) or any([d.status == "Open" for d in self.reviews]):
|
||||
self.status = "Open"
|
||||
elif any([d.status == "Failed" for d in self.reviews]):
|
||||
self.status = "Failed"
|
||||
else:
|
||||
self.status = 'Passed'
|
||||
self.status = "Passed"
|
||||
|
||||
|
||||
def review():
|
||||
day = frappe.utils.getdate().day
|
||||
weekday = frappe.utils.getdate().strftime("%A")
|
||||
month = frappe.utils.getdate().strftime("%B")
|
||||
|
||||
for goal in frappe.get_list("Quality Goal", fields=['name', 'frequency', 'date', 'weekday']):
|
||||
if goal.frequency == 'Daily':
|
||||
for goal in frappe.get_list("Quality Goal", fields=["name", "frequency", "date", "weekday"]):
|
||||
if goal.frequency == "Daily":
|
||||
create_review(goal.name)
|
||||
|
||||
elif goal.frequency == 'Weekly' and goal.weekday == weekday:
|
||||
elif goal.frequency == "Weekly" and goal.weekday == weekday:
|
||||
create_review(goal.name)
|
||||
|
||||
elif goal.frequency == 'Monthly' and goal.date == str(day):
|
||||
elif goal.frequency == "Monthly" and goal.date == str(day):
|
||||
create_review(goal.name)
|
||||
|
||||
elif goal.frequency == 'Quarterly' and day==1 and get_quarter(month):
|
||||
elif goal.frequency == "Quarterly" and day == 1 and get_quarter(month):
|
||||
create_review(goal.name)
|
||||
|
||||
|
||||
def create_review(goal):
|
||||
goal = frappe.get_doc("Quality Goal", goal)
|
||||
|
||||
review = frappe.get_doc({
|
||||
"doctype": "Quality Review",
|
||||
"goal": goal.name,
|
||||
"date": frappe.utils.getdate()
|
||||
})
|
||||
review = frappe.get_doc(
|
||||
{"doctype": "Quality Review", "goal": goal.name, "date": frappe.utils.getdate()}
|
||||
)
|
||||
|
||||
review.insert(ignore_permissions=True)
|
||||
|
||||
|
||||
def get_quarter(month):
|
||||
if month in ["January", "April", "July", "October"]:
|
||||
if month in ["January", "April", "July", "October"]:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
@@ -15,7 +15,7 @@ class TestQualityReview(unittest.TestCase):
|
||||
review()
|
||||
|
||||
# check if review exists
|
||||
quality_review = frappe.get_doc('Quality Review', dict(goal = quality_goal.name))
|
||||
quality_review = frappe.get_doc("Quality Review", dict(goal=quality_goal.name))
|
||||
self.assertEqual(quality_goal.objectives[0].target, quality_review.reviews[0].target)
|
||||
quality_review.delete()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user