Ejemplo n.º 1
0
 def __init__(self):
     self.FIELD_GROUPS = {}
     self.fh = FormHelper()
     self._error_fields = []
     self._disabled_fields = []
     self._disable_all_fields = False
     self._highlight_completable_fields = False
Ejemplo n.º 2
0
Archivo: render.py Proyecto: DOAJ/doaj
 def __init__(self):
     self.FIELD_GROUPS = {}
     self.fh = FormHelper()
     self._error_fields = []
     self._disabled_fields = []
     self._disable_all_fields = False
     self._highlight_completable_fields = False
Ejemplo n.º 3
0
class Renderer(object):
    def __init__(self):
        self.FIELD_GROUPS = {}
        self.fh = FormHelper()
        self._error_fields = []
        self._disabled_fields = []
        self._disable_all_fields = False
        self._highlight_completable_fields = False

    def check_field_group_exists(self, field_group_name):
        """ Return true if the field group exists in this form """
        group_def = self.FIELD_GROUPS.get(field_group_name)
        if group_def is None:
            return False
        else:
            return True

    def render_field_group(self, form_context, field_group_name=None):
        if field_group_name is None:
            return self._render_all(form_context)

        # get the group definition
        group_def = self.FIELD_GROUPS.get(field_group_name)
        if group_def is None:
            return ""

        # build the frag
        frag = ""
        for entry in group_def:
            field_name = entry.keys()[0]
            config = entry.get(field_name)
            config = deepcopy(config)

            config = self._rewrite_extra_fields(form_context, config)
            field = form_context.form[field_name]

            if field_name in self.disabled_fields or self._disable_all_fields is True:
                config["disabled"] = "disabled"

            if self._highlight_completable_fields is True:
                valid = field.validate(form_context.form)
                config["complete_me"] = not valid

            frag += self.fh.render_field(field, **config)

        return frag

    @property
    def error_fields(self):
        return self._error_fields

    def set_error_fields(self, fields):
        self._error_fields = fields

    @property
    def disabled_fields(self):
        return self._disabled_fields

    def set_disabled_fields(self, fields):
        self._disabled_fields = fields

    def disable_all_fields(self, disable):
        self._disable_all_fields = disable

    def _rewrite_extra_fields(self, form_context, config):
        if "extra_input_fields" in config:
            config = deepcopy(config)
            for opt, field_ref in config.get("extra_input_fields").iteritems():
                extra_field = form_context.form[field_ref]
                config["extra_input_fields"][opt] = extra_field
        return config

    def _render_all(self, form_context):
        frag = ""
        for field in form_context.form:
            frag += self.fh.render_field(form_context, field.short_name)
        return frag

    def find_field(self, field, field_group):
        for index, item in enumerate(self.FIELD_GROUPS[field_group]):
            if field in item:
                return index

    def insert_field_after(self, field_to_insert, after_this_field,
                           field_group):
        self.FIELD_GROUPS[field_group].insert(
            self.find_field(after_this_field, field_group) + 1,
            field_to_insert)
Ejemplo n.º 4
0
Archivo: render.py Proyecto: DOAJ/doaj
class Renderer(object):
    def __init__(self):
        self.FIELD_GROUPS = {}
        self.fh = FormHelper()
        self._error_fields = []
        self._disabled_fields = []
        self._disable_all_fields = False
        self._highlight_completable_fields = False

    def check_field_group_exists(self, field_group_name):
        """ Return true if the field group exists in this form """
        group_def = self.FIELD_GROUPS.get(field_group_name)
        if group_def is None:
            return False
        else:
            return True

    def render_field_group(self, form_context, field_group_name=None):
        if field_group_name is None:
            return self._render_all(form_context)

        # get the group definition
        group_def = self.FIELD_GROUPS.get(field_group_name)
        if group_def is None:
            return ""

        # build the frag
        frag = ""
        for entry in group_def:
            field_name = entry.keys()[0]
            config = entry.get(field_name)
            config = deepcopy(config)

            config = self._rewrite_extra_fields(form_context, config)
            field = form_context.form[field_name]

            if field_name in self.disabled_fields or self._disable_all_fields is True:
                config["disabled"] = "disabled"

            if self._highlight_completable_fields is True:
                valid = field.validate(form_context.form)
                config["complete_me"] = not valid

            frag += self.fh.render_field(field, **config)

        return frag

    @property
    def error_fields(self):
        return self._error_fields

    def set_error_fields(self, fields):
        self._error_fields = fields

    @property
    def disabled_fields(self):
        return self._disabled_fields

    def set_disabled_fields(self, fields):
        self._disabled_fields = fields

    def disable_all_fields(self, disable):
        self._disable_all_fields = disable

    def _rewrite_extra_fields(self, form_context, config):
        if "extra_input_fields" in config:
            config = deepcopy(config)
            for opt, field_ref in config.get("extra_input_fields").iteritems():
                extra_field = form_context.form[field_ref]
                config["extra_input_fields"][opt] = extra_field
        return config

    def _render_all(self, form_context):
        frag = ""
        for field in form_context.form:
            frag += self.fh.render_field(form_context, field.short_name)
        return frag

    def find_field(self, field, field_group):
        for index, item in enumerate(self.FIELD_GROUPS[field_group]):
            if field in item:
                return index

    def insert_field_after(self, field_to_insert, after_this_field, field_group):
        self.FIELD_GROUPS[field_group].insert(
            self.find_field(after_this_field, field_group) + 1,
            field_to_insert
        )
Ejemplo n.º 5
0
 def __init__(self):
     self.FIELD_GROUPS = {}
     self.fh = FormHelper()
     self._error_fields = []
     self._disabled_fields = []
Ejemplo n.º 6
0
class Renderer(object):
    def __init__(self):
        self.FIELD_GROUPS = {}
        self.fh = FormHelper()
        self._error_fields = []
        self._disabled_fields = []

    def render_field_group(self, form_context, field_group_name=None):
        if field_group_name is None:
            return self._render_all(form_context)

        # get the group definition
        group_def = self.FIELD_GROUPS.get(field_group_name)
        if group_def is None:
            return ""

        # build the frag
        frag = ""
        for entry in group_def:
            field_name = entry.keys()[0]
            config = entry.get(field_name)

            config = self._rewrite_extra_fields(form_context, config)
            field = form_context.form[field_name]

            if field_name in self.disabled_fields:
                config = deepcopy(config)
                config["disabled"] = "disabled"

            frag += self.fh.render_field(field, **config)

        return frag

    @property
    def error_fields(self):
        return self._error_fields

    def set_error_fields(self, fields):
        self._error_fields = fields

    @property
    def disabled_fields(self):
        return self._disabled_fields

    def set_disabled_fields(self, fields):
        self._disabled_fields = fields

    def _rewrite_extra_fields(self, form_context, config):
        if "extra_input_fields" in config:
            config = deepcopy(config)
            for opt, field_ref in config.get("extra_input_fields").iteritems():
                extra_field = form_context.form[field_ref]
                config["extra_input_fields"][opt] = extra_field
        return config

    def _render_all(self, form_context):
        frag = ""
        for field in form_context.form:
            frag += self.fh.render_field(form_context, field.short_name)
        return frag

    def find_field(self, field, field_group):
        for index, item in enumerate(self.FIELD_GROUPS[field_group]):
            if field in item:
                return index

    def insert_field_after(self, field_to_insert, after_this_field, field_group):
        self.FIELD_GROUPS[field_group].insert(
            self.find_field(after_this_field, field_group) + 1,
            field_to_insert
        )