inventree / InvenTree

Open Source Inventory Management System
https://docs.inventree.org
MIT License
4.19k stars 754 forks source link

[BUG] Error on loading Build Order #16 in demo dataset (TemplateDoesNotExist: expand_rows.html) #4411

Closed simonkuehling closed 1 year ago

simonkuehling commented 1 year ago

Please verify that this bug has NOT been raised before.

Describe the bug*

When opening Build Order 16 on the demo server I get an error:

Bildschirmfoto vom 2023-02-24 20-02-02

I can reproduce the same locally on my docker development setup - the traceback is included below

Steps to Reproduce

Open https://demo.inventree.org/build/16/

Expected behaviour

no error ;-)

Deployment Method

Version Information

Version Information:

InvenTree-Version: 0.11.0 dev Django Version: 3.2.18 Commit Hash: d65957a5f Commit Date: 2023-02-24 Database: postgresql Debug-Mode: True Deployed using Docker: True Active plugins: [{'name': 'InvenTreeBarcode', 'slug': 'inventreebarcode', 'version': '2.0.0'}, {'name': 'InvenTreeCoreNotificationsPlugin', 'slug': 'inventreecorenotificationsplugin', 'version': '1.0.0'}]

Relevant log output

Environment:

Request Method: GET
Request URL: http://localhost:8000/build/16/

Django Version: 3.2.18
Python Version: 3.9.16
Installed Applications:
['django.contrib.admin',
 'build.apps.BuildConfig',
 'common.apps.CommonConfig',
 'company.apps.CompanyConfig',
 'label.apps.LabelConfig',
 'order.apps.OrderConfig',
 'part.apps.PartConfig',
 'report.apps.ReportConfig',
 'stock.apps.StockConfig',
 'users.apps.UsersConfig',
 'plugin.apps.PluginAppConfig',
 'InvenTree.apps.InvenTreeConfig',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'user_sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.sites',
 'maintenance_mode',
 'django_filters',
 'rest_framework',
 'rest_framework.authtoken',
 'corsheaders',
 'crispy_forms',
 'import_export',
 'django_cleanup.apps.CleanupConfig',
 'mptt',
 'markdownify',
 'djmoney',
 'djmoney.contrib.exchange',
 'error_report',
 'django_q',
 'formtools',
 'dbbackup',
 'allauth',
 'allauth.account',
 'allauth.socialaccount',
 'django_otp',
 'django_otp.plugins.otp_totp',
 'django_otp.plugins.otp_static',
 'allauth_2fa',
 'django_ical',
 'sslserver']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'x_forwarded_for.middleware.XForwardedForMiddleware',
 'user_sessions.middleware.SessionMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'corsheaders.middleware.CorsMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'InvenTree.middleware.InvenTreeRemoteUserMiddleware',
 'django_otp.middleware.OTPMiddleware',
 'InvenTree.middleware.CustomAllauthTwoFactorMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'InvenTree.middleware.AuthRequiredMiddleware',
 'InvenTree.middleware.Check2FAMiddleware',
 'maintenance_mode.middleware.MaintenanceModeMiddleware',
 'InvenTree.middleware.InvenTreeExceptionProcessor']

Template loader postmortem
Django tried loading these templates, in this order:

Using engine django:
    This engine did not provide a list of tried templates.

Template error:
In template /home/inventree/InvenTree/templates/base.html, error at line 0
   expand_rows.html
   1 : {% load static %}
   2 : {% load i18n %}
   3 : {% load inventree_extras %}
   4 : 
   5 : {% plugins_enabled as plugins_enabled %}
   6 : {% settings_value 'BARCODE_ENABLE' as barcodes %}
   7 : {% settings_value 'REPORT_ENABLE_TEST_REPORT' as test_report_enabled %}
   8 : {% settings_value "REPORT_ENABLE" as report_enabled %}
   9 : {% settings_value "SERVER_RESTART_REQUIRED" as server_restart_required %}
   10 : {% settings_value "LABEL_ENABLE" as labels_enabled %}

Traceback (most recent call last):
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/backends/django.py", line 61, in render
    return self.template.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 170, in render
    return self._render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 162, in _render
    return self.nodelist.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 162, in _render
    return self.nodelist.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 162, in _render
    return self.nodelist.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 162, in _render
    return self.nodelist.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/defaulttags.py", line 315, in render
    return nodelist.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/defaulttags.py", line 315, in render
    return nodelist.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/loader_tags.py", line 183, in render
    template = context.template.engine.select_template(template_name)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/engine.py", line 180, in select_template
    raise TemplateDoesNotExist(', '.join(not_found))

The above exception (expand_rows.html) was the direct cause of the following exception:
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/core/handlers/base.py", line 204, in _get_response
    response = response.render()
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/response.py", line 105, in render
    self.content = self.rendered_content
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/response.py", line 83, in rendered_content
    return template.render(context, self._request)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/backends/django.py", line 63, in render
    reraise(exc, self.backend)
  File "/home/inventree/data/env/lib/python3.9/site-packages/django/template/backends/django.py", line 84, in reraise
    raise new from exc

Exception Type: TemplateDoesNotExist at /build/16/
Exception Value: expand_rows.html
simonkuehling commented 1 year ago

looks like the culprit is this block in the template:

https://github.com/inventree/InvenTree/blob/8b7e41baf9f3ee3e7475384a012069a32841a137/InvenTree/build/templates/build/detail.html#L284-L287

can't find both of the files - what would they do if they were available?

SchrodingersGat commented 1 year ago

@simonkuehling I removed those templates recently, looks like I didn't do a good enough job expunging all references. I'll have a fix in ASAP