misc: use native templates for form pages (#73956) #75
|
@ -1,34 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="{{ site_lang }}">
|
|
||||||
<head>
|
|
||||||
<title>{% block page-title %}{{ page_title }}{% endblock %}</title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{ css }}"/>
|
|
||||||
{{ script|safe }}
|
|
||||||
{% block extrascripts %}
|
|
||||||
{% endblock %}
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div {% if onload %}onload="{{ onload }}"{% endif %}>
|
|
||||||
<div id="page">
|
|
||||||
<div id="top">
|
|
||||||
{% block header %}
|
|
||||||
<h1>{% if title %}{{ title }}{% else %}{{ site_name }}{% endif %}</h1>
|
|
||||||
{% endblock %}
|
|
||||||
</div>
|
|
||||||
<div id="main-content">
|
|
||||||
{% block content %}
|
|
||||||
{{ prelude }}
|
|
||||||
|
|
||||||
{% if breadcrumb %}
|
|
||||||
<p id="breadcrumb">{{ breadcrumb|safe }}</p>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% block body %}
|
|
||||||
{{ body|safe }}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% endblock %}
|
|
||||||
</div>
|
|
||||||
<div id="footer">{{ footer }}</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,20 +0,0 @@
|
||||||
{% extends "base.html"%}
|
|
||||||
|
|
||||||
{% block body %}
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<h2>HELLO WORLD</h2>
|
|
||||||
|
|
||||||
{% regroup forms by category as category_list %}
|
|
||||||
{% for category in category_list %}
|
|
||||||
{% if category.grouper %}<h3>{{ category.grouper }}</h3>{% endif %}
|
|
||||||
<ul>
|
|
||||||
{% for form in category.list %}
|
|
||||||
<li><a href="{{ form.url }}">{{ form.title }}</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{% endblock %}
|
|
|
@ -104,9 +104,9 @@ class FormFillPage(PublicFormFillPage):
|
||||||
('go-to-backoffice', 'go_to_backoffice'),
|
('go-to-backoffice', 'go_to_backoffice'),
|
||||||
]
|
]
|
||||||
|
|
||||||
filling_templates = ['wcs/formdata_filling.html']
|
filling_templates = ['wcs/backoffice/formdata_filling.html']
|
||||||
popup_filling_templates = ['wcs/formdata_popup_filling.html']
|
popup_filling_templates = ['wcs/formdata_popup_filling.html']
|
||||||
validation_templates = ['wcs/formdata_validation.html']
|
validation_templates = ['wcs/backoffice/formdata_validation.html']
|
||||||
steps_templates = ['wcs/formdata_steps.html']
|
steps_templates = ['wcs/formdata_steps.html']
|
||||||
has_channel_support = True
|
has_channel_support = True
|
||||||
has_user_support = True
|
has_user_support = True
|
||||||
|
@ -211,6 +211,7 @@ class FormFillPage(PublicFormFillPage):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def modify_filling_context(self, context, page, data):
|
def modify_filling_context(self, context, page, data):
|
||||||
|
context['sidebar'] = self.get_sidebar(data)
|
||||||
if not self.formdef.only_allow_one:
|
if not self.formdef.only_allow_one:
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
|
@ -223,6 +224,9 @@ class FormFillPage(PublicFormFillPage):
|
||||||
data_class.count([StrictNotEqual('status', 'draft'), Equal('user_id', formdata.user_id)])
|
data_class.count([StrictNotEqual('status', 'draft'), Equal('user_id', formdata.user_id)])
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def modify_validation_context(self, context, data):
|
||||||
|
context['sidebar'] = self.get_sidebar(data)
|
||||||
|
|
||||||
def get_sidebar(self, data):
|
def get_sidebar(self, data):
|
||||||
r = TemplateIO(html=True)
|
r = TemplateIO(html=True)
|
||||||
|
|
||||||
|
@ -329,8 +333,6 @@ class FormFillPage(PublicFormFillPage):
|
||||||
def form_side(self, data=None, magictoken=None):
|
def form_side(self, data=None, magictoken=None):
|
||||||
r = TemplateIO(html=True)
|
r = TemplateIO(html=True)
|
||||||
get_response().filter['sidebar'] = self.get_sidebar(data)
|
get_response().filter['sidebar'] = self.get_sidebar(data)
|
||||||
r += htmltext('<div id="appbar">')
|
|
||||||
r += htmltext('<h2>%s</h2>') % self.formdef.name
|
|
||||||
if not self.edit_mode and not getattr(self, 'is_popup', False):
|
if not self.edit_mode and not getattr(self, 'is_popup', False):
|
||||||
draft_formdata_id = data.get('draft_formdata_id')
|
draft_formdata_id = data.get('draft_formdata_id')
|
||||||
if draft_formdata_id:
|
if draft_formdata_id:
|
||||||
|
@ -338,10 +340,6 @@ class FormFillPage(PublicFormFillPage):
|
||||||
draft_formdata_id,
|
draft_formdata_id,
|
||||||
_('Discard this form'),
|
_('Discard this form'),
|
||||||
)
|
)
|
||||||
r += htmltext('</div>')
|
|
||||||
r += htmltext('<div id="side">')
|
|
||||||
r += self.step()
|
|
||||||
r += htmltext('</div> <!-- #side -->')
|
|
||||||
return mark_safe(str(r.getvalue()))
|
return mark_safe(str(r.getvalue()))
|
||||||
|
|
||||||
def submitted(self, form, *args):
|
def submitted(self, form, *args):
|
||||||
|
|
|
@ -28,7 +28,10 @@ def get_global_context():
|
||||||
def publisher(request):
|
def publisher(request):
|
||||||
template_base = 'wcs/base.html'
|
template_base = 'wcs/base.html'
|
||||||
if request.path.startswith('/backoffice/'):
|
if request.path.startswith('/backoffice/'):
|
||||||
template_base = 'wcs/blank.html'
|
if getattr(request, 'is_django_native', False):
|
||||||
|
template_base = 'wcs/backoffice.html'
|
||||||
|
else:
|
||||||
|
template_base = 'wcs/blank.html'
|
||||||
|
|
||||||
from wcs.qommon.admin.menu import get_vc_version
|
from wcs.qommon.admin.menu import get_vc_version
|
||||||
|
|
||||||
|
|
|
@ -697,7 +697,7 @@ class FormPage(FormdefDirectoryBase, FormTemplateMixin):
|
||||||
'view': self,
|
'view': self,
|
||||||
'page_no': self.get_current_page_no,
|
'page_no': self.get_current_page_no,
|
||||||
'formdef': LazyFormDef(self.formdef),
|
'formdef': LazyFormDef(self.formdef),
|
||||||
'form_side': lambda: self.form_side(data=data, magictoken=magictoken),
|
'form_side': self.form_side(data=data, magictoken=magictoken),
|
||||||
'steps': self.step,
|
'steps': self.step,
|
||||||
# legacy, used in some themes
|
# legacy, used in some themes
|
||||||
'tracking_code_box': lambda: self.tracking_code_box(data, magictoken),
|
'tracking_code_box': lambda: self.tracking_code_box(data, magictoken),
|
||||||
|
@ -716,7 +716,9 @@ class FormPage(FormdefDirectoryBase, FormTemplateMixin):
|
||||||
context['form'] = form
|
context['form'] = form
|
||||||
|
|
||||||
return template.QommonTemplateResponse(
|
return template.QommonTemplateResponse(
|
||||||
templates=list(self.get_formdef_template_variants(self.filling_templates)), context=context
|
templates=list(self.get_formdef_template_variants(self.filling_templates)),
|
||||||
|
context=context,
|
||||||
|
is_django_native=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
def tracking_code_box(self, data, magictoken):
|
def tracking_code_box(self, data, magictoken):
|
||||||
|
@ -1787,17 +1789,23 @@ class FormPage(FormdefDirectoryBase, FormTemplateMixin):
|
||||||
context = {
|
context = {
|
||||||
'view': self,
|
'view': self,
|
||||||
'html_form': form,
|
'html_form': form,
|
||||||
'form_side': lambda: self.form_side(data=data, magictoken=magictoken),
|
'form_side': self.form_side(data=data, magictoken=magictoken),
|
||||||
'steps': self.step,
|
'steps': self.step,
|
||||||
# legacy, used in some themes
|
# legacy, used in some themes
|
||||||
'tracking_code_box': lambda: self.tracking_code_box(data, magictoken),
|
'tracking_code_box': lambda: self.tracking_code_box(data, magictoken),
|
||||||
}
|
}
|
||||||
context['form'] = form # legacy
|
context['form'] = form # legacy
|
||||||
|
self.modify_validation_context(context, data)
|
||||||
|
|
||||||
return template.QommonTemplateResponse(
|
return template.QommonTemplateResponse(
|
||||||
templates=list(self.get_formdef_template_variants(self.validation_templates)), context=context
|
templates=list(self.get_formdef_template_variants(self.validation_templates)),
|
||||||
|
context=context,
|
||||||
|
is_django_native=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def modify_validation_context(self, context, data):
|
||||||
|
pass
|
||||||
|
|
||||||
def get_url_with_query(self):
|
def get_url_with_query(self):
|
||||||
query = get_request().get_query()
|
query = get_request().get_query()
|
||||||
url = self.formdef.get_url()
|
url = self.formdef.get_url()
|
||||||
|
|
|
@ -147,7 +147,8 @@ def get_decorate_vars(body, response, generate_breadcrumb=True, **kwargs):
|
||||||
user_info = kwargs.get('user_info')
|
user_info = kwargs.get('user_info')
|
||||||
page_title = kwargs.get('title', '')
|
page_title = kwargs.get('title', '')
|
||||||
subtitle = kwargs.get('subtitle')
|
subtitle = kwargs.get('subtitle')
|
||||||
sidebar = kwargs.get('sidebar')
|
if 'sidebar' in kwargs:
|
||||||
|
sidebar = kwargs.get('sidebar')
|
||||||
css = root_url + get_publisher().qommon_static_dir + get_publisher().qommon_admin_css
|
css = root_url + get_publisher().qommon_static_dir + get_publisher().qommon_admin_css
|
||||||
extra_head = get_publisher().get_site_option('backoffice_extra_head')
|
extra_head = get_publisher().get_site_option('backoffice_extra_head')
|
||||||
app_label = get_publisher().get_site_option('app_label') or 'Publik'
|
app_label = get_publisher().get_site_option('app_label') or 'Publik'
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{% extends "wcs/backoffice.html" %}
|
{% extends "wcs/backoffice.html" %}
|
||||||
|
|
||||||
{% block main-content %}
|
{% block main-content %}
|
||||||
|
{{ form_side|default:"" }}
|
||||||
{{ body|safe }}
|
{{ body|safe }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -39,11 +39,14 @@
|
||||||
<div id="appbar">
|
<div id="appbar">
|
||||||
<h2>{% block appbar-title %}{% endblock %}</h2>
|
<h2>{% block appbar-title %}{% endblock %}</h2>
|
||||||
<span class="actions">{% block appbar-actions %}{% endblock %}</span>
|
<span class="actions">{% block appbar-actions %}{% endblock %}</span>
|
||||||
|
{% block appbar-bottom %}{% endblock %}
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block session-message %}
|
{% block session-message %}
|
||||||
{{session_message|safe}}
|
{{session_message|safe}}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
{% block form-side %}{% endblock %}
|
||||||
|
{% block body %}{% endblock %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
{% extends "wcs/formdata_filling.html" %}
|
||||||
|
|
||||||
|
{% block appbar-title %}{{ view.formdef.name }}{% endblock %}
|
||||||
|
{% block form-side %}{% endblock %}
|
||||||
|
|
||||||
|
{% block appbar-bottom %}
|
||||||
|
{{ form_side|default:"" }}
|
||||||
|
<div id="side">{{ view.step }}</div>
|
||||||
|
{% endblock %}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{% extends "wcs/formdata_validation.html" %}
|
||||||
|
|
||||||
|
{% block appbar-title %}{{ view.formdef.name }}{% endblock %}
|
||||||
|
{% block form-side %}{% endblock %}
|
||||||
|
|
||||||
|
{% block appbar-bottom %}
|
||||||
|
{{ form_side|default:"" }}
|
||||||
|
<div id="side">{{ view.step }}</div>
|
||||||
|
{% endblock %}
|
|
@ -1,2 +1,39 @@
|
||||||
{% block body %}
|
<!DOCTYPE html>
|
||||||
{% endblock %}
|
<html lang="{{ site_lang }}">
|
||||||
|
<head>
|
||||||
|
<title>{% block page-title %}{{ page_title }}{% endblock %}</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{ css }}"/>
|
||||||
|
{{ script|safe }}
|
||||||
|
{% block extrascripts %}
|
||||||
|
{% endblock %}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div {% if onload %}onload="{{ onload }}"{% endif %}>
|
||||||
|
<div id="page">
|
||||||
|
<div id="top">
|
||||||
|
{% block header %}
|
||||||
|
<h1>{% if title %}{{ title }}{% else %}{{ site_name }}{% endif %}</h1>
|
||||||
|
{% endblock %}
|
||||||
|
</div>
|
||||||
|
<div id="main-content">
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
{% if form_side %}
|
||||||
|
<div class="form-content--sidebox">{{ form_side|safe }}</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if breadcrumb %}
|
||||||
|
<p id="breadcrumb">{{ breadcrumb|safe }}</p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{{ publisher.get_request.session.display_message|safe }}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
{{ body|safe }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
</div>
|
||||||
|
<div id="footer">{{ footer }}</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
{% extends template_base %}
|
{% extends template_base %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
|
||||||
{% block body %}
|
{% block form-side %}
|
||||||
|
{{ form_side|default:"" }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block form-side %}
|
{% block body %}
|
||||||
{{ form_side|default:"" }}
|
|
||||||
{{ publisher.get_request.session.display_message|safe }}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block form-main %}
|
{% block form-main %}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
{% block sidepage %}{% endblock %}
|
{% block sidepage %}{% endblock %}
|
||||||
|
|
||||||
{% block main-content %}
|
{% block main-content %}
|
||||||
|
<div id="appbar"><h2>{{ view.formdef.name }}</h2></div>
|
||||||
{% block form-side %}
|
{% block form-side %}
|
||||||
{{ form_side|default:"" }}
|
{{ form_side|default:"" }}
|
||||||
{{ publisher.get_request.session.display_message|safe }}
|
{{ publisher.get_request.session.display_message|safe }}
|
||||||
|
@ -14,4 +15,5 @@
|
||||||
{{ html_form.render|safe }}
|
{{ html_form.render|safe }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block sidebar %}{% endblock %}
|
||||||
{% block footer %}{% endblock %}
|
{% block footer %}{% endblock %}
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
{% extends template_base %}
|
{% extends template_base %}
|
||||||
|
|
||||||
|
{% block form-side %}
|
||||||
|
{{ form_side|default:"" }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<div class="form-validation">
|
<div class="form-validation">
|
||||||
{{ form_side|default:"" }}
|
|
||||||
<div class="infonotice">
|
<div class="infonotice">
|
||||||
{% standard_text "check-before-submit" %}
|
{% standard_text "check-before-submit" %}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -40,6 +40,7 @@ class Backoffice(compat.TemplateWithFallbackView):
|
||||||
if isinstance(body, template.QommonTemplateResponse):
|
if isinstance(body, template.QommonTemplateResponse):
|
||||||
body.add_media()
|
body.add_media()
|
||||||
if body.is_django_native:
|
if body.is_django_native:
|
||||||
|
self.request.is_django_native = True
|
||||||
_request = get_request()
|
_request = get_request()
|
||||||
self.template_names = body.templates
|
self.template_names = body.templates
|
||||||
context.update(body.context)
|
context.update(body.context)
|
||||||
|
|
Loading…
Reference in New Issue