예제 #1
0
    def create_entry(self, item):

        value = self.get_item_value(item)
        selected = self.is_selected(item)

        entry = Element()
        entry.add_class("entry")

        if self.selection_mode == SINGLE_SELECTION:
            entry.control = Element("input", type = "radio", checked = selected)
        elif self.selection_mode == MULTIPLE_SELECTION:
            entry.control = CheckBox()
            entry.control.value = selected
        else:
            raise ValueError("Invalid selection mode")

        entry.control["name"] = self.name
        entry.control["value"] = value
        entry.append(entry.control)

        entry.label = Element("label")
        entry.label["for"] = entry.control.require_id()
        entry.label.append(self.get_item_label(item))
        entry.append(entry.label)

        if value:
            entry.label.set_style("font-size", str(self._font_sizes[value]) + "%")

        return entry
예제 #2
0
    def create_entry(self, item):

        entry = Element("li")
        value = self.get_item_value(item)
        eligible = value is not uneligible

        # Control (checkbox or radio button)
        if eligible:
            entry.control = Element("input",
                name = self.name,
                value = value,
                checked = self.is_selected(item)
            )

            if self.selection_mode == SINGLE_SELECTION:
                entry.control["type"] = "radio"

            elif self.selection_mode == MULTIPLE_SELECTION:
                entry.control["type"] = "checkbox"

            entry.append(entry.control)

        # Label
        if eligible:
            entry.label = Element("label")
            entry.label["for"] = entry.control.require_id()
        else:
            entry.label = Element("span")
            entry.add_class("uneligible")

        entry.label.append(self.get_item_label(item))
        entry.append(entry.label)

        return entry
예제 #3
0
    def create_empty_option(self):

        entry = Element("li")

        entry.control = Element("input",
                                type=self._control_type,
                                name=self.name,
                                value="",
                                checked=self.value is None)
        bind_member(self, entry.control)
        entry.append(entry.control)

        entry.label = Element("label")
        entry.label.add_class("entry_label")
        entry.label.add_class("empty_option")
        entry.label.append(
            translations("woost.views.ContentTypePicker.empty_label"))
        entry.append(entry.label)

        entry.label["for"] = entry.control.require_id()

        return entry
예제 #4
0
    def create_field_instance(self, member, language=None):

        field_instance = Element("td" if self.table_layout else "div")
        field_instance.add_class("field_instance")

        # Label
        if not self.get_member_hidden(member):

            if member.translated and not self.redundant_translation_labels:
                label = self.create_language_label(member, language)
            else:
                label = self.create_label(member, language)

            field_instance.label = label
            field_instance.append(label)

        # Control
        with language_context(language):
            field_instance.control = self.create_control(self.data, member)

        if field_instance.control.class_css:
            for class_name in field_instance.control.class_css.split(" "):
                field_instance.add_class("field_instance-" + class_name)

        insert = getattr(field_instance.control, "insert_into_form", None)

        if insert:
            insert(self, field_instance)
        else:
            field_instance.append(field_instance.control)

        if field_instance.control.tag \
        in ("input", "button", "select", "textarea"):
            field_instance.label["for"] = field_instance.control.require_id()

        return field_instance