Compare commits

..

1 Commits

Author SHA1 Message Date
Emmanuel Cazenave a6dcce8167 backoffice: display drafts stats (#72542)
gitea/wcs/pipeline/head There was a failure building this commit Details
2024-02-08 16:28:53 +01:00
3 changed files with 26 additions and 8 deletions

View File

@ -28,6 +28,7 @@ from wcs.backoffice.deprecations import DeprecationsDirectory
from wcs.backoffice.snapshots import SnapshotsDirectory
from wcs.carddef import CardDef
from wcs.categories import Category
from wcs.fields import PageField
from wcs.formdef import (
DRAFTS_DEFAULT_LIFESPAN,
FormDef,
@ -1766,17 +1767,20 @@ class FormDefPage(Directory, TempfileDirectoryMixin):
page_id = formdata.page_id if formdata.page_id is not None else '_unkown'
temp_drafts[page_id] += 1
temp_drafts['total'] += 1
context['drafts_total'] = temp_drafts.pop('total')
drafts = {}
for page_id in temp_drafts.keys():
if page_id in ('_unkown', '_confirmation_page', '_first_page'):
drafts[page_id] = temp_drafts[page_id]
drafts[page_id] = (None, temp_drafts[page_id])
continue
for field in self.formdef.iter_fields(with_backoffice_fields=False):
if page_id == page_id:
drafts[page_id] = temp_drafts[page_id]
if page_id == field.id and isinstance(field, PageField):
drafts[page_id] = (field, temp_drafts[page_id])
break
else:
drafts['_unkown'] += temp_drafts[page_id]
drafts['_unkown'] += (None, drafts['_unkown'][1] + temp_drafts[page_id])
context['drafts'] = sorted(drafts.items(), reverse=True, key=lambda x: x[1][1])
return template.QommonTemplateResponse(
templates=[self.inspect_template_name],
context=context,

View File

@ -93,11 +93,10 @@
<div id="inspect-drafts" role="tabpanel" tabindex="0" aria-labelledby="tab-drafts" hidden>
<div class="pk-information page-field-counters"><p>
{% blocktrans count page_count=formdef.page_count %}{{ page_count }} page{% plural %}{{ page_count }} pages{% endblocktrans %},
{% blocktrans count fields_count=formdef.fields|count %}{{ fields_count }} field{% plural %}{{ fields_count }} fields{% endblocktrans %}.
{% blocktranslate count draft_count=drafts_total %}{{ draft_count }} draft{% plural %}{{ draft_count }} drafts{% endblocktranslate %}.
</p></div>
{% for field in formdef.fields %}
{% include "wcs/backoffice/includes/inspect-field.html" with path=formdef.get_admin_url|add:"fields/" %}
{% for page_drafts in drafts %}
{% include "wcs/backoffice/includes/inspect-draft-by-page.html" with path=formdef.get_admin_url|add:"fields/" page_id=page_drafts.0 field=page_drafts.1.0 draft_count=page_drafts.1.1 %}
{% endfor %}
</div>

View File

@ -0,0 +1,15 @@
{% load i18n %}
<div class="inspect-field inspect-field--{{ page_id }} {% if forloop.first %}inspect-field--first{% endif %}"
data-field-id="{{ page_id }}">
<h4>
{% if page_id == "_unkown" %}
<p>{% trans "Unkown" %}{% trans ":" %}{{ draft_count }}</p>
{% elif page_id == "_first_page" %}
<p>{% trans "Only page" %}{% trans ":" %}{{ draft_count }}</p>
{% elif page_id == "_confirmation_page" %}
<p>{% trans "Cofirmation page" %}{% trans ":" %}{{ draft_count }}</p>
{% else %}
<a href="{{ path|default:"fields/" }}{{ field.id }}/">{{ field.ellipsized_label }}{% trans ":" %}{{ draft_count }}</a>
{% endif %}
</h4>
</div>