diff --git a/CHANGELOG.txt b/CHANGELOG.txt index d1778dc00aa..f8048a7127d 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -95,7 +95,7 @@ - Fixed wrong language prefix handling for form actions and admin preview - Admin icons in django 1.4 fixed - Added requirements.txt for pip and testing in test_requirements -- Google map plugin with height and width properties +- Google map plugin with height and width properties. Migrations will set default values on not-null fields. - Docs fixes - Code cleanup - Switched html5lib to HTML serializer diff --git a/cms/plugins/googlemap/migrations/0011_remove_zoom_null_values.py b/cms/plugins/googlemap/migrations/0011_remove_zoom_null_values.py new file mode 100644 index 00000000000..f1b48522689 --- /dev/null +++ b/cms/plugins/googlemap/migrations/0011_remove_zoom_null_values.py @@ -0,0 +1,62 @@ +# encoding: utf-8 +import datetime +from south.db import db +from south.v2 import DataMigration +from django.db import models + +class Migration(DataMigration): + + def forwards(self, orm): + "Write your forwards methods here." + for plugin in orm.GoogleMap.objects.filter(models.Q(zoom=None) | models.Q(zoom__lt=0)): + plugin.zoom = 13 + plugin.save() + print 'Applying 13 as zoom value for plugin %s. See 2.3.1 Release notes for further info' % plugin.pk + for plugin in orm.GoogleMap.objects.filter(zoom__gt=21): + plugin.zoom = 21 + plugin.save() + print 'Applying 21 as zoom value for plugin %s. See 2.3.1 Release notes for further info' % plugin.pk + + + def backwards(self, orm): + "Write your backwards methods here." + #raise RuntimeError("Cannot reverse this migration.") + + models = { + 'cms.cmsplugin': { + 'Meta': {'object_name': 'CMSPlugin'}, + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), + 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), + 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), + 'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), + 'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), + 'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), + 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), + 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) + }, + 'cms.placeholder': { + 'Meta': {'object_name': 'Placeholder'}, + 'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) + }, + 'googlemap.googlemap': { + 'Meta': {'object_name': 'GoogleMap', 'db_table': "'cmsplugin_googlemap'", '_ormbases': ['cms.CMSPlugin']}, + 'address': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'city': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), + 'content': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'lat': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '10', 'decimal_places': '6', 'blank': 'True'}), + 'lng': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '10', 'decimal_places': '6', 'blank': 'True'}), + 'route_planer': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'route_planer_title': ('django.db.models.fields.CharField', [], {'default': "u'Calculate your fastest way to here'", 'max_length': '150', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'zipcode': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'zoom': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['googlemap'] diff --git a/cms/plugins/googlemap/migrations/0011_auto__add_field_googlemap_width__add_field_googlemap_height__chg_field.py b/cms/plugins/googlemap/migrations/0012_auto__add_field_googlemap_width__add_field_googlemap_height__chg_field.py similarity index 98% rename from cms/plugins/googlemap/migrations/0011_auto__add_field_googlemap_width__add_field_googlemap_height__chg_field.py rename to cms/plugins/googlemap/migrations/0012_auto__add_field_googlemap_width__add_field_googlemap_height__chg_field.py index 719fd68d41d..ce1e5950fd9 100644 --- a/cms/plugins/googlemap/migrations/0011_auto__add_field_googlemap_width__add_field_googlemap_height__chg_field.py +++ b/cms/plugins/googlemap/migrations/0012_auto__add_field_googlemap_width__add_field_googlemap_height__chg_field.py @@ -18,9 +18,8 @@ def forwards(self, orm): self.gf('django.db.models.fields.CharField')(default='400px', max_length=6), keep_default=False) - # Changing field 'GoogleMap.zoom' - db.alter_column('cmsplugin_googlemap', 'zoom', self.gf('django.db.models.fields.PositiveSmallIntegerField')()) + db.alter_column('cmsplugin_googlemap', 'zoom', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=13)) def backwards(self, orm): # Deleting field 'GoogleMap.width' diff --git a/docs/getting_started/plugin_reference.rst b/docs/getting_started/plugin_reference.rst index 2ff4cc04ca2..30aa0a3dce8 100644 --- a/docs/getting_started/plugin_reference.rst +++ b/docs/getting_started/plugin_reference.rst @@ -68,6 +68,20 @@ GoogleMap Displays a map of an address on your page. +Both address and coordinates are supported to center the map; zoom level and +route planner can be set when adding/editing plugin in the admin. + +.. versionadded:: 2.3.2 + width/height parameter has been added, so it's no longer required to set + plugin container size in CSS or template. + +.. versionchanged:: 2.3.2 + Zoom level is set via a select field which ensure only legal values are used. + +.. note:: Due to the above change, `level` field is now marked as `NOT NULL`, + and a datamigration has been introduced to modify existing googlemap plugin + instance to set the default value if `level` if is `NULL`. + For installation be sure you have the following in the :setting:`django:INSTALLED_APPS` setting in your project's ``settings.py`` file:: @@ -132,14 +146,15 @@ in it create a file called ``picture.html``. Here is an example {% load thumbnail %} - {% if picture.url %}{% endif %} - {% ifequal placeholder "content" %} + {% if link %}{% endif %} + {% if placeholder == "content" %} {{ picture.alt }} - {% endifequal %} - {% ifequal placeholder "teaser" %} - {{ picture.alt }} - {% endifequal %} - {% if picture.url %}{% endif %} + {% else %} + {% if placeholder == "teaser" %} + {{ picture.alt }} + {% endif %} + {% endif %} + {% if link %}{% endif %} In this template the picture is scaled differently based on which placeholder diff --git a/docs/upgrade/2.3.2.rst b/docs/upgrade/2.3.2.rst new file mode 100644 index 00000000000..ed32fc638dc --- /dev/null +++ b/docs/upgrade/2.3.2.rst @@ -0,0 +1,19 @@ +################### +2.3.2 release notes +################### + +******************* +What's new in 2.3.2 +******************* + +Google map plugin +=================== + +Google map plugin now supports width and height fields so that plugin size +can be modified in the page admin or frontend editor. + +Zoom level is now set via a select field which ensure only legal values are used. + +.. warning:: Due to the above change, `level` field is now marked as `NOT NULL`, + and a datamigration has been introduced to modify existing googlemap plugin + instance to set the default value if `level` if is `NULL`. diff --git a/docs/upgrade/index.rst b/docs/upgrade/index.rst index 250bf2fab81..e85b703f28b 100644 --- a/docs/upgrade/index.rst +++ b/docs/upgrade/index.rst @@ -2,6 +2,14 @@ Upgrading a django CMS installation ################################### +************* +2.3.2 Release +************* + +.. toctree:: + :maxdepth: 1 + + 2.3.2 *********** 2.3 Release