Add finished_by field to TaskState

pull/6257/head
Karl Hobley 2020-03-10 11:05:11 +00:00 zatwierdzone przez Matt Westcott
rodzic b2b8fd6eb1
commit f3d6dd7d43
3 zmienionych plików z 45 dodań i 4 usunięć

Wyświetl plik

@ -70,9 +70,15 @@
{% for task_state in task_states %}
<td>
{% if task_state.status == 'approved' or task_state.status == 'rejected' %}
{% blocktrans with action='<div class="status-tag primary">'|add:task_state.get_status_display|add:'</div>'|safe at=task_state.finished_at %}
{{ action }} at <b>{{ at }}</b>
{% endblocktrans %}
{% if task_state.finished_by %}
{% blocktrans with action='<div class="status-tag primary">'|add:task_state.get_status_display|add:'</div>'|safe who=task_state.finished_by.get_full_name|default:task_state.finished_by.get_username at=task_state.finished_at %}
{{ action }} by <b>{{ who }}</b> at <b>{{ at }}</b>
{% endblocktrans %}
{% else %}
{% blocktrans with action='<div class="status-tag primary">'|add:task_state.get_status_display|add:'</div>'|safe at=task_state.finished_at %}
{{ action }} at <b>{{ at }}</b>
{% endblocktrans %}
{% endif %}
{% else %}
<div class="status-tag primary">{{ task_state.get_status_display }}</div>
{% endif %}
@ -113,7 +119,13 @@
{% elif timeline_item.action == 'task_completed' %}
<b>{{ timeline_item.task_state.task }}</b>
<div class="status-tag primary">{{ timeline_item.task_state.get_status_display }}</div>
{% if timeline_item.task_state.finished_by %}
{% blocktrans with action='<div class="status-tag primary">'|add:timeline_item.task_state.get_status_display|add:'</div>'|safe who=timeline_item.task_state.finished_by.get_full_name|default:timeline_item.task_state.finished_by.get_username %}
{{ action }} by <b>{{ who }}</b>
{% endblocktrans %}
{% else %}
<div class="status-tag primary">{{ timeline_item.task_state.get_status_display }}</div>
{% endif %}
{% endif %}
</td>
</tr>

Wyświetl plik

@ -0,0 +1,21 @@
# Generated by Django 3.0.3 on 2020-03-10 11:01
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('wagtailcore', '0048_add_default_workflows'),
]
operations = [
migrations.AddField(
model_name='taskstate',
name='finished_by',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='finished_task_states', to=settings.AUTH_USER_MODEL, verbose_name='finished by'),
),
]

Wyświetl plik

@ -2955,6 +2955,14 @@ class TaskState(MultiTableCopyMixin, models.Model):
status = models.fields.CharField(choices=STATUS_CHOICES, verbose_name=_("status"), max_length=50, default=STATUS_IN_PROGRESS)
started_at = models.DateTimeField(verbose_name=_('started at'), auto_now_add=True)
finished_at = models.DateTimeField(verbose_name=_('finished at'), blank=True, null=True)
finished_by = models.ForeignKey(
settings.AUTH_USER_MODEL,
verbose_name=_('finished by'),
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='finished_task_states'
)
content_type = models.ForeignKey(
ContentType,
verbose_name=_('content type'),