@@ -193,13 +193,13 @@ def get_placeholder(self, language=None, show_draft_content=False):
193193 content = self .get_content (language = language , show_draft_content = show_draft_content )
194194 return getattr (content , "placeholder" , None )
195195
196- def get_plugins (self , language = None ):
196+ def get_plugins (self , language = None , show_draft_content = False ):
197197 if not language :
198198 language = get_language ()
199199 try :
200200 return self ._plugins_cache [language ]
201201 except KeyError :
202- placeholder = self .get_placeholder (language )
202+ placeholder = self .get_placeholder (language , show_draft_content = show_draft_content )
203203 plugins = placeholder .get_plugins_list () if placeholder else []
204204 self ._plugins_cache [language ] = plugins
205205 return self ._plugins_cache [language ]
@@ -307,25 +307,27 @@ def populate(self, replaced_placeholder=None, replaced_plugin=None, plugins=None
307307 placeholder = self .placeholder ,
308308 )
309309 return
310-
311310 if replaced_placeholder :
312- plugins = replaced_placeholder .get_plugins ( self .language )
313- placeholder = replaced_placeholder
314- add_plugin_kwargs = {}
315- else :
316- plugins = CMSPlugin . objects . filter (
317- id__in = [ replaced_plugin . pk ] + replaced_plugin . _get_descendants_ids () ,
311+ replaced_placeholder .cmsplugin_set . update ( placeholder = self .placeholder )
312+ return add_plugin (
313+ replaced_placeholder ,
314+ plugin_type = "Alias" ,
315+ language = self . language ,
316+ alias = self . alias ,
318317 )
319- placeholder = replaced_plugin .placeholder
320- add_plugin_kwargs = {"position" : "left" , "target" : replaced_plugin }
318+
319+ placeholder = replaced_plugin .placeholder
320+ plugins = CMSPlugin .objects .filter (
321+ id__in = [replaced_plugin .pk ] + replaced_plugin ._get_descendants_ids (),
322+ )
323+ add_plugin_kwargs = {"position" : "left" , "target" : replaced_plugin }
321324
322325 copy_plugins_to_placeholder (
323326 plugins ,
324327 placeholder = self .placeholder ,
325328 language = self .language ,
326329 )
327- plugins .delete ()
328- placeholder ._recalculate_plugin_positions (self .language )
330+ replaced_plugin .delete ()
329331
330332 new_plugin = add_plugin (
331333 placeholder ,
@@ -334,9 +336,6 @@ def populate(self, replaced_placeholder=None, replaced_plugin=None, plugins=None
334336 alias = self .alias ,
335337 ** add_plugin_kwargs ,
336338 )
337- if replaced_plugin :
338- new_plugin .position = replaced_plugin .position
339- new_plugin .save (update_fields = ["position" ])
340339 return new_plugin
341340
342341
0 commit comments