RuntimeError while installing Figures on Ironwood

Hello,
I hope this is the right place to ask. I’m trying to install the Figures on my Open EDX Ironwood installation. I spent a while trying to debug this and I read what I could find about it. I’m currently stuck. When I run ./manage.py lms migrate figures I get this error:

WARNING:py.warnings:/opt/edx-ironwood.2-11/apps/edx/edx-platform/lms/djangoapps/courseware/__init__.py:5: DeprecationWarning: Importing 'lms.djangoapps.courseware' as 'courseware' is no longer supported
  warnings.warn("Importing 'lms.djangoapps.courseware' as 'courseware' is no longer supported", DeprecationWarning)

2021-01-11 11:14:47,124 WARNING 657802 [enterprise.utils] utils.py:50 - Could not import Registry from third_party_auth.provider
2021-01-11 11:14:47,219 WARNING 657802 [enterprise.utils] utils.py:51 - cannot import name _LTI_BACKENDS
Traceback (most recent call last):
  File "manage.py", line 123, in <module>
    execute_from_command_line([sys.argv[0]] + django_args)
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/core/management/base.py", line 327, in execute
    self.check()
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/core/management/base.py", line 359, in check
    include_deployment_checks=include_deployment_checks,
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 62, in _run_checks
    issues.extend(super(Command, self)._run_checks(**kwargs))
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/core/management/base.py", line 346, in _run_checks
    return checks.run_checks(**kwargs)
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/core/checks/registry.py", line 81, in run_checks
    new_errors = check(app_configs=app_configs)
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/core/checks/urls.py", line 16, in check_url_config
    return check_resolver(resolver)
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/core/checks/urls.py", line 26, in check_resolver
    return check_method()
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/urls/resolvers.py", line 256, in check
    for pattern in self.url_patterns:
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/utils/functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/urls/resolvers.py", line 407, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/utils/functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/urls/resolvers.py", line 400, in urlconf_module
    return import_module(self.urlconf_name)
  File "/opt/edx-ironwood.2-11/python/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/opt/edx-ironwood.2-11/apps/edx/edx-platform/lms/urls.py", line 1056, in <module>
    urlpatterns.extend(plugin_urls.get_patterns(plugin_constants.ProjectType.LMS))
  File "/opt/edx-ironwood.2-11/apps/edx/edx-platform/openedx/core/djangoapps/plugins/plugin_urls.py", line 22, in get_patterns
    for url_module_path, url_config in _iter_plugins(project_type)
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/conf/urls/__init__.py", line 50, in include
    urlconf_module = import_module(urlconf_module)
  File "/opt/edx-ironwood.2-11/python/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/src/figures/figures/urls.py", line 10, in <module>
    from figures import views
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/src/figures/figures/views.py", line 45, in <module>
    from figures.filters import (
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/src/figures/figures/filters.py", line 34, in <module>
    from figures.pipeline.course_daily_metrics import get_enrolled_in_exclude_admins
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/src/figures/figures/pipeline/course_daily_metrics.py", line 26, in <module>
    from figures.compat import GeneratedCertificate, StudentModule
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/src/figures/figures/compat.py", line 39, in <module>
    from lms.djangoapps.courseware.models import StudentModule  # noqa pylint: disable=unused-import,import-error
  File "/opt/edx-ironwood.2-11/apps/edx/edx-platform/lms/djangoapps/courseware/models.py", line 74, in <module>
    class StudentModule(models.Model):
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/db/models/base.py", line 319, in __new__
    new_class._meta.apps.register_model(new_class._meta.app_label, new_class)
  File "/opt/edx-ironwood.2-11/apps/edx/venvs/edxapp/lib/python2.7/site-packages/django/apps/registry.py", line 224, in register_model
    (model_name, app_label, app_models[model_name], model))
RuntimeError: Conflicting 'studentmodule' models in application 'courseware': <class 'courseware.models.StudentModule'> and <class 'lms.djangoapps.courseware.models.StudentModule'>.

I would appreciate any nudge in the right direction. Thank you.

@omar Can you check this please?

I never faced this error, so i don’t know how to help…

I might have figured it out. I’ll post again as soon as I get the chance to try it.

Figures have not been tested on Ironwood. Only Juniper and Hawthorn.

I figured it out. I forked the repo and added the missing settings for Ironwood where needed. Then I installed it from my own repo and works fine now. Leaving this here in case someone else stumbles upon the same problem.

1 Like

Amazing! Could you please open a pull request to GitHub - appsembler/figures: Reporting and data retrieval app for Open edX ?

Of course :slight_smile: I just have to do a quick check and then I’ll request it.

1 Like