misc: pylint fix function-redefined (#52222)

This commit is contained in:
Lauréline Guérin 2021-03-22 10:28:40 +01:00
parent 46be3ca3ce
commit d3f8af1166
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 70 additions and 82 deletions

View File

@ -173,7 +173,7 @@ class FormDefUI:
return formdef
class FieldDefPage(FieldDefPage):
class AdminFieldDefPage(FieldDefPage):
section = 'forms'
def get_deletion_extra_warning(self):
@ -182,8 +182,8 @@ class FieldDefPage(FieldDefPage):
return _('Warning: this field data will be permanently deleted from existing forms.')
class FieldsDirectory(FieldsDirectory):
field_def_page_class = FieldDefPage
class AdminFieldsDirectory(FieldsDirectory):
field_def_page_class = AdminFieldDefPage
field_var_prefix = 'form_var_'
readonly_message = N_('This form is readonly.')
@ -604,7 +604,7 @@ class FormDefPage(Directory):
raise TraversalError()
self.formdefui = self.formdef_ui_class(self.formdef)
get_response().breadcrumb.append((component + '/', self.formdef.name))
self.fields = FieldsDirectory(self.formdef)
self.fields = AdminFieldsDirectory(self.formdef)
self.fields.html_top = self.html_top
self.role = WorkflowRoleDirectory(self.formdef)
self.role.html_top = self.html_top

View File

@ -61,15 +61,15 @@ from quixote import get_publisher
from quixote import get_request
from quixote import get_response
from quixote import get_session
from quixote.form import CheckboxWidget
from quixote.form import CheckboxWidget as QuixoteCheckboxWidget
from quixote.form import FileWidget
from quixote.form import Form
from quixote.form import Form as QuixoteForm
from quixote.form import HiddenWidget
from quixote.form import IntWidget
from quixote.form import PasswordWidget
from quixote.form import SelectWidget
from quixote.form import StringWidget
from quixote.form import TextWidget
from quixote.form import StringWidget as QuixoteStringWidget
from quixote.form import TextWidget as QuixoteTextWidget
from quixote.form import Widget
from quixote.html import TemplateIO
from quixote.html import htmlescape
@ -99,8 +99,6 @@ from .template import render as render_template
from .template_utils import render_block_to_string
from .upload_storage import UploadStorageError
QuixoteForm = Form
Widget.REQUIRED_ERROR = N_('required field')
get_error_orig = Widget.get_error
@ -210,22 +208,6 @@ Widget.is_prefilled = is_prefilled
Widget.render_widget_content = render_widget_content
def string_render_content(self):
attrs = {'id': 'form_' + self.name}
if self.required:
attrs['aria-required'] = 'true'
if getattr(self, 'prefill_attributes', None) and 'autocomplete' in self.prefill_attributes:
attrs['autocomplete'] = self.prefill_attributes['autocomplete']
if self.attrs:
attrs.update(self.attrs)
if getattr(self, 'inputmode', None):
attrs['inputmode'] = self.inputmode
return htmltag("input", xml_end=True, type=self.HTML_TYPE, name=self.name, value=self.value, **attrs)
StringWidget.render_content = string_render_content
def file_render_content(self):
# remove trailing $file for identifier
attrs = {'id': 'form_' + str(self.name).rsplit('$', 1)[0]}
@ -239,26 +221,6 @@ def file_render_content(self):
FileWidget.render_content = file_render_content
def text_render_content(self):
attrs = {'id': 'form_' + self.name}
if self.required:
attrs['aria-required'] = 'true'
if self.attrs:
attrs.update(self.attrs)
if not attrs.get('cols'):
attrs['cols'] = 72
if not attrs.get('rows'):
attrs['rows'] = 5
if attrs.get('readonly') and not self.value:
attrs['rows'] = 1
return (
htmltag("textarea", name=self.name, **attrs) + htmlescape(self.value or "") + htmltext("</textarea>")
)
TextWidget.render_content = text_render_content
class SubmitWidget(quixote.form.widget.SubmitWidget):
def __init__(self, *args, **kwargs):
self.extra_css_class = kwargs.pop('extra_css_class', None)
@ -295,37 +257,6 @@ class RadiobuttonsWidget(quixote.form.RadiobuttonsWidget):
}
def checkbox_render_content(self, standalone=True):
attrs = {'id': 'form_' + self.name}
if self.required:
attrs['aria-required'] = 'true'
inline_title = self.attrs.pop('inline_title', '')
if self.attrs:
attrs.update(self.attrs)
checkbox = htmltag(
"input",
xml_end=True,
type="checkbox",
name=self.name,
value="yes",
checked=self.value and "checked" or None,
**attrs,
)
if standalone:
data_attrs = ' '.join('%s="%s"' % x for x in attrs.items() if x[0].startswith('data-'))
# more elaborate markup so standalone checkboxes can be applied a
# custom style.
return (
htmltext('<label %s>%s<span>' % (data_attrs, checkbox))
+ inline_title
+ htmltext('</span></label>')
)
return checkbox
CheckboxWidget.render_content = checkbox_render_content
def get_selection_error_text(*args):
return _('invalid value selected')
@ -583,7 +514,7 @@ class CompositeWidget(quixote.form.CompositeWidget):
return r.getvalue()
class StringWidget(quixote.form.StringWidget):
class StringWidget(QuixoteStringWidget):
def __init__(self, name, *args, **kwargs):
if 'readonly' in kwargs and not kwargs.get('readonly'):
del kwargs['readonly']
@ -593,7 +524,7 @@ class StringWidget(quixote.form.StringWidget):
super().__init__(name, *args, **kwargs)
def _parse(self, request):
quixote.form.StringWidget._parse(self, request)
QuixoteStringWidget._parse(self, request)
if self.value:
self.value = self.value.strip()
if self.value and self.validation_function:
@ -602,6 +533,18 @@ class StringWidget(quixote.form.StringWidget):
except ValueError as e:
self.error = str(e)
def render_content(self):
attrs = {'id': 'form_' + self.name}
if self.required:
attrs['aria-required'] = 'true'
if getattr(self, 'prefill_attributes', None) and 'autocomplete' in self.prefill_attributes:
attrs['autocomplete'] = self.prefill_attributes['autocomplete']
if self.attrs:
attrs.update(self.attrs)
if getattr(self, 'inputmode', None):
attrs['inputmode'] = self.inputmode
return htmltag("input", xml_end=True, type=self.HTML_TYPE, name=self.name, value=self.value, **attrs)
class DurationWidget(StringWidget):
def __init__(self, name, value=None, **kwargs):
@ -619,7 +562,7 @@ class DurationWidget(StringWidget):
return str(humanduration2seconds(self.value)) if value else None
class TextWidget(quixote.form.TextWidget):
class TextWidget(QuixoteTextWidget):
prefill_attributes = None
def __init__(self, name, *args, **kwargs):
@ -631,7 +574,7 @@ class TextWidget(quixote.form.TextWidget):
get_response().add_javascript(['qommon.geolocation.js'])
def _parse(self, request, use_validation_function=True):
quixote.form.TextWidget._parse(self, request)
QuixoteTextWidget._parse(self, request)
if self.value is not None:
try:
maxlength = int(self.attrs.get('maxlength', 0))
@ -646,8 +589,26 @@ class TextWidget(quixote.form.TextWidget):
except ValueError as e:
self.error = str(e)
def render_content(self):
attrs = {'id': 'form_' + self.name}
if self.required:
attrs['aria-required'] = 'true'
if self.attrs:
attrs.update(self.attrs)
if not attrs.get('cols'):
attrs['cols'] = 72
if not attrs.get('rows'):
attrs['rows'] = 5
if attrs.get('readonly') and not self.value:
attrs['rows'] = 1
return (
htmltag("textarea", name=self.name, **attrs)
+ htmlescape(self.value or "")
+ htmltext("</textarea>")
)
class CheckboxWidget(quixote.form.CheckboxWidget):
class CheckboxWidget(QuixoteCheckboxWidget):
"""
Widget just like CheckboxWidget but with an effective support for the
required attribute, if required the checkbox will have to be checked.
@ -666,6 +627,33 @@ class CheckboxWidget(quixote.form.CheckboxWidget):
else:
self.value = True
def render_content(self, standalone=True):
attrs = {'id': 'form_' + self.name}
if self.required:
attrs['aria-required'] = 'true'
inline_title = self.attrs.pop('inline_title', '')
if self.attrs:
attrs.update(self.attrs)
checkbox = htmltag(
"input",
xml_end=True,
type="checkbox",
name=self.name,
value="yes",
checked=self.value and "checked" or None,
**attrs,
)
if standalone:
data_attrs = ' '.join('%s="%s"' % x for x in attrs.items() if x[0].startswith('data-'))
# more elaborate markup so standalone checkboxes can be applied a
# custom style.
return (
htmltext('<label %s>%s<span>' % (data_attrs, checkbox))
+ inline_title
+ htmltext('</span></label>')
)
return checkbox
class UploadedFile:
def __init__(self, directory, filename, upload):