Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error after posting change comment #318

Open
jasonpagetas opened this issue Sep 25, 2024 · 3 comments
Open

Error after posting change comment #318

jasonpagetas opened this issue Sep 25, 2024 · 3 comments

Comments

@jasonpagetas
Copy link
Collaborator

After posting a change comment via the API I can no longer navigate to the Change, instead I am presented with an error page stating class not found


Environment:


Request Method: GET
Request URL: http://127.0.0.1:8002/itim/ticket/change/52

Django Version: 5.0.8
Python Version: 3.11.2
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'rest_framework',
 'rest_framework_json_api',
 'social_django',
 'django_celery_results',
 'core.apps.CoreConfig',
 'access.apps.AccessConfig',
 'itam.apps.ItamConfig',
 'itim.apps.ItimConfig',
 'assistance.apps.AssistanceConfig',
 'settings.apps.SettingsConfig',
 'drf_spectacular',
 'drf_spectacular_sidecar',
 'config_management.apps.ConfigManagementConfig',
 'project_management.apps.ProjectManagementConfig',
 'api.apps.ApiConfig',
 'debug_toolbar']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'core.middleware.get_request.RequestMiddleware',
 'debug_toolbar.middleware.DebugToolbarMiddleware']


Template error:
In template /home/sysadmin/git-projects/centurion_erp/app/core/templates/core/ticket/comment/comment.html.j2, error at line 96
   no lexer for alias 'apt' found
   86 :         {% endif %}
   87 :         <fieldset>
   88 :             <label>Category</label>
   89 :             <span>{{ comment.category }}</span>
   90 :         </fieldset>
   91 :     </div>
   92 : 
   93 :     <hr />
   94 : 
   95 :     <div id="markdown" style="margin: 15px; padding: 10px; background-color: #fff;">
   96 :          {{ comment.body | markdown | safe }} 
   97 :     </div>
   98 : 
   99 :     <hr />
   100 : 
   101 :     <div>
   102 :         {% if comment.get_comment_type_display == 'Task' or comment.get_comment_type_display == 'Notification' %}
   103 :         <fieldset>
   104 :             <label>Planned Start</label>
   105 :             <span>{{ comment.planned_start_date }}</span>
   106 :         </fieldset>


Traceback (most recent call last):
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/core/handlers/base.py", line 220, in _get_response
    response = response.render()
               ^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/response.py", line 114, in render
    self.content = self.rendered_content
                   ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/response.py", line 92, in rendered_content
    return template.render(context, self._request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/backends/django.py", line 61, in render
    return self.template.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 171, in render
    return self._render(context)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/loader_tags.py", line 159, in render
    return compiled_parent._render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/loader_tags.py", line 65, in render
    result = block.nodelist.render(context)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/loader_tags.py", line 65, in render
    result = block.nodelist.render(context)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/loader_tags.py", line 210, in render
    return template.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 173, in render
    return self._render(context)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/defaulttags.py", line 242, in render
    nodelist.append(node.render_annotated(context))
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/loader_tags.py", line 210, in render
    return template.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 173, in render
    return self._render(context)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/test/utils.py", line 111, in instrumented_test_render
    return self.nodelist.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/defaulttags.py", line 326, in render
    return nodelist.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/defaulttags.py", line 326, in render
    return nodelist.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 1059, in render
    output = self.filter_expression.resolve(context)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/base.py", line 737, in resolve
    new_obj = func(obj, *arg_vals)
              ^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/django/template/defaultfilters.py", line 49, in _dec
    result = func(first, *args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sysadmin/git-projects/centurion_erp/app/core/templatetags/markdown.py", line 18, in markdown
    return markdown.render_markdown(value)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sysadmin/git-projects/centurion_erp/app/core/lib/markdown.py", line 73, in render_markdown
    return md.render(markdown_text)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/markdown_it/main.py", line 291, in render
    return self.renderer.render(self.parse(src, env), self.options, env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/markdown_it/renderer.py", line 84, in render
    result += self.rules[token.type](tokens, i, options, env)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/markdown_it/renderer.py", line 260, in fence
    highlighted = options.highlight(
                  
  File "/home/sysadmin/git-projects/centurion_erp/app/core/lib/markdown.py", line 31, in highlight_func
    lexer = get_lexer_by_name(lang)
            ^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/centurion_erp/lib/python3.11/site-packages/pygments/lexers/__init__.py", line 132, in get_lexer_by_name
    raise ClassNotFound(f'no lexer for alias {_alias!r} found')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Exception Type: ClassNotFound at /itim/ticket/change/52
Exception Value: no lexer for alias 'apt' found

@jon-nfc
Copy link
Member

jon-nfc commented Sep 25, 2024

require the tasks comment body from the DB. post it on the internal Merge request.

I suspect that there is still an issue with the HTML to Markdown conversion

@jon-nfc
Copy link
Member

jon-nfc commented Sep 29, 2024

require the tasks comment body from the DB. post it on the internal Merge request.

I suspect that there is still an issue with the HTML to Markdown conversion

bump

@jon-nfc
Copy link
Member

jon-nfc commented Oct 18, 2024

bump

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Awaiting Feedback
Development

No branches or pull requests

2 participants