Tasks should retain all history in their full view
parent
acab7fcdfb
commit
5a97d41a48
|
@ -228,6 +228,9 @@ def userstory_freezer(us) -> dict:
|
|||
"tags": us.tags,
|
||||
"points": points,
|
||||
"from_issue": us.generated_from_issue_id,
|
||||
"is_blocked": us.is_blocked,
|
||||
"blocked_note": us.blocked_note,
|
||||
"blocked_note_html": mdrender(us.project, us.blocked_note),
|
||||
}
|
||||
|
||||
return snapshot
|
||||
|
@ -249,6 +252,9 @@ def issue_freezer(issue) -> dict:
|
|||
"watchers": [x.pk for x in issue.watchers.all()],
|
||||
"attachments": extract_attachments(issue),
|
||||
"tags": issue.tags,
|
||||
"is_blocked": issue.is_blocked,
|
||||
"blocked_note": issue.blocked_note,
|
||||
"blocked_note_html": mdrender(issue.project, issue.blocked_note),
|
||||
}
|
||||
|
||||
return snapshot
|
||||
|
@ -271,6 +277,9 @@ def task_freezer(task) -> dict:
|
|||
"tags": task.tags,
|
||||
"user_story": task.user_story_id,
|
||||
"is_iocaine": task.is_iocaine,
|
||||
"is_blocked": task.is_blocked,
|
||||
"blocked_note": task.blocked_note,
|
||||
"blocked_note_html": mdrender(task.project, task.blocked_note),
|
||||
}
|
||||
|
||||
return snapshot
|
||||
|
|
|
@ -99,6 +99,19 @@ class HistoryEntry(models.Model):
|
|||
result = {}
|
||||
users_keys = ["assigned_to", "owner"]
|
||||
|
||||
def resolve_diff_value(key):
|
||||
value = None
|
||||
diff = get_diff_of_htmls(
|
||||
self.diff[key][0] or "",
|
||||
self.diff[key][1] or ""
|
||||
)
|
||||
|
||||
if diff:
|
||||
key = "{}_diff".format(key)
|
||||
value = (None, diff)
|
||||
|
||||
return (key, value)
|
||||
|
||||
def resolve_value(field, key):
|
||||
data = self.values[field]
|
||||
key = str(key)
|
||||
|
@ -114,24 +127,12 @@ class HistoryEntry(models.Model):
|
|||
# on old HistoryEntry objects.
|
||||
if key == "description_diff":
|
||||
continue
|
||||
elif key == "description":
|
||||
description_diff = get_diff_of_htmls(
|
||||
self.diff[key][0],
|
||||
self.diff[key][1]
|
||||
)
|
||||
|
||||
if description_diff:
|
||||
key = "description_diff"
|
||||
value = (None, description_diff)
|
||||
elif key == "content":
|
||||
content_diff = get_diff_of_htmls(
|
||||
self.diff[key][0],
|
||||
self.diff[key][1]
|
||||
)
|
||||
|
||||
if content_diff:
|
||||
key = "content_diff"
|
||||
value = (None, content_diff)
|
||||
elif key == "content_diff":
|
||||
continue
|
||||
elif key == "blocked_note_diff":
|
||||
continue
|
||||
elif key in["description", "content", "blocked_note"]:
|
||||
(key, value) = resolve_diff_value(key)
|
||||
elif key in users_keys:
|
||||
value = [resolve_value("users", x) for x in self.diff[key]]
|
||||
elif key == "watchers":
|
||||
|
|
|
@ -6,7 +6,9 @@
|
|||
"backlog_order",
|
||||
"kanban_order",
|
||||
"taskboard_order",
|
||||
"us_order"
|
||||
"us_order",
|
||||
"blocked_note_diff",
|
||||
"blocked_note_html"
|
||||
] %}
|
||||
{% for field_name, values in changed_fields.items() %}
|
||||
{% if field_name not in excluded_fields %}
|
||||
|
|
|
@ -23,7 +23,8 @@ register = library.Library()
|
|||
|
||||
EXTRA_FIELD_VERBOSE_NAMES = {
|
||||
"description_diff": _("description"),
|
||||
"content_diff": _("content")
|
||||
"content_diff": _("content"),
|
||||
"blocked_note_diff": _("blocked note")
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue