def get_field_choices(self, template, type):
     choices = [('', '--------')]
     for loader in template.data_loaders.all():
         DataLoader = utils.get_data_loader(loader.path)
         data_loader = DataLoader()
         field_choices = data_loader.get_field_choices('image', loader.prefix)
         choices.extend([(data_loader.verbose_name(), field_choices)])
     return choices
 def get_context(self):
     context = {}
     for loader in self.template.data_loaders.all():
         from impositions.utils import get_data_loader
         data_loader = get_data_loader(loader.path)()
         try:
             source = self.data_sources.get(loader=loader)
             data_loader.set_instance(source.content_object)
         except CompositionDataSource.DoesNotExist:
             pass
         context.update(data_loader.get_context(loader.prefix))
     return context
def sync_data_loaders(sender, **kwargs):
    # FIXME: Check to see if impositions has been migrated to at least 0005
    loaders = getattr(settings, 'IMPOSITIONS_DATA_LOADERS', ())
    for pfx, path in loaders:
        try:
            loader = DataLoader.objects.get(prefix=pfx)
        except DataLoader.DoesNotExist:
            loader = DataLoader(prefix=pfx, path=path)
            print 'Adding impositions data loader: {}'.format(pfx)
        else:
            if loader.path != path:
                print 'Updating impositions data loader: {}'.format(pfx)
                loader.path = path

        loader.save()

    # remove data obsolete data loaders
    for loader in DataLoader.objects.all():
        try:
            get_data_loader(loader.path)
        except (ImportError, AttributeError):
            print 'Removing obsolete data loader: {}'.format(loader.prefix)
            loader.delete()
    def get_context_data(self, **kwargs):
        context = super(TemplateUpdateView, self).get_context_data(**kwargs)

        context["formset_form_tpl"] = "impositions/region_form.html"

        context["data_fields"] = []
        if self.object:
            fields = []
            for loader in self.object.data_loaders.all():
                DataLoader = utils.get_data_loader(loader.path)
                data_loader = DataLoader()
                field_choices = data_loader.get_field_choices("text", loader.prefix)
                fields.extend([(data_loader.verbose_name(), field_choices)])
            context["data_fields"] = fields

        other_templates = models.Template.objects.order_by("-id")
        context["other_templates"] = other_templates.exclude(pk=self.object.pk)

        return context
    def get_context_data(self, **kwargs):
        context = super(TemplateUpdateView, self).get_context_data(**kwargs)

        context['formset_form_tpl'] = 'impositions/region_form.html'
        
        context['data_fields'] = []
        if self.object:
            tpl_width, tpl_height = self.object.get_dimensions()
            context['tpl_width'] = tpl_width
            context['tpl_height'] = tpl_height

            fields = []
            for loader in self.object.data_loaders.all():
                DataLoader = utils.get_data_loader(loader.path)
                data_loader = DataLoader()
                field_choices = data_loader.get_field_choices('text', loader.prefix)
                fields.extend([(data_loader.verbose_name(), field_choices)])
            context['data_fields'] = fields
        
        other_templates = models.Template.objects.order_by('-id')
        context['other_templates'] = other_templates.exclude(pk=self.object.pk)

        return context
 def __unicode__(self):
     from impositions.utils import get_data_loader
     DataLoader = get_data_loader(self.path)
     return DataLoader().verbose_name()
 def get_data_loader(self):
     from impositions.utils import get_data_loader
     DataLoader = get_data_loader(self.loader.path)
     data_loader = DataLoader()
     data_loader.set_instance(self.content_object)
     return data_loader