Skip to content

Commit 7ea208e

Browse files
author
HenryVisuri
committed
Regenerate deadlines when draft or principles changed
1 parent 8dfd1d7 commit 7ea208e

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

projects/serializers/project.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2041,7 +2041,26 @@ def update(self, instance: Project, validated_data: dict) -> Project:
20412041
if should_update_deadlines or should_generate_deadlines:
20422042
old_deadlines = project.deadlines.all().select_related("deadline")
20432043

2044-
if should_generate_deadlines:
2044+
if draft_principles_changed:
2045+
cleared_attributes = {
2046+
project_dl.deadline.attribute.identifier: None
2047+
for project_dl in project.deadlines.all().select_related("deadline", "deadline__attribute")
2048+
if not project_dl.edited and project_dl.deadline.attribute
2049+
}
2050+
cleared_cache = self._get_attribute_cache(cleared_attributes.keys())
2051+
project.update_attribute_data(
2052+
cleared_attributes,
2053+
attribute_cache=cleared_cache,
2054+
)
2055+
self.log_updates_attribute_data(cleared_attributes)
2056+
project.deadlines.filter(edited__isnull=True).delete()
2057+
project.update_deadlines(
2058+
user=user,
2059+
preview_attributes=attribute_data,
2060+
confirmed_fields=confirmed_fields,
2061+
timing_metrics=self.context.get("validation_metrics"),
2062+
)
2063+
elif should_generate_deadlines:
20452064
cleared_attributes = {
20462065
project_dl.deadline.attribute.identifier: None
20472066
for project_dl in project.deadlines.all().select_related("deadline", "deadline__attribute")

0 commit comments

Comments
 (0)