backoffice: add link to management page (#54935)
gitea-wip/wcs/pipeline/head Build started... Details

This commit is contained in:
Lauréline Guérin 2021-08-05 14:50:07 +02:00
parent 16604d04a9
commit 37647b2651
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
4 changed files with 48 additions and 30 deletions

View File

@ -516,3 +516,17 @@ def test_carddef_usage(pub):
user_formdef = UserFieldsFormDef(pub)
user_formdef.fields = []
user_formdef.store()
def test_card_management_view(pub):
create_superuser(pub)
CardDef.wipe()
carddef = CardDef()
carddef.name = 'foo'
carddef.fields = []
carddef.store()
app = login(get_app(pub))
resp = app.get('/backoffice/cards/1/')
assert 'backoffice/data/foo/' in resp

View File

@ -2335,6 +2335,21 @@ def test_form_public_url(pub):
assert 'http://example.net/form-title/' in resp.text
def test_form_management_view(pub):
create_superuser(pub)
create_role(pub)
FormDef.wipe()
formdef = FormDef()
formdef.name = 'form title'
formdef.fields = []
formdef.store()
app = login(get_app(pub))
resp = app.get('/backoffice/forms/1/')
assert 'backoffice/management/form-title/' in resp
def test_form_archive(pub):
create_superuser(pub)
create_role(pub)

View File

@ -581,6 +581,7 @@ class FormDefPage(Directory):
'The form has been successfully overwritten. '
'Do note it kept its existing address and role and workflow parameters.'
)
readonly_message = _('This form is readonly.')
def __init__(self, component, instance=None):
try:
@ -856,7 +857,7 @@ class FormDefPage(Directory):
def get_sidebar(self):
r = TemplateIO(html=True)
if self.formdef.is_readonly():
r += htmltext('<div class="infonotice"><p>%s</p></div>') % _('This form is readonly.')
r += htmltext('<div class="infonotice"><p>%s</p></div>') % self.readonly_message
r += utils.snapshot_info_block(snapshot=self.formdef.snapshot_object)
return r.getvalue()
r += htmltext('<ul id="sidebar-actions">')
@ -867,21 +868,28 @@ class FormDefPage(Directory):
if get_publisher().snapshot_class:
r += htmltext('<li><a rel="popup" href="history/save">%s</a></li>') % _('Save snapshot')
r += htmltext('<li><a href="history/">%s</a></li>') % _('History')
if not get_publisher().is_using_postgresql():
if not get_publisher().is_using_postgresql() and self.formdef_class == FormDef:
r += htmltext('<li><a href="archive">%s</a></li>') % _('Archive')
r += htmltext('</ul>')
r += htmltext('<ul>')
if self.formdef.is_disabled():
if self.formdef_class == FormDef:
if self.formdef.is_disabled():
r += htmltext('<li><a href="%s">%s</a></li>') % (
self.formdef.get_url(preview=True),
_('Preview Online'),
)
else:
r += htmltext('<li><a href="%s">%s</a></li>') % (self.formdef.get_url(), _('Display Online'))
r += htmltext('<li><a href="public-url" rel="popup">%s</a></li>') % _('Display public URL')
if qrcode is not None:
r += htmltext('<li><a href="qrcode" rel="popup">%s</a></li>') % _('Display QR Code')
user = get_request().user
if user.is_admin or self.formdef.is_of_concern_for_user(user):
r += htmltext('<li><a href="%s">%s</a></li>') % (
self.formdef.get_url(preview=True),
_('Preview Online'),
self.formdef.get_url(backoffice=True),
_('Management view'),
)
else:
r += htmltext('<li><a href="%s">%s</a></li>') % (self.formdef.get_url(), _('Display Online'))
r += htmltext('<li><a href="public-url" rel="popup">%s</a></li>') % _('Display public URL')
if qrcode is not None:
r += htmltext('<li><a href="qrcode" rel="popup">%s</a></li>') % _('Display QR Code')
r += htmltext('</ul>')
r += LoggedErrorsDirectory.errors_block(formdef_class=self.formdef_class, formdef_id=self.formdef.id)
return r.getvalue()

View File

@ -21,7 +21,6 @@ from quixote.html import TemplateIO, htmltext
from wcs.admin import utils
from wcs.admin.categories import CardDefCategoriesDirectory
from wcs.admin.forms import FormDefPage, FormDefUI, FormsDirectory, OptionsDirectory, html_top
from wcs.admin.logged_errors import LoggedErrorsDirectory
from wcs.carddef import CardDef
from wcs.categories import CardDefCategory
from wcs.workflows import Workflow
@ -58,6 +57,7 @@ class CardDefPage(FormDefPage):
'The card model has been successfully overwritten. '
'Do note it kept its existing address and role and workflow parameters.'
)
readonly_message = _('This card model is readonly.')
def html_top(self, title):
return html_top('cards', title)
@ -209,25 +209,6 @@ class CardDefPage(FormDefPage):
self.formdefui.formdef.store()
return response
def get_sidebar(self):
r = TemplateIO(html=True)
if self.formdef.is_readonly():
r += htmltext('<div class="infonotice"><p>%s</p></div>') % _('This card model is readonly.')
r += utils.snapshot_info_block(snapshot=self.formdef.snapshot_object)
return r.getvalue()
r += htmltext('<ul id="sidebar-actions">')
r += htmltext('<li><a href="delete" rel="popup">%s</a></li>') % _('Delete')
r += htmltext('<li><a href="duplicate">%s</a></li>') % _('Duplicate')
r += htmltext('<li><a rel="popup" href="overwrite">%s</a></li>') % _('Overwrite with new import')
r += htmltext('<li><a href="export">%s</a></li>') % _('Export')
if get_publisher().snapshot_class:
r += htmltext('<li><a rel="popup" href="history/save">%s</a></li>') % _('Save snapshot')
r += htmltext('<li><a href="history/">%s</a></li>') % _('History')
r += htmltext('</ul>')
r += LoggedErrorsDirectory.errors_block(formdef_class=self.formdef_class, formdef_id=self.formdef.id)
return r.getvalue()
def get_check_count_before_deletion_message(self):
if not get_publisher().is_using_postgresql():
return None