230 lines
15 KiB
Plaintext
230 lines
15 KiB
Plaintext
|
|
|
|
|
|
|
|
|
|
|
|
<html>
|
|
<head>
|
|
<title>Internal Server Error</title>
|
|
|
|
<link rel="stylesheet" href="/web/static/lib/bootstrap/dist/css/bootstrap.css"/>
|
|
<script src="/web/static/lib/jquery/jquery.js" type="text/javascript"></script>
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap/js/dist/util/index.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap/js/dist/dom/data.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap/js/dist/dom/event-handler.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap/js/dist/dom/manipulator.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap/js/dist/dom/selector-engine.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap/js/dist/util/config.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap/js/dist/base-component.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap/js/dist/util/component-functions.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap/js/dist/util/backdrop.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap/js/dist/util/focustrap.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap/js/dist/util/scrollbar.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap/js/dist/modal.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap/js/dist/collapse.js"></script>
|
|
<style>
|
|
html {
|
|
font-size: 14px;
|
|
}
|
|
</style>
|
|
<script>
|
|
$(document).ready(function() {
|
|
var button = $('.reset_templates_button');
|
|
button.click(function() {
|
|
$('#reset_templates_mode').val($(this).data('mode'));
|
|
var dialog = $('#reset_template_confirmation').modal('show');
|
|
var input = dialog.find('input[type="text"]').val('').focus();
|
|
var dialog_form = dialog.find('form');
|
|
dialog_form.submit(function() {
|
|
if (input.val() == dialog.find('.confirm_word').text()) {
|
|
dialog.modal('hide');
|
|
button.prop('disabled', true).text('Working...');
|
|
const id = document.querySelector('input[id="reset_templates_view_id"]').value;
|
|
const redirect = document.querySelector('input[name="redirect"]').value;
|
|
const mode = document.querySelector('input[id="reset_templates_mode"]').value;
|
|
fetch('/website/reset_template', {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
},
|
|
'body': JSON.stringify({'params': {'view_id': id, 'mode': mode}})
|
|
}).then(() => window.location = redirect);
|
|
} else {
|
|
input.val('').focus();
|
|
}
|
|
return false;
|
|
});
|
|
return false;
|
|
});
|
|
});
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div role="dialog" id="reset_template_confirmation" class="modal" tabindex="-1" data-oe-id="8693" data-oe-xpath="/data/xpath[3]/div" data-oe-model="ir.ui.view" data-oe-field="arch">
|
|
<div class="modal-dialog">
|
|
<form role="form">
|
|
<div class="modal-content">
|
|
<header class="modal-header">
|
|
<h4 class="modal-title">Reset templates</h4>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</header>
|
|
<main class="modal-body">
|
|
<div class="row mb0">
|
|
<label for="page-name" class="col-md-12 col-form-label">
|
|
<p>The selected templates will be reset to their factory settings.</p>
|
|
</label>
|
|
</div>
|
|
<div class="row mb0">
|
|
<label for="page-name" class="col-md-9 col-form-label">
|
|
<p>Type '<i class="confirm_word">yes</i>' in the box below if you want to confirm.</p>
|
|
</label>
|
|
<div class="col-md-3 mt16">
|
|
<input type="text" id="page-name" class="form-control" required="required" placeholder="yes"/>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
<footer class="modal-footer">
|
|
<button type="button" class="btn" data-bs-dismiss="modal" aria-label="Cancel">Cancel</button>
|
|
<input type="submit" value="Confirm" class="btn btn-primary"/>
|
|
</footer>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div id="wrapwrap">
|
|
<header data-oe-model="ir.ui.view" data-oe-id="294" data-oe-field="arch" data-oe-xpath="/t[1]/html[1]/body[1]/div[1]/header[1]">
|
|
<div class="navbar navbar-expand-md navbar-light bg-light">
|
|
<div class="container">
|
|
<div class="collapse navbar-collapse navbar-top-collapse">
|
|
<ul class="navbar-nav ms-auto" id="top_menu">
|
|
<li class="nav-item"><a href="/" class="nav-link">Home</a></li>
|
|
<li class="nav-item"><a href="javascript: window.history.back()" class="nav-link">Back</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
<main>
|
|
<div id="error_message" class="oe_structure">
|
|
<h2 class="container mt32">500: Internal Server Error</h2>
|
|
</div>
|
|
<div class="container">
|
|
<div class="alert alert-danger" role="alert">
|
|
<h4 data-oe-model="ir.ui.view" data-oe-id="8693" data-oe-field="arch" data-oe-xpath="/data/xpath[4]/div/div[1]/h4[1]">Template fallback</h4>
|
|
<p>An error occurred while rendering the template <code>fusion_quotations.portal_quotation_list</code>.</p>
|
|
<p data-oe-model="ir.ui.view" data-oe-id="8693" data-oe-field="arch" data-oe-xpath="/data/xpath[4]/div/div[1]/p[2]">If this error is caused by a change of yours in the templates, you have the possibility to reset the template to its <strong>factory settings</strong>.</p>
|
|
<form action="#" method="post" id="reset_templates_form">
|
|
<ul>
|
|
<li>
|
|
<label>
|
|
Equipment Assessments List
|
|
</label>
|
|
</li>
|
|
</ul>
|
|
<input type="hidden" name="redirect" data-oe-model="ir.ui.view" data-oe-id="8693" data-oe-field="arch" data-oe-xpath="/data/xpath[4]/div/div[1]/form[1]/input[1]" value="/my/quotation/builder"/>
|
|
<input type="hidden" id="reset_templates_view_id" name="view_id" data-oe-model="ir.ui.view" data-oe-id="8693" data-oe-field="arch" data-oe-xpath="/data/xpath[4]/div/div[1]/form[1]/input[2]" value="13488"/>
|
|
<input type="hidden" id="reset_templates_mode" name="mode" data-oe-model="ir.ui.view" data-oe-id="8693" data-oe-field="arch" data-oe-xpath="/data/xpath[4]/div/div[1]/form[1]/input[3]"/>
|
|
<button data-mode="soft" class="reset_templates_button btn btn-info" data-oe-model="ir.ui.view" data-oe-id="8693" data-oe-field="arch" data-oe-xpath="/data/xpath[4]/div/div[1]/form[1]/button[1]">Restore previous version (soft reset).</button>
|
|
<button data-mode="hard" class="reset_templates_button btn btn-outline-danger" data-oe-model="ir.ui.view" data-oe-id="8693" data-oe-field="arch" data-oe-xpath="/data/xpath[4]/div/div[1]/form[1]/button[2]">Reset to initial version (hard reset).</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="container accordion mb32 mt32" id="debug_infos">
|
|
<div class="card">
|
|
<h4 class="card-header" data-oe-model="ir.ui.view" data-oe-id="290" data-oe-field="arch" data-oe-xpath="/t[1]/div[1]/div[2]/h4[1]">
|
|
<a data-bs-toggle="collapse" href="#error_qweb">QWeb</a>
|
|
</h4>
|
|
<div id="error_qweb" class="collapse show">
|
|
<div class="card-body">
|
|
<p>
|
|
The error occurred while rendering the template <code>fusion_quotations.portal_quotation_list</code>
|
|
and evaluating the following expression: <code><t t-out="dict(a._fields[\'equipment_type\'].selection).get(a.equipment_type, a.equipment_type or \'\')"/></code>
|
|
</p>
|
|
<pre>Error while rendering the template:
|
|
ValueError: dictionary update sequence element #0 has length 1; 2 is required
|
|
Template: fusion_quotations.portal_quotation_list
|
|
Reference: 13488
|
|
Path: /t/t/div/t[2]/table/tbody/t/tr/td[3]/t
|
|
Element: <t t-out="dict(a._fields[\'equipment_type\'].selection).get(a.equipment_type, a.equipment_type or \'\')"/>
|
|
From: (13488, '/t/t', '<t t-call="portal.portal_layout"/>')
|
|
(13488, '/t/t/div/t[2]/table/tbody/t/tr/td[3]/t', '<t t-out="dict(a._fields[\\\'equipment_type\\\'].selection).get(a.equipment_type, a.equipment_type or \\\'\\\')"/>')</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<h4 class="card-header" data-oe-model="ir.ui.view" data-oe-id="290" data-oe-field="arch" data-oe-xpath="/t[1]/div[1]/div[3]/h4[1]">
|
|
<a data-bs-toggle="collapse" href="#error_traceback">Traceback</a>
|
|
</h4>
|
|
<div id="error_traceback" class="collapse ">
|
|
<div class="card-body">
|
|
<pre id="exception_traceback">Traceback (most recent call last):
|
|
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_qweb.py", line 753, in _render_iterall
|
|
for item in frame.iterator:
|
|
File "<13488>", line 152, in template_fusion_quotations_portal_quotation_list_13488_t_call_0
|
|
ValueError: dictionary update sequence element #0 has length 1; 2 is required
|
|
|
|
The above exception was the direct cause of the following exception:
|
|
|
|
Traceback (most recent call last):
|
|
File "/usr/lib/python3/dist-packages/odoo/http.py", line 2275, in _serve_db
|
|
return service_model.retrying(serve_func, env=self.env)
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 184, in retrying
|
|
result = func()
|
|
^^^^^^
|
|
File "/usr/lib/python3/dist-packages/odoo/http.py", line 2330, in _serve_ir_http
|
|
response = self.dispatcher.dispatch(rule.endpoint, args)
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
File "/usr/lib/python3/dist-packages/odoo/http.py", line 2452, in dispatch
|
|
return self.request.registry['ir.http']._dispatch(endpoint)
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 357, in _dispatch
|
|
result.flatten()
|
|
File "/usr/lib/python3/dist-packages/odoo/tools/facade.py", line 83, in wrap_func
|
|
func(self._wrapped__, *args, **kwargs)
|
|
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1546, in flatten
|
|
self.response.append(self.render())
|
|
^^^^^^^^^^^^^
|
|
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1538, in render
|
|
return request.env["ir.ui.view"]._render_template(self.template, self.qcontext)
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
File "/usr/lib/python3/dist-packages/odoo/addons/website/models/ir_ui_view.py", line 456, in _render_template
|
|
return super()._render_template(template, values=values)
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 2531, in _render_template
|
|
return self.env['ir.qweb']._render(template, values)
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
File "/mnt/enterprise-addons/web_studio/models/ir_qweb.py", line 14, in _render
|
|
return super()._render(template, values, **options)
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_qweb.py", line 725, in _render
|
|
return Markup(''.join(iterator))
|
|
^^^^^^^^^^^^^^^^^
|
|
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_qweb.py", line 753, in _render_iterall
|
|
for item in frame.iterator:
|
|
File "<13488>", line 264, in template_fusion_quotations_portal_quotation_list_13488
|
|
File "<13488>", line 250, in template_fusion_quotations_portal_quotation_list_13488_content
|
|
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_qweb.py", line 616, in __str__
|
|
self.html = ''.join(self.irQweb._render_iterall(
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_qweb.py", line 847, in _render_iterall
|
|
raise QWebError(qweb_error_info) from error
|
|
odoo.addons.base.models.ir_qweb.QWebError: Error while rendering the template:
|
|
ValueError: dictionary update sequence element #0 has length 1; 2 is required
|
|
Template: fusion_quotations.portal_quotation_list
|
|
Reference: 13488
|
|
Path: /t/t/div/t[2]/table/tbody/t/tr/td[3]/t
|
|
Element: <t t-out="dict(a._fields[\'equipment_type\'].selection).get(a.equipment_type, a.equipment_type or \'\')"/>
|
|
From: (13488, '/t/t', '<t t-call="portal.portal_layout"/>')
|
|
(13488, '/t/t/div/t[2]/table/tbody/t/tr/td[3]/t', '<t t-out="dict(a._fields[\\\'equipment_type\\\'].selection).get(a.equipment_type, a.equipment_type or \\\'\\\')"/>')
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
</body>
|
|
</html> |