Skip to content

Commit 1a80117

Browse files
product grade: only update product if grade has changed (#13123)
* product grade: only update product if grade has changed * product grade: only update product if grade has changed
1 parent 05ca7ab commit 1a80117

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

dojo/utils.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1598,8 +1598,13 @@ def calculate_grade(product, *args, **kwargs):
15981598
aeval = Interpreter()
15991599
aeval(system_settings.product_grade)
16001600
grade_product = f"grade_product({critical}, {high}, {medium}, {low})"
1601-
product.prod_numeric_grade = aeval(grade_product)
1602-
super(Product, product).save()
1601+
prod_numeric_grade = aeval(grade_product)
1602+
if prod_numeric_grade != product.prod_numeric_grade:
1603+
logger.debug("Updating product %s grade from %s to %s", product.id, product.prod_numeric_grade, prod_numeric_grade)
1604+
product.prod_numeric_grade = prod_numeric_grade
1605+
super(Product, product).save()
1606+
else:
1607+
logger.debug("Product %s grade %i is up to date", product.id, prod_numeric_grade)
16031608

16041609

16051610
def get_celery_worker_status():

unittests/test_importers_performance.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -201,10 +201,10 @@ def test_import_reimport_reimport_performance_no_async_with_product_grading(self
201201
DojoSytemSettingsMiddleware.load()
202202

203203
self.import_reimport_performance(
204-
expected_num_queries1=732,
204+
expected_num_queries1=717,
205205
expected_num_async_tasks1=15,
206-
expected_num_queries2=686,
206+
expected_num_queries2=662,
207207
expected_num_async_tasks2=28,
208-
expected_num_queries3=357,
208+
expected_num_queries3=337,
209209
expected_num_async_tasks3=25,
210210
)

0 commit comments

Comments
 (0)