backoffice: display drafts stats (#72542)
gitea/wcs/pipeline/head There was a failure building this commit
Details
gitea/wcs/pipeline/head There was a failure building this commit
Details
This commit is contained in:
parent
a6c0e8aa59
commit
a6dcce8167
|
@ -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,
|
||||
|
@ -1760,6 +1761,26 @@ class FormDefPage(Directory, TempfileDirectoryMixin):
|
|||
f'{self.formdef.xml_root_node}:{self.formdef.id}'
|
||||
)
|
||||
context['deprecation_titles'] = deprecations.titles
|
||||
|
||||
temp_drafts = defaultdict(int)
|
||||
for formdata in self.formdef.data_class().select(clause=[Equal('status', 'draft')]):
|
||||
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] = (None, temp_drafts[page_id])
|
||||
continue
|
||||
for field in self.formdef.iter_fields(with_backoffice_fields=False):
|
||||
if page_id == field.id and isinstance(field, PageField):
|
||||
drafts[page_id] = (field, temp_drafts[page_id])
|
||||
break
|
||||
else:
|
||||
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,
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
<button role="tab" aria-selected="false" aria-controls="inspect-workflow" id="tab-workflow" tabindex="-1">{% trans "Workflow" %}</button>
|
||||
<button role="tab" aria-selected="false" aria-controls="inspect-options" id="tab-options" tabindex="-1">{% trans "Options" %}</button>
|
||||
<button role="tab" aria-selected="false" aria-controls="inspect-fields" id="tab-fields" tabindex="-1">{% trans "Fields" %}</button>
|
||||
{% if not snapshots_diff %}
|
||||
<button role="tab" aria-selected="false" aria-controls="inspect-drafts" id="tab-drafts" tabindex="-1">{% trans "Drafts" %}</button>
|
||||
{% endif %}
|
||||
{% if custom_views %}
|
||||
<button role="tab" aria-selected="false" aria-controls="inspect-customviews" id="tab-customviews" tabindex="-1">{% trans "Custom views" %}</button>
|
||||
{% endif %}
|
||||
|
@ -88,6 +91,15 @@
|
|||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div id="inspect-drafts" role="tabpanel" tabindex="0" aria-labelledby="tab-drafts" hidden>
|
||||
<div class="pk-information page-field-counters"><p>
|
||||
{% blocktranslate count draft_count=drafts_total %}{{ draft_count }} draft{% plural %}{{ draft_count }} drafts{% endblocktranslate %}.
|
||||
</p></div>
|
||||
{% 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>
|
||||
|
||||
<div id="inspect-customviews" role="tabpanel" tabindex="0" aria-labelledby="tab-customviews" hidden>
|
||||
<div>
|
||||
{% for custom_view in custom_views %}
|
||||
|
|
|
@ -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>
|
Loading…
Reference in New Issue