Traceback (most recent call last):
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/utils/jinja.py", line 80, in render_template
return get_jenv().from_string(template).render(context)
File "/home/frappe/frappe-jhaudio/env/lib/python3.6/site-packages/jinja2/asyncsupport.py", line 76, in render
return original_render(self, *args, **kwargs)
File "/home/frappe/frappe-jhaudio/env/lib/python3.6/site-packages/jinja2/environment.py", line 1008, in render
return self.environment.handle_exception(exc_info, True)
File "/home/frappe/frappe-jhaudio/env/lib/python3.6/site-packages/jinja2/environment.py", line 780, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/frappe/frappe-jhaudio/env/lib/python3.6/site-packages/jinja2/_compat.py", line 37, in reraise
raise value.with_traceback(tb)
File "<template>", line 3, in top-level template code
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/./templates/web.html", line 1, in top-level template code
{% extends base_template_path %}
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/./templates/base.html", line 68, in top-level template code
{% block content %}
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/./templates/web.html", line 60, in block "content"
{{ main_content() }}
File "/home/frappe/frappe-jhaudio/env/lib/python3.6/site-packages/jinja2/sandbox.py", line 440, in call
return __context.call(__obj, *args, **kwargs)
File "/home/frappe/frappe-jhaudio/env/lib/python3.6/site-packages/jinja2/runtime.py", line 574, in _invoke
rv = self._func(*arguments)
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/./templates/web.html", line 15, in template
{% block page_container %}
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/./templates/web.html", line 30, in block "page_container"
{%- block page_content -%}{%- endblock -%}
File "<template>", line 25, in block "page_content"
File "/home/frappe/frappe-jhaudio/env/lib/python3.6/site-packages/jinja2/sandbox.py", line 387, in getattr
value = getattr(obj, attribute)
jinja2.exceptions.UndefinedError: 'selected_iem' is undefined
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/website/render.py", line 50, in render
data = render_page_by_language(path)
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/website/render.py", line 177, in render_page_by_language
return render_page(path)
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/website/render.py", line 193, in render_page
return build(path)
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/website/render.py", line 200, in build
return build_page(path)
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/website/render.py", line 218, in build_page
html = frappe.render_template(context.source, context)
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/utils/jinja.py", line 82, in render_template
throw(title="Jinja Template Error", msg="<pre>{template}</pre><pre>{tb}</pre>".format(template=template, tb=get_traceback()))
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/__init__.py", line 380, in throw
msgprint(msg, raise_exception=exc, title=title, indicator='red', is_minimizable=is_minimizable)
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/__init__.py", line 359, in msgprint
_raise_exception()
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/__init__.py", line 319, in _raise_exception
raise raise_exception(msg)
frappe.exceptions.ValidationError: <pre>{% extends "templates/web.html" %}
{% from "templates/includes/designer/macros.html" import swatch_gallery, swatch_gallery_color, image_controls %}
{% from "templates/includes/designer/personalize.html" import personalize_form, cable_selection, box_selection, lectrosonics_selection %}
{% block title %}3D Designer{% endblock %}
{% block page_content %}
<div class="jha-designer-container">
<div class="canvas-container">
<jha-designer sceneRootUrl="{{ scene_root_url }}" sceneFile="{{ scene_file }}">
</jha-designer>
</div>
{{ image_controls() }}
<div class="form-container">
<div class="btn-group iem-selector">
<button
class="iem"
type="button"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
>
<span class="item" style="background-image: url({{ selected_iem.brand_image }});"></span>
<span class="price">{{ selected_iem.price.formatted_price }}</span>
</button>
<div class="dropdown-menu">
{% for iem in iems %}
<button
class="dropdown-item"
type="button"
data-name="{{ iem.name }}"
data-item-code="{{ iem.item_code }}"
title="{{ iem.item_name }}"
>
<span
class="item"
data-preload="{{ iem.brand_image }}"
style="background-image: url({{ iem.brand_image }});"
></span>
<span class="price">{{ iem.price.formatted_price }}</span>
</button>
{% endfor %}
</div>
</div>
<div class="fancy-form">
<div class="checkbox">
<input type="checkbox" id="same_both_ears" value="enabled"/><label for="same_both_ears">Match options on both ears</label>
</div>
</div>
{% if not disable_shell_options %}
{{ swatch_gallery("Base", "left", designer_config["Shell"], "Left Shell", "Solid", 1) }}
{{ swatch_gallery("Base", "right", designer_config["Shell"], "Right Shell", "Solid", 0) }}
{% endif %}
{% if not disable_faceplate_options %}
{{ swatch_gallery("Face Plate", "left", designer_config["Faceplate"], "Left Face plate", "Solid", 1 if disable_shell_options else 0, False if designer_settings.get("disable_faceplace_no_selection") else True) }}
{{ swatch_gallery("Face Plate", "right", designer_config["Faceplate"], "Right Face plate", "Solid", 0, False if designer_settings.get("disable_faceplace_no_selection") else True) }}
{% endif %}
{% if not disable_art_options %}
{{ swatch_gallery_color("Art", "left", designer_config["Art"], "Left Art", "Logos", 1 if disable_shell_options and disable_faceplate_options else 0, True, disable_upload) }}
{{ swatch_gallery_color("Art", "right", designer_config["Art"], "Right Art", "Logos", 0, True, disable_upload) }}
{% endif %}
{{ box_selection("Case", iems, 1 if disable_shell_options and disable_faceplate_options and disable_art_options else 0) }}
{{ cable_selection("Cable", iems, 1 if disable_shell_options and disable_faceplate_options and disable_art_options else 0) }}
{% if enable_lectrosonics_options %}
{{ lectrosonics_selection("Lectrosonics System", iems, 0 ) }}
{% endif %}
{{ personalize_form('personalize', iem_owners, rush_options ) }}
</div>
</div>
<div class="jha-designer-footer">
<div class="left-col">
{# <div class="light-toggle-container">
<input id="light-toggle" type="checkbox" class="toggle-btn" />
<label for="light-toggle">Lights On</label>
</div> #}
</div>
<div class="right-col">
<div class="price-container">
<div class="price"></div>
</div>
<div class="actions">
<button class="btn btn-primary btn-purchase" id="purchase-button">Purchase</button>
</div>
</div>
</div>
{% endblock %}
{% block footer %}
{% include "templates/includes/popup_login/popup.html" %}
{% endblock %}
{% block script %}
<script src="/assets/jhaudio/js/thirdparty/tweenjs-18.6.4.umd.js"></script>
<script src="/assets/jhaudio/js/plugins/preload.js" type="text/javascript"></script>
<script src="/assets/jhaudio/js/plugins/smoothscroll-polyfill.js"></script>
<script src="/assets/jhaudio/3d/app/jha-designer.js"></script>
<script src="/assets/js/jhaudio-designer.js?__v=1001"></script>
<script type="text/javascript">
window.designer_config = {{ designer_config|tojson }};
window.iems = {{ iems|tojson }};
window.designer_settings = {{ designer_settings|tojson }};
frappe.ready(() => {
$(function() {
setTimeout(() => {
const designer = new jhaudio.designer.Controller(
$('.jha-designer-container'),
{{ designer_config|tojson }},
{{ iems|tojson }},
"{{ selected_iem.item_code }}",
{{ iem_owners|tojson }},
{{ rush_items|tojson }},
{{ designer_settings|tojson }},
{{ designer_state|tojson }},
{{ edit_id|tojson }}
);
}, 10);
});
});
$('[data-preload]').preload('data-preload');
</script>
{% endblock %}
{% block style %}
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"
/>
<link type="text/css" rel="stylesheet" href="/assets/css/jhaudio-designer.css?__v=1001">
{% endblock %}
</pre><pre>Traceback (most recent call last):
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/utils/jinja.py", line 80, in render_template
return get_jenv().from_string(template).render(context)
File "/home/frappe/frappe-jhaudio/env/lib/python3.6/site-packages/jinja2/asyncsupport.py", line 76, in render
return original_render(self, *args, **kwargs)
File "/home/frappe/frappe-jhaudio/env/lib/python3.6/site-packages/jinja2/environment.py", line 1008, in render
return self.environment.handle_exception(exc_info, True)
File "/home/frappe/frappe-jhaudio/env/lib/python3.6/site-packages/jinja2/environment.py", line 780, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/frappe/frappe-jhaudio/env/lib/python3.6/site-packages/jinja2/_compat.py", line 37, in reraise
raise value.with_traceback(tb)
File "<template>", line 3, in top-level template code
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/./templates/web.html", line 1, in top-level template code
{% extends base_template_path %}
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/./templates/base.html", line 68, in top-level template code
{% block content %}
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/./templates/web.html", line 60, in block "content"
{{ main_content() }}
File "/home/frappe/frappe-jhaudio/env/lib/python3.6/site-packages/jinja2/sandbox.py", line 440, in call
return __context.call(__obj, *args, **kwargs)
File "/home/frappe/frappe-jhaudio/env/lib/python3.6/site-packages/jinja2/runtime.py", line 574, in _invoke
rv = self._func(*arguments)
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/./templates/web.html", line 15, in template
{% block page_container %}
File "/home/frappe/frappe-jhaudio/apps/frappe/frappe/./templates/web.html", line 30, in block "page_container"
{%- block page_content -%}{%- endblock -%}
File "<template>", line 25, in block "page_content"
File "/home/frappe/frappe-jhaudio/env/lib/python3.6/site-packages/jinja2/sandbox.py", line 387, in getattr
value = getattr(obj, attribute)
jinja2.exceptions.UndefinedError: 'selected_iem' is undefined
</pre>