Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # models.py
- class HeaderIcon(CMSPlugin):
- title = models.CharField(_("Tytuł"), max_length=50)
- text = models.TextField(_("Opis"))
- def copy_relations(self, oldinstance):
- self.associated_item.all().delete()
- self.header_item.all().delete()
- for associated_item in oldinstance.associated_item.all():
- # instance.pk = None; instance.pk.save() is the slightly odd but
- # standard Django way of copying a saved model instance
- associated_item.pk = None
- associated_item.plugin = self
- associated_item.save()
- for associated_item in oldinstance.header_item.all():
- # instance.pk = None; instance.pk.save() is the slightly odd but
- # standard Django way of copying a saved model instance
- associated_item.pk = None
- associated_item.plugin = self
- associated_item.save()
- class HeaderIconImage(models.Model):
- header = models.ForeignKey(HeaderIcon, related_name="associated_item")
- title = models.CharField(_("Tytuł"), max_length=50)
- url = models.CharField(_("URL"), max_length=50)
- anchor = models.CharField(_("Anchor"), max_length=50)
- image = models.ImageField(_("Grafika"), upload_to=None, height_field=None, width_field=None, max_length=None)
- def __str__(self):
- return self.title
- class Meta:
- verbose_name = "ikona"
- verbose_name_plural = "ikony"
- class TileImage(models.Model):
- header = models.ForeignKey(HeaderIcon, related_name="header_item")
- title = models.CharField(_("Tytuł"), max_length=50)
- image = models.ImageField(_("Grafika"), upload_to=None, height_field=None, width_field=None, max_length=None)
- def __str__(self):
- return self.title
- class Meta:
- verbose_name = "kafelek"
- verbose_name_plural = "kafelki"
- # Plugins
- class HeadersImageAdmin(admin.StackedInline):
- model = HeaderIconImage
- extra = 0
- class TileImageAdmin(admin.StackedInline):
- model = TileImage
- extra = 0
- @plugin_pool.register_plugin
- class HeaderIconPlugin(CMSPluginBase):
- model = HeaderIcon
- name = _("Ikony")
- render_template = "plugins/headers_icon.html"
- cache = False
- inlines = (HeadersImageAdmin, TileImageAdmin)
- def render(self, context, instance, placeholder):
- context = super(HeaderIconPlugin, self).render(context, instance, placeholder)
- items = instance.associated_item.all()
- header_items = instance.header_item.all()
- context.update({
- 'items': items,
- 'header_items': header_items
- })
- return context
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement