Skip to content

Commit

Permalink
Removed olwidget dependency #152
Browse files Browse the repository at this point in the history
  • Loading branch information
nemesifier committed Sep 28, 2014
1 parent 5541e3f commit a74cf48
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 53 deletions.
1 change: 0 additions & 1 deletion nodeshot/conf/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,6 @@
# 3d parthy django apps
'rest_framework',
'rest_framework_swagger',
'olwidget',
'south',
'smuggler',
'reversion',
Expand Down
73 changes: 24 additions & 49 deletions nodeshot/core/base/admin.py
Original file line number Diff line number Diff line change
@@ -1,35 +1,23 @@
from django.contrib import admin
from django.contrib.gis.geos import Point
from django.contrib.gis import forms
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

GEODJANGO_IMPROVED_WIDGETS = 'olwidget' in settings.INSTALLED_APPS


if GEODJANGO_IMPROVED_WIDGETS:
from olwidget.admin import GeoModelAdmin
else:
from django.contrib.gis.admin import ModelAdmin as GeoModelAdmin


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")

point = Point(lng, lat, srid=4326)

if GEODJANGO_IMPROVED_WIDGETS:
return (lat, lng)
else:
point.transform(900913)
return point

return lat, lng


def _get_geodjango_map_zoom():
""" zoom level to be used by geodjango """
try:
Expand All @@ -46,49 +34,36 @@ class BaseAdmin(admin.ModelAdmin):
"""
save_on_top = True
readonly_fields = ['added', 'updated']

html_editor_fields = []

# preload tinymce editor static files
if 'grappelli' in settings.INSTALLED_APPS:
if 'grappelli' in settings.INSTALLED_APPS:
class Media:
js = [
'%sgrappelli/tinymce/jscripts/tiny_mce/tiny_mce.js' % settings.STATIC_URL,
'%sgrappelli/tinymce_setup/tinymce_setup_ns.js' % settings.STATIC_URL,
]

# enable editor for "node description" only
def formfield_for_dbfield(self, db_field, **kwargs):
field = super(BaseAdmin, self).formfield_for_dbfield(db_field, **kwargs)

if db_field.name in self.html_editor_fields:
field.widget.attrs['class'] = 'html-editor %s' % field.widget.attrs.get('class', '')

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
"""
if GEODJANGO_IMPROVED_WIDGETS:
lat, lng = _get_geodjango_map_coords()
options = {
'layers': [
'osm.mapnik',
'google.streets',
'google.physical',
'google.satellite',
'google.hybrid',
],
'default_lat': lat,
'default_lon': lng,
'default_zoom': _get_geodjango_map_zoom(),
'hide_textarea': not settings.DEBUG, # TODO: this might be configured in the future
}
else:
default_lon, default_lat = _get_geodjango_map_coords()
default_zoom = _get_geodjango_map_zoom()
form = GeoForm


class PublishActionsAdminMixin(object):
Expand All @@ -101,26 +76,26 @@ class PublishActionsAdminMixin(object):

def publish_action(self, request, queryset):
rows_updated = queryset.update(is_published=True)

if rows_updated == 1:
message_bit = _("1 item was")
else:
message_bit = _("%s items were") % rows_updated

self.message_user(request, _("%s successfully published.") % message_bit)

publish_action.short_description = _("Publish selected items")

def unpublish_action(self, request, queryset):
rows_updated = queryset.update(is_published=False)

if rows_updated == 1:
message_bit = _("1 item was")
else:
message_bit = _("%s items were") % rows_updated

self.message_user(request, _("%s successfully unpublished.") % message_bit)

unpublish_action.short_description = _("Unpublish selected items")


Expand Down
3 changes: 0 additions & 3 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ requests
django-grappelli==2.5.3
django-filebrowser==3.5.6

# geodjango improved widgets
django-olwidget

# RESTful API and API documentation
djangorestframework==2.4.3
drf-extensions==0.2.5
Expand Down

0 comments on commit a74cf48

Please sign in to comment.