Login or create account to continue.
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>