Upgrade palm to quince error

I upgrade version palm to quince use command

pip install --upgrade "tutor[full]==v17.0.0"
tutor --version
tutor local images build openedx

tutor local images build openedx ->> show 27 warnings found

 => exporting to image                                                                                                                                                                                      0.0s
 => => exporting layers                                                                                                                                                                                     0.0s
 => => writing image sha256:65edf04fcfd3e8c940a0c77964ae1a3e47d1a611da7d5aedf92f0d7c87887feb                                                                                                                0.0s
 => => naming to docker.io/overhangio/openedx:17.0.0                                                                                                                                                        0.0s

 27 warnings found (use --debug to expand):
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 3)
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 15)
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 38)
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 56)
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 63)
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 72)
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 111)
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 130)
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 239)
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 278)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 11)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 28)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 73)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 74)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 75)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 112)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 158)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 159)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 173)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 174)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 175)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 194)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 205)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 206)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 231)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 232)
 - JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 287)
tutor  local upgrade --from=palm
tutor  local launch

I use custom theme
host show status 500

logs

tutor_local-lms-1  | During handling of the above exception, another exception occurred:
tutor_local-lms-1  |
tutor_local-lms-1  | Traceback (most recent call last):
tutor_local-lms-1  |   File "/openedx/venv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 55, in inner
tutor_local-lms-1  |     response = get_response(request)
tutor_local-lms-1  |   File "/openedx/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 197, in _get_response
tutor_local-lms-1  |     response = wrapped_callback(request, *callback_args, **callback_kwargs)
tutor_local-lms-1  |   File "/openedx/venv/lib/python3.8/site-packages/django/utils/decorators.py", line 134, in _wrapper_view
tutor_local-lms-1  |     response = view_func(request, *args, **kwargs)
tutor_local-lms-1  |   File "/openedx/edx-platform/common/djangoapps/util/cache.py", line 83, in wrapper
tutor_local-lms-1  |     response = view_func(request, *args, **kwargs)
tutor_local-lms-1  |   File "/openedx/edx-platform/./lms/djangoapps/branding/views.py", line 70, in index
tutor_local-lms-1  |     return student_views.index(request, user=request.user)
tutor_local-lms-1  |   File "/openedx/edx-platform/common/djangoapps/student/views/management.py", line 171, in index
tutor_local-lms-1  |     return render_to_response('index.html', context)
tutor_local-lms-1  |   File "/openedx/edx-platform/common/djangoapps/edxmako/shortcuts.py", line 188, in render_to_response
tutor_local-lms-1  |     return HttpResponse(render_to_string(template_name, dictionary, namespace, request), **kwargs)
tutor_local-lms-1  |   File "/openedx/edx-platform/common/djangoapps/edxmako/shortcuts.py", line 178, in render_to_string
tutor_local-lms-1  |     return template.render(dictionary, request)
tutor_local-lms-1  |   File "/openedx/edx-platform/common/djangoapps/edxmako/template.py", line 82, in render
tutor_local-lms-1  |     return self.mako_template.render_unicode(**context_dictionary)
tutor_local-lms-1  |   File "/openedx/venv/lib/python3.8/site-packages/mako/template.py", line 444, in render_unicode
tutor_local-lms-1  |     return runtime._render(
tutor_local-lms-1  |   File "/openedx/venv/lib/python3.8/site-packages/mako/runtime.py", line 874, in _render
tutor_local-lms-1  |     _render_context(
tutor_local-lms-1  |   File "/openedx/venv/lib/python3.8/site-packages/mako/runtime.py", line 916, in _render_context
tutor_local-lms-1  |     _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
tutor_local-lms-1  |   File "/openedx/venv/lib/python3.8/site-packages/mako/runtime.py", line 943, in _exec_template
tutor_local-lms-1  |     callable_(context, *args, **kwargs)
tutor_local-lms-1  |   File "/tmp/mako_lms/1ff981c2157d500713c1ce6bf7fdbce2/main.html.py", line 385, in render_body
tutor_local-lms-1  |     __M_writer(filters.html_escape(filters.decode.utf8(next.body())))
tutor_local-lms-1  |   File "/tmp/mako_lms/1ff981c2157d500713c1ce6bf7fdbce2/index.html.py", line 59, in render_body
tutor_local-lms-1  |     runtime._include_file(context, 'index_overlay.html', _template_uri)
tutor_local-lms-1  |   File "/openedx/venv/lib/python3.8/site-packages/mako/runtime.py", line 780, in _include_file
tutor_local-lms-1  |     template = _lookup_template(context, uri, calling_uri)
tutor_local-lms-1  |   File "/openedx/venv/lib/python3.8/site-packages/mako/runtime.py", line 837, in _lookup_template
tutor_local-lms-1  |     return lookup.get_template(uri)
tutor_local-lms-1  |   File "/openedx/edx-platform/common/djangoapps/edxmako/paths.py", line 99, in get_template
tutor_local-lms-1  |     template = super().get_template(get_template_path_with_theme(uri))
tutor_local-lms-1  |   File "/openedx/venv/lib/python3.8/site-packages/mako/lookup.py", line 252, in get_template
tutor_local-lms-1  |     return self._load(srcfile, uri)
tutor_local-lms-1  |   File "/openedx/venv/lib/python3.8/site-packages/mako/lookup.py", line 313, in _load
tutor_local-lms-1  |     self._collection[uri] = template = Template(
tutor_local-lms-1  |   File "/openedx/venv/lib/python3.8/site-packages/mako/template.py", line 317, in __init__
tutor_local-lms-1  |     module = self._compile_from_file(path, filename)
tutor_local-lms-1  |   File "/openedx/venv/lib/python3.8/site-packages/mako/template.py", line 381, in _compile_from_file
tutor_local-lms-1  |     module = compat.load_module(self.module_id, path)
tutor_local-lms-1  |   File "/openedx/venv/lib/python3.8/site-packages/mako/compat.py", line 53, in load_module
tutor_local-lms-1  |     spec.loader.exec_module(module)
tutor_local-lms-1  |   File "<frozen importlib._bootstrap_external>", line 843, in exec_module
tutor_local-lms-1  |   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
tutor_local-lms-1  |   File "/tmp/mako_lms/1ff981c2157d500713c1ce6bf7fdbce2/mytheme/lms/templates/index_overlay.html.py", line 17, in <module>
tutor_local-lms-1  |     from django.utils.translation import ugettext as _
tutor_local-lms-1  | ImportError: cannot import name 'ugettext' from 'django.utils.translation' (/openedx/venv/lib/python3.8/site-packages/django/utils/translation/__init__.py)
tutor_local-lms-1  | [pid: 7|app: 0|req: 7/19] 172.18.0.2 () {64 vars in 1392 bytes} [Tue Nov 12 04:13:26 2024] GET / => generated 8883 bytes in 261 msecs (HTTP/1.1 500) 6 headers in 334 bytes (1 switches on core 0)

How to fix?

Hi @choltha ,

based on your below error log, there is some issue with theme,
probably you need update your theme
replace the ugettext with gettext in theme template files

below is the exact error
ImportError: cannot import name 'ugettext' from 'django.utils.translation'

from django.utils.translation import ugettext as _
replace above with
from django.utils.translation import gettext as _

Kiran

Thank you @kiran_chauhan