Fixing fields in notification emails and lists contents
parent
2d69b244b6
commit
3ca137bed0
|
@ -91,19 +91,23 @@
|
|||
{% elif field_name in ["tags", "watchers"] %}
|
||||
{% set values_from = values.0 or [] %}
|
||||
{% set values_to = values.1 or [] %}
|
||||
{% set values_added = lists_diff(values_to, values_from) %}
|
||||
{% set values_removed = lists_diff(values_from, values_to) %}
|
||||
|
||||
<tr>
|
||||
<td valign="middle" rowspan="2" class="update-row-name">
|
||||
<h3>{{ field_name }}</h3>
|
||||
<h3>{{ verbose_name(obj_class, field_name) }}</h3>
|
||||
</td>
|
||||
<td valign="top" class="update-row-from">
|
||||
<span>{{ _("from") }}</span><br>
|
||||
<strong>{{ ', '.join(values_from) }}</strong>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<span>{{ _("to") }}</span><br>
|
||||
<strong>{{ ', '.join(values_to) }}</strong>
|
||||
{% if values_added %}
|
||||
<span>{{ _("added") }}</span><br>
|
||||
<strong>{{ ', '.join(values_added) }}</strong>
|
||||
{% endif %}
|
||||
|
||||
{% if values_removed %}
|
||||
<span>{{ _("removed") }}</span><br>
|
||||
<strong>{{ ', '.join(values_removed) }}</strong>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{# DESCRIPTIONS #}
|
||||
|
@ -126,7 +130,7 @@
|
|||
{% elif field_name == "assigned_to" %}
|
||||
<tr>
|
||||
<td valign="middle" rowspan="2" class="update-row-name">
|
||||
<h3>{{ field_name }}</h3>
|
||||
<h3>{{ verbose_name(obj_class, field_name) }}</h3>
|
||||
</td>
|
||||
<td valign="top" class="update-row-from">
|
||||
{% if values.0 != None and values.0 != "" %}
|
||||
|
@ -154,7 +158,7 @@
|
|||
|
||||
<tr>
|
||||
<td valign="middle" rowspan="2" class="update-row-name">
|
||||
<h3>{{ field_name }}</h3>
|
||||
<h3>{{ verbose_name(obj_class, field_name) }}</h3>
|
||||
</td>
|
||||
<td valign="top" class="update-row-from">
|
||||
<span>{{ _("from") }}</span><br>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
] %}
|
||||
{% for field_name, values in changed_fields.items() %}
|
||||
{% if field_name not in excluded_fields %}
|
||||
- {{ verbose_name(object, field_name) }}:
|
||||
- {{ verbose_name(obj_class, field_name) }}:
|
||||
{# POINTS #}
|
||||
{% if field_name == "points" %}
|
||||
{% for role, points in values.items() %}
|
||||
|
@ -42,17 +42,16 @@
|
|||
{% endif %}
|
||||
{# TAGS AND WATCHERS #}
|
||||
{% elif field_name in ["tags", "watchers"] %}
|
||||
* {{ _("to:") }} {{ ', '.join(values.1) }}
|
||||
{% if values.0 %}
|
||||
* {{ _("from:") }} {{ ', '.join(values.0) }}
|
||||
{% set values_from = values.0 or [] %}
|
||||
{% set values_to = values.1 or [] %}
|
||||
{% set values_added = lists_diff(values_to, values_from) %}
|
||||
{% set values_removed = lists_diff(values_from, values_to) %}
|
||||
|
||||
{% if values_added %}
|
||||
* {{ _("added:") }} {{ ', '.join(values_added) }}
|
||||
{% endif %}
|
||||
{# * #}
|
||||
{% else %}
|
||||
{% if values.1 != None and values.1 != "" %}
|
||||
* {{ _("to:") }} {{ values.1|linebreaksbr }}
|
||||
{% endif %}
|
||||
{% if values.0 != None and values.0 != "" %}
|
||||
* {{ _("from:") }} {{ values.0|linebreaksbr }}
|
||||
{% if values_removed %}
|
||||
* {{ _("removed:") }} {{ ', '.join(values_removed) }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
|
|
@ -29,11 +29,15 @@ EXTRA_FIELD_VERBOSE_NAMES = {
|
|||
|
||||
|
||||
@register.global_function
|
||||
def verbose_name(obj:object, field_name:str) -> str:
|
||||
def verbose_name(obj_class, field_name):
|
||||
if field_name in EXTRA_FIELD_VERBOSE_NAMES:
|
||||
return EXTRA_FIELD_VERBOSE_NAMES[field_name]
|
||||
|
||||
try:
|
||||
return obj._meta.get_field(field_name).verbose_name
|
||||
return obj_class._meta.get_field(field_name).verbose_name
|
||||
except Exception:
|
||||
return field_name
|
||||
|
||||
@register.global_function
|
||||
def lists_diff(list1, list2):
|
||||
return (list(set(list1) - set(list2)))
|
||||
|
|
|
@ -249,8 +249,10 @@ def send_sync_notifications(notification_id):
|
|||
|
||||
history_entries = tuple(notification.history_entries.all().order_by("created_at"))
|
||||
obj, _ = get_last_snapshot_for_key(notification.key)
|
||||
obj_class = get_model_from_key(obj.key)
|
||||
|
||||
context = {
|
||||
"obj_class": obj_class,
|
||||
"snapshot": obj.snapshot,
|
||||
"project": notification.project,
|
||||
"changer": notification.owner,
|
||||
|
|
Loading…
Reference in New Issue