Exemplo n.º 1
0
    def __call__(self, form, form_opts=None, field_args={}):
        """
            Render container.

            :param form:
                Form object
            :param form_opts:
                Form options
            :param field_args:
                Optional arguments that should be passed to template or the field
        """
        context = helpers.get_render_ctx()

        def caller(**kwargs):
            return context.call(self.child_rule, form, form_opts, kwargs)

        args = dict(field_args)
        args['caller'] = caller

        return super(Container, self).__call__(form, form_opts, args)
Exemplo n.º 2
0
    def __call__(self, form, form_opts=None, field_args={}):
        """
            Render macro rule.

            :param form:
                Form object
            :param form_opts:
                Form options
            :param field_args:
                Optional arguments that should be passed to the macro
        """
        context = helpers.get_render_ctx()
        macro = self._resolve(context, self.macro_name)

        if not macro:
            raise ValueError('Cannot find macro %s in current context.' % self.macro_name)

        opts = dict(self.default_args)
        opts.update(field_args)
        return macro(**opts)
Exemplo n.º 3
0
    def __call__(self, form, form_opts=None, field_args={}):
        """
            Render container.

            :param form:
                Form object
            :param form_opts:
                Form options
            :param field_args:
                Optional arguments that should be passed to template or the field
        """
        context = helpers.get_render_ctx()

        def caller(**kwargs):
            return context.call(self.child_rule, form, form_opts, kwargs)

        args = dict(field_args)
        args['caller'] = caller

        return super(Container, self).__call__(form, form_opts, args)
Exemplo n.º 4
0
    def __call__(self, form, form_opts=None, field_args={}):
        """
            Render macro rule.

            :param form:
                Form object
            :param form_opts:
                Form options
            :param field_args:
                Optional arguments that should be passed to the macro
        """
        context = helpers.get_render_ctx()
        macro = self._resolve(context, self.macro_name)

        if not macro:
            raise ValueError('Cannot find macro %s in current context.' % self.macro_name)

        opts = dict(self.default_args)
        opts.update(field_args)
        return macro(**opts)
Exemplo n.º 5
0
    def __call__(self, form, form_opts=None, field_args={}):
        ctx = helpers.get_render_ctx()

        if '.' not in self.field_name and self.field_name in form.data:
            value = form.data[self.field_name]
        else:
            model = self._resolve(ctx, 'model')

            try:
                value = reduce(lambda m, n: getattr(m, n) if m else None,
                               self.field_name.split('.'), model)
            except AttributeError:
                raise ValueError('Model %s does not have field %s' %
                                 (model, self.field_name))

        view = self._resolve(ctx, 'admin_view')
        converter = view.model_form_converter(view.session, view)
        label = converter._get_label(self.field_name, {})

        params = {'label': label, 'value': value}
        return super(ReadOnly, self).__call__(form, form_opts, params)
Exemplo n.º 6
0
 def __call__(self, form, form_opts=None, field_args={}):
     context = helpers.get_render_ctx()
     tmpl = jinja2.Template(self.template)
     return jinja2.Markup(tmpl.render(context))