def create_plugins(page, count=5): placeholders = page.placeholders.all() for placeholder in placeholders: for language in page.get_languages(): data = { 'language': language, 'plugin_type': 'CMSToolsNode', 'placeholder': placeholder, } for i in range(0, count): # Depth 1 parent = CMSPlugin.add_root(position=i, **data) # Depth 2 child = parent.add_child(position=i, parent=parent, **data) # Depth 3 child.add_child(position=i, parent=child, **data)
def create_module_plugin(cls, name, category, plugins): placeholder = category.modules position = placeholder.get_plugins().filter( parent__isnull=True).count() plugin_kwargs = { 'plugin_type': cls.__name__, 'placeholder_id': category.modules_id, 'language': settings.LANGUAGE_CODE, 'position': position, } plugin = CMSPlugin.add_root(**plugin_kwargs) instance = cls.model(module_name=name, module_category=category) plugin.set_base_attr(instance) instance.save() copy_plugins_to_placeholder( plugins, placeholder=placeholder, language=plugin.language, root_plugin=plugin, )
def restore(self, placeholder, language, parent=None): plugin_kwargs = { 'pk': self.pk, 'plugin_type': self.plugin_type, 'placeholder': placeholder, 'language': language, 'parent': parent, 'position': self.position, } if parent: plugin = parent.add_child(**plugin_kwargs) else: plugin = CMSPlugin.add_root(**plugin_kwargs) if self.plugin_type != 'CMSPlugin': _d_instance = self.deserialized_instance _d_instance.object._no_reorder = True plugin.set_base_attr(_d_instance.object) _d_instance.save() return plugin
def restore(self, placeholder, language, parent=None, with_data=True): parent_id = parent.pk if parent else None plugin_kwargs = { 'plugin_type': self.plugin_type, 'placeholder': placeholder, 'language': language, 'parent_id': parent_id, 'position': self.position, } if parent: plugin = parent.add_child(**plugin_kwargs) else: plugin = CMSPlugin.add_root(**plugin_kwargs) if with_data and self.plugin_type != 'CMSPlugin': _d_instance = self.deserialized_instance _d_instance.object._no_reorder = True _d_instance.object.cmsplugin_ptr = plugin plugin.set_base_attr(_d_instance.object) _d_instance.save() return _d_instance.object return plugin