Refs #33924 -- Removed BaseGeometryWidget.map_height/map_width attributes per deprecation timeline.

This commit is contained in:
Mariusz Felisiak 2023-09-14 06:04:12 +02:00
parent 04eb1b4567
commit 7433237664
6 changed files with 5 additions and 52 deletions

View File

@ -1,5 +1,4 @@
import logging import logging
import warnings
from django.conf import settings from django.conf import settings
from django.contrib.gis import gdal from django.contrib.gis import gdal
@ -7,7 +6,6 @@ from django.contrib.gis.geometry import json_regex
from django.contrib.gis.geos import GEOSException, GEOSGeometry from django.contrib.gis.geos import GEOSException, GEOSGeometry
from django.forms.widgets import Widget from django.forms.widgets import Widget
from django.utils import translation from django.utils import translation
from django.utils.deprecation import RemovedInDjango51Warning
logger = logging.getLogger("django.contrib.gis") logger = logging.getLogger("django.contrib.gis")
@ -20,8 +18,6 @@ class BaseGeometryWidget(Widget):
geom_type = "GEOMETRY" geom_type = "GEOMETRY"
map_srid = 4326 map_srid = 4326
map_width = 600 # RemovedInDjango51Warning
map_height = 400 # RemovedInDjango51Warning
display_raw = False display_raw = False
supports_3d = False supports_3d = False
@ -29,19 +25,8 @@ class BaseGeometryWidget(Widget):
def __init__(self, attrs=None): def __init__(self, attrs=None):
self.attrs = {} self.attrs = {}
for key in ("geom_type", "map_srid", "map_width", "map_height", "display_raw"): for key in ("geom_type", "map_srid", "display_raw"):
self.attrs[key] = getattr(self, key) self.attrs[key] = getattr(self, key)
if (
(attrs and ("map_width" in attrs or "map_height" in attrs))
or self.map_width != 600
or self.map_height != 400
):
warnings.warn(
"The map_height and map_width widget attributes are deprecated. Please "
"use CSS to size map widgets.",
category=RemovedInDjango51Warning,
stacklevel=2,
)
if attrs: if attrs:
self.attrs.update(attrs) self.attrs.update(attrs)

View File

@ -62,11 +62,6 @@ class MapWidget {
this.options.base_layer = new ol.layer.Tile({source: new ol.source.OSM()}); this.options.base_layer = new ol.layer.Tile({source: new ol.source.OSM()});
} }
// RemovedInDjango51Warning: when the deprecation ends, remove setting
// width/height (3 lines below).
const mapContainer = document.getElementById(this.options.map_id);
mapContainer.style.width = `${mapContainer.dataset.width}px`;
mapContainer.style.height = `${mapContainer.dataset.height}px`;
this.map = this.createMap(); this.map = this.createMap();
this.featureCollection = new ol.Collection(); this.featureCollection = new ol.Collection();
this.featureOverlay = new ol.layer.Vector({ this.featureOverlay = new ol.layer.Vector({

View File

@ -1,8 +1,7 @@
{% load i18n l10n %} {% load i18n l10n %}
<div id="{{ id }}_div_map" class="dj_map_wrapper"> <div id="{{ id }}_div_map" class="dj_map_wrapper">
{# RemovedInDjango51Warning: when the deprecation ends, remove data-width and data-height attributes. #} <div id="{{ id }}_map" class="dj_map"></div>
<div id="{{ id }}_map" class="dj_map" data-width="{{ map_width }}" data-height="{{ map_height }}"></div>
{% if not disabled %}<span class="clear_features"><a href="">{% translate "Delete all Features" %}</a></span>{% endif %} {% if not disabled %}<span class="clear_features"><a href="">{% translate "Delete all Features" %}</a></span>{% endif %}
{% if display_raw %}<p>{% translate "Debugging window (serialized value)" %}</p>{% endif %} {% if display_raw %}<p>{% translate "Debugging window (serialized value)" %}</p>{% endif %}
<textarea id="{{ id }}" class="vSerializedField required" cols="150" rows="10" name="{{ name }}" <textarea id="{{ id }}" class="vSerializedField required" cols="150" rows="10" name="{{ name }}"

View File

@ -101,16 +101,6 @@ from other Django widget attributes.
The OpenGIS geometry type, generally set by the form field. The OpenGIS geometry type, generally set by the form field.
.. attribute:: BaseGeometryWidget.map_height
.. attribute:: BaseGeometryWidget.map_width
Height and width of the widget map (default is 400x600).
.. deprecated:: 4.2
``map_height`` and ``map_width`` attributes are deprecated, use CSS to
size map widgets instead.
.. attribute:: BaseGeometryWidget.map_srid .. attribute:: BaseGeometryWidget.map_srid
SRID code used by the map (default is 4326). SRID code used by the map (default is 4326).

View File

@ -267,3 +267,6 @@ to remove usage of these features.
support in historical migrations. support in historical migrations.
* The ``django.contrib.postgres.fields.CIText`` mixin is removed. * The ``django.contrib.postgres.fields.CIText`` mixin is removed.
* The ``map_width`` and ``map_height`` attributes of ``BaseGeometryWidget`` are
removed.

View File

@ -5,7 +5,6 @@ from django.contrib.gis.forms import BaseGeometryWidget, OpenLayersWidget
from django.contrib.gis.geos import GEOSGeometry from django.contrib.gis.geos import GEOSGeometry
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.test import SimpleTestCase, override_settings from django.test import SimpleTestCase, override_settings
from django.utils.deprecation import RemovedInDjango51Warning
from django.utils.html import escape from django.utils.html import escape
@ -445,9 +444,7 @@ class GeometryWidgetTests(SimpleTestCase):
"is_hidden": False, "is_hidden": False,
"attrs": { "attrs": {
"map_srid": 4326, "map_srid": 4326,
"map_width": 600,
"geom_type": "GEOMETRY", "geom_type": "GEOMETRY",
"map_height": 400,
"display_raw": False, "display_raw": False,
}, },
"name": "name", "name": "name",
@ -486,19 +483,3 @@ class GeometryWidgetTests(SimpleTestCase):
form = PointForm(data={"p": point.json}) form = PointForm(data={"p": point.json})
self.assertTrue(form.is_valid()) self.assertTrue(form.is_valid())
self.assertEqual(form.cleaned_data["p"].srid, 4326) self.assertEqual(form.cleaned_data["p"].srid, 4326)
def test_deprecated_width_and_height(self):
class CustomGeometryWidget(forms.BaseGeometryWidget):
map_height = 300
map_width = 550
msg = (
"The map_height and map_width widget attributes are deprecated. Please use "
"CSS to size map widgets."
)
with self.assertRaisesMessage(RemovedInDjango51Warning, msg):
CustomGeometryWidget()
with self.assertRaisesMessage(RemovedInDjango51Warning, msg):
forms.BaseGeometryWidget({"map_width": 400})
with self.assertRaisesMessage(RemovedInDjango51Warning, msg):
forms.BaseGeometryWidget({"map_height": 600})