diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-08-02 13:49:55 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-08-02 13:49:55 +0200 |
commit | 8efe88a9e4cea5f97ccf71e62234ab75ef9fd3ee (patch) | |
tree | 2f01a2d5360feb11ceae41c979df5ecc01770441 | |
parent | db6c38b03dd71df6ab6a22bed19035cd964e0b20 (diff) | |
download | Chimère-8efe88a9e4cea5f97ccf71e62234ab75ef9fd3ee.tar.bz2 Chimère-8efe88a9e4cea5f97ccf71e62234ab75ef9fd3ee.zip |
Make Celery and Kombu optional (but the import is not available)
-rw-r--r-- | chimere/admin.py | 20 | ||||
-rw-r--r-- | chimere/tasks.py | 5 | ||||
-rw-r--r-- | debian/control | 4 | ||||
-rw-r--r-- | example_project/settings.py | 31 |
4 files changed, 42 insertions, 18 deletions
diff --git a/chimere/admin.py b/chimere/admin.py index c1f487d..9c65fac 100644 --- a/chimere/admin.py +++ b/chimere/admin.py @@ -29,7 +29,11 @@ from django.http import HttpResponse from django.shortcuts import render_to_response from django.utils.translation import ugettext_lazy as _ -from chimere import tasks +try: + from chimere import tasks +except ImportError: + pass + from chimere.forms import MarkerAdminForm, RouteAdminForm, AreaAdminForm,\ NewsAdminForm, CategoryAdminForm from chimere.models import Category, Icon, SubCategory, Marker, \ @@ -188,11 +192,14 @@ def export_to_osm(modeladmin, request, queryset): tasks.exporting(importer.pk) export_to_osm.short_description = _(u"Export to osm") -class ImporterAdmin(admin.ModelAdmin): - list_display = ('importer_type', 'source', 'state', 'filtr') - list_filter = ('importer_type', 'source') - readonly_fields = ('state',) - actions = [importing, cancel_import, cancel_export] +if 'tasks' in globals(): + class ImporterAdmin(admin.ModelAdmin): + list_display = ('importer_type', 'source', 'state', 'filtr') + list_filter = ('importer_type', 'source') + readonly_fields = ('state',) + actions = [importing, cancel_import, cancel_export] + admin.site.register(Importer, ImporterAdmin) + class NewsAdmin(admin.ModelAdmin): """ @@ -247,5 +254,4 @@ admin.site.register(ColorTheme, ColorThemeAdmin) admin.site.register(MultimediaType, MultimediaTypeAdmin) admin.site.register(MultimediaFile, MultimediaFileAdmin) admin.site.register(PictureFile, PictureFileAdmin) -admin.site.register(Importer, ImporterAdmin) admin.site.register(Layer) diff --git a/chimere/tasks.py b/chimere/tasks.py index 58af162..c69302f 100644 --- a/chimere/tasks.py +++ b/chimere/tasks.py @@ -17,6 +17,11 @@ # See the file COPYING for details. +from django.conf import settings +if 'kombu.transport.django' not in settings.INSTALLED_APPS \ + or 'djcelery' in settings.INSTALLED_APPS: + raise ImportError + from celery.decorators import task from django.core.exceptions import ObjectDoesNotExist diff --git a/debian/control b/debian/control index b3cd3dc..faa9b7c 100644 --- a/debian/control +++ b/debian/control @@ -4,6 +4,6 @@ Depends: python-django (>=1.3), python-gdal, python-psycopg2, python-beautifulsoup, python-imaging, libjs-jquery, libjs-jquery-ui, libjs-jquery-ui-theme-base, postgresql-9.1, postgresql-9.1-postgis, gettext, - python-simplejson -Recommends: tinymce, gpsbabel, python-django-celery, python-kombu + python-simplejson, gpsbabel +Recommends: tinymce, python-django-celery, python-kombu Suggests: libjs-jquery-ui-theme-south-street diff --git a/example_project/settings.py b/example_project/settings.py index e0975e1..29c7823 100644 --- a/example_project/settings.py +++ b/example_project/settings.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +# Don't edit this file: # overload all theses settings in your local_settings.py file import os @@ -90,11 +91,6 @@ DATABASES = { }, } -# celery -import djcelery -djcelery.setup_loader() -BROKER_URL = 'django://' - # Local time zone for this installation. Choices can be found here: # http://www.postgresql.org/docs/8.1/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE # although not all variations may be possible on all operating systems. @@ -164,7 +160,7 @@ TEMPLATE_CONTEXT_PROCESSORS = ( "django.core.context_processors.request", ) -INSTALLED_APPS = ( +INSTALLED_APPS = [ 'django.contrib.auth', 'django.contrib.admin', 'django.contrib.contenttypes', @@ -172,13 +168,30 @@ INSTALLED_APPS = ( 'django.contrib.sites', 'django.contrib.gis', 'django.contrib.staticfiles', - 'kombu.transport.django', - 'djcelery', 'south', 'chimere', # activate it if you want to use old migration scripts #'chimere.scripts', -) +] + +# celery +try: + import djceleryaaaaaa + import kombu + djcelery.setup_loader() + BROKER_URL = 'django://' + INSTALLED_APPS += ['kombu.transport.django', + 'djcelery'] +except ImportError: + # some import and export will not be available + pass + +INSTALLED_APPS += [ + 'south', + 'chimere', + # activate it if you want to use old migration scripts + #'chimere.scripts', +] LOGGING = {'version': 1, 'disable_existing_loggers': False, |