[Django] #20998: Form GIS widgets render() lack of modularity

4 views
Skip to first unread message

Django

unread,
Aug 29, 2013, 7:45:40 PM8/29/13
to django-...@googlegroups.com
#20998: Form GIS widgets render() lack of modularity
-------------------------------+------------------------
Reporter: leplatrem | Owner: nobody
Type: Uncategorized | Status: new
Component: GIS | Version: 1.6-beta-1
Severity: Normal | Keywords: refactor
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------+------------------------
When subclassing GIS form widgets, there should be a way to override
geometry serialization, without having to duplicate reprojection
behaviour.

https://github.com/django/django/blob/1.6b2/django/contrib/gis/forms/widgets.py#L37-L74

I propose to add some additional private methods:

* _deserialize: string (wkt) to geos (geos)
* _transform: from map widget to model projection
* _serialize: geometry to string (wkt)

This would open doors to widgets that support other representation formats
(geojson, topojson, ...)

--
Ticket URL: <https://code.djangoproject.com/ticket/20998>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Aug 30, 2013, 2:24:55 AM8/30/13
to django-...@googlegroups.com
#20998: Form GIS widgets render() lack of modularity
-------------------------------+--------------------------------------

Reporter: leplatrem | Owner: nobody
Type: Uncategorized | Status: new
Component: GIS | Version: 1.6-beta-1
Severity: Normal | Resolution:

Keywords: refactor | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------------------------
Changes (by aaugustin):

* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0


Comment:

If the goal is to make the widgets extensible by third-party code, we need
a public API rather than a private one.

--
Ticket URL: <https://code.djangoproject.com/ticket/20998#comment:1>

Django

unread,
Aug 30, 2013, 3:15:36 AM8/30/13
to django-...@googlegroups.com
#20998: Form GIS widgets render() lack of modularity
-------------------------------+--------------------------------------

Reporter: leplatrem | Owner: nobody
Type: Uncategorized | Status: new
Component: GIS | Version: 1.6-beta-1
Severity: Normal | Resolution:
Keywords: refactor | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 1 | Patch needs improvement: 1

Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------------------------
Changes (by claudep):

* needs_better_patch: 0 => 1
* has_patch: 0 => 1
* needs_tests: 0 => 1
* stage: Unreviewed => Accepted


Comment:

Many thanks for suggesting those improvements.

As discussed on IRC, my idea is to deprecate most of `gis/admin` as soon
as the new form fields/widgets in `gis/forms.py` proved they can replace
former functionality. So I wouldn't touch the `gis/admin` part, also for
the fact that backwards compatibility is a concern for that code.

--
Ticket URL: <https://code.djangoproject.com/ticket/20998#comment:2>

Django

unread,
Aug 30, 2013, 4:53:19 AM8/30/13
to django-...@googlegroups.com
#20998: Form GIS widgets render() lack of modularity
-------------------------------------+-------------------------------------
Reporter: leplatrem | Owner: nobody
Type: | Status: new
Cleanup/optimization | Version:
Component: GIS | 1.6-beta-1

Severity: Normal | Resolution:
Keywords: refactor | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by claudep):

* needs_better_patch: 1 => 0
* type: Uncategorized => Cleanup/optimization
* needs_tests: 1 => 0


Comment:

https://github.com/django/django/pull/1532

Please review!

--
Ticket URL: <https://code.djangoproject.com/ticket/20998#comment:3>

Django

unread,
Sep 2, 2013, 7:32:30 AM9/2/13
to django-...@googlegroups.com
#20998: Form GIS widgets render() lack of modularity
-------------------------------------+-------------------------------------
Reporter: leplatrem | Owner: nobody
Type: | Status: closed

Cleanup/optimization | Version:
Component: GIS | 1.6-beta-1
Severity: Normal | Resolution: fixed

Keywords: refactor | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Claude Paroz <claude@…>):

* status: new => closed
* resolution: => fixed


Comment:

In [changeset:"102f26c92923d0e5e80de9b473f2343f76b04aa8"]:
{{{
#!CommitTicketReference repository=""
revision="102f26c92923d0e5e80de9b473f2343f76b04aa8"
Fixed #20998 -- Allow custom (de)serialization for GIS widgets

Thanks Mathieu Leplatre for the report and the initial patch.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/20998#comment:4>

Django

unread,
Sep 2, 2013, 7:36:53 AM9/2/13
to django-...@googlegroups.com
#20998: Form GIS widgets render() lack of modularity
-------------------------------------+-------------------------------------
Reporter: leplatrem | Owner: nobody

Type: | Status: closed
Cleanup/optimization | Version:
Component: GIS | 1.6-beta-1
Severity: Normal | Resolution: fixed
Keywords: refactor | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Claude Paroz <claude@…>):

In [changeset:"4e3794dd1fbc689dcbcc455f3458539d630a1ff3"]:
{{{
#!CommitTicketReference repository=""
revision="4e3794dd1fbc689dcbcc455f3458539d630a1ff3"
[1.6.x] Fixed #20998 -- Allow custom (de)serialization for GIS widgets

Thanks Mathieu Leplatre for the report and the initial patch.

Backport of 102f26c92 from master.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/20998#comment:5>

Django

unread,
Sep 2, 2013, 8:16:41 AM9/2/13
to django-...@googlegroups.com
#20998: Form GIS widgets render() lack of modularity
-------------------------------------+-------------------------------------
Reporter: leplatrem | Owner: nobody

Type: | Status: closed
Cleanup/optimization | Version:
Component: GIS | 1.6-beta-1
Severity: Normal | Resolution: fixed
Keywords: refactor | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Claude Paroz <claude@…>):

In [changeset:"973502c04704aac4742e2d996cb758acd5035d46"]:
{{{
#!CommitTicketReference repository=""
revision="973502c04704aac4742e2d996cb758acd5035d46"
Fixed gis test to run on non gis-enabled settings

Refs #20998.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/20998#comment:6>

Django

unread,
Sep 2, 2013, 8:31:54 AM9/2/13
to django-...@googlegroups.com
#20998: Form GIS widgets render() lack of modularity
-------------------------------------+-------------------------------------
Reporter: leplatrem | Owner: nobody

Type: | Status: closed
Cleanup/optimization | Version:
Component: GIS | 1.6-beta-1
Severity: Normal | Resolution: fixed
Keywords: refactor | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Claude Paroz <claude@…>):

In [changeset:"0c5786890875f2adbcfddd0056dc2b87a768aa1e"]:
{{{
#!CommitTicketReference repository=""
revision="0c5786890875f2adbcfddd0056dc2b87a768aa1e"
[1.6.x] Fixed gis test to run on non gis-enabled settings

Refs #20998.
Backport of 973502c0 from master.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/20998#comment:7>

Reply all
Reply to author
Forward
0 new messages