backoffice: add option to expand history pane by default (#87727)
gitea/wcs/pipeline/head There was a failure building this commit Details

This commit is contained in:
Frédéric Péters 2024-03-24 16:02:24 +01:00
parent 6321637a14
commit f9bb53727e
8 changed files with 52 additions and 6 deletions

View File

@ -1164,3 +1164,15 @@ def test_cards_management_options(pub):
assert resp.forms[0]['management_sidebar_items$elementuser'].checked is True
resp = resp.forms[0].submit().follow()
assert CardDef.get(1).management_sidebar_items == {'__default__'}
assert_option_display(resp, 'Management', 'Default')
resp = resp.click('Management', href='options/management')
assert resp.form['history_pane_default_mode'].value == 'collapsed'
resp = resp.form.submit().follow()
assert_option_display(resp, 'Templates', 'Default')
resp = resp.click('Management', href='options/management')
resp.form['history_pane_default_mode'].value = 'expanded'
resp = resp.form.submit().follow()
assert_option_display(resp, 'Templates', 'Custom')
resp = resp.click('Management', href='options/management')
assert resp.form['history_pane_default_mode'].value == 'expanded'

View File

@ -2127,3 +2127,28 @@ def test_carddata_edit_items_display(pub):
assert resp.status_int == 302
resp = resp.follow()
assert not resp.pyquery('#sect-dataview').text()
def test_carddata_history_pane_default_mode(pub):
CardDef.wipe()
user = create_user(pub)
carddef = CardDef()
carddef.name = 'foo'
carddef.fields = []
carddef.workflow_roles = {'_editor': user.roles[0]}
carddef.store()
carddef.data_class().wipe()
carddata = carddef.data_class()()
carddata.just_created()
carddata.store()
app = login(get_app(pub))
resp = app.get(carddata.get_backoffice_url())
assert resp.pyquery('#evolution-log.folded')
carddef.history_pane_default_mode = 'expanded'
carddef.store()
resp = app.get(carddata.get_backoffice_url())
assert resp.pyquery('#evolution-log:not(.folded)')

View File

@ -516,6 +516,7 @@ class OptionsDirectory(Directory):
'drafts_max_per_user',
'user_support',
'management_sidebar_items',
'history_pane_default_mode',
]
for attr in attrs:
widget = form.get_widget(attr)

View File

@ -31,7 +31,7 @@ from wcs.categories import CardDefCategory
from wcs.sql_criterias import Null, StrictNotEqual
from ..qommon import _, pgettext_lazy
from ..qommon.form import CheckboxesWidget, ComputedExpressionWidget, Form, StringWidget
from ..qommon.form import CheckboxesWidget, ComputedExpressionWidget, Form, RadiobuttonsWidget, StringWidget
class CardDefUI(FormDefUI):
@ -81,6 +81,14 @@ class CardDefOptionsDirectory(OptionsDirectory):
value=self.formdef.get_management_sidebar_items(),
inline=False,
)
form.add(
RadiobuttonsWidget,
'history_pane_default_mode',
title=_('History pane default mode'),
options=[('collapsed', _('Collapsed'), 'collapsed'), ('expanded', _('Expanded'), 'expanded')],
value=self.formdef.history_pane_default_mode,
extra_css_class='widget-inline-radio',
)
return self.handle(form, pgettext_lazy('cards', 'Management'))
@ -156,7 +164,8 @@ class CardDefPage(FormDefPage):
'options/management',
pgettext_lazy('cards', 'Management'),
_('Custom')
if self.formdef.management_sidebar_items
if self.formdef.history_pane_default_mode != 'collapsed'
or self.formdef.management_sidebar_items
not in ({'__default__'}, self.formdef.get_default_management_sidebar_items())
else _('Default'),
)

View File

@ -441,9 +441,6 @@ class CardBackOfficeStatusPage(FormBackOfficeStatusPage):
def should_fold_summary(self, mine, request_user):
return False
def should_fold_history(self):
return True
class ImportFromCsvAfterJob(AfterJob):
def __init__(self, carddef, data_lines, update_existing_cards, submission_agent_id):

View File

@ -49,6 +49,7 @@ class CardDef(FormDef):
item_name_plural = pgettext_lazy('item', 'cards')
confirmation = False
history_pane_default_mode = 'collapsed'
# users are not allowed to access carddata where they're submitter.
user_allowed_to_access_own_data = False

View File

@ -188,6 +188,7 @@ class FormDef(StorableObject):
user_support = None
geolocations = None
history_pane_default_mode = 'expanded'
# store reverse relations
reverse_relations = None

View File

@ -541,7 +541,7 @@ class FormStatusPage(Directory, FormTemplateMixin):
return False
def should_fold_history(self):
return False
return bool(self.formdef.history_pane_default_mode == 'collapsed')
def receipt(self, always_include_user=False, form_url='', mine=True):
request_user = user = get_request().user