﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
23137	Error when use OSMapWidget.js	koyoyo	nobody	"I try to create my form with GeoDjango and I didn't found an good example in document.

So, I use `django/contrib/gis/static/gis/js/OSMapWidget.js` and found that have some of bugs.

First, in line 173 (miss .) eg. if `geom_name = 'MultiPoint'`, then `options['geom_type']` will be `OpenLayers.GeometryMultiPoint`

{{{
else options['geom_type'] = eval('OpenLayers.Geometry' + options['geom_name']);
}}}

changed to 

{{{
else options['geom_type'] = eval('OpenLayers.Geometry.' + options['geom_name']);
}}}

Second, line 181 (check is_collection) It is wrong use of function ""isinstanceof"". It cannot check constructor isinstanceof constructor.

{{{
is_collection: options['geom_name'] instanceof OpenLayers.Geometry.Collection,
}}}

changed to 

{{{
is_collection: (options['geom_name'].substr(0, 5) == 'Multi' || options[ 'geom_type' ] == 'GeometryCollection'),
}}}

Third,  in function getControls (line 366, 369, 372) These are not check for Collection.

{{{
if (this.options.geom_name == 'LineString'' || this.options.geom_name == 'Unknown') {
if (this.options.geom_name == 'Polygon'  || this.options.geom_name == 'Unknown') {
if (this.options.geom_name == 'Point'  || this.options.geom_name == 'Unknown') {
}}}

changed to

{{{
if (this.options.geom_name == 'LineString' || this.options.geom_name == 'MultiLineString' || this.options.geom_name == 'Unknown') {
if (this.options.geom_name == 'Polygon' || this.options.geom_name == 'MultiPolygon' || this.options.geom_name == 'Unknown') {
if (this.options.geom_name == 'Point' || this.options.geom_name == 'MultiPoint' || this.options.geom_name == 'Unknown') {
}}}"	Bug	new	GIS	1.6	Normal				Unreviewed	0	0	0	0	0	0
