[docs]classAlbumPlugin(SmartAdminMixin,CMSPluginBase):""" Album interface is able to add/edit/remove items within inline forms. Also used template is dynamically retrieved from "template" value. """module=_("Blocks")name=_("Album")model=Albumform=AlbumForminlines=(AlbumItemAdmin,)render_template=get_album_template_default()cache=True
[docs]defget_fieldsets(self,request,obj=None):""" Define plugin form fieldsets depending features are enabled or not (when there is no defined feature choices). """fieldsets=[(None,{"fields":("template",),}),(_("Content"),{"fields":("title",),}),(_("Options"),{"fields":("mass_upload",),}),]display_features=Trueifdisplay_features:fieldsets.append((_("Features"),{"fields":("size_features","color_features","extra_features",),}))returntuple(fieldsets)
[docs]defsave_model(self,request,obj,form,change):result=super().save_model(request,obj,form,change)# Save awaiting item in memoryforitemingetattr(obj,"_awaiting_items",[]):item.album=objitem.save()returnresult