summaryrefslogtreecommitdiff
path: root/ishtar_common/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-12 15:43:15 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-28 12:15:24 +0100
commit6e4f7a0390b7f49ce79f0e15e07e1d6df309f3ce (patch)
treebb7c35ca850f60028c576ee42e3fb95db20a64be /ishtar_common/forms.py
parent8ec062dab58750d8eb7fc0217d7adcf71d222747 (diff)
downloadIshtar-6e4f7a0390b7f49ce79f0e15e07e1d6df309f3ce.tar.bz2
Ishtar-6e4f7a0390b7f49ce79f0e15e07e1d6df309f3ce.zip
Refactor - clean
Diffstat (limited to 'ishtar_common/forms.py')
-rw-r--r--ishtar_common/forms.py77
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):