Recent version of ecommerce

I was recently looking at the recent master of ecommerce with Python 3 in order to check something with the SDK of our payment processor.

I was able to install it, migrate the database, check Oscar (/dashboard) but I do not have any views when I try to access the Course Administration Tool (/courses) or the coupons (/coupons).

Any ideas why it is not displaying the courses or the coupons? I can clearly see them if I go through the dashboard interface.

I do not necessarily want to wait until the first beta or release candidate of Juniper before encountering problems.

Thanks for your help.

And when on the /courses page, I don’t even see a “Create Course” bouton anymore…

I am progressing.

The version of nodejs on Ubuntu 16.04 is out of date. I had to install a more recent version following the instructions available at https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04

I had previously replaced “npm ci” command in the Makefile with “npm install” which was used in the past with ecommerce. Now, I am using “npm ci” and I definitely made some progress because the coupons page is accessible.

I still have an issue with the courses page but it is of a different nature now (it is a get_oauth_access_token issue now).

I guess the documentation for ecommerce needs to be updated to make sure a recent version of nodejs needs to be installed under Ubuntu 16.04.

While reading the ecommerce documentation, I discovered that the oauth2 client needed to be changed in order to use admin/oauth2_provider/application/ instead of admin/oauth2/client/

After following the instructions on https://edx-ecommerce.readthedocs.io/en/latest/install_ecommerce.html#configure-oauth and https://edx-ecommerce.readthedocs.io/en/latest/install_ecommerce.html#configure-a-site-partner-and-site-configuration I am able to launch the ecommerce version under Python 3.

Unfortunately, I am redirected to the oauth2 provider but after authenticating I end up with the following error messages:

Dec 5 11:58:16 ip-10-0-0-71 [service_variant=lms][root][env:sandbox] ERROR [ip-10-0-0-71 25718] [signals.py:21] - Uncaught exception from None
Traceback (most recent call last):
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/exception.py”, line 41, in inner
response = get_response(request)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py”, line 249, in _legacy_get_response
response = self._get_response(request)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py”, line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py”, line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/utils/decorators.py”, line 185, in inner
return func(*args, **kwargs)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/views/decorators/csrf.py”, line 58, in wrapped_view
return view_func(*args, **kwargs)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/views/generic/base.py”, line 68, in view
return self.dispatch(request, *args, **kwargs)
File “/edx/app/edxapp/edx-platform/openedx/core/djangoapps/oauth_dispatch/views.py”, line 55, in dispatch
return view(request, *args, **kwargs)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/views/generic/base.py”, line 68, in view
return self.dispatch(request, *args, **kwargs)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/oauth2_provider/views/base.py”, line 37, in dispatch
return super(BaseAuthorizationView, self).dispatch(request, *args, **kwargs)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/contrib/auth/mixins.py”, line 56, in dispatch
return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/views/generic/base.py”, line 88, in dispatch
return handler(request, *args, **kwargs)
File “/edx/app/edxapp/edx-platform/openedx/core/djangoapps/oauth_dispatch/dot_overrides/views.py”, line 97, in get
return self.error_response(error)
TypeError: error_response() takes exactly 3 arguments (2 given)
Dec 5 11:58:16 ip-10-0-0-71 [service_variant=lms][django.request][env:sandbox] ERROR [ip-10-0-0-71 25718] [exception.py:135] - Internal Server Error: /oauth2/authorize
Traceback (most recent call last):
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/exception.py”, line 41, in inner
response = get_response(request)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py”, line 249, in _legacy_get_response
response = self._get_response(request)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py”, line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py”, line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/utils/decorators.py”, line 185, in inner
return func(*args, **kwargs)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/views/decorators/csrf.py”, line 58, in wrapped_view
return view_func(*args, **kwargs)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/views/generic/base.py”, line 68, in view
return self.dispatch(request, *args, **kwargs)
File “/edx/app/edxapp/edx-platform/openedx/core/djangoapps/oauth_dispatch/views.py”, line 55, in dispatch
return view(request, *args, **kwargs)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/views/generic/base.py”, line 68, in view
return self.dispatch(request, *args, **kwargs)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/oauth2_provider/views/base.py”, line 37, in dispatch
return super(BaseAuthorizationView, self).dispatch(request, *args, **kwargs)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/contrib/auth/mixins.py”, line 56, in dispatch
return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)
File “/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/views/generic/base.py”, line 88, in dispatch
return handler(request, *args, **kwargs)
File “/edx/app/edxapp/edx-platform/openedx/core/djangoapps/oauth_dispatch/dot_overrides/views.py”, line 97, in get
return self.error_response(error)
TypeError: error_response() takes exactly 3 arguments (2 given)

I am seriously wondering if there are incompatibilities between the version of oauth and django oauth toolkit used in Ironwood and expected from the Python 3 version of ecommerce. Anyone knows?

I am now tempted to wait until the first release of the Juniper Python 3 beta before trying any further. Unless someone has a solution to my problem?

Have a nice day.