palewire / django-calaccess-campaign-browser

A Django app to refine, review and republish campaign finance data drawn from the California Secretary of State’s CAL-ACCESS database
http://django-calaccess-campaign-browser.californiacivicdata.org
MIT License
17 stars 12 forks source link

Django 1.8+ compatibility issues #236

Open gordonje opened 8 years ago

gordonje commented 8 years ago

(Arose out of ticket 1186 in the raw-data repo...)

Our code is currently only compatible with Django 1.7, which is especially problematic given that, as of v0.2.0, the raw-data app is >=Django 1.8 compliant and not backward compliant.

For the time being, I propose we lock this app into Django v1.7 and django-calaccess-raw-data v0.1.2 so that users don't encounter any of the errors that arise in scenarios listed below.

Going forward, if the campaign-browser is going to evolve with our other projects, we'll need to address the compatible issues listed below as well as any others. Then, as part of closing this ticket, we can switch the setup.py and requirements_dev.txt files back to allowing more current versions of Django and the raw-data app.

gordonje commented 8 years ago

For Django 1.9.1 and django-calaccess-raw-data 0.2.2, python example/manage.py migrate throws this error:

Traceback (most recent call last):
  File "example/manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/core/management/__init__.py", line 327, in execute
    django.setup()
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/local/Cellar/python/2.7.8_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "calaccess_campaign_browser/models/__init__.py", line 1, in <module>
    from contributions import Contribution
  File "calaccess_campaign_browser/models/contributions.py", line 3, in <module>
    from django.utils.datastructures import SortedDict
ImportError: cannot import name SortedDict
gordonje commented 8 years ago

Django 1.9.1 and django-calaccess-raw-data 0.1.2, python example/manage.py migrate works but python example/manage.py downloadcalaccessrawdata throws this error:

Traceback (most recent call last):
  File "example/manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/core/management/__init__.py", line 327, in execute
    django.setup()
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/apps/config.py", line 90, in create
    module = import_module(entry)
  File "/usr/local/Cellar/python/2.7.8_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/calaccess_raw/__init__.py", line 3, in <module>
    from django.db.models.loading import get_models, get_app
ImportError: No module named loading
gordonje commented 8 years ago

Django 1.8 and django-calaccess-raw-data 0.2.2 or 0.1.2, python example/manage.py migrate works but python example/manage.py downloadcalaccessrawdata throws this error:

Traceback (most recent call last):
  File "example/manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute
    output = self.handle(*args, **options)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/calaccess_raw/management/commands/downloadcalaccessrawdata.py", line 112, in handle
    prompt_context,
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/template/loader.py", line 99, in render_to_string
    return template.render(context, request)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/template/backends/django.py", line 74, in render
    return self.template.render(context)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/template/base.py", line 209, in render
    return self._render(context)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/template/base.py", line 201, in _render
    return self.nodelist.render(context)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/template/base.py", line 903, in render
    bit = self.render_node(node, context)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/template/debug.py", line 79, in render_node
    return node.render(context)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/templatetags/tz.py", line 114, in render
    output = self.nodelist.render(context)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/template/base.py", line 903, in render
    bit = self.render_node(node, context)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/template/debug.py", line 79, in render_node
    return node.render(context)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/template/debug.py", line 89, in render
    output = self.filter_expression.resolve(context)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/template/base.py", line 674, in resolve
    new_obj = func(obj, *arg_vals)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/template/defaultfilters.py", line 771, in date
    return formats.date_format(value, arg)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/utils/formats.py", line 136, in date_format
    return dateformat.format(value, get_format(format or 'DATE_FORMAT', use_l10n=use_l10n))
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/utils/formats.py", line 110, in get_format
    for module in get_format_modules(lang):
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/utils/formats.py", line 82, in get_format_modules
    modules = _format_modules_cache.setdefault(lang, list(iter_format_modules(lang, settings.FORMAT_MODULE_PATH)))
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/utils/formats.py", line 51, in iter_format_modules
    if not check_for_language(lang):
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/utils/translation/__init__.py", line 181, in check_for_language
    return _trans.check_for_language(lang_code)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/utils/lru_cache.py", line 125, in wrapper
    result = user_function(*args, **kwds)
  File "/Users/gordo/.virtualenvs/django-calaccess-campaign-browser/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 409, in check_for_language
    if not language_code_re.search(lang_code):
TypeError: expected string or buffer