Ejemplo n.º 1
0
class UndeletableRawTextWidget(RawTextWidget):
    deletable = False

    class Meta:
        proxy = True

class UnnestableWidget(Bucket):
    @classmethod
    def valid_child_of(cls, parent, obj=None):
        for p in list(parent.get_ancestors()) + [parent]:
            if isinstance(p, UnnestableWidget):
                return False
        return super(UnnestableWidget, cls).valid_child_of(parent, obj)

registry.register(Layout)
registry.register(Bucket)
registry.register(RawTextWidget)
registry.register(CantGoAnywhereWidget)
registry.register(PickyBucket)
registry.register(ImmovableBucket)
registry.register(AnotherLayout)
registry.register(VowelBucket)
registry.register(UnnestableWidget)


class HasAWidgy(models.Model):
    widgy = WidgyField(
        null=True,
        blank=True,
        root_choices=[Layout],
Ejemplo n.º 2
0
class UndeletableRawTextWidget(RawTextWidget):
    deletable = False

    class Meta:
        proxy = True

class UnnestableWidget(Bucket):
    @classmethod
    def valid_child_of(cls, parent, obj=None):
        for p in list(parent.get_ancestors()) + [parent]:
            if isinstance(p, UnnestableWidget):
                return False
        return super(UnnestableWidget, cls).valid_child_of(parent, obj)

registry.register(Layout)
registry.register(Bucket)
registry.register(RawTextWidget)
registry.register(CantGoAnywhereWidget)
registry.register(PickyBucket)
registry.register(ImmovableBucket)
registry.register(AnotherLayout)
registry.register(VowelBucket)
registry.register(UnnestableWidget)


class HasAWidgy(models.Model):
    widgy = WidgyField(
        null=True,
        blank=True,
        root_choices=[Layout],
Ejemplo n.º 3
0
from widgy import registry
from widgy.db.fields import WidgyField
from widgy.contrib.page_builder.models import Layout, MainContent, Accordion


class TwoContentLayout(Layout):
    default_children = [
        ('main1', MainContent, (), {}),
        ('main2', MainContent, (), {}),
    ]

    class Meta:
        verbose_name = 'Two Content Layout'

registry.register(TwoContentLayout)


class DemoAccordion(Accordion):
    class Meta:
        proxy = True
        verbose_name = 'Accordion'

    def valid_parent_of(self, cls, obj=None):
        if obj and obj in self.get_children():
            return True
        else:
            sup = super(DemoAccordion, self).valid_parent_of(cls)
            if isinstance(self.get_root(), TwoContentLayout):
                return sup and len(self.get_children()) < 2
            else: