backoffice: use a template to render data management page (#38936)
This commit is contained in:
parent
4b86a73ab2
commit
888bc479f5
|
@ -19,6 +19,7 @@ from quixote.html import TemplateIO, htmltext, htmlescape
|
|||
|
||||
from ..qommon import _
|
||||
from ..qommon import errors
|
||||
from ..qommon import template
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
|
||||
from wcs.carddef import CardDef
|
||||
|
@ -26,6 +27,7 @@ from .management import ManagementDirectory, FormPage, FormFillPage, FormBackOff
|
|||
|
||||
|
||||
class DataManagementDirectory(ManagementDirectory):
|
||||
do_not_call_in_templates = True
|
||||
_q_exports = ['']
|
||||
|
||||
def _q_traverse(self, path):
|
||||
|
@ -44,30 +46,21 @@ class DataManagementDirectory(ManagementDirectory):
|
|||
return True
|
||||
return False
|
||||
|
||||
def _q_index(self):
|
||||
html_top('data_management', _('Cards'))
|
||||
formdefs = CardDef.select(order_by='name', ignore_errors=True, lightweight=True)
|
||||
if len(formdefs) == 0:
|
||||
return self.empty_site_message(_('Cards'))
|
||||
r = TemplateIO(html=True)
|
||||
r += get_session().display_message()
|
||||
|
||||
r += htmltext('<div id="appbar">')
|
||||
r += htmltext('<h2>%s</h2>') % _('Cards')
|
||||
r += htmltext('</div>')
|
||||
|
||||
def get_carddefs(self):
|
||||
user = get_request().user
|
||||
if user:
|
||||
cards = []
|
||||
for formdef in formdefs:
|
||||
for formdef in CardDef.select(order_by='name', ignore_errors=True, lightweight=True):
|
||||
if user.is_admin or formdef.is_of_concern_for_user(user):
|
||||
cards.append(formdef)
|
||||
r += htmltext('<ul class="biglist">')
|
||||
for carddef in cards:
|
||||
r += htmltext('<li><strong><a href="%s/">%s</a></strong></li>') % (carddef.url_name, carddef.name)
|
||||
r += htmltext('</ul>')
|
||||
yield formdef
|
||||
|
||||
return r.getvalue()
|
||||
def _q_index(self):
|
||||
html_top('data_management', _('Cards'))
|
||||
if CardDef.count() == 0:
|
||||
return self.empty_site_message(_('Cards'))
|
||||
|
||||
return template.QommonTemplateResponse(
|
||||
templates=['wcs/backoffice/data-management.html'],
|
||||
context={'view': self})
|
||||
|
||||
def _q_lookup(self, component):
|
||||
return CardPage(component)
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from quixote import get_publisher, get_response, get_request
|
||||
from quixote import get_publisher, get_response, get_request, get_session
|
||||
|
||||
def get_global_context():
|
||||
pub = get_publisher()
|
||||
|
@ -31,4 +31,5 @@ def publisher(request):
|
|||
'user': lambda: get_request() and get_request().user,
|
||||
'template_base': template_base,
|
||||
'global_context': get_global_context,
|
||||
'session_message': lambda: get_session() and get_session().display_message(),
|
||||
}
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
{% block appbar %}
|
||||
<div id="appbar">
|
||||
<h2>{% block appbar-title %}{% endblock %}</h2>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block session-message %}
|
||||
{{session_message|safe}}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% endblock %}
|
|
@ -0,0 +1,12 @@
|
|||
{% extends "wcs/backoffice/base.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block appbar-title %}{% trans "Cards" %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<ul class="objects-list single-links">
|
||||
{% for carddef in view.get_carddefs %}
|
||||
<li><a href="{{ carddef.url_name }}/">{{ carddef.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
|
@ -1,9 +1,13 @@
|
|||
{% extends "wcs/backoffice/base.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block body %}
|
||||
{% block appbar %}
|
||||
<div id="appbar" class="highlight">
|
||||
<h2>{% trans "Studio" %}</h2>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div id="studio">
|
||||
{% if user.can_go_in_backoffice_forms %}
|
||||
<a class="button button-paragraph" href="../forms/">{% trans "Forms" context "studio" %}
|
||||
|
|
Loading…
Reference in New Issue