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