diff options
Diffstat (limited to 'ishtar_common/forms.py')
| -rw-r--r-- | ishtar_common/forms.py | 77 | 
1 files changed, 32 insertions, 45 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index f1e5b34ca..74590c240 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -81,7 +81,7 @@ reverse_lazy = lazy(my_reverse, str)  regexp_name = re.compile(r"^[\.,:/\w\-'\"() \&\[\]@]+$", re.UNICODE)  name_validator = validators.RegexValidator(      regexp_name, -    _(u"Enter a valid name consisting of letters, spaces and hyphens."), +    _("Enter a valid name consisting of letters, spaces and hyphens."),      'invalid') @@ -100,19 +100,19 @@ class FloatField(forms.FloatField):      Allow the use of comma for separating float fields      """      def clean(self, value): -        if value and (isinstance(value, str) or isinstance(value, str)): +        if value and isinstance(value, str):              value = value.replace(',', '.').replace('%', '')          return super(FloatField, self).clean(value)  class FinalForm(forms.Form):      final = True -    form_label = _(u"Confirm") +    form_label = _("Confirm")  class FinalDeleteForm(FinalForm):      confirm_msg = " " -    confirm_end_msg = _(u"Are you sure you want to delete?") +    confirm_end_msg = _("Are you sure you want to delete?")  def get_readonly_clean(key): @@ -151,11 +151,11 @@ class BSForm(object):                  widget.attrs['class'] = cls              # 32 bits max value              if isinstance(self.fields[k], forms.IntegerField): -                has_max = False -                for validator in self.fields[k].validators: -                    if isinstance(validator, validators.MaxValueValidator): -                        has_max = True -                        break +                has_max = any( +                    isinstance(validator, validators.MaxValueValidator) +                    for validator in self.fields[k].validators +                ) +                  if not has_max:                      self.fields[k].validators.append(                          validators.MaxValueValidator(2147483647)) @@ -249,10 +249,7 @@ class CustomForm(BSForm):          self._post_init()      def are_available(self, keys): -        for k in keys: -            if k not in self.fields: -                return False -        return True +        return all(k in self.fields for k in keys)      def remove_field(self, key):          if key in self.fields: @@ -404,13 +401,10 @@ class LockForm(object):          if not pk_key:              raise NotImplementedError("pk_key must be set")          if pk_key not in cleaned_data or not cleaned_data[pk_key]: -            raise forms.ValidationError(_(u"You should select an item.")) +            raise forms.ValidationError(_("You should select an item."))          model = self.associated_models[pk_key]          pks = self.cleaned_data[pk_key] -        if isinstance(pks, int): -            pks = [pks] -        else: -            pks = pks.split(",") +        pks = [pks] if isinstance(pks, int) else pks.split(",")          for pk in pks:              try:                  item = model.objects.get(pk=pk) @@ -464,10 +458,10 @@ class MultiSearchForm(CustomFormSearch):                  except (current_model.DoesNotExist, ValueError):                      continue          return [ -            (u"", +            ("",               mark_safe( -                 u"<ul class='compact'><li>" + u"</li><li>".join(items) + -                 u"</li></ul>" +                 "<ul class='compact'><li>" + "</li><li>".join(items) + +                 "</li></ul>"               ))          ] @@ -497,7 +491,7 @@ class FormSet(CustomForm, BaseFormSet):          if not error_msg:              error_msg = _("There are identical items.")          items = [] -        for i in range(0, self.total_form_count()): +        for i in range(self.total_form_count()):              form = self.forms[i]              if not form.is_valid():                  continue @@ -586,7 +580,7 @@ class FormHeader(object):                  "<h{level}>{label}</h{level}>{help_message}".format(                      label=self.label, level=self.level,                      help_message=help_message)) -        html = u"""<div id="collapse-parent-{slug}" class="collapse-form"> +        html = """<div id="collapse-parent-{slug}" class="collapse-form">    <div class="card">      <div class="card-header" id="collapse-head-{slug}">        <h{level} href="#"> @@ -612,7 +606,7 @@ class FormHeader(object):      def render_end(self):          if not self.collapse:              return "" -        return mark_safe(u""" +        return mark_safe("""        </div>      </div>    </div> @@ -865,10 +859,8 @@ class TableSelect(IshtarForm):              if k == 'search_vector':                  cls += " search-vector"              self.fields[k].widget.attrs['class'] = cls -            if k in alt_names: -                self.fields[k].alt_name = alt_names[k].search_key -            else: -                self.fields[k].alt_name = k +            self.fields[k].alt_name = alt_names[k].search_key \ +                if k in alt_names else k          key = list(self.fields.keys())[0]          self.fields[key].widget.attrs['autofocus'] = 'autofocus' @@ -878,13 +870,13 @@ class TableSelect(IshtarForm):  class HistorySelect(CustomForm, TableSelect):      history_creator = forms.IntegerField( -        label=_(u"Created by"), +        label=_("Created by"),          widget=widgets.JQueryAutoComplete(              reverse_lazy('autocomplete-user'),              associated_model=User), required=False      )      history_modifier = forms.IntegerField( -        label=_(u"Last modified by"), +        label=_("Last modified by"),          widget=widgets.JQueryAutoComplete(              reverse_lazy('autocomplete-user'),              associated_model=User), required=False @@ -931,13 +923,12 @@ class DocumentItemSelect(HistorySelect):  def get_now():      format = formats.get_format('DATE_INPUT_FORMATS')[0] -    value = datetime.datetime.now().strftime(format) -    return value +    return datetime.datetime.now().strftime(format)  class ClosingDateFormSelection(IshtarForm):      form_label = _("Closing date") -    end_date = DateField(label=_(u"Closing date")) +    end_date = DateField(label=_("Closing date"))      def __init__(self, *args, **kwargs):          if 'initial' not in kwargs: @@ -953,8 +944,8 @@ def has_map():  def get_form_selection(          class_name, label, key, model, base_form, get_url, -        not_selected_error=_(u"You should select an item."), new=False, -        new_message=_(u"Add a new item"), get_full_url=None, +        not_selected_error=_("You should select an item."), new=False, +        new_message=_("Add a new item"), get_full_url=None,          gallery=False, map=False, multi=False, base_form_select=None,          alt_pk_field=None      ): @@ -1120,13 +1111,13 @@ class QAForm(CustomForm, ManageOldType):                              elif int(v) in list(dct_choices.keys()):                                  values.append(str(dct_choices[int(v)]))                          self.fields[k].rendered_value = mark_safe( -                            u" ; ".join(values)) +                            " ; ".join(values))              if k not in self.REPLACE_FIELDS:                  self.fields[k].label = str(self.fields[k].label) + \ -                                       str(_(u" - append to existing")) +                                       str(_(" - append to existing"))              else:                  self.fields[k].label = str(self.fields[k].label) + \ -                                       str(_(u" - replace")) +                                       str(_(" - replace"))      def _set_value(self, item, base_key):          value = self.cleaned_data[base_key] @@ -1143,19 +1134,15 @@ class QAForm(CustomForm, ManageOldType):                  if not isinstance(v, field.related_model):                      v = field.related_model.objects.get(pk=v)                  new_value.append(v) -            if is_list: -                value = new_value -            else: -                value = new_value[0] +            value = new_value if is_list else new_value[0]          if getattr(field, 'many_to_many', None):              if type(value) not in (list, tuple):                  value = [value]              for v in value:                  getattr(item, key).add(v)          else: -            if base_key not in self.REPLACE_FIELDS: -                if getattr(item, key): -                    value = getattr(item, key) + u"\n" + value +            if base_key not in self.REPLACE_FIELDS and getattr(item, key): +                value = getattr(item, key) + "\n" + value              setattr(item, key, value)      def save(self, items, user):  | 
