Source code for cms_qe_table.cms_plugins

from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from django.utils.translation import gettext_lazy as _

from .forms import TablePluginForm
from .models import TablePluginModel


[docs]@plugin_pool.register_plugin class TablePlugin(CMSPluginBase): """ CMS plugin allowing to add dynamically configured listing of any model. """ form = TablePluginForm model = TablePluginModel name = _('Table') render_template = 'cms_qe/table/table.html' cache = False def render(self, context: dict, instance: TablePluginModel, placeholder) -> dict: context = super().render(context, instance, placeholder) if instance.table_exists and instance.columns_exist: page_param_name = f'page_{instance.pk}' page = context['request'].GET.get(page_param_name, None) context.update({ 'header': instance.get_header(), 'items': instance.get_items(page), 'page_param_name': page_param_name, }) return context