in backend/models/postgis/task.py [0:0]
def as_dto_with_instructions(self, preferred_locale: str = "en") -> TaskDTO:
"""Get dto with any task instructions"""
task_history = []
for action in self.task_history:
history = TaskHistoryDTO()
history.history_id = action.id
history.action = action.action
history.action_text = action.action_text
history.action_date = action.action_date
history.action_by = (
action.actioned_by.username if action.actioned_by else None
)
history.picture_url = (
action.actioned_by.picture_url if action.actioned_by else None
)
if action.task_mapping_issues:
history.issues = [
issue.as_dto() for issue in action.task_mapping_issues
]
task_history.append(history)
last_updated = None
if len(task_history) > 0:
last_updated = task_history[0].action_date
task_dto = self.as_dto(task_history, last_updated=last_updated)
per_task_instructions = self.get_per_task_instructions(preferred_locale)
# If we don't have instructions in preferred locale try again for default locale
task_dto.per_task_instructions = (
per_task_instructions
if per_task_instructions
else self.get_per_task_instructions(self.projects.default_locale)
)
annotations = self.get_per_task_annotations()
task_dto.task_annotations = annotations if annotations else []
return task_dto