Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

[1.0.X] Fixed #9278, #9694 -- Geographic overlays now display in admi…

…n with right to left langauges; simplified transformation process in `OpenLayersWidget` to fix Ubuntu 8.10/Apache 2.2.9 crash; updated OpenLayers version to 2.7.

Backport of r9733 from trunk.


git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@9734 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 8bf4e84c85dabb82124345fd6970991c4bbc9082 1 parent 37260e0
@jbronn jbronn authored
View
6 django/contrib/gis/admin/options.py
@@ -28,12 +28,11 @@ class GeoModelAdmin(ModelAdmin):
scale_text = True
layerswitcher = True
scrollable = True
- admin_media_prefix = settings.ADMIN_MEDIA_PREFIX
map_width = 600
map_height = 400
map_srid = 4326
map_template = 'gis/admin/openlayers.html'
- openlayers_url = 'http://openlayers.org/api/2.6/OpenLayers.js'
+ openlayers_url = 'http://openlayers.org/api/2.7/OpenLayers.js'
wms_url = 'http://labs.metacarta.com/wms/vmap0'
wms_layer = 'basic'
wms_name = 'OpenLayers WMS'
@@ -76,8 +75,7 @@ def get_map_widget(self, db_field):
class OLMap(self.widget):
template = self.map_template
geom_type = db_field._geom
- params = {'admin_media_prefix' : self.admin_media_prefix,
- 'default_lon' : self.default_lon,
+ params = {'default_lon' : self.default_lon,
'default_lat' : self.default_lat,
'default_zoom' : self.default_zoom,
'display_wkt' : self.debug or self.display_wkt,
View
18 django/contrib/gis/admin/widgets.py
@@ -1,7 +1,15 @@
+from django.conf import settings
from django.contrib.gis.gdal import OGRException
from django.contrib.gis.geos import GEOSGeometry, GEOSException
from django.forms.widgets import Textarea
-from django.template.loader import render_to_string
+from django.template import loader, Context
+from django.utils import translation
+
+# Creating a template context that contains Django settings
+# values needed by admin map templates.
+geo_context = Context({'ADMIN_MEDIA_PREFIX' : settings.ADMIN_MEDIA_PREFIX,
+ 'LANGUAGE_BIDI' : translation.get_language_bidi(),
+ })
class OpenLayersWidget(Textarea):
"""
@@ -40,8 +48,9 @@ def render(self, name, value, attrs=None):
srid = self.params['srid']
if value.srid != srid:
try:
- value.transform(srid)
- wkt = value.wkt
+ ogr = value.ogr
+ ogr.transform(srid)
+ wkt = ogr.wkt
except OGRException:
wkt = ''
else:
@@ -51,7 +60,8 @@ def render(self, name, value, attrs=None):
# geometry.
self.params['wkt'] = wkt
- return render_to_string(self.template, self.params)
+ return loader.render_to_string(self.template, self.params,
+ context_instance=geo_context)
def map_options(self):
"Builds the map options hash for the OpenLayers template."
View
8 django/contrib/gis/templates/gis/admin/openlayers.html
@@ -2,14 +2,14 @@
<style type="text/css">
#{{ id }}_map { width: {{ map_width }}px; height: {{ map_height }}px; }
#{{ id }}_map .aligned label { float:inherit; }
- #{{ id }}_admin_map { position: relative; vertical-align: top; float: left; }
+ #{{ id }}_admin_map { position: relative; vertical-align: top; float: {{ LANGUAGE_BIDI|yesno:"right,left" }}; }
{% if not display_wkt %}#{{ id }} { display: none; }{% endif %}
.olControlEditingToolbar .olControlModifyFeatureItemActive {
- background-image: url("{{ admin_media_prefix }}img/gis/move_vertex_on.png");
+ background-image: url("{{ ADMIN_MEDIA_PREFIX }}img/gis/move_vertex_on.png");
background-repeat: no-repeat;
}
.olControlEditingToolbar .olControlModifyFeatureItemInactive {
- background-image: url("{{ admin_media_prefix }}img/gis/move_vertex_off.png");
+ background-image: url("{{ ADMIN_MEDIA_PREFIX }}img/gis/move_vertex_off.png");
background-repeat: no-repeat;
}
</style>
@@ -29,7 +29,7 @@
{% block openlayers %}{% include "gis/admin/openlayers.js" %}{% endblock %}
//]]>
</script>
-<div id="{{ id }}_map"></div>
+<div id="{{ id }}_map"{% if LANGUAGE_BIDI %} dir="ltr"{% endif %}></div>
<a href="javascript:{{ module }}.clearFeatures()">Delete all Features</a>
{% if display_wkt %}<p> WKT debugging window:</p>{% endif %}
<textarea id="{{ id }}" class="vWKTField required" cols="150" rows="10" name="{{ field_name }}">{{ wkt }}</textarea>
Please sign in to comment.
Something went wrong with that request. Please try again.