Quantcast

[Django] #28105: Missing check in django.contrib.forms.widgets

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[Django] #28105: Missing check in django.contrib.forms.widgets

Django
#28105: Missing check in django.contrib.forms.widgets
-------------------------------------+-------------------------------------
               Reporter:  Dylan      |          Owner:  nobody
  Verheul                            |
                   Type:  Bug        |         Status:  new
              Component:  Forms      |        Version:  1.11
               Severity:  Normal     |       Keywords:  gis, forms, widgets
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 In django.contrib.forms.widgets there is this part (line 67 in corrent
 master):

 context = self.build_attrs(self.attrs, dict(
             name=name,
             module='geodjango_%s' % name.replace('-', '_'),  # JS-safe
             serialized=self.serialize(value),
             geom_type=gdal.OGRGeomType(self.attrs['geom_type']),
             STATIC_URL=settings.STATIC_URL,
             LANGUAGE_BIDI=translation.get_language_bidi(),
             **attrs
         ))

 If `attrs` also contains a key 'geom_type' this leads to an inevitable
 crash.

 This should probaly be something like:

 context_kwargs = attrs.copy()
 context_kwargs.upgrade(dict(
             name=name,
             module='geodjango_%s' % name.replace('-', '_'),  # JS-safe
             serialized=self.serialize(value),
             geom_type=gdal.OGRGeomType(self.attrs['geom_type']),
             STATIC_URL=settings.STATIC_URL,
             LANGUAGE_BIDI=translation.get_language_bidi(),
 ))

 Currently this causes django-bootstrap3 to fail for Django 1.11.

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

--
You received this message because you are subscribed to the Google Groups "Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/047.498bfa805d9fcd13c42494ff20aa818b%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Django] #28105: BaseGeometryWidget.get_context() crashes if attrs contains the name of an existing key (was: Missing check in django.contrib.forms.widgets)

Django
#28105: BaseGeometryWidget.get_context() crashes if attrs contains the name of an
existing key
-------------------------------------+------------------------------------
     Reporter:  Dylan Verheul        |                    Owner:  nobody
         Type:  Bug                  |                   Status:  new
    Component:  GIS                  |                  Version:  1.11
     Severity:  Release blocker      |               Resolution:
     Keywords:  gis, forms, widgets  |             Triage Stage:  Accepted
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+------------------------------------
Changes (by Tim Graham):

 * severity:  Normal => Release blocker
 * stage:  Unreviewed => Accepted
 * component:  Forms => GIS


Old description:

> In django.contrib.forms.widgets there is this part (line 67 in corrent
> master):
>
> context = self.build_attrs(self.attrs, dict(
>             name=name,
>             module='geodjango_%s' % name.replace('-', '_'),  # JS-safe
>             serialized=self.serialize(value),
>             geom_type=gdal.OGRGeomType(self.attrs['geom_type']),
>             STATIC_URL=settings.STATIC_URL,
>             LANGUAGE_BIDI=translation.get_language_bidi(),
>             **attrs
>         ))
>
> If `attrs` also contains a key 'geom_type' this leads to an inevitable
> crash.
>
> This should probaly be something like:
>
> context_kwargs = attrs.copy()
> context_kwargs.upgrade(dict(
>             name=name,
>             module='geodjango_%s' % name.replace('-', '_'),  # JS-safe
>             serialized=self.serialize(value),
>             geom_type=gdal.OGRGeomType(self.attrs['geom_type']),
>             STATIC_URL=settings.STATIC_URL,
>             LANGUAGE_BIDI=translation.get_language_bidi(),
> ))
>
> Currently this causes django-bootstrap3 to fail for Django 1.11.
New description:

 In`contrib.gis.forms.widgets` there is this part (line 67 in current
 master):

 {{{
 context = self.build_attrs(self.attrs, dict(
     name=name,
     module='geodjango_%s' % name.replace('-', '_'),  # JS-safe
     serialized=self.serialize(value),
     geom_type=gdal.OGRGeomType(self.attrs['geom_type']),
     STATIC_URL=settings.STATIC_URL,
     LANGUAGE_BIDI=translation.get_language_bidi(),
     **attrs
 ))
 }}}

 If `attrs` also contains a key 'geom_type' this leads to an inevitable
 crash.

 This should probaly be something like:

 {{{
 context_kwargs = attrs.copy()
 context_kwargs.update(dict(
     name=name,
     module='geodjango_%s' % name.replace('-', '_'),  # JS-safe
     serialized=self.serialize(value),
     geom_type=gdal.OGRGeomType(self.attrs['geom_type']),
     STATIC_URL=settings.STATIC_URL,
     LANGUAGE_BIDI=translation.get_language_bidi(),
 ))
 }}}
 Currently this causes django-bootstrap3 to fail for Django 1.11.

--

Comment:

 Could you explain more about the use case that causes the crash? If you
 could write a test for `tests/gis_tests/test_geoforms.py`, that would be
 ideal.

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

--
You received this message because you are subscribed to the Google Groups "Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/062.933449a58522941d0d8d484d18f946dc%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Django] #28105: BaseGeometryWidget.get_context() crashes if attrs contains the name of an existing key

Django
In reply to this post by Django
#28105: BaseGeometryWidget.get_context() crashes if attrs contains the name of an
existing key
-------------------------------------+-------------------------------------
     Reporter:  Dylan Verheul        |                    Owner:  Dylan
                                     |  Verheul
         Type:  Bug                  |                   Status:  assigned
    Component:  GIS                  |                  Version:  1.11
     Severity:  Release blocker      |               Resolution:
     Keywords:  gis, forms, widgets  |             Triage Stage:  Accepted
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Changes (by Dylan Verheul):

 * owner:  nobody => Dylan Verheul
 * status:  new => assigned


Comment:

 I'll see what I can do to fix it myself.

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

--
You received this message because you are subscribed to the Google Groups "Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/062.d622ec0f342c9c7d0f62f472fe3365a6%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Loading...