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

Include translation files for dataTables #303

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

phw
Copy link
Member

@phw phw commented Jan 20, 2024

Summary

  • This is a…
    • Bug fix
    • Feature addition
    • Refactoring
    • Minor / simple change (like a typo)
    • Other
  • Describe this change in 1-2 sentences:

Problem

This adds translations for the dataTable component added to the plugins page in #298 by @navi-prem . See https://datatables.net/plug-ins/i18n/

@phw phw requested a review from zas January 20, 2024 17:48
@phw
Copy link
Member Author

phw commented Jan 20, 2024

Tests need fixing. Will do so later

@navi-prem
Copy link
Contributor

Tests need fixing. Will do so later

@phw Could you please provide insight into why the tests for this PR have been failing? As far as I understand, this PR simply adds internationalization (i18n) to the DataTables, as previously implemented (refer to #298).

Is the issue with the test file, as that is what i could infer from the following screenshot.
image

@phw
Copy link
Member Author

phw commented Feb 13, 2024

@navi-prem It fails because the active_language language variable is not available for the template in test. In the real system active_language gets set globally in

@app.context_processor
def inject_language_var():
return {
'active_language': get_locale(),
}
and is hence available in all templates.

I haven't yet checked how we can replicate this in the tests. If you want to help you are very welcomed to investigate.

Below is the relevant test output

#18 5.761 _______________________ ViewsTestCase.test_plugins_root ________________________
#18 5.761 
#18 5.761 self = <website.frontend.views.plugins_test.ViewsTestCase testMethod=test_plugins_root>
#18 5.761 
#18 5.761     def test_plugins_root(self):
#18 5.761         "Test /plugins/"
#18 5.761 >       response = self.client.get("/plugins/")
#18 5.761 
#18 5.761 website/frontend/views/plugins_test.py:14: 
#18 5.761 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
#18 5.761 /usr/local/lib/python3.9/site-packages/werkzeug/test.py:1160: in get
#18 5.761     return self.open(*args, **kw)
#18 5.761 /usr/local/lib/python3.9/site-packages/flask/testing.py:232: in open
#18 5.761     response = super().open(
#18 5.761 /usr/local/lib/python3.9/site-packages/werkzeug/test.py:1114: in open
#18 5.761     response = self.run_wsgi_app(request.environ, buffered=buffered)
#18 5.761 /usr/local/lib/python3.9/site-packages/werkzeug/test.py:986: in run_wsgi_app
#18 5.761     rv = run_wsgi_app(self.application, environ, buffered=buffered)
#18 5.761 /usr/local/lib/python3.9/site-packages/werkzeug/test.py:1262: in run_wsgi_app
#18 5.761     app_rv = app(environ, start_response)
#18 5.761 /usr/local/lib/python3.9/site-packages/flask/app.py:1478: in __call__
#18 5.761     return self.wsgi_app(environ, start_response)
#18 5.761 /usr/local/lib/python3.9/site-packages/flask/app.py:1458: in wsgi_app
#18 5.761     response = self.handle_exception(e)
#18 5.761 /usr/local/lib/python3.9/site-packages/flask/app.py:1455: in wsgi_app
#18 5.761     response = self.full_dispatch_request()
#18 5.761 /usr/local/lib/python3.9/site-packages/flask/app.py:869: in full_dispatch_request
#18 5.761     rv = self.handle_user_exception(e)
#18 5.761 /usr/local/lib/python3.9/site-packages/flask/app.py:867: in full_dispatch_request
#18 5.761     rv = self.dispatch_request()
#18 5.761 /usr/local/lib/python3.9/site-packages/flask/app.py:852: in dispatch_request
#18 5.761     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
#18 5.761 website/frontend/views/plugins.py:20: in show_plugins
#18 5.761     return render_template('plugins.html', all_plugins=all_plugins)
#18 5.761 /usr/local/lib/python3.9/site-packages/flask/templating.py:152: in render_template
#18 5.761     return _render(app, template, context)
#18 5.761 /usr/local/lib/python3.9/site-packages/flask/templating.py:133: in _render
#18 5.761     rv = template.render(context)
#18 5.761 /usr/local/lib/python3.9/site-packages/jinja2/environment.py:1301: in render
#18 5.761     self.environment.handle_exception()
#18 5.761 /usr/local/lib/python3.9/site-packages/jinja2/environment.py:936: in handle_exception
#18 5.761     raise rewrite_traceback_stack(source=source)
#18 5.761 website/frontend/templates/plugins.html:29: in top-level template code
#18 5.761     {% set page_title =  _("Available Plugins") %}
#18 5.761 website/frontend/templates/base.html:195: in top-level template code
#18 5.761     {%- block scripts %}
#18 5.761 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
#18 5.761 
#18 5.761 >   url: "{{ url_for('static', filename='js/dataTables.' + active_language + '.json') }}"
#18 5.761 E   TypeError: can only concatenate str (not "NoneType") to str
#18 5.761 
#18 5.761 website/frontend/templates/plugins.html:16: TypeError

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

Successfully merging this pull request may close these issues.

2 participants