def render(self, name, values, attrs): widgets = [] values = values or {} for index, key in enumerate(self.labels): label = '{0}-{1}'.format(name, key) errors = key in self.validation_errors and 'errors' or '' widgets.append((self.widgets[index].render(label, values.get(key), attrs), errors)) html = format_html('{0}', format_html_join('\n', '<div class="sibling-field {1}">{0}</div>', widgets)) return html
def __init__(self, form_id, form, field_name, file_count, attrs=None): widgets = [] for i in range(file_count): widgets.append(ConfirmMultiFileWidget(form_id=form_id, form=form, field_name=field_name)) widgets.append(MultiFileInput()) super().__init__(widgets, attrs)
def __init__(self, form, attrs=None): widgets = [] form = form() for field in form: widget = field.field.widget widget.attrs['field'] = field widgets.append(widget) super(ParamsFormWidget, self).__init__(widgets, attrs)
def render(self, name, values, attrs): widgets = [] values = values or {} elem_id = attrs['id'] for index, key in enumerate(self.labels): label = '{0}-{1}'.format(name, key) attrs['id'] = '{0}_{1}'.format(elem_id, key) errors = key in self.validation_errors and 'errors' or '' widgets.append((self.widgets[index].render(label, values.get(key), attrs), key, label, errors)) return format_html('<div class="clearfix">{0}</div>', format_html_join('\n', '<div class="sibling-field {3}"><label for="{2}">{1}</label>{0}</div>', widgets))
def render(self, name, value, attrs=None, renderer=None): widgets = [] values = value[:] if isinstance(value, (list, tuple)) else [] values.extend([''] * max(len(self.labels) - len(values), 0)) elem_id = attrs['id'] for index, key in enumerate(self.labels): label = '{0}-{1}'.format(name, key) attrs['id'] = '{0}_{1}'.format(elem_id, key) widgets.append( (self.widgets[index].render(label, values[index], attrs, renderer), key, label)) return format_html( '<div>{0}</div>', format_html_join( '\n', '<div class="sibling-field"><label for="{2}">{1}</label>{0}</div>', widgets))
def __init__(self, scheme: dict, field: forms.Field, attrs=None, titles: list=None): widgets = [] self.scheme = scheme self.field = field self.titles = titles for fname, label, size in self.scheme['fields']: a = copy.copy(attrs) or {} a['data-fname'] = fname if fname == 'title' and self.titles: widgets.append(Select(attrs=a, choices=[('', '')] + [(d, d) for d in self.titles[1]])) elif fname == 'salutation': widgets.append(Select(attrs=a, choices=[('', '---')] + PERSON_NAME_SALUTATIONS)) else: widgets.append(self.widget(attrs=a)) super().__init__(widgets, attrs)