From d8b70270953dfca83e574f1032a04cb09da054ea Mon Sep 17 00:00:00 2001 From: Stephan Jaekel Date: Fri, 19 Aug 2011 10:24:07 +0200 Subject: [PATCH] Fetch the last position for the placeholder to add a correct position to the new created plugin. --- cms/api.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cms/api.py b/cms/api.py index 8000e732523..af74cfe228a 100644 --- a/cms/api.py +++ b/cms/api.py @@ -11,6 +11,7 @@ from django.conf import settings from django.contrib.auth.models import User from django.contrib.sites.models import Site +from django.db.models import Max from django.template.defaultfilters import slugify from menus.menu_pool import menu_pool @@ -266,10 +267,14 @@ def add_plugin(placeholder, plugin_type, language, position='last-child', # validate and normalize plugin type plugin_model, plugin_type = _verify_plugin_type(plugin_type) + + max_pos = CMSPlugin.objects.filter(language=language, + placeholder=placeholder).aggregate(Max('position')).values()[0] or 0 + plugin_base = CMSPlugin( plugin_type=plugin_type, placeholder=placeholder, - position=1, + position=max_pos + 1, language=language ) plugin_base.insert_at(target, position=position, save=False)