summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit8efe88a9e4cea5f97ccf71e62234ab75ef9fd3ee (patch)
tree2f01a2d5360feb11ceae41c979df5ecc01770441
parentdb6c38b03dd71df6ab6a22bed19035cd964e0b20 (diff)
downloadChimère-8efe88a9e4cea5f97ccf71e62234ab75ef9fd3ee.tar.bz2
Chimère-8efe88a9e4cea5f97ccf71e62234ab75ef9fd3ee.zip
Make Celery and Kombu optional (but the import is not available)
-rw-r--r--chimere/admin.py20
-rw-r--r--chimere/tasks.py5
-rw-r--r--debian/control4
-rw-r--r--example_project/settings.py31
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,