From fecbb3b6b3c700f638149c6606e86632d0d42eb3 Mon Sep 17 00:00:00 2001 From: Federico Capoano Date: Sun, 28 Sep 2014 20:17:31 +0200 Subject: [PATCH] Added django-leaflet widget to GeoModelAdmin #152 --- nodeshot/conf/settings.py | 13 +++++++++++++ nodeshot/core/base/admin.py | 31 +------------------------------ requirements.txt | 1 + 3 files changed, 15 insertions(+), 30 deletions(-) diff --git a/nodeshot/conf/settings.py b/nodeshot/conf/settings.py index 87315d1b..bbfc45cf 100755 --- a/nodeshot/conf/settings.py +++ b/nodeshot/conf/settings.py @@ -106,6 +106,7 @@ # 3d parthy django apps 'rest_framework', 'rest_framework_swagger', + 'leaflet', 'south', 'smuggler', 'reversion', @@ -325,3 +326,15 @@ LOGIN_URL = '/' LOGIN_REDIRECT_URL = '/' LOGIN_ERROR_URL = '/' + +# ------ DJANGO-LEAFLET SETTINGS ------ # + +LEAFLET_CONFIG = { + 'DEFAULT_CENTER': (49.06775, 30.62011), + 'DEFAULT_ZOOM': 4, + 'MIN_ZOOM': 1, + 'MAX_ZOOM': 18, + 'TILES': 'http://otile1.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.png', + 'ATTRIBUTION_PREFIX': 'Nodeshot - Maps thank to OpenStreetMap contributors', + 'RESET_VIEW': False +} diff --git a/nodeshot/core/base/admin.py b/nodeshot/core/base/admin.py index 196b3541..c4b2eaa6 100755 --- a/nodeshot/core/base/admin.py +++ b/nodeshot/core/base/admin.py @@ -3,27 +3,8 @@ from django.core.exceptions import ImproperlyConfigured from django.conf import settings from django.utils.translation import ugettext_lazy as _ -from django.contrib.gis.admin import ModelAdmin as GeoModelAdmin -# TODO these settings at the moment are not being used -from .settings import ADMIN_MAP_COORDINATES, ADMIN_MAP_ZOOM - - -def _get_geodjango_map_coords(): - """ point to be used by geodjango """ - try: - lat, lng = ADMIN_MAP_COORDINATES - except KeyError: - raise ImproperlyConfigured("incorrect NODESHOT_ADMIN_MAP_COORDINATES setting") - return lat, lng - - -def _get_geodjango_map_zoom(): - """ zoom level to be used by geodjango """ - try: - return ADMIN_MAP_ZOOM - except KeyError: - raise ImproperlyConfigured("incorrect NODESHOT_ADMIN_MAP_ZOOM setting") +from leaflet.admin import LeafletGeoAdmin as GeoModelAdmin class BaseAdmin(admin.ModelAdmin): @@ -50,20 +31,10 @@ def formfield_for_dbfield(self, db_field, **kwargs): return field -class GeoForm(forms.ModelForm): - # TODO entirely configurable - geometry = forms.GeometryField(widget=forms.OSMWidget(attrs={ - 'map_width': 758, - 'map_height': 500, - 'display_raw': settings.DEBUG - })) - - class BaseGeoAdmin(BaseAdmin, GeoModelAdmin): """ BaseAdmin + Geodjango support """ - form = GeoForm class PublishActionsAdminMixin(object): diff --git a/requirements.txt b/requirements.txt index 90642d55..13affd74 100755 --- a/requirements.txt +++ b/requirements.txt @@ -19,6 +19,7 @@ requests # better admin django-grappelli==2.5.3 django-filebrowser==3.5.6 +django-leaflet==0.14.1 # RESTful API and API documentation djangorestframework==2.4.3