Include task description in choosers, if defined (#6200)

pull/6257/head
Dan Braghis 2020-07-03 13:26:18 +01:00 zatwierdzone przez Matt Westcott
rodzic 03f728c67d
commit fb0742802f
6 zmienionych plików z 34 dodań i 5 usunięć

Wyświetl plik

@ -195,6 +195,19 @@ For example:
return TaskState.objects.none()
``Task.get_description()```
A class method that returns the human-readable description for the task.
For example:
.. code-block:: python
@classmethod
def get_description(cls):
return _("Members of the chosen Wagtail Groups can approve this task")
Adding notifications
~~~~~~~~~~~~~~~~~~~~

Wyświetl plik

@ -12,12 +12,15 @@
{% if task_types %}
<ul class="listing">
{% for verbose_name, app_label, model_name in task_types %}
{% for verbose_name, app_label, model_name, description in task_types %}
<li>
<div class="row row-flush">
<div class="col6">
<a href="{% url 'wagtailadmin_workflows:add_task' app_label model_name %}" class="icon icon-plus-inverse icon-larger">{{ verbose_name }}</a>
</div>
<div class="col6">
{{ description }}
</div>
</div>
</li>
{% endfor %}

Wyświetl plik

@ -4,12 +4,15 @@
{% if task_types %}
<ul class="listing">
{% for verbose_name, app_label, model_name in task_types %}
{% for verbose_name, app_label, model_name, description in task_types %}
<li>
<div class="row row-flush">
<div class="col6">
<a href="{% url 'wagtailadmin_workflows:task_chooser' %}?create_model={{ app_label|urlencode }}.{{ model_name|urlencode }}" class="icon icon-plus-inverse icon-larger task-type-choice">{{ verbose_name }}</a>
</div>
<div class="col6">
{{ description }}
</div>
</div>
</li>
{% endfor %}

Wyświetl plik

@ -589,6 +589,7 @@ class TestSelectTaskTypeView(TestCase, WagtailTestUtils):
# Check that the list of available task types includes SimpleTask and GroupApprovalTask
self.assertContains(response, SimpleTask.get_verbose_name())
self.assertContains(response, GroupApprovalTask.get_verbose_name())
self.assertContains(response, GroupApprovalTask.get_description())
class TestEditTaskView(TestCase, WagtailTestUtils):

Wyświetl plik

@ -331,7 +331,7 @@ def select_task_type(request):
raise PermissionDenied
task_types = [
(model.get_verbose_name(), model._meta.app_label, model._meta.model_name)
(model.get_verbose_name(), model._meta.app_label, model._meta.model_name, model.get_description())
for model in get_task_types()
]
# sort by lower-cased version of verbose name
@ -340,7 +340,7 @@ def select_task_type(request):
if len(task_types) == 1:
# Only one task type is available - redirect straight to the create form rather than
# making the user choose
verbose_name, app_label, model_name = task_types[0]
verbose_name, app_label, model_name, description = task_types[0]
return redirect('wagtailadmin_workflows:add_task', app_label, model_name)
return render(request, 'wagtailadmin/workflows/select_task_type.html', {
@ -525,7 +525,7 @@ def task_chooser(request):
# Build task types list for "select task type" view
task_types = [
(model.get_verbose_name(), model._meta.app_label, model._meta.model_name)
(model.get_verbose_name(), model._meta.app_label, model._meta.model_name, model.get_description())
for model in task_models
]
# sort by lower-cased version of verbose name

Wyświetl plik

@ -2719,6 +2719,11 @@ class Task(models.Model):
"""Returns a ``QuerySet`` of the task states the current user can moderate"""
return TaskState.objects.none()
@classmethod
def get_description(cls):
"""Returns the task description."""
return ''
@property
def get_workflows(self):
"""Returns a ``QuerySet`` of the workflows that this task is part of """
@ -2839,6 +2844,10 @@ class GroupApprovalTask(Task):
else:
return TaskState.objects.none()
@classmethod
def get_description(cls):
return _("Members of the chosen Wagtail Groups can approve this task")
class Meta:
verbose_name = _('Group approval task')
verbose_name_plural = _('Group approval tasks')