コード例 #1
0
signals.post_save.connect(auto_appform, sender=App)


def copy_form(sender, source_app, new_app, **kwargs):
    if source_app.editor != 'appstore.contrib.form_designer_appeditor':
        return

    new_app.appform.form.verbose_name = source_app.appform.form.verbose_name
    new_app.appform.form.author = source_app.appform.form.author

    for tab in source_app.appform.form.tab_set.all():
        new_tab = copy.deepcopy(tab)
        new_tab.pk = None
        new_tab.form = new_app.appform.form
        new_tab.save()

        for widget in tab.widget_set.all().select_subclasses():
            widget.pk = None
            widget.id = None
            widget.tab = new_tab
            widget.save()

    empty = new_app.appform.form.tab_set.annotate(widget_count=Count('widget')
            ).filter(widget_count=0)

    if empty.count() == new_app.appform.form.tab_set.all().count():
        empty.exclude(pk=new_app.appform.form.tab_set.all()[0].pk).delete()
    else:
        empty.delete()
post_app_copy.connect(copy_form)
コード例 #2
0
def copy_form(sender, source_app, new_app, **kwargs):
    if source_app.editor != 'appstore.contrib.form_designer_appeditor':
        return

    new_app.appform.form.verbose_name = source_app.appform.form.verbose_name
    new_app.appform.form.author = source_app.appform.form.author

    for tab in source_app.appform.form.tab_set.all():
        new_tab = copy.deepcopy(tab)
        new_tab.pk = None
        new_tab.form = new_app.appform.form
        new_tab.save()

        for widget in tab.widget_set.all().select_subclasses():
            widget.pk = None
            widget.id = None
            widget.tab = new_tab
            widget.save()

    empty = new_app.appform.form.tab_set.annotate(
        widget_count=Count('widget')).filter(widget_count=0)

    if empty.count() == new_app.appform.form.tab_set.all().count():
        empty.exclude(pk=new_app.appform.form.tab_set.all()[0].pk).delete()
    else:
        empty.delete()


post_app_copy.connect(copy_form)
コード例 #3
0
class DummyApp(models.Model):
    app = models.OneToOneField('appstore.app')
    sound = models.TextField()

    def __unicode__(self):
        return u'Sound for %s' % self.app


def auto_dummyapp(sender, instance, created, **kwargs):
    if not created:
        return

    if instance.editor != 'appstore.contrib.dummy_app':
        return

    DummyApp(app=instance).save()


signals.post_save.connect(auto_dummyapp, sender=App)


def copy_dummyapp(sender, source_app, new_app, **kwargs):
    if new_app.editor != 'appstore.contrib.dummy_app':
        return

    DummyApp(app=new_app, sound=source_app.dummyapp.sound).save()


post_app_copy.connect(copy_dummyapp)
コード例 #4
0
from appstore.models import App
from appstore.signals import post_app_copy


class DummyApp(models.Model):
    app = models.OneToOneField('appstore.app')
    sound = models.TextField()

    def __unicode__(self):
        return u'Sound for %s' % self.app


def auto_dummyapp(sender, instance, created, **kwargs):
    if not created:
        return

    if instance.editor != 'appstore.contrib.dummy_app':
        return

    DummyApp(app=instance).save()
signals.post_save.connect(auto_dummyapp, sender=App)


def copy_dummyapp(sender, source_app, new_app, **kwargs):
    if new_app.editor != 'appstore.contrib.dummy_app':
        return

    DummyApp(app=new_app, sound=source_app.dummyapp.sound).save()
post_app_copy.connect(copy_dummyapp)