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