divio/django-cms

View on GitHub
cms/test_utils/project/pluginapp/plugins/multicolumn/cms_plugins.py

Summary

Maintainability
B
6 hrs
Test Coverage
from cms.models import CMSPlugin
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool

from .forms import MultiColumnForm
from .models import MultiColumns


class MultiColumnPlugin(CMSPluginBase):
    model = MultiColumns
    module = "Multi Columns"
    name = "Multi Columns"
    render_template = 'pluginapp/multicolumn/multicolumn.html'
    allow_children = True
    child_classes = ["ColumnPlugin"]
    form = MultiColumnForm

    def save_model(self, request, obj, form, change):
        response = super().save_model(
            request, obj, form, change
        )
        for _x in range(int(form.cleaned_data['create'])):
            col = CMSPlugin(
                parent=obj,
                placeholder=obj.placeholder,
                language=obj.language,
                position=CMSPlugin.objects.filter(parent=obj).count(),
                plugin_type=ColumnPlugin.__name__
            )
            col.save()
        return response


class ColumnPlugin(CMSPluginBase):
    module = "Multi Columns"
    name = "Column"
    render_template = 'pluginapp/multicolumn/column.html'
    parent_classes = ["MultiColumnPlugin"]
    allow_children = True


plugin_pool.register_plugin(MultiColumnPlugin)
plugin_pool.register_plugin(ColumnPlugin)