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

There are a number of programming challenges that aren't linked to lessons #2057

Open
Yamboy1 opened this issue Dec 6, 2022 · 0 comments
Open

Comments

@Yamboy1
Copy link
Contributor

Yamboy1 commented Dec 6, 2022

There are a number of programming challenges that aren't linked to lessons. These are only accessible if you know the name of the challenge, and search for it through the websites search functionality. The majority of them are soley based on the original Scratch interface, and will work fine if you try and view the challenges. However, a number of them also have python questions, which means it will use the newer Plugging It In interface. In this interface, questions are inherently linked to lessons, and so when trying to view one of these challenges, Django will crash with a NoReverseMatch error.

An example error message
Environment:


Request Method: GET
Request URL: http://cs-unplugged.localhost/en/topics/kidbots/programming/add-in-parts-1-digit-number/

Django Version: 3.2.16
Python Version: 3.9.5
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.postgres',
 'django.contrib.humanize',
 'django.contrib.admin',
 'general.apps.GeneralConfig',
 'topics.apps.TopicsConfig',
 'plugging_it_in.apps.PluggingitinConfig',
 'resources.apps.ResourcesConfig',
 'search.apps.SearchConfig',
 'classic.apps.ClassicConfig',
 'at_home.apps.AtHomeConfig',
 'moocs.apps.MoocsConfig',
 'at_a_distance.apps.AtADistanceConfig',
 'corsheaders',
 'django_bootstrap_breadcrumbs',
 'modeltranslation',
 'bidiutils',
 'debug_toolbar',
 'django_extensions']
Installed Middleware:
['corsheaders.middleware.CorsMiddleware',
 'django.middleware.security.SecurityMiddleware',
 'whitenoise.middleware.WhiteNoiseMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'debug_toolbar.middleware.DebugToolbarMiddleware']


Template error:
In template /app/templates/core.html, error at line 111
   Reverse for 'programming_challenge' with arguments '('kidbots', '', 'add-in-parts-1-digit-number', 'python')' not found. 1 pattern(s) tried: ['en/plugging\\-it\\-in/(?P<topic_slug>[-\\w]+)/(?P<lesson_slug>[-\\w]+)/(?P<challenge_slug>[-\\w]+)/(?P<language_slug>[-\\w]+)/$']
   101 :             {% endblocktrans %}
   102 :           </p>
   103 :         </div>
   104 :       </div>
   105 : 
   106 :       <div class="container py-3">
   107 :         <div class="row justify-content-center mt-4">
   108 :           <div class="col-12 col-md-6">
   109 :             <p>
   110 :               {% blocktrans trimmed %}
   111 :               The primary goal of the Unplugged project is  to promote Computer Science (and computing in general) to young people as an interesting, engaging, and int ellectually stimulating discipline.
   112 :               {% endblocktrans %}
   113 :             </p>
   114 :             <p>
   115 :               {% url 'general:principles' as principles_url %}
   116 :               {% blocktrans trimmed %}
   117 :               Read more about <a href="{{ principles_url }}">our principles here</a>.
   118 :               {% endblocktrans %}
   119 :             </p>
   120 :           </div>
   121 : 


Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.9/site-packages/django/core/handlers/base.py", line 204, in _get_response
    response = response.render()
  File "/usr/local/lib/python3.9/site-packages/django/template/response.py", line 105, in render
    self.content = self.rendered_content
  File "/usr/local/lib/python3.9/site-packages/django/template/response.py", line 83, in rendered_content
    return template.render(context, self._request)
  File "/usr/local/lib/python3.9/site-packages/django/template/backends/django.py", line 61, in render
    return self.template.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 170, in render
    return self._render(context)
  File "/usr/local/lib/python3.9/site-packages/django/test/utils.py", line 100, in instrumented_test_render
    return self.nodelist.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/usr/local/lib/python3.9/site-packages/django/test/utils.py", line 100, in instrumented_test_render
    return self.nodelist.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/usr/local/lib/python3.9/site-packages/django/test/utils.py", line 100, in instrumented_test_render
    return self.nodelist.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/defaulttags.py", line 315, in render
    return nodelist.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/defaulttags.py", line 214, in render
    nodelist.append(node.render_annotated(context))
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/defaulttags.py", line 315, in render
    return nodelist.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/defaulttags.py", line 315, in render
    return nodelist.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/defaulttags.py", line 519, in render
    return self.nodelist.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.9/site-packages/django/template/defaulttags.py", line 449, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
  File "/usr/local/lib/python3.9/site-packages/django/urls/base.py", line 86, in reverse
    return resolver._reverse_with_prefix(view, prefix, *args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/django/urls/resolvers.py", line 698, in _reverse_with_prefix
    raise NoReverseMatch(msg)

Exception Type: NoReverseMatch at /en/topics/kidbots/programming/add-in-parts-1-digit-number/
Exception Value: Reverse for 'programming_challenge' with arguments '('kidbots', '', 'add-in-parts-1-digit-number', 'python')' not found. 1 pattern(s) tried: ['en/plugging\\-it\\-in/(?P<topic_slug>[-\\w]+)/(?P<lesson_slug>[-\\w]+)/(?P<challenge_slug>[-\\w]+)/(?P<language_slug>[-\\w]+)/$']

This isn't a major priority, as, for the most part, you need to know what you're looking for to find them. However, it is definitely a problem to deal with at some point. I've put a list of the affected challenges here. I feel like I may have missed a couple, but this should be the majority of them.

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

No branches or pull requests

1 participant