1from cms.models import CMSPlugin 2from cms.plugin_base import CMSPluginBase 3from cms.plugin_pool import plugin_pool 4 5from .forms import MultiWrapForm 6 7 8class MultiWrapPlugin(CMSPluginBase): 9 module = "Multi Wraps" 10 name = "Multi Wrap" 11 render_template = 'pluginapp/multiwrap/multiwrap.html' 12 allow_children = True 13 child_classes = ["WrapPlugin"] 14 form = MultiWrapForm 15 16 def save_model(self, request, obj, form, change): 17 response = super(MultiWrapPlugin, self).save_model( 18 request, obj, form, change 19 ) 20 for x in range(int(form.cleaned_data['create'])): 21 col = CMSPlugin( 22 parent=obj, 23 placeholder=obj.placeholder, 24 language=obj.language, 25 position=CMSPlugin.objects.filter(parent=obj).count(), 26 plugin_type=WrapPlugin.__name__ 27 ) 28 col.save() 29 return response 30 31 32class WrapPlugin(CMSPluginBase): 33 module = "Multi Wraps" 34 name = "Wrap" 35 render_template = 'pluginapp/multiwrap/wrap.html' 36 parent_classes = ["MultiWrapPlugin"] 37 allow_children = True 38 39 40plugin_pool.register_plugin(MultiWrapPlugin) 41plugin_pool.register_plugin(WrapPlugin) 42