mirror of
https://github.com/Hopiu/wagtail.git
synced 2026-04-29 19:14:49 +00:00
Use Python 3 super() syntax
This commit is contained in:
parent
48adc08d8f
commit
db6d36845f
77 changed files with 254 additions and 255 deletions
|
|
@ -91,11 +91,11 @@ class PagesAdminAPIEndpoint(PagesAPIEndpoint):
|
|||
return types
|
||||
|
||||
def listing_view(self, request):
|
||||
response = super(PagesAdminAPIEndpoint, self).listing_view(request)
|
||||
response = super().listing_view(request)
|
||||
response.data['__types'] = self.get_type_info()
|
||||
return response
|
||||
|
||||
def detail_view(self, request, pk):
|
||||
response = super(PagesAdminAPIEndpoint, self).detail_view(request, pk)
|
||||
response = super().detail_view(request, pk)
|
||||
response.data['__types'] = self.get_type_info()
|
||||
return response
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ class EditHandler:
|
|||
def classes(self):
|
||||
"""
|
||||
Additional CSS classnames to add to whatever kind of object this is at output.
|
||||
Subclasses of EditHandler should override this, invoking super(B, self).classes() to
|
||||
Subclasses of EditHandler should override this, invoking super().classes() to
|
||||
append more classes specific to the situation.
|
||||
"""
|
||||
|
||||
|
|
@ -251,7 +251,7 @@ class BaseCompositeEditHandler(EditHandler):
|
|||
return mark_safe(''.join([c.html_declarations() for c in cls.children]))
|
||||
|
||||
def __init__(self, instance=None, form=None):
|
||||
super(BaseCompositeEditHandler, self).__init__(instance=instance, form=form)
|
||||
super().__init__(instance=instance, form=form)
|
||||
|
||||
self.children = []
|
||||
for child in self.__class__.children:
|
||||
|
|
@ -383,7 +383,7 @@ class BaseMultiFieldPanel(BaseCompositeEditHandler):
|
|||
template = "wagtailadmin/edit_handlers/multi_field_panel.html"
|
||||
|
||||
def classes(self):
|
||||
classes = super(BaseMultiFieldPanel, self).classes()
|
||||
classes = super().classes()
|
||||
classes.append("multi-field")
|
||||
|
||||
return classes
|
||||
|
|
@ -417,14 +417,14 @@ class BaseFieldPanel(EditHandler):
|
|||
return {}
|
||||
|
||||
def __init__(self, instance=None, form=None):
|
||||
super(BaseFieldPanel, self).__init__(instance=instance, form=form)
|
||||
super().__init__(instance=instance, form=form)
|
||||
self.bound_field = self.form[self.field_name]
|
||||
|
||||
self.heading = self.bound_field.label
|
||||
self.help_text = self.bound_field.help_text
|
||||
|
||||
def classes(self):
|
||||
classes = super(BaseFieldPanel, self).classes()
|
||||
classes = super().classes()
|
||||
|
||||
if self.bound_field.field.required:
|
||||
classes.append("required")
|
||||
|
|
@ -684,7 +684,7 @@ class BaseInlinePanel(EditHandler):
|
|||
return [curry(compare.ChildRelationComparison, field, field_comparisons)]
|
||||
|
||||
def __init__(self, instance=None, form=None):
|
||||
super(BaseInlinePanel, self).__init__(instance=instance, form=form)
|
||||
super().__init__(instance=instance, form=form)
|
||||
|
||||
self.formset = form.formsets[self.__class__.relation_name]
|
||||
|
||||
|
|
@ -822,7 +822,7 @@ Page.get_edit_handler = get_edit_handler
|
|||
|
||||
class BaseStreamFieldPanel(BaseFieldPanel):
|
||||
def classes(self):
|
||||
classes = super(BaseStreamFieldPanel, self).classes()
|
||||
classes = super().classes()
|
||||
classes.append("stream-field")
|
||||
|
||||
# In case of a validation error, BlockWidget will take care of outputting the error on the
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class URLOrAbsolutePathValidator(validators.URLValidator):
|
|||
if URLOrAbsolutePathValidator.is_absolute_path(value):
|
||||
return None
|
||||
else:
|
||||
return super(URLOrAbsolutePathValidator, self).__call__(value)
|
||||
return super().__call__(value)
|
||||
|
||||
|
||||
class URLOrAbsolutePathField(forms.URLField):
|
||||
|
|
@ -39,14 +39,14 @@ class URLOrAbsolutePathField(forms.URLField):
|
|||
|
||||
def to_python(self, value):
|
||||
if not URLOrAbsolutePathValidator.is_absolute_path(value):
|
||||
value = super(URLOrAbsolutePathField, self).to_python(value)
|
||||
value = super().to_python(value)
|
||||
return value
|
||||
|
||||
|
||||
class SearchForm(forms.Form):
|
||||
def __init__(self, *args, **kwargs):
|
||||
placeholder = kwargs.pop('placeholder', _("Search"))
|
||||
super(SearchForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields['q'].widget.attrs = {'placeholder': placeholder}
|
||||
|
||||
q = forms.CharField(label=ugettext_lazy("Search term"), widget=forms.TextInput())
|
||||
|
|
@ -74,7 +74,7 @@ class LoginForm(AuthenticationForm):
|
|||
)
|
||||
|
||||
def __init__(self, request=None, *args, **kwargs):
|
||||
super(LoginForm, self).__init__(request=request, *args, **kwargs)
|
||||
super().__init__(request=request, *args, **kwargs)
|
||||
self.fields['username'].widget.attrs['placeholder'] = ugettext_lazy("Enter your %s") \
|
||||
% self.username_field.verbose_name
|
||||
|
||||
|
|
@ -83,7 +83,7 @@ class PasswordResetForm(PasswordResetForm):
|
|||
email = forms.EmailField(label=ugettext_lazy("Enter your email address to reset your password"), max_length=254)
|
||||
|
||||
def clean(self):
|
||||
cleaned_data = super(PasswordResetForm, self).clean()
|
||||
cleaned_data = super().clean()
|
||||
|
||||
# Find users of this email address
|
||||
UserModel = get_user_model()
|
||||
|
|
@ -118,7 +118,7 @@ class CopyForm(forms.Form):
|
|||
self.page = kwargs.pop('page')
|
||||
self.user = kwargs.pop('user', None)
|
||||
can_publish = kwargs.pop('can_publish')
|
||||
super(CopyForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields['new_title'] = forms.CharField(initial=self.page.title, label=_("New title"))
|
||||
self.fields['new_slug'] = forms.SlugField(initial=self.page.slug, label=_("New slug"))
|
||||
self.fields['new_parent_page'] = forms.ModelChoiceField(
|
||||
|
|
@ -157,7 +157,7 @@ class CopyForm(forms.Form):
|
|||
)
|
||||
|
||||
def clean(self):
|
||||
cleaned_data = super(CopyForm, self).clean()
|
||||
cleaned_data = super().clean()
|
||||
|
||||
# Make sure the slug isn't already in use
|
||||
slug = cleaned_data.get('new_slug')
|
||||
|
|
@ -194,7 +194,7 @@ class BaseViewRestrictionForm(forms.ModelForm):
|
|||
widget=forms.RadioSelect)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(BaseViewRestrictionForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
self.fields['groups'].widget = forms.CheckboxSelectMultiple()
|
||||
self.fields['groups'].queryset = Group.objects.all()
|
||||
|
|
@ -294,7 +294,7 @@ class WagtailAdminModelForm(ClusterForm, metaclass=WagtailAdminModelFormMetaclas
|
|||
@property
|
||||
def media(self):
|
||||
# Include media from formsets forms. This allow StreamField in InlinePanel for example.
|
||||
media = super(WagtailAdminModelForm, self).media
|
||||
media = super().media
|
||||
for formset in self.formsets.values():
|
||||
media += formset.media
|
||||
return media
|
||||
|
|
@ -312,12 +312,12 @@ class WagtailAdminPageForm(WagtailAdminModelForm):
|
|||
exclude = ['content_type', 'path', 'depth', 'numchild']
|
||||
|
||||
def __init__(self, data=None, files=None, parent_page=None, *args, **kwargs):
|
||||
super(WagtailAdminPageForm, self).__init__(data, files, *args, **kwargs)
|
||||
super().__init__(data, files, *args, **kwargs)
|
||||
self.parent_page = parent_page
|
||||
|
||||
def clean(self):
|
||||
|
||||
cleaned_data = super(WagtailAdminPageForm, self).clean()
|
||||
cleaned_data = super().clean()
|
||||
if 'slug' in self.cleaned_data:
|
||||
if not Page._slug_is_available(
|
||||
cleaned_data['slug'], self.parent_page, self.instance
|
||||
|
|
@ -365,7 +365,7 @@ class BaseCollectionMemberForm(forms.ModelForm):
|
|||
def __init__(self, *args, **kwargs):
|
||||
user = kwargs.pop('user', None)
|
||||
|
||||
super(BaseCollectionMemberForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
if user is None:
|
||||
self.collections = Collection.objects.all()
|
||||
|
|
@ -396,7 +396,7 @@ class BaseCollectionMemberForm(forms.ModelForm):
|
|||
# populate the instance's collection field with the one available collection
|
||||
self.instance.collection = self.collections[0]
|
||||
|
||||
return super(BaseCollectionMemberForm, self).save(commit=commit)
|
||||
return super().save(commit=commit)
|
||||
|
||||
|
||||
class BaseGroupCollectionMemberPermissionFormSet(forms.BaseFormSet):
|
||||
|
|
@ -431,7 +431,7 @@ class BaseGroupCollectionMemberPermissionFormSet(forms.BaseFormSet):
|
|||
'permissions': [cp.permission for cp in collection_permissions]
|
||||
})
|
||||
|
||||
super(BaseGroupCollectionMemberPermissionFormSet, self).__init__(
|
||||
super().__init__(
|
||||
data, files, initial=initial_data, prefix=prefix
|
||||
)
|
||||
for form in self.forms:
|
||||
|
|
@ -439,7 +439,7 @@ class BaseGroupCollectionMemberPermissionFormSet(forms.BaseFormSet):
|
|||
|
||||
@property
|
||||
def empty_form(self):
|
||||
empty_form = super(BaseGroupCollectionMemberPermissionFormSet, self).empty_form
|
||||
empty_form = super().empty_form
|
||||
empty_form.fields['DELETE'].widget = forms.HiddenInput()
|
||||
return empty_form
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ from .templatetags.wagtailuserbar import wagtailuserbar
|
|||
|
||||
class WagtailUserbarExtension(Extension):
|
||||
def __init__(self, environment):
|
||||
super(WagtailUserbarExtension, self).__init__(environment)
|
||||
super().__init__(environment)
|
||||
|
||||
self.environment.globals.update({
|
||||
'wagtailuserbar': jinja2.contextfunction(wagtailuserbar),
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ class SubmenuMenuItem(MenuItem):
|
|||
"""A MenuItem which wraps an inner Menu object"""
|
||||
def __init__(self, label, menu, **kwargs):
|
||||
self.menu = menu
|
||||
super(SubmenuMenuItem, self).__init__(label, '#', **kwargs)
|
||||
super().__init__(label, '#', **kwargs)
|
||||
|
||||
@property
|
||||
def media(self):
|
||||
|
|
@ -117,7 +117,7 @@ class SubmenuMenuItem(MenuItem):
|
|||
return bool(self.menu.active_menu_items(request))
|
||||
|
||||
def get_context(self, request):
|
||||
context = super(SubmenuMenuItem, self).get_context(request)
|
||||
context = super().get_context(request)
|
||||
context['menu_html'] = self.menu.render_html(request)
|
||||
context['request'] = request
|
||||
return context
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class HalloFormatPlugin(HalloPlugin):
|
|||
kwargs.setdefault('name', 'halloformat')
|
||||
kwargs.setdefault('order', 10)
|
||||
self.format_name = kwargs['format_name']
|
||||
super(HalloFormatPlugin, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def construct_plugins_list(self, plugins):
|
||||
plugins.setdefault(self.name, {'formattings': {
|
||||
|
|
@ -46,7 +46,7 @@ class HalloHeadingPlugin(HalloPlugin):
|
|||
kwargs.setdefault('name', 'halloheadings')
|
||||
kwargs.setdefault('order', 20)
|
||||
self.element = kwargs.pop('element')
|
||||
super(HalloHeadingPlugin, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def construct_plugins_list(self, plugins):
|
||||
plugins.setdefault(self.name, {'formatBlocks': []})
|
||||
|
|
@ -58,7 +58,7 @@ class HalloListPlugin(HalloPlugin):
|
|||
kwargs.setdefault('name', 'hallolists')
|
||||
kwargs.setdefault('order', 40)
|
||||
self.list_type = kwargs['list_type']
|
||||
super(HalloListPlugin, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def construct_plugins_list(self, plugins):
|
||||
plugins.setdefault(self.name, {'lists': {
|
||||
|
|
@ -99,14 +99,14 @@ class HalloRichTextArea(WidgetWithScript, widgets.Textarea):
|
|||
]))
|
||||
self.plugins.sort(key=lambda plugin: plugin.order)
|
||||
|
||||
super(HalloRichTextArea, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def render(self, name, value, attrs=None):
|
||||
if value is None:
|
||||
translated_value = None
|
||||
else:
|
||||
translated_value = expand_db_html(value, for_editor=True)
|
||||
return super(HalloRichTextArea, self).render(name, translated_value, attrs)
|
||||
return super().render(name, translated_value, attrs)
|
||||
|
||||
def render_js_init(self, id_, name, value):
|
||||
if self.options is not None and 'plugins' in self.options:
|
||||
|
|
@ -122,7 +122,7 @@ class HalloRichTextArea(WidgetWithScript, widgets.Textarea):
|
|||
)
|
||||
|
||||
def value_from_datadict(self, data, files, name):
|
||||
original_value = super(HalloRichTextArea, self).value_from_datadict(data, files, name)
|
||||
original_value = super().value_from_datadict(data, files, name)
|
||||
if original_value is None:
|
||||
return None
|
||||
return DbWhitelister.clean(original_value)
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ class EscapeScriptNode(template.Node):
|
|||
TAG_NAME = 'escapescript'
|
||||
|
||||
def __init__(self, nodelist):
|
||||
super(EscapeScriptNode, self).__init__()
|
||||
super().__init__()
|
||||
self.nodelist = nodelist
|
||||
|
||||
def render(self, context):
|
||||
|
|
|
|||
|
|
@ -666,7 +666,7 @@ class TestAdminPageDetailWithStreamField(AdminAPITestCase):
|
|||
fixtures = ['test.json']
|
||||
|
||||
def setUp(self):
|
||||
super(TestAdminPageDetailWithStreamField, self).setUp()
|
||||
super().setUp()
|
||||
|
||||
self.homepage = Page.objects.get(url_path='/home/')
|
||||
|
||||
|
|
@ -713,7 +713,7 @@ class TestCustomAdminDisplayTitle(AdminAPITestCase):
|
|||
fixtures = ['test.json']
|
||||
|
||||
def setUp(self):
|
||||
super(TestCustomAdminDisplayTitle, self).setUp()
|
||||
super().setUp()
|
||||
|
||||
self.event_page = Page.objects.get(url_path='/home/events/saint-patrick/')
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ class BaseSearchAreaTestCase(WagtailTestUtils, TestCase):
|
|||
|
||||
class TestSearchAreas(BaseSearchAreaTestCase):
|
||||
def setUp(self):
|
||||
super(TestSearchAreas, self).setUp()
|
||||
super().setUp()
|
||||
self.user = self.login()
|
||||
|
||||
def test_other_searches(self):
|
||||
|
|
@ -78,7 +78,7 @@ class TestSearchAreaNoPagePermissions(BaseSearchAreaTestCase):
|
|||
self.assertFalse(user_has_any_page_permission(self.user))
|
||||
|
||||
def create_test_user(self):
|
||||
user = super(TestSearchAreaNoPagePermissions, self).create_test_user()
|
||||
user = super().create_test_user()
|
||||
user.is_superuser = False
|
||||
user.user_permissions.add(
|
||||
Permission.objects.get(content_type__app_label='wagtailadmin', codename='access_admin')
|
||||
|
|
|
|||
|
|
@ -31,12 +31,12 @@ class BaseRichTextEditHandlerTestCase(TestCase):
|
|||
page_class.get_edit_handler.cache_clear()
|
||||
|
||||
def setUp(self):
|
||||
super(BaseRichTextEditHandlerTestCase, self).setUp()
|
||||
super().setUp()
|
||||
self._clear_edit_handler_cache()
|
||||
|
||||
def tearDown(self):
|
||||
self._clear_edit_handler_cache()
|
||||
super(BaseRichTextEditHandlerTestCase, self).tearDown()
|
||||
super().tearDown()
|
||||
|
||||
|
||||
class TestGetRichTextEditorWidget(TestCase):
|
||||
|
|
@ -81,7 +81,7 @@ class TestGetRichTextEditorWidget(TestCase):
|
|||
class TestDefaultRichText(BaseRichTextEditHandlerTestCase, WagtailTestUtils):
|
||||
|
||||
def setUp(self):
|
||||
super(TestDefaultRichText, self).setUp()
|
||||
super().setUp()
|
||||
# Find root page
|
||||
self.root_page = Page.objects.get(id=2)
|
||||
|
||||
|
|
@ -130,7 +130,7 @@ class TestDefaultRichText(BaseRichTextEditHandlerTestCase, WagtailTestUtils):
|
|||
class TestOverriddenDefaultRichText(BaseRichTextEditHandlerTestCase, WagtailTestUtils):
|
||||
|
||||
def setUp(self):
|
||||
super(TestOverriddenDefaultRichText, self).setUp()
|
||||
super().setUp()
|
||||
|
||||
# Find root page
|
||||
self.root_page = Page.objects.get(id=2)
|
||||
|
|
@ -173,7 +173,7 @@ class TestOverriddenDefaultRichText(BaseRichTextEditHandlerTestCase, WagtailTest
|
|||
class TestCustomDefaultRichText(BaseRichTextEditHandlerTestCase, WagtailTestUtils):
|
||||
|
||||
def setUp(self):
|
||||
super(TestCustomDefaultRichText, self).setUp()
|
||||
super().setUp()
|
||||
|
||||
# Find root page
|
||||
self.root_page = Page.objects.get(id=2)
|
||||
|
|
@ -246,7 +246,7 @@ class TestRichTextValue(TestCase):
|
|||
class TestHalloJsWithCustomPluginOptions(BaseRichTextEditHandlerTestCase, WagtailTestUtils):
|
||||
|
||||
def setUp(self):
|
||||
super(TestHalloJsWithCustomPluginOptions, self).setUp()
|
||||
super().setUp()
|
||||
|
||||
# Find root page
|
||||
self.root_page = Page.objects.get(id=2)
|
||||
|
|
@ -276,7 +276,7 @@ class TestHalloJsWithCustomPluginOptions(BaseRichTextEditHandlerTestCase, Wagtai
|
|||
class TestHalloJsWithFeaturesKwarg(BaseRichTextEditHandlerTestCase, WagtailTestUtils):
|
||||
|
||||
def setUp(self):
|
||||
super(TestHalloJsWithFeaturesKwarg, self).setUp()
|
||||
super().setUp()
|
||||
|
||||
# Find root page
|
||||
self.root_page = Page.objects.get(id=2)
|
||||
|
|
@ -340,7 +340,7 @@ class TestHalloJsWithFeaturesKwarg(BaseRichTextEditHandlerTestCase, WagtailTestU
|
|||
class TestHalloJsWithCustomFeatureOptions(BaseRichTextEditHandlerTestCase, WagtailTestUtils):
|
||||
|
||||
def setUp(self):
|
||||
super(TestHalloJsWithCustomFeatureOptions, self).setUp()
|
||||
super().setUp()
|
||||
|
||||
# Find root page
|
||||
self.root_page = Page.objects.get(id=2)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ class AdminItem(BaseItem):
|
|||
if not request.user.has_perm('wagtailadmin.access_admin'):
|
||||
return ""
|
||||
|
||||
return super(AdminItem, self).render(request)
|
||||
return super().render(request)
|
||||
|
||||
|
||||
class AddPageItem(BaseItem):
|
||||
|
|
@ -41,7 +41,7 @@ class AddPageItem(BaseItem):
|
|||
if not permission_checker.can_add_subpage():
|
||||
return ""
|
||||
|
||||
return super(AddPageItem, self).render(request)
|
||||
return super().render(request)
|
||||
|
||||
|
||||
class ExplorePageItem(BaseItem):
|
||||
|
|
@ -65,7 +65,7 @@ class ExplorePageItem(BaseItem):
|
|||
if not permission_checker.can_edit() and not permission_checker.can_publish_subpage():
|
||||
return ""
|
||||
|
||||
return super(ExplorePageItem, self).render(request)
|
||||
return super().render(request)
|
||||
|
||||
|
||||
class EditPageItem(BaseItem):
|
||||
|
|
@ -88,7 +88,7 @@ class EditPageItem(BaseItem):
|
|||
if not permission_checker.can_edit():
|
||||
return ""
|
||||
|
||||
return super(EditPageItem, self).render(request)
|
||||
return super().render(request)
|
||||
|
||||
|
||||
class ModeratePageItem(BaseItem):
|
||||
|
|
@ -108,7 +108,7 @@ class ModeratePageItem(BaseItem):
|
|||
if not self.revision.page.permissions_for_user(request.user).can_publish():
|
||||
return ""
|
||||
|
||||
return super(ModeratePageItem, self).render(request)
|
||||
return super().render(request)
|
||||
|
||||
|
||||
class ApproveModerationEditPageItem(ModeratePageItem):
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ class Delete(DeleteView):
|
|||
return list(filter(is_nonempty, collection_contents))
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(Delete, self).get_context_data(**kwargs)
|
||||
context = super().get_context_data(**kwargs)
|
||||
collection_contents = self.get_collection_contents()
|
||||
|
||||
if collection_contents:
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ class PermissionCheckedMixin:
|
|||
):
|
||||
return permission_denied(request)
|
||||
|
||||
return super(PermissionCheckedMixin, self).dispatch(request, *args, **kwargs)
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
|
||||
class IndexView(PermissionCheckedMixin, TemplateResponseMixin, BaseListView):
|
||||
|
|
@ -55,7 +55,7 @@ class IndexView(PermissionCheckedMixin, TemplateResponseMixin, BaseListView):
|
|||
template_name = None
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(IndexView, self).get_context_data(**kwargs)
|
||||
context = super().get_context_data(**kwargs)
|
||||
context['can_add'] = (
|
||||
self.permission_policy is None or
|
||||
self.permission_policy.user_has_permission(self.request.user, 'add')
|
||||
|
|
@ -113,7 +113,7 @@ class CreateView(PermissionCheckedMixin, TemplateResponseMixin, BaseCreateView):
|
|||
error_message = self.get_error_message()
|
||||
if error_message is not None:
|
||||
messages.error(self.request, error_message)
|
||||
return super(CreateView, self).form_invalid(form)
|
||||
return super().form_invalid(form)
|
||||
|
||||
|
||||
class EditView(PermissionCheckedMixin, TemplateResponseMixin, BaseUpdateView):
|
||||
|
|
@ -134,7 +134,7 @@ class EditView(PermissionCheckedMixin, TemplateResponseMixin, BaseUpdateView):
|
|||
def get_object(self, queryset=None):
|
||||
if 'pk' not in self.kwargs:
|
||||
self.kwargs['pk'] = self.args[0]
|
||||
return super(EditView, self).get_object(queryset)
|
||||
return super().get_object(queryset)
|
||||
|
||||
def get_page_subtitle(self):
|
||||
return str(self.object)
|
||||
|
|
@ -180,10 +180,10 @@ class EditView(PermissionCheckedMixin, TemplateResponseMixin, BaseUpdateView):
|
|||
error_message = self.get_error_message()
|
||||
if error_message is not None:
|
||||
messages.error(self.request, error_message)
|
||||
return super(EditView, self).form_invalid(form)
|
||||
return super().form_invalid(form)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(EditView, self).get_context_data(**kwargs)
|
||||
context = super().get_context_data(**kwargs)
|
||||
context['can_delete'] = (
|
||||
self.permission_policy is None or
|
||||
self.permission_policy.user_has_permission(self.request.user, 'delete')
|
||||
|
|
@ -204,7 +204,7 @@ class DeleteView(PermissionCheckedMixin, TemplateResponseMixin, BaseDeleteView):
|
|||
def get_object(self, queryset=None):
|
||||
if 'pk' not in self.kwargs:
|
||||
self.kwargs['pk'] = self.args[0]
|
||||
return super(DeleteView, self).get_object(queryset)
|
||||
return super().get_object(queryset)
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse(self.index_url_name)
|
||||
|
|
@ -221,6 +221,6 @@ class DeleteView(PermissionCheckedMixin, TemplateResponseMixin, BaseDeleteView):
|
|||
return self.success_message.format(self.object)
|
||||
|
||||
def delete(self, request, *args, **kwargs):
|
||||
response = super(DeleteView, self).delete(request, *args, **kwargs)
|
||||
response = super().delete(request, *args, **kwargs)
|
||||
messages.success(request, self.get_success_message())
|
||||
return response
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ class SearchableListMixin:
|
|||
return SearchForm(self.request.GET if self.request.GET.get('q') else None, placeholder=self.search_box_placeholder)
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = super(SearchableListMixin, self).get_queryset()
|
||||
queryset = super().get_queryset()
|
||||
search_form = self.get_search_form()
|
||||
|
||||
if search_form.is_valid():
|
||||
|
|
@ -37,4 +37,4 @@ class SearchableListMixin:
|
|||
kwargs['search_form'] = self.get_search_form()
|
||||
kwargs['is_searching'] = bool(self.request.GET.get('q'))
|
||||
|
||||
return super(SearchableListMixin, self).get_context_data(**kwargs)
|
||||
return super().get_context_data(**kwargs)
|
||||
|
|
|
|||
|
|
@ -628,7 +628,7 @@ class PreviewOnCreate(PreviewOnEdit):
|
|||
return page
|
||||
|
||||
def get_form(self, page, query_dict):
|
||||
form = super(PreviewOnCreate, self).get_form(page, query_dict)
|
||||
form = super().get_form(page, query_dict)
|
||||
if form.is_valid():
|
||||
# Ensures our unsaved page has a suitable url.
|
||||
form.instance.set_url_path(form.parent_page)
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ class ModelViewSet(ViewSet):
|
|||
)
|
||||
|
||||
def get_urlpatterns(self):
|
||||
return super(ModelViewSet, self).get_urlpatterns() + [
|
||||
return super().get_urlpatterns() + [
|
||||
url(r'^$', self.index_view, name='index'),
|
||||
url(r'^new/$', self.add_view, name='add'),
|
||||
url(r'^(\d+)/$', self.edit_view, name='edit'),
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ class ExplorerMenuItem(MenuItem):
|
|||
return user_has_any_page_permission(request.user)
|
||||
|
||||
def get_context(self, request):
|
||||
context = super(ExplorerMenuItem, self).get_context(request)
|
||||
context = super().get_context(request)
|
||||
start_page = get_explorable_root_page(request.user)
|
||||
|
||||
if start_page:
|
||||
|
|
@ -56,7 +56,7 @@ def register_permissions():
|
|||
|
||||
class PageSearchArea(SearchArea):
|
||||
def __init__(self):
|
||||
super(PageSearchArea, self).__init__(
|
||||
super().__init__(
|
||||
_('Pages'), reverse('wagtailadmin_pages:search'),
|
||||
name='pages',
|
||||
classnames='icon icon-folder-open-inverse',
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ class AdminAutoHeightTextInput(WidgetWithScript, widgets.Textarea):
|
|||
if attrs:
|
||||
default_attrs.update(attrs)
|
||||
|
||||
super(AdminAutoHeightTextInput, self).__init__(default_attrs)
|
||||
super().__init__(default_attrs)
|
||||
|
||||
def render_js_init(self, id_, name, value):
|
||||
return 'autosize($("#{0}"));'.format(id_)
|
||||
|
|
@ -41,7 +41,7 @@ class AdminDateInput(WidgetWithScript, widgets.DateInput):
|
|||
if fmt is None:
|
||||
fmt = getattr(settings, 'WAGTAIL_DATE_FORMAT', DEFAULT_DATE_FORMAT)
|
||||
self.js_format = to_datetimepicker_format(fmt)
|
||||
super(AdminDateInput, self).__init__(attrs=attrs, format=fmt)
|
||||
super().__init__(attrs=attrs, format=fmt)
|
||||
|
||||
def render_js_init(self, id_, name, value):
|
||||
config = {
|
||||
|
|
@ -56,7 +56,7 @@ class AdminDateInput(WidgetWithScript, widgets.DateInput):
|
|||
|
||||
class AdminTimeInput(WidgetWithScript, widgets.TimeInput):
|
||||
def __init__(self, attrs=None, format='%H:%M'):
|
||||
super(AdminTimeInput, self).__init__(attrs=attrs, format=format)
|
||||
super().__init__(attrs=attrs, format=format)
|
||||
|
||||
def render_js_init(self, id_, name, value):
|
||||
return 'initTimeChooser({0});'.format(json.dumps(id_))
|
||||
|
|
@ -68,7 +68,7 @@ class AdminDateTimeInput(WidgetWithScript, widgets.DateTimeInput):
|
|||
if fmt is None:
|
||||
fmt = getattr(settings, 'WAGTAIL_DATETIME_FORMAT', DEFAULT_DATETIME_FORMAT)
|
||||
self.js_format = to_datetimepicker_format(fmt)
|
||||
super(AdminDateTimeInput, self).__init__(attrs=attrs, format=fmt)
|
||||
super().__init__(attrs=attrs, format=fmt)
|
||||
|
||||
def render_js_init(self, id_, name, value):
|
||||
config = {
|
||||
|
|
@ -125,7 +125,7 @@ class AdminChooser(WidgetWithScript, widgets.Input):
|
|||
|
||||
def value_from_datadict(self, data, files, name):
|
||||
# treat the empty string as None
|
||||
result = super(AdminChooser, self).value_from_datadict(data, files, name)
|
||||
result = super().value_from_datadict(data, files, name)
|
||||
if result == '':
|
||||
return None
|
||||
else:
|
||||
|
|
@ -143,7 +143,7 @@ class AdminChooser(WidgetWithScript, widgets.Input):
|
|||
self.link_to_chosen_text = kwargs.pop('link_to_chosen_text')
|
||||
if 'show_edit_link' in kwargs:
|
||||
self.show_edit_link = kwargs.pop('show_edit_link')
|
||||
super(AdminChooser, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
|
||||
class AdminPageChooser(AdminChooser):
|
||||
|
|
@ -152,7 +152,7 @@ class AdminPageChooser(AdminChooser):
|
|||
link_to_chosen_text = _('Edit this page')
|
||||
|
||||
def __init__(self, target_models=None, can_choose_root=False, user_perms=None, **kwargs):
|
||||
super(AdminPageChooser, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
if target_models:
|
||||
models = ', '.join([model._meta.verbose_name.title() for model in target_models if model is not Page])
|
||||
|
|
@ -179,7 +179,7 @@ class AdminPageChooser(AdminChooser):
|
|||
|
||||
instance, value = self.get_instance_and_id(model_class, value)
|
||||
|
||||
original_field_html = super(AdminPageChooser, self).render_html(name, value, attrs)
|
||||
original_field_html = super().render_html(name, value, attrs)
|
||||
|
||||
return render_to_string("wagtailadmin/widgets/page_chooser.html", {
|
||||
'widget': self,
|
||||
|
|
@ -253,12 +253,12 @@ class Button:
|
|||
class PageListingButton(Button):
|
||||
def __init__(self, label, url, classes=set(), **kwargs):
|
||||
classes = {'button', 'button-small', 'button-secondary'} | set(classes)
|
||||
super(PageListingButton, self).__init__(label, url, classes=classes, **kwargs)
|
||||
super().__init__(label, url, classes=classes, **kwargs)
|
||||
|
||||
|
||||
class BaseDropdownMenuButton(Button):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(BaseDropdownMenuButton, self).__init__(*args, url=None, **kwargs)
|
||||
super().__init__(*args, url=None, **kwargs)
|
||||
|
||||
@cached_property
|
||||
def dropdown_buttons(self):
|
||||
|
|
@ -281,7 +281,7 @@ class ButtonWithDropdownFromHook(BaseDropdownMenuButton):
|
|||
self.page_perms = page_perms
|
||||
self.is_parent = is_parent
|
||||
|
||||
super(ButtonWithDropdownFromHook, self).__init__(label, **kwargs)
|
||||
super().__init__(label, **kwargs)
|
||||
|
||||
@property
|
||||
def show(self):
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ class BaseAPIEndpoint(GenericViewSet):
|
|||
name = None # Set on subclass.
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(BaseAPIEndpoint, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
# seen_types is a mapping of type name strings (format: "app_label.ModelName")
|
||||
# to model classes. When an object is serialised in the API, its model
|
||||
|
|
@ -83,7 +83,7 @@ class BaseAPIEndpoint(GenericViewSet):
|
|||
elif isinstance(exc, BadRequestError):
|
||||
data = {'message': str(exc)}
|
||||
return Response(data, status=status.HTTP_400_BAD_REQUEST)
|
||||
return super(BaseAPIEndpoint, self).handle_exception(exc)
|
||||
return super().handle_exception(exc)
|
||||
|
||||
@classmethod
|
||||
def _convert_api_fields(cls, fields):
|
||||
|
|
@ -298,7 +298,7 @@ class BaseAPIEndpoint(GenericViewSet):
|
|||
}
|
||||
|
||||
def get_renderer_context(self):
|
||||
context = super(BaseAPIEndpoint, self).get_renderer_context()
|
||||
context = super().get_renderer_context()
|
||||
context['indent'] = 4
|
||||
return context
|
||||
|
||||
|
|
@ -403,5 +403,5 @@ class PagesAPIEndpoint(BaseAPIEndpoint):
|
|||
return queryset
|
||||
|
||||
def get_object(self):
|
||||
base = super(PagesAPIEndpoint, self).get_object()
|
||||
base = super().get_object()
|
||||
return base.specific
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ class RelatedField(relations.RelatedField):
|
|||
"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.serializer_class = kwargs.pop('serializer_class')
|
||||
super(RelatedField, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def to_representation(self, value):
|
||||
serializer = self.serializer_class(context=self.context)
|
||||
|
|
@ -176,7 +176,7 @@ class ChildRelationField(Field):
|
|||
"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.serializer_class = kwargs.pop('serializer_class')
|
||||
super(ChildRelationField, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def to_representation(self, value):
|
||||
serializer = self.serializer_class(context=self.context)
|
||||
|
|
@ -306,10 +306,10 @@ class BaseSerializer(serializers.ModelSerializer):
|
|||
if isinstance(field, _TaggableManager):
|
||||
return TagsField, {}
|
||||
|
||||
return super(BaseSerializer, self).build_property_field(field_name, model_class)
|
||||
return super().build_property_field(field_name, model_class)
|
||||
|
||||
def build_relational_field(self, field_name, relation_info):
|
||||
field_class, field_kwargs = super(BaseSerializer, self).build_relational_field(field_name, relation_info)
|
||||
field_class, field_kwargs = super().build_relational_field(field_name, relation_info)
|
||||
field_kwargs['serializer_class'] = self.child_serializer_classes[field_name]
|
||||
return field_class, field_kwargs
|
||||
|
||||
|
|
@ -332,7 +332,7 @@ class PageSerializer(BaseSerializer):
|
|||
if field_name in child_relations and field_name in self.child_serializer_classes:
|
||||
return ChildRelationField, {'serializer_class': self.child_serializer_classes[field_name]}
|
||||
|
||||
return super(PageSerializer, self).build_relational_field(field_name, relation_info)
|
||||
return super().build_relational_field(field_name, relation_info)
|
||||
|
||||
|
||||
def get_serializer_class(model, field_names, meta_fields, field_serializer_overrides=None, child_serializer_classes=None, base=BaseSerializer):
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ class BaseForm(django.forms.Form):
|
|||
self.user = kwargs.pop('user', None)
|
||||
self.page = kwargs.pop('page', None)
|
||||
|
||||
super(BaseForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
|
||||
class FormBuilder:
|
||||
|
|
@ -134,7 +134,7 @@ class WagtailAdminFormPageForm(WagtailAdminPageForm):
|
|||
|
||||
def clean(self):
|
||||
|
||||
super(WagtailAdminFormPageForm, self).clean()
|
||||
super().clean()
|
||||
|
||||
# Check for dupe form field labels - fixes #585
|
||||
if 'form_fields' in self.formsets:
|
||||
|
|
|
|||
|
|
@ -158,7 +158,7 @@ class AbstractForm(Page):
|
|||
base_form_class = WagtailAdminFormPageForm
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(AbstractForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
if not hasattr(self, 'landing_page_template'):
|
||||
name, ext = os.path.splitext(self.template)
|
||||
self.landing_page_template = name + '_landing' + ext
|
||||
|
|
@ -298,7 +298,7 @@ class AbstractForm(Page):
|
|||
self.get_context(request)
|
||||
)
|
||||
else:
|
||||
return super(AbstractForm, self).serve_preview(request, mode)
|
||||
return super().serve_preview(request, mode)
|
||||
|
||||
|
||||
class AbstractEmailForm(AbstractForm):
|
||||
|
|
@ -314,7 +314,7 @@ class AbstractEmailForm(AbstractForm):
|
|||
subject = models.CharField(verbose_name=_('subject'), max_length=255, blank=True)
|
||||
|
||||
def process_form_submission(self, form):
|
||||
submission = super(AbstractEmailForm, self).process_form_submission(form)
|
||||
submission = super().process_form_submission(form)
|
||||
if self.to_address:
|
||||
self.send_mail(form)
|
||||
return submission
|
||||
|
|
|
|||
|
|
@ -24,5 +24,5 @@ class ParentChooserForm(forms.Form):
|
|||
|
||||
def __init__(self, valid_parents_qs, *args, **kwargs):
|
||||
self.valid_parents_qs = valid_parents_qs
|
||||
super(ParentChooserForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields['parent_page'].queryset = self.valid_parents_qs
|
||||
|
|
|
|||
|
|
@ -50,5 +50,4 @@ class PageAdminURLHelper(AdminURLHelper):
|
|||
url_name = 'wagtailadmin_pages:%s' % action
|
||||
target_url = reverse(url_name, args=args, kwargs=kwargs)
|
||||
return '%s?next=%s' % (target_url, urlquote(self.index_url))
|
||||
return super(PageAdminURLHelper, self).get_action_url(action, *args,
|
||||
**kwargs)
|
||||
return super().get_action_url(action, *args, **kwargs)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ class ModelAdminMenuItem(MenuItem):
|
|||
self.model_admin = model_admin
|
||||
url = model_admin.url_helper.index_url
|
||||
classnames = 'icon icon-%s' % model_admin.get_menu_icon()
|
||||
super(ModelAdminMenuItem, self).__init__(
|
||||
super().__init__(
|
||||
label=model_admin.get_menu_label(), url=url,
|
||||
classnames=classnames, order=order)
|
||||
|
||||
|
|
@ -26,7 +26,7 @@ class GroupMenuItem(SubmenuMenuItem):
|
|||
"""
|
||||
def __init__(self, modeladmingroup, order, menu):
|
||||
classnames = 'icon icon-%s' % modeladmingroup.get_menu_icon()
|
||||
super(GroupMenuItem, self).__init__(
|
||||
super().__init__(
|
||||
label=modeladmingroup.get_menu_label(), menu=menu,
|
||||
classnames=classnames, order=order, )
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ class ThumbnailMixin:
|
|||
u"The `wagtail.images` app must be installed in order "
|
||||
"to use the `ThumbnailMixin` class."
|
||||
)
|
||||
super(ThumbnailMixin, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def admin_thumb(self, obj):
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ class WMABaseView(TemplateView):
|
|||
raise PermissionDenied
|
||||
button_helper_class = self.model_admin.get_button_helper_class()
|
||||
self.button_helper = button_helper_class(self, request)
|
||||
return super(WMABaseView, self).dispatch(request, *args, **kwargs)
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
@cached_property
|
||||
def menu_icon(self):
|
||||
|
|
@ -101,7 +101,7 @@ class WMABaseView(TemplateView):
|
|||
'model_admin': self.model_admin,
|
||||
}
|
||||
context.update(kwargs)
|
||||
return super(WMABaseView, self).get_context_data(**context)
|
||||
return super().get_context_data(**context)
|
||||
|
||||
|
||||
class ModelFormView(WMABaseView, FormView):
|
||||
|
|
@ -125,7 +125,7 @@ class ModelFormView(WMABaseView, FormView):
|
|||
return getattr(self, 'instance', None) or self.model()
|
||||
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super(ModelFormView, self).get_form_kwargs()
|
||||
kwargs = super().get_form_kwargs()
|
||||
kwargs.update({'instance': self.get_instance()})
|
||||
return kwargs
|
||||
|
||||
|
|
@ -146,7 +146,7 @@ class ModelFormView(WMABaseView, FormView):
|
|||
'form': form,
|
||||
}
|
||||
context.update(kwargs)
|
||||
return super(ModelFormView, self).get_context_data(**context)
|
||||
return super().get_context_data(**context)
|
||||
|
||||
def get_success_message(self, instance):
|
||||
return _("{model_name} '{instance}' created.").format(
|
||||
|
|
@ -182,7 +182,7 @@ class InstanceSpecificView(WMABaseView):
|
|||
instance = None
|
||||
|
||||
def __init__(self, model_admin, instance_pk):
|
||||
super(InstanceSpecificView, self).__init__(model_admin)
|
||||
super().__init__(model_admin)
|
||||
self.instance_pk = unquote(instance_pk)
|
||||
self.pk_quoted = quote(self.instance_pk)
|
||||
filter_kwargs = {}
|
||||
|
|
@ -205,7 +205,7 @@ class InstanceSpecificView(WMABaseView):
|
|||
def get_context_data(self, **kwargs):
|
||||
context = {'instance': self.instance}
|
||||
context.update(kwargs)
|
||||
return super(InstanceSpecificView, self).get_context_data(**context)
|
||||
return super().get_context_data(**context)
|
||||
|
||||
|
||||
class IndexView(WMABaseView):
|
||||
|
|
@ -244,7 +244,7 @@ class IndexView(WMABaseView):
|
|||
self.query = request.GET.get(self.SEARCH_VAR, '')
|
||||
self.queryset = self.get_queryset(request)
|
||||
|
||||
return super(IndexView, self).dispatch(request, *args, **kwargs)
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
@property
|
||||
def media(self):
|
||||
|
|
@ -646,7 +646,7 @@ class IndexView(WMABaseView):
|
|||
})
|
||||
|
||||
context.update(kwargs)
|
||||
return super(IndexView, self).get_context_data(**context)
|
||||
return super().get_context_data(**context)
|
||||
|
||||
def get_template_names(self):
|
||||
return self.model_admin.get_index_template()
|
||||
|
|
@ -675,7 +675,7 @@ class CreateView(ModelFormView):
|
|||
# The page can be added in multiple places, so redirect to the
|
||||
# choose_parent view so that the parent can be specified
|
||||
return redirect(self.url_helper.get_action_url('choose_parent'))
|
||||
return super(CreateView, self).dispatch(request, *args, **kwargs)
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
def get_meta_title(self):
|
||||
return _('Create new %s') % self.verbose_name
|
||||
|
|
@ -699,7 +699,7 @@ class EditView(ModelFormView, InstanceSpecificView):
|
|||
return redirect(
|
||||
self.url_helper.get_action_url('edit', self.pk_quoted)
|
||||
)
|
||||
return super(EditView, self).dispatch(request, *args, **kwargs)
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
def get_meta_title(self):
|
||||
return _('Editing %s') % self.verbose_name
|
||||
|
|
@ -714,7 +714,7 @@ class EditView(ModelFormView, InstanceSpecificView):
|
|||
self.request.user, self.instance)
|
||||
}
|
||||
context.update(kwargs)
|
||||
return super(EditView, self).get_context_data(**context)
|
||||
return super().get_context_data(**context)
|
||||
|
||||
def get_error_message(self):
|
||||
name = self.verbose_name
|
||||
|
|
@ -728,7 +728,7 @@ class ChooseParentView(WMABaseView):
|
|||
def dispatch(self, request, *args, **kwargs):
|
||||
if not self.permission_helper.user_can_create(request.user):
|
||||
raise PermissionDenied
|
||||
return super(ChooseParentView, self).dispatch(request, *args, **kwargs)
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
def get_page_title(self):
|
||||
return _('Add %s') % self.verbose_name
|
||||
|
|
@ -775,7 +775,7 @@ class DeleteView(InstanceSpecificView):
|
|||
return redirect(
|
||||
self.url_helper.get_action_url('delete', self.pk_quoted)
|
||||
)
|
||||
return super(DeleteView, self).dispatch(request, *args, **kwargs)
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
def get_meta_title(self):
|
||||
return _('Confirm deletion of %s') % self.verbose_name
|
||||
|
|
@ -943,7 +943,7 @@ class InspectView(InstanceSpecificView):
|
|||
self.instance, exclude=['inspect']),
|
||||
}
|
||||
context.update(kwargs)
|
||||
return super(InspectView, self).get_context_data(**context)
|
||||
return super().get_context_data(**context)
|
||||
|
||||
def get_template_names(self):
|
||||
return self.model_admin.get_inspect_template()
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ class PostgresSearchQuery(BaseSearchQuery):
|
|||
DEFAULT_OPERATOR = 'and'
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(PostgresSearchQuery, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
self.search_fields = self.queryset.model.get_search_fields()
|
||||
|
||||
def get_search_query(self, config):
|
||||
|
|
@ -247,14 +247,14 @@ class PostgresSearchRebuilder:
|
|||
|
||||
class PostgresSearchAtomicRebuilder(PostgresSearchRebuilder):
|
||||
def __init__(self, index):
|
||||
super(PostgresSearchAtomicRebuilder, self).__init__(index)
|
||||
super().__init__(index)
|
||||
self.transaction = transaction.atomic(using=index.db_alias)
|
||||
self.transaction_opened = False
|
||||
|
||||
def start(self):
|
||||
self.transaction.__enter__()
|
||||
self.transaction_opened = True
|
||||
return super(PostgresSearchAtomicRebuilder, self).start()
|
||||
return super().start()
|
||||
|
||||
def finish(self):
|
||||
self.transaction.__exit__(None, None, None)
|
||||
|
|
@ -274,7 +274,7 @@ class PostgresSearchBackend(BaseSearchBackend):
|
|||
atomic_rebuilder_class = PostgresSearchAtomicRebuilder
|
||||
|
||||
def __init__(self, params):
|
||||
super(PostgresSearchBackend, self).__init__(params)
|
||||
super().__init__(params)
|
||||
self.params = params
|
||||
if params.get('ATOMIC_REBUILD', False):
|
||||
self.rebuilder_class = self.atomic_rebuilder_class
|
||||
|
|
|
|||
|
|
@ -43,9 +43,9 @@ class TestPostgresSearchBackend(BackendTests, TestCase):
|
|||
# Note: This is applying the filter, but should be raising the FieldError instead
|
||||
@unittest.expectedFailure
|
||||
def test_filter_on_non_filterable_field(self):
|
||||
super(TestPostgresSearchBackend, self).test_filter_on_non_filterable_field()
|
||||
super().test_filter_on_non_filterable_field()
|
||||
|
||||
# Broken
|
||||
@unittest.expectedFailure
|
||||
def test_order_by_non_filterable_field(self):
|
||||
super(TestPostgresSearchBackend, self).test_order_by_non_filterable_field()
|
||||
super().test_order_by_non_filterable_field()
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ class RedirectForm(forms.ModelForm):
|
|||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(RedirectForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields['redirect_page'].widget = AdminPageChooser()
|
||||
|
||||
required_css_class = "required"
|
||||
|
|
@ -22,7 +22,7 @@ class RedirectForm(forms.ModelForm):
|
|||
The unique_together condition on the model is ignored if site is None, so need to
|
||||
check for duplicates manually
|
||||
"""
|
||||
cleaned_data = super(RedirectForm, self).clean()
|
||||
cleaned_data = super().clean()
|
||||
|
||||
if cleaned_data.get('site') is None:
|
||||
old_path = cleaned_data.get('old_path')
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ class RoutablePageMixin:
|
|||
except Http404:
|
||||
pass
|
||||
|
||||
return super(RoutablePageMixin, self).route(request, path_components)
|
||||
return super().route(request, path_components)
|
||||
|
||||
def serve(self, request, view=None, args=None, kwargs=None):
|
||||
if args is None:
|
||||
|
|
@ -116,7 +116,7 @@ class RoutablePageMixin:
|
|||
if kwargs is None:
|
||||
kwargs = {}
|
||||
if view is None:
|
||||
return super(RoutablePageMixin, self).serve(request, *args, **kwargs)
|
||||
return super().serve(request, *args, **kwargs)
|
||||
return view(request, *args, **kwargs)
|
||||
|
||||
def serve_preview(self, request, mode_name):
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ class SearchPromotionForm(forms.ModelForm):
|
|||
sort_order = forms.IntegerField(required=False)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(SearchPromotionForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields['page'].widget = AdminPageChooser()
|
||||
|
||||
class Meta:
|
||||
|
|
@ -33,7 +33,7 @@ class SearchPromotionsFormSet(SearchPromotionsFormSetBase):
|
|||
minimum_forms_message = _("Please specify at least one recommendation for this search term.")
|
||||
|
||||
def add_fields(self, form, *args, **kwargs):
|
||||
super(SearchPromotionsFormSet, self).add_fields(form, *args, **kwargs)
|
||||
super().add_fields(form, *args, **kwargs)
|
||||
|
||||
# Hide delete and order fields
|
||||
form.fields['DELETE'].widget = forms.HiddenInput()
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ class SettingModuleProxy(dict):
|
|||
def __getitem__(self, model_name):
|
||||
""" Get a setting instance for a model """
|
||||
# Model names are treated as case-insensitive
|
||||
return super(SettingModuleProxy, self).__getitem__(model_name.lower())
|
||||
return super().__getitem__(model_name.lower())
|
||||
|
||||
def __missing__(self, model_name):
|
||||
""" Get and cache settings that have not been looked up yet """
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ class SiteSwitchForm(forms.Form):
|
|||
|
||||
def __init__(self, current_site, model, **kwargs):
|
||||
initial_data = {'site': self.get_change_url(current_site, model)}
|
||||
super(SiteSwitchForm, self).__init__(initial=initial_data, **kwargs)
|
||||
super().__init__(initial=initial_data, **kwargs)
|
||||
sites = [(self.get_change_url(site, model), site)
|
||||
for site in Site.objects.all()]
|
||||
self.fields['site'].choices = sites
|
||||
|
|
|
|||
|
|
@ -32,12 +32,12 @@ class SiteSettings(dict):
|
|||
A cache of Settings for a specific Site
|
||||
"""
|
||||
def __init__(self, site):
|
||||
super(SiteSettings, self).__init__()
|
||||
super().__init__()
|
||||
self.site = site
|
||||
|
||||
def __getitem__(self, key):
|
||||
# Normalise all keys to lowercase
|
||||
return super(SiteSettings, self).__getitem__(force_str(key).lower())
|
||||
return super().__getitem__(force_str(key).lower())
|
||||
|
||||
def __missing__(self, key):
|
||||
"""
|
||||
|
|
@ -77,7 +77,7 @@ def get_setting(context, model_string, use_default_site=False):
|
|||
|
||||
class SettingsExtension(Extension):
|
||||
def __init__(self, environment):
|
||||
super(SettingsExtension, self).__init__(environment)
|
||||
super().__init__(environment)
|
||||
self.environment.globals.update({
|
||||
'settings': get_setting,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ class SettingMenuItem(MenuItem):
|
|||
classnames = icon_classes
|
||||
|
||||
self.model = model
|
||||
super(SettingMenuItem, self).__init__(
|
||||
super().__init__(
|
||||
label=capfirst(model._meta.verbose_name),
|
||||
url=reverse('wagtailsettings:edit', args=[
|
||||
model._meta.app_label, model._meta.model_name]),
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ class TestTemplateTag(TemplateTestCase):
|
|||
class TestSettingsJinja(TemplateTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestSettingsJinja, self).setUp()
|
||||
super().setUp()
|
||||
self.engine = engines['jinja2']
|
||||
|
||||
def render(self, string, context=None, request_context=True):
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ from wagtail.snippets.widgets import AdminSnippetChooser
|
|||
|
||||
class ExampleForm(forms.Form):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(ExampleForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields['page_chooser'].widget = AdminPageChooser()
|
||||
self.fields['image_chooser'].widget = AdminImageChooser()
|
||||
self.fields['document_chooser'].widget = AdminDocumentChooser()
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ class TableInput(WidgetWithScript, forms.HiddenInput):
|
|||
|
||||
def __init__(self, table_options=None, attrs=None):
|
||||
self.table_options = table_options
|
||||
super(TableInput, self).__init__(attrs=attrs)
|
||||
super().__init__(attrs=attrs)
|
||||
|
||||
def render(self, name, value, attrs=None):
|
||||
original_field_html = super(TableInput, self).render(name, value, attrs)
|
||||
original_field_html = super().render(name, value, attrs)
|
||||
return render_to_string("table_block/widgets/table.html", {
|
||||
'original_field_html': original_field_html,
|
||||
'attrs': attrs,
|
||||
|
|
@ -57,7 +57,7 @@ class TableBlock(FieldBlock):
|
|||
if table_options is not None:
|
||||
default_table_options.update(table_options)
|
||||
self.table_options = default_table_options
|
||||
super(TableBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
@cached_property
|
||||
def field(self):
|
||||
|
|
|
|||
|
|
@ -475,7 +475,7 @@ class BlockWidget(forms.Widget):
|
|||
"""Wraps a block object as a widget so that it can be incorporated into a Django form"""
|
||||
|
||||
def __init__(self, block_def, attrs=None):
|
||||
super(BlockWidget, self).__init__(attrs=attrs)
|
||||
super().__init__(attrs=attrs)
|
||||
self.block_def = block_def
|
||||
|
||||
def render_with_errors(self, name, value, attrs=None, errors=None):
|
||||
|
|
@ -518,7 +518,7 @@ class BlockField(forms.Field):
|
|||
if 'widget' not in kwargs:
|
||||
kwargs['widget'] = BlockWidget(block)
|
||||
|
||||
super(BlockField, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def clean(self, value):
|
||||
return self.block.clean(value)
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ class CharBlock(FieldBlock):
|
|||
max_length=max_length,
|
||||
min_length=min_length
|
||||
)
|
||||
super(CharBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def get_searchable_content(self, value):
|
||||
return [force_text(value)]
|
||||
|
|
@ -121,7 +121,7 @@ class TextBlock(FieldBlock):
|
|||
'min_length': min_length
|
||||
}
|
||||
self.rows = rows
|
||||
super(TextBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
@cached_property
|
||||
def field(self):
|
||||
|
|
@ -158,7 +158,7 @@ class FloatBlock(FieldBlock):
|
|||
max_value=max_value,
|
||||
min_value=min_value,
|
||||
)
|
||||
super(FloatBlock, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
icon = "plus-inverse"
|
||||
|
|
@ -176,7 +176,7 @@ class DecimalBlock(FieldBlock):
|
|||
max_digits=max_digits,
|
||||
decimal_places=decimal_places,
|
||||
)
|
||||
super(DecimalBlock, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
icon = "plus-inverse"
|
||||
|
|
@ -194,7 +194,7 @@ class RegexBlock(FieldBlock):
|
|||
min_length=min_length,
|
||||
error_messages=error_messages,
|
||||
)
|
||||
super(RegexBlock, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
icon = "code"
|
||||
|
|
@ -209,7 +209,7 @@ class URLBlock(FieldBlock):
|
|||
max_length=max_length,
|
||||
min_length=min_length
|
||||
)
|
||||
super(URLBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
class Meta:
|
||||
icon = "site"
|
||||
|
|
@ -223,7 +223,7 @@ class BooleanBlock(FieldBlock):
|
|||
# conditions" box). To get the conventional yes/no behaviour, you must explicitly pass
|
||||
# required=False.
|
||||
self.field = forms.BooleanField(required=required, help_text=help_text)
|
||||
super(BooleanBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
class Meta:
|
||||
icon = "tick-inverse"
|
||||
|
|
@ -238,7 +238,7 @@ class DateBlock(FieldBlock):
|
|||
except KeyError:
|
||||
pass
|
||||
self.format = format
|
||||
super(DateBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
@cached_property
|
||||
def field(self):
|
||||
|
|
@ -266,7 +266,7 @@ class TimeBlock(FieldBlock):
|
|||
|
||||
def __init__(self, required=True, help_text=None, **kwargs):
|
||||
self.field_options = {'required': required, 'help_text': help_text}
|
||||
super(TimeBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
@cached_property
|
||||
def field(self):
|
||||
|
|
@ -290,7 +290,7 @@ class DateTimeBlock(FieldBlock):
|
|||
def __init__(self, required=True, help_text=None, format=None, **kwargs):
|
||||
self.field_options = {'required': required, 'help_text': help_text}
|
||||
self.format = format
|
||||
super(DateTimeBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
@cached_property
|
||||
def field(self):
|
||||
|
|
@ -317,7 +317,7 @@ class EmailBlock(FieldBlock):
|
|||
required=required,
|
||||
help_text=help_text,
|
||||
)
|
||||
super(EmailBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
class Meta:
|
||||
icon = "mail"
|
||||
|
|
@ -333,7 +333,7 @@ class IntegerBlock(FieldBlock):
|
|||
min_value=min_value,
|
||||
max_value=max_value
|
||||
)
|
||||
super(IntegerBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
class Meta:
|
||||
icon = "plus-inverse"
|
||||
|
|
@ -376,7 +376,7 @@ class ChoiceBlock(FieldBlock):
|
|||
callable_choices = self.get_callable_choices(choices, blank_choice=not(default and required))
|
||||
|
||||
self.field = forms.ChoiceField(choices=callable_choices, required=required, help_text=help_text)
|
||||
super(ChoiceBlock, self).__init__(default=default, **kwargs)
|
||||
super().__init__(default=default, **kwargs)
|
||||
|
||||
def get_callable_choices(self, choices, blank_choice=True):
|
||||
"""
|
||||
|
|
@ -453,7 +453,7 @@ class RichTextBlock(FieldBlock):
|
|||
self.field_options = {'required': required, 'help_text': help_text}
|
||||
self.editor = editor
|
||||
self.features = features
|
||||
super(RichTextBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def get_default(self):
|
||||
if isinstance(self.meta.default, RichText):
|
||||
|
|
@ -501,7 +501,7 @@ class RawHTMLBlock(FieldBlock):
|
|||
self.field = forms.CharField(
|
||||
required=required, help_text=help_text, max_length=max_length, min_length=min_length,
|
||||
widget=forms.Textarea)
|
||||
super(RawHTMLBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def get_default(self):
|
||||
return mark_safe(self.meta.default or '')
|
||||
|
|
@ -530,7 +530,7 @@ class ChooserBlock(FieldBlock):
|
|||
def __init__(self, required=True, help_text=None, **kwargs):
|
||||
self._required = required
|
||||
self._help_text = help_text
|
||||
super(ChooserBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
"""Abstract superclass for fields that implement a chooser interface (page, image, snippet etc)"""
|
||||
@cached_property
|
||||
|
|
@ -584,7 +584,7 @@ class ChooserBlock(FieldBlock):
|
|||
# around that...
|
||||
if isinstance(value, self.target_model):
|
||||
value = value.pk
|
||||
return super(ChooserBlock, self).clean(value)
|
||||
return super().clean(value)
|
||||
|
||||
class Meta:
|
||||
# No icon specified here, because that depends on the purpose that the
|
||||
|
|
@ -607,7 +607,7 @@ class PageChooserBlock(ChooserBlock):
|
|||
|
||||
self._target_models = target_model
|
||||
self.can_choose_root = can_choose_root
|
||||
super(PageChooserBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
@cached_property
|
||||
def target_model(self):
|
||||
|
|
@ -646,7 +646,7 @@ class PageChooserBlock(ChooserBlock):
|
|||
return ''
|
||||
|
||||
def deconstruct(self):
|
||||
name, args, kwargs = super(PageChooserBlock, self).deconstruct()
|
||||
name, args, kwargs = super().deconstruct()
|
||||
|
||||
if 'target_model' in kwargs:
|
||||
target_models = []
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ __all__ = ['ListBlock']
|
|||
class ListBlock(Block):
|
||||
|
||||
def __init__(self, child_block, **kwargs):
|
||||
super(ListBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
if isinstance(child_block, type):
|
||||
# child_block was passed as a class, so convert it to a block instance
|
||||
|
|
@ -167,7 +167,7 @@ class ListBlock(Block):
|
|||
return content
|
||||
|
||||
def check(self, **kwargs):
|
||||
errors = super(ListBlock, self).check(**kwargs)
|
||||
errors = super().check(**kwargs)
|
||||
errors.extend(self.child_block.check(**kwargs))
|
||||
return errors
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ class StreamBlockValidationError(ValidationError):
|
|||
params.update(block_errors)
|
||||
if non_block_errors:
|
||||
params[NON_FIELD_ERRORS] = non_block_errors
|
||||
super(StreamBlockValidationError, self).__init__(
|
||||
super().__init__(
|
||||
'Validation error in StreamBlock', params=params)
|
||||
|
||||
|
||||
|
|
@ -34,7 +34,7 @@ class BaseStreamBlock(Block):
|
|||
def __init__(self, local_blocks=None, **kwargs):
|
||||
self._constructor_kwargs = kwargs
|
||||
|
||||
super(BaseStreamBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
# create a local (shallow) copy of base_blocks so that it can be supplemented by local_blocks
|
||||
self.child_blocks = self.base_blocks.copy()
|
||||
|
|
@ -298,7 +298,7 @@ class BaseStreamBlock(Block):
|
|||
return (path, args, kwargs)
|
||||
|
||||
def check(self, **kwargs):
|
||||
errors = super(BaseStreamBlock, self).check(**kwargs)
|
||||
errors = super().check(**kwargs)
|
||||
for name, child_block in self.child_blocks.items():
|
||||
errors.extend(child_block.check(**kwargs))
|
||||
errors.extend(child_block._check_name(**kwargs))
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ class BaseStructBlock(Block):
|
|||
def __init__(self, local_blocks=None, **kwargs):
|
||||
self._constructor_kwargs = kwargs
|
||||
|
||||
super(BaseStructBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
# create a local (shallow) copy of base_blocks so that it can be supplemented by local_blocks
|
||||
self.child_blocks = self.base_blocks.copy()
|
||||
|
|
@ -164,7 +164,7 @@ class BaseStructBlock(Block):
|
|||
return (path, args, kwargs)
|
||||
|
||||
def check(self, **kwargs):
|
||||
errors = super(BaseStructBlock, self).check(**kwargs)
|
||||
errors = super().check(**kwargs)
|
||||
for name, child_block in self.child_blocks.items():
|
||||
errors.extend(child_block.check(**kwargs))
|
||||
errors.extend(child_block._check_name(**kwargs))
|
||||
|
|
@ -191,7 +191,7 @@ class StructBlock(BaseStructBlock, metaclass=DeclarativeSubBlocksMetaclass):
|
|||
|
||||
class StructValue(collections.OrderedDict):
|
||||
def __init__(self, block, *args):
|
||||
super(StructValue, self).__init__(*args)
|
||||
super().__init__(*args)
|
||||
self.block = block
|
||||
|
||||
def __html__(self):
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@ class RichTextField(models.TextField):
|
|||
self.editor = kwargs.pop('editor', 'default')
|
||||
self.features = kwargs.pop('features', None)
|
||||
# TODO: preserve 'editor' and 'features' when deconstructing for migrations
|
||||
super(RichTextField, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def formfield(self, **kwargs):
|
||||
from wagtail.admin.rich_text import get_rich_text_editor_widget
|
||||
defaults = {'widget': get_rich_text_editor_widget(self.editor, features=self.features)}
|
||||
defaults.update(kwargs)
|
||||
return super(RichTextField, self).formfield(**defaults)
|
||||
return super().formfield(**defaults)
|
||||
|
||||
|
||||
# https://github.com/django/django/blob/64200c14e0072ba0ffef86da46b2ea82fd1e019a/django/db/models/fields/subclassing.py#L31-L44
|
||||
|
|
@ -39,7 +39,7 @@ class Creator:
|
|||
|
||||
class StreamField(models.Field):
|
||||
def __init__(self, block_types, **kwargs):
|
||||
super(StreamField, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
if isinstance(block_types, Block):
|
||||
self.stream_block = block_types
|
||||
elif isinstance(block_types, type):
|
||||
|
|
@ -55,7 +55,7 @@ class StreamField(models.Field):
|
|||
return StreamFieldPanel
|
||||
|
||||
def deconstruct(self):
|
||||
name, path, _, kwargs = super(StreamField, self).deconstruct()
|
||||
name, path, _, kwargs = super().deconstruct()
|
||||
block_types = self.stream_block.child_blocks.items()
|
||||
args = [block_types]
|
||||
return name, path, args, kwargs
|
||||
|
|
@ -115,7 +115,7 @@ class StreamField(models.Field):
|
|||
"""
|
||||
defaults = {'form_class': BlockField, 'block': self.stream_block}
|
||||
defaults.update(kwargs)
|
||||
return super(StreamField, self).formfield(**defaults)
|
||||
return super().formfield(**defaults)
|
||||
|
||||
def value_to_string(self, obj):
|
||||
value = self.value_from_object(obj)
|
||||
|
|
@ -125,12 +125,12 @@ class StreamField(models.Field):
|
|||
return self.stream_block.get_searchable_content(value)
|
||||
|
||||
def check(self, **kwargs):
|
||||
errors = super(StreamField, self).check(**kwargs)
|
||||
errors = super().check(**kwargs)
|
||||
errors.extend(self.stream_block.check(field=self, **kwargs))
|
||||
return errors
|
||||
|
||||
def contribute_to_class(self, cls, name, **kwargs):
|
||||
super(StreamField, self).contribute_to_class(cls, name, **kwargs)
|
||||
super().contribute_to_class(cls, name, **kwargs)
|
||||
|
||||
# Add Creator descriptor to allow the field to be set from a list or a
|
||||
# JSON string.
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class PasswordViewRestrictionForm(forms.Form):
|
|||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.restriction = kwargs.pop('instance')
|
||||
super(PasswordViewRestrictionForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def clean_password(self):
|
||||
data = self.cleaned_data['password']
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class WagtailCoreExtension(Extension):
|
|||
tags = {'include_block'}
|
||||
|
||||
def __init__(self, environment):
|
||||
super(WagtailCoreExtension, self).__init__(environment)
|
||||
super().__init__(environment)
|
||||
|
||||
self.environment.globals.update({
|
||||
'pageurl': jinja2.contextfunction(pageurl),
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ class Site(models.Model):
|
|||
return 'http://%s:%d' % (self.hostname, self.port)
|
||||
|
||||
def clean_fields(self, exclude=None):
|
||||
super(Site, self).clean_fields(exclude)
|
||||
super().clean_fields(exclude)
|
||||
# Only one site can have the is_default_site flag set
|
||||
try:
|
||||
default = Site.objects.get(is_default_site=True)
|
||||
|
|
@ -355,7 +355,7 @@ class Page(AbstractPage, index.Indexed, ClusterableModel, metaclass=PageBase):
|
|||
settings_panels = []
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(Page, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
if not self.id:
|
||||
# this model is being newly created
|
||||
# rather than retrieved from the db;
|
||||
|
|
@ -428,10 +428,10 @@ class Page(AbstractPage, index.Indexed, ClusterableModel, metaclass=PageBase):
|
|||
if not self.draft_title:
|
||||
self.draft_title = self.title
|
||||
|
||||
super(Page, self).full_clean(*args, **kwargs)
|
||||
super().full_clean(*args, **kwargs)
|
||||
|
||||
def clean(self):
|
||||
super(Page, self).clean()
|
||||
super().clean()
|
||||
if not Page._slug_is_available(self.slug, self.get_parent(), self):
|
||||
raise ValidationError({'slug': _("This slug is already in use")})
|
||||
|
||||
|
|
@ -461,7 +461,7 @@ class Page(AbstractPage, index.Indexed, ClusterableModel, metaclass=PageBase):
|
|||
old_url_path = old_record.url_path
|
||||
new_url_path = self.url_path
|
||||
|
||||
result = super(Page, self).save(*args, **kwargs)
|
||||
result = super().save(*args, **kwargs)
|
||||
|
||||
if update_descendant_url_paths:
|
||||
self._update_descendant_url_paths(old_url_path, new_url_path)
|
||||
|
|
@ -490,7 +490,7 @@ class Page(AbstractPage, index.Indexed, ClusterableModel, metaclass=PageBase):
|
|||
# child pages that are not instances of SpecificPage
|
||||
if type(self) is Page:
|
||||
# this is a Page instance, so carry on as we were
|
||||
return super(Page, self).delete(*args, **kwargs)
|
||||
return super().delete(*args, **kwargs)
|
||||
else:
|
||||
# retrieve an actual Page instance and delete that instead of self
|
||||
return Page.objects.get(id=self.id).delete(*args, **kwargs)
|
||||
|
|
@ -1018,7 +1018,7 @@ class Page(AbstractPage, index.Indexed, ClusterableModel, metaclass=PageBase):
|
|||
Extension to the treebeard 'move' method to ensure that url_path is updated too.
|
||||
"""
|
||||
old_url_path = Page.objects.get(id=self.id).url_path
|
||||
super(Page, self).move(target, pos=pos)
|
||||
super().move(target, pos=pos)
|
||||
# treebeard's move method doesn't actually update the in-memory instance, so we need to work
|
||||
# with a freshly loaded one now
|
||||
new_self = Page.objects.get(id=self.id)
|
||||
|
|
@ -1385,7 +1385,7 @@ class Orderable(models.Model):
|
|||
|
||||
class SubmittedRevisionsManager(models.Manager):
|
||||
def get_queryset(self):
|
||||
return super(SubmittedRevisionsManager, self).get_queryset().filter(submitted_for_moderation=True)
|
||||
return super().get_queryset().filter(submitted_for_moderation=True)
|
||||
|
||||
|
||||
class PageRevision(models.Model):
|
||||
|
|
@ -1413,7 +1413,7 @@ class PageRevision(models.Model):
|
|||
if self.created_at is None:
|
||||
self.created_at = timezone.now()
|
||||
|
||||
super(PageRevision, self).save(*args, **kwargs)
|
||||
super().save(*args, **kwargs)
|
||||
if self.submitted_for_moderation:
|
||||
# ensure that all other revisions of this page have the 'submitted for moderation' flag unset
|
||||
self.page.revisions.exclude(id=self.id).update(submitted_for_moderation=False)
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ class BaseDjangoAuthPermissionPolicy(BasePermissionPolicy):
|
|||
# swappable models are in use - for example, an interface for editing user
|
||||
# records might use a custom User model but will typically still refer to the
|
||||
# permission records for auth.user.
|
||||
super(BaseDjangoAuthPermissionPolicy, self).__init__(model)
|
||||
super().__init__(model)
|
||||
self.auth_model = auth_model or self.model
|
||||
self.app_label = self.auth_model._meta.app_label
|
||||
self.model_name = self.auth_model._meta.model_name
|
||||
|
|
@ -247,7 +247,7 @@ class OwnershipPermissionPolicy(BaseDjangoAuthPermissionPolicy):
|
|||
(unless the user is an active superuser, in which case they can do everything).
|
||||
"""
|
||||
def __init__(self, model, auth_model=None, owner_field_name='owner'):
|
||||
super(OwnershipPermissionPolicy, self).__init__(model, auth_model=auth_model)
|
||||
super().__init__(model, auth_model=auth_model)
|
||||
self.owner_field_name = owner_field_name
|
||||
|
||||
# make sure owner_field_name is a field that exists on the model
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@ class CollectionOwnershipPermissionPolicy(
|
|||
(see permission_policies.base.OwnershipPermissionPolicy)
|
||||
"""
|
||||
def __init__(self, model, auth_model=None, owner_field_name='owner'):
|
||||
super(CollectionOwnershipPermissionPolicy, self).__init__(model, auth_model=auth_model)
|
||||
super().__init__(model, auth_model=auth_model)
|
||||
self.owner_field_name = owner_field_name
|
||||
|
||||
# make sure owner_field_name is a field that exists on the model
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class FooStreamBlock(blocks.StreamBlock):
|
|||
error = 'At least one block must say "foo"'
|
||||
|
||||
def clean(self, value):
|
||||
value = super(FooStreamBlock, self).clean(value)
|
||||
value = super().clean(value)
|
||||
if not any(block.value == 'foo' for block in value):
|
||||
raise blocks.StreamBlockValidationError(non_block_errors=ErrorList([self.error]))
|
||||
return value
|
||||
|
|
@ -201,7 +201,7 @@ class TestFieldBlock(WagtailTestUtils, SimpleTestCase):
|
|||
|
||||
class PrefixField(forms.Field):
|
||||
def clean(self, value):
|
||||
value = super(PrefixField, self).clean(value)
|
||||
value = super().clean(value)
|
||||
return PrefixWrapper.from_prefixed(value)
|
||||
|
||||
def prepare_value(self, value):
|
||||
|
|
@ -209,7 +209,7 @@ class TestFieldBlock(WagtailTestUtils, SimpleTestCase):
|
|||
|
||||
class PrefixedBlock(blocks.FieldBlock):
|
||||
def __init__(self, required=True, help_text='', **kwargs):
|
||||
super(PrefixedBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
self.field = PrefixField(required=required, help_text=help_text)
|
||||
|
||||
block = PrefixedBlock()
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ class PermissionPolicyTestCase(PermissionPolicyTestUtils, TestCase):
|
|||
|
||||
class TestCollectionPermissionPolicy(PermissionPolicyTestCase):
|
||||
def setUp(self):
|
||||
super(TestCollectionPermissionPolicy, self).setUp()
|
||||
super().setUp()
|
||||
self.policy = CollectionPermissionPolicy(Document)
|
||||
|
||||
def test_user_has_permission(self):
|
||||
|
|
@ -512,7 +512,7 @@ class TestCollectionPermissionPolicy(PermissionPolicyTestCase):
|
|||
|
||||
class TestCollectionOwnershipPermissionPolicy(PermissionPolicyTestCase):
|
||||
def setUp(self):
|
||||
super(TestCollectionOwnershipPermissionPolicy, self).setUp()
|
||||
super().setUp()
|
||||
self.policy = CollectionOwnershipPermissionPolicy(
|
||||
Document, owner_field_name='uploaded_by_user',
|
||||
)
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ class PermissionPolicyTestCase(PermissionPolicyTestUtils, TestCase):
|
|||
|
||||
class TestBlanketPermissionPolicy(PermissionPolicyTestCase):
|
||||
def setUp(self):
|
||||
super(TestBlanketPermissionPolicy, self).setUp()
|
||||
super().setUp()
|
||||
self.policy = BlanketPermissionPolicy(Image)
|
||||
|
||||
self.active_users = [
|
||||
|
|
@ -273,7 +273,7 @@ class TestBlanketPermissionPolicy(PermissionPolicyTestCase):
|
|||
|
||||
class TestAuthenticationOnlyPermissionPolicy(PermissionPolicyTestCase):
|
||||
def setUp(self):
|
||||
super(TestAuthenticationOnlyPermissionPolicy, self).setUp()
|
||||
super().setUp()
|
||||
self.policy = AuthenticationOnlyPermissionPolicy(Image)
|
||||
|
||||
def test_user_has_permission(self):
|
||||
|
|
@ -498,7 +498,7 @@ class TestAuthenticationOnlyPermissionPolicy(PermissionPolicyTestCase):
|
|||
|
||||
class TestModelPermissionPolicy(PermissionPolicyTestCase):
|
||||
def setUp(self):
|
||||
super(TestModelPermissionPolicy, self).setUp()
|
||||
super().setUp()
|
||||
self.policy = ModelPermissionPolicy(Image)
|
||||
|
||||
def test_user_has_permission(self):
|
||||
|
|
@ -872,7 +872,7 @@ class TestModelPermissionPolicy(PermissionPolicyTestCase):
|
|||
|
||||
class TestOwnershipPermissionPolicy(PermissionPolicyTestCase):
|
||||
def setUp(self):
|
||||
super(TestOwnershipPermissionPolicy, self).setUp()
|
||||
super().setUp()
|
||||
self.policy = OwnershipPermissionPolicy(Image, owner_field_name='uploaded_by_user')
|
||||
|
||||
def test_user_has_permission(self):
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ class TestStreamFieldDjangoRendering(TestStreamFieldRenderingBase):
|
|||
|
||||
class TestStreamFieldJinjaRendering(TestStreamFieldRenderingBase):
|
||||
def setUp(self):
|
||||
super(TestStreamFieldJinjaRendering, self).setUp()
|
||||
super().setUp()
|
||||
self.engine = engines['jinja2']
|
||||
|
||||
def render(self, string, context):
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ class TestAssertTagInHTML(WagtailTestUtils, TestCase):
|
|||
|
||||
class TestWagtailPageTests(WagtailPageTests):
|
||||
def setUp(self):
|
||||
super(TestWagtailPageTests, self).setUp()
|
||||
super().setUp()
|
||||
site = Site.objects.get(is_default_site=True)
|
||||
self.root = site.root_page.specific
|
||||
|
||||
|
|
|
|||
|
|
@ -13,12 +13,12 @@ class AdminDocumentChooser(AdminChooser):
|
|||
link_to_chosen_text = _('Edit this document')
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super(AdminDocumentChooser, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
self.document_model = get_document_model()
|
||||
|
||||
def render_html(self, name, value, attrs):
|
||||
instance, value = self.get_instance_and_id(self.document_model, value)
|
||||
original_field_html = super(AdminDocumentChooser, self).render_html(name, value, attrs)
|
||||
original_field_html = super().render_html(name, value, attrs)
|
||||
|
||||
return render_to_string("wagtaildocs/widgets/document_chooser.html", {
|
||||
'widget': self,
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ class ImageRenditionField(Field):
|
|||
"""
|
||||
def __init__(self, filter_spec, *args, **kwargs):
|
||||
self.filter_spec = filter_spec
|
||||
super(ImageRenditionField, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def to_representation(self, image):
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ SUPPORTED_FORMATS_TEXT = _("GIF, JPEG, PNG")
|
|||
|
||||
class WagtailImageField(ImageField):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(WagtailImageField, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
# Get max upload size from settings
|
||||
self.max_upload_size = getattr(settings, 'WAGTAILIMAGES_MAX_UPLOAD_SIZE', 10 * 1024 * 1024)
|
||||
|
|
@ -84,7 +84,7 @@ class WagtailImageField(ImageField):
|
|||
), code='file_too_large')
|
||||
|
||||
def to_python(self, data):
|
||||
f = super(WagtailImageField, self).to_python(data)
|
||||
f = super().to_python(data)
|
||||
|
||||
if f is not None:
|
||||
self.check_image_file_size(f)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ def image(image, filterspec, **attrs):
|
|||
|
||||
class WagtailImagesExtension(Extension):
|
||||
def __init__(self, environment):
|
||||
super(WagtailImagesExtension, self).__init__(environment)
|
||||
super().__init__(environment)
|
||||
|
||||
self.environment.globals.update({
|
||||
'image': image,
|
||||
|
|
|
|||
|
|
@ -13,12 +13,12 @@ class AdminImageChooser(AdminChooser):
|
|||
link_to_chosen_text = _('Edit this image')
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super(AdminImageChooser, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
self.image_model = get_image_model()
|
||||
|
||||
def render_html(self, name, value, attrs):
|
||||
instance, value = self.get_instance_and_id(self.image_model, value)
|
||||
original_field_html = super(AdminImageChooser, self).render_html(name, value, attrs)
|
||||
original_field_html = super().render_html(name, value, attrs)
|
||||
|
||||
return render_to_string("wagtailimages/widgets/image_chooser.html", {
|
||||
'widget': self,
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ class BaseSearchResults:
|
|||
|
||||
class EmptySearchResults(BaseSearchResults):
|
||||
def __init__(self):
|
||||
return super(EmptySearchResults, self).__init__(None, None)
|
||||
return super().__init__(None, None)
|
||||
|
||||
def _clone(self):
|
||||
return self.__class__()
|
||||
|
|
|
|||
|
|
@ -215,7 +215,7 @@ class BaseField:
|
|||
|
||||
class SearchField(BaseField):
|
||||
def __init__(self, field_name, boost=None, partial_match=False, **kwargs):
|
||||
super(SearchField, self).__init__(field_name, **kwargs)
|
||||
super().__init__(field_name, **kwargs)
|
||||
self.boost = boost
|
||||
self.partial_match = partial_match
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ class Query(models.Model):
|
|||
# Normalise query string
|
||||
self.query_string = normalise_query_string(self.query_string)
|
||||
|
||||
super(Query, self).save(*args, **kwargs)
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
def add_hit(self, date=None):
|
||||
if date is None:
|
||||
|
|
|
|||
|
|
@ -11,34 +11,34 @@ class TestDBBackend(BackendTests, TestCase):
|
|||
# Doesn't support ranking
|
||||
@unittest.expectedFailure
|
||||
def test_ranking(self):
|
||||
super(TestDBBackend, self).test_ranking()
|
||||
super().test_ranking()
|
||||
|
||||
# Doesn't support ranking
|
||||
@unittest.expectedFailure
|
||||
def test_search_boosting_on_related_fields(self):
|
||||
super(TestDBBackend, self).test_search_boosting_on_related_fields()
|
||||
super().test_search_boosting_on_related_fields()
|
||||
|
||||
# Doesn't support searching specific fields
|
||||
@unittest.expectedFailure
|
||||
def test_search_child_class_field_from_parent(self):
|
||||
super(TestDBBackend, self).test_search_child_class_field_from_parent()
|
||||
super().test_search_child_class_field_from_parent()
|
||||
|
||||
# Doesn't support searching related fields
|
||||
@unittest.expectedFailure
|
||||
def test_search_on_related_fields(self):
|
||||
super(TestDBBackend, self).test_search_on_related_fields()
|
||||
super().test_search_on_related_fields()
|
||||
|
||||
# Doesn't support searching callable fields
|
||||
@unittest.expectedFailure
|
||||
def test_search_callable_field(self):
|
||||
super(TestDBBackend, self).test_search_callable_field()
|
||||
super().test_search_callable_field()
|
||||
|
||||
# Broken
|
||||
@unittest.expectedFailure
|
||||
def test_order_by_non_filterable_field(self):
|
||||
super(TestDBBackend, self).test_order_by_non_filterable_field()
|
||||
super().test_order_by_non_filterable_field()
|
||||
|
||||
# Doesn't support the index API used in this test
|
||||
@unittest.expectedFailure
|
||||
def test_same_rank_pages(self):
|
||||
super(TestDBBackend, self).test_same_rank_pages()
|
||||
super().test_same_rank_pages()
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ from wagtail.core.models import Site
|
|||
|
||||
class SiteForm(forms.ModelForm):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(SiteForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields['root_page'].widget = AdminPageChooser(
|
||||
choose_one_text=_('Choose a root page'), choose_another_text=_('Choose a different root page')
|
||||
)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ from wagtail.core.utils import resolve_model_string
|
|||
|
||||
class SnippetChooserBlock(ChooserBlock):
|
||||
def __init__(self, target_model, **kwargs):
|
||||
super(SnippetChooserBlock, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
self._target_model = target_model
|
||||
|
||||
@cached_property
|
||||
|
|
|
|||
|
|
@ -239,7 +239,7 @@ class TestSnippetEditView(BaseTestSnippetEditView):
|
|||
fixtures = ['test.json']
|
||||
|
||||
def setUp(self):
|
||||
super(TestSnippetEditView, self).setUp()
|
||||
super().setUp()
|
||||
self.test_snippet = Advert.objects.get(id=1)
|
||||
|
||||
def test_simple(self):
|
||||
|
|
@ -293,7 +293,7 @@ class TestSnippetEditView(BaseTestSnippetEditView):
|
|||
class TestEditTabbedSnippet(BaseTestSnippetEditView):
|
||||
|
||||
def setUp(self):
|
||||
super(TestEditTabbedSnippet, self).setUp()
|
||||
super().setUp()
|
||||
self.test_snippet = AdvertWithTabbedInterface.objects.create(
|
||||
text="test_advert",
|
||||
url="http://www.example.com",
|
||||
|
|
@ -312,7 +312,7 @@ class TestEditTabbedSnippet(BaseTestSnippetEditView):
|
|||
class TestEditFileUploadSnippet(BaseTestSnippetEditView):
|
||||
|
||||
def setUp(self):
|
||||
super(TestEditFileUploadSnippet, self).setUp()
|
||||
super().setUp()
|
||||
self.test_snippet = FileUploadSnippet.objects.create(
|
||||
file=ContentFile(b"Simple text document", 'test.txt'))
|
||||
|
||||
|
|
|
|||
|
|
@ -15,12 +15,12 @@ class AdminSnippetChooser(AdminChooser):
|
|||
self.choose_another_text = _('Choose another %s') % name
|
||||
self.link_to_chosen_text = _('Edit this %s') % name
|
||||
|
||||
super(AdminSnippetChooser, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def render_html(self, name, value, attrs):
|
||||
instance, value = self.get_instance_and_id(self.target_model, value)
|
||||
|
||||
original_field_html = super(AdminSnippetChooser, self).render_html(name, value, attrs)
|
||||
original_field_html = super().render_html(name, value, attrs)
|
||||
|
||||
return render_to_string("wagtailsnippets/widgets/snippet_chooser.html", {
|
||||
'widget': self,
|
||||
|
|
|
|||
|
|
@ -355,7 +355,7 @@ class BlogIndexPage(Page):
|
|||
paginator, entries = paginate(request, entries, page_key='page', per_page=10)
|
||||
|
||||
# Update template context
|
||||
context = super(BlogIndexPage, self).get_context(request)
|
||||
context = super().get_context(request)
|
||||
context['entries'] = entries
|
||||
return context
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class AuthorModelAdmin(ModelAdmin):
|
|||
return class_names
|
||||
|
||||
def get_extra_attrs_for_field_col(self, obj, field_name):
|
||||
attrs = super(AuthorModelAdmin, self).get_extra_attrs_for_field_col(
|
||||
attrs = super().get_extra_attrs_for_field_col(
|
||||
field_name, obj
|
||||
)
|
||||
if field_name == 'last_book':
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@ class LinkBlock(blocks.StructBlock):
|
|||
url = blocks.URLBlock()
|
||||
|
||||
def get_context(self, value, parent_context=None):
|
||||
context = super(LinkBlock, self).get_context(value, parent_context)
|
||||
context = super().get_context(value, parent_context)
|
||||
context['classname'] = parent_context['classname'] if value['title'] == 'Torchbox' else 'normal'
|
||||
return context
|
||||
|
||||
def get_form_context(self, value, prefix='', errors=None):
|
||||
context = super(LinkBlock, self).get_form_context(value, prefix=prefix, errors=errors)
|
||||
context = super().get_form_context(value, prefix=prefix, errors=errors)
|
||||
context['extra_var'] = "Hello from get_form_context!"
|
||||
return context
|
||||
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ class EventCategory(models.Model):
|
|||
|
||||
class EventPageForm(WagtailAdminPageForm):
|
||||
def clean(self):
|
||||
cleaned_data = super(EventPageForm, self).clean()
|
||||
cleaned_data = super().clean()
|
||||
|
||||
# Make sure that the event starts before it ends
|
||||
start_date = cleaned_data['date_from']
|
||||
|
|
@ -302,7 +302,7 @@ class SingleEventPage(EventPage):
|
|||
|
||||
# Give this page model a custom URL routing scheme
|
||||
def get_url_parts(self, request=None):
|
||||
url_parts = super(SingleEventPage, self).get_url_parts(request=request)
|
||||
url_parts = super().get_url_parts(request=request)
|
||||
if url_parts is None:
|
||||
return None
|
||||
else:
|
||||
|
|
@ -312,13 +312,13 @@ class SingleEventPage(EventPage):
|
|||
def route(self, request, path_components):
|
||||
if path_components == ['pointless-suffix']:
|
||||
# treat this as equivalent to a request for this page
|
||||
return super(SingleEventPage, self).route(request, [])
|
||||
return super().route(request, [])
|
||||
else:
|
||||
# fall back to default routing rules
|
||||
return super(SingleEventPage, self).route(request, path_components)
|
||||
return super().route(request, path_components)
|
||||
|
||||
def get_admin_display_title(self):
|
||||
return "%s (single event)" % super(SingleEventPage, self).get_admin_display_title()
|
||||
return "%s (single event)" % super().get_admin_display_title()
|
||||
|
||||
|
||||
SingleEventPage.content_panels = [FieldPanel('excerpt')] + EventPage.content_panels
|
||||
|
|
@ -346,7 +346,7 @@ class EventIndex(Page):
|
|||
events = paginator.page(paginator.num_pages)
|
||||
|
||||
# Update context
|
||||
context = super(EventIndex, self).get_context(request)
|
||||
context = super().get_context(request)
|
||||
context['events'] = events
|
||||
return context
|
||||
|
||||
|
|
@ -357,7 +357,7 @@ class EventIndex(Page):
|
|||
except (TypeError, ValueError):
|
||||
pass
|
||||
|
||||
return super(EventIndex, self).route(request, path_components)
|
||||
return super().route(request, path_components)
|
||||
|
||||
def get_static_site_paths(self):
|
||||
# Get page count
|
||||
|
|
@ -368,12 +368,12 @@ class EventIndex(Page):
|
|||
yield '/%d/' % (page + 1)
|
||||
|
||||
# Yield from superclass
|
||||
for path in super(EventIndex, self).get_static_site_paths():
|
||||
for path in super().get_static_site_paths():
|
||||
yield path
|
||||
|
||||
def get_sitemap_urls(self):
|
||||
# Add past events url to sitemap
|
||||
return super(EventIndex, self).get_sitemap_urls() + [
|
||||
return super().get_sitemap_urls() + [
|
||||
{
|
||||
'location': self.full_url + 'past/',
|
||||
'lastmod': self.latest_revision_created_at
|
||||
|
|
@ -381,7 +381,7 @@ class EventIndex(Page):
|
|||
]
|
||||
|
||||
def get_cached_paths(self):
|
||||
return super(EventIndex, self).get_cached_paths() + [
|
||||
return super().get_cached_paths() + [
|
||||
'/past/'
|
||||
]
|
||||
|
||||
|
|
@ -398,7 +398,7 @@ class FormField(AbstractFormField):
|
|||
|
||||
class FormPage(AbstractEmailForm):
|
||||
def get_context(self, request):
|
||||
context = super(FormPage, self).get_context(request)
|
||||
context = super().get_context(request)
|
||||
context['greeting'] = "hello world"
|
||||
return context
|
||||
|
||||
|
|
@ -450,7 +450,7 @@ class FormPageWithCustomSubmission(AbstractEmailForm):
|
|||
thank_you_text = RichTextField(blank=True)
|
||||
|
||||
def get_context(self, request, *args, **kwargs):
|
||||
context = super(FormPageWithCustomSubmission, self).get_context(request)
|
||||
context = super().get_context(request)
|
||||
context['greeting'] = "hello world"
|
||||
return context
|
||||
|
||||
|
|
@ -461,7 +461,7 @@ class FormPageWithCustomSubmission(AbstractEmailForm):
|
|||
data_fields = [
|
||||
('username', 'Username'),
|
||||
]
|
||||
data_fields += super(FormPageWithCustomSubmission, self).get_data_fields()
|
||||
data_fields += super().get_data_fields()
|
||||
|
||||
return data_fields
|
||||
|
||||
|
|
@ -487,7 +487,7 @@ class FormPageWithCustomSubmission(AbstractEmailForm):
|
|||
self.get_context(request)
|
||||
)
|
||||
|
||||
return super(FormPageWithCustomSubmission, self).serve(request, *args, **kwargs)
|
||||
return super().serve(request, *args, **kwargs)
|
||||
|
||||
|
||||
FormPageWithCustomSubmission.content_panels = [
|
||||
|
|
@ -511,7 +511,7 @@ class CustomFormPageSubmission(AbstractFormSubmission):
|
|||
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
|
||||
|
||||
def get_data(self):
|
||||
form_data = super(CustomFormPageSubmission, self).get_data()
|
||||
form_data = super().get_data()
|
||||
form_data.update({
|
||||
'username': self.user.username,
|
||||
})
|
||||
|
|
@ -707,7 +707,7 @@ class ExtendedImageChooserBlock(ImageChooserBlock):
|
|||
otherwise, it returns the default value.
|
||||
"""
|
||||
def get_api_representation(self, value, context=None):
|
||||
image_id = super(ExtendedImageChooserBlock, self).get_api_representation(value, context=context)
|
||||
image_id = super().get_api_representation(value, context=context)
|
||||
if 'request' in context and context['request'].query_params.get('extended', False):
|
||||
return {
|
||||
'id': image_id,
|
||||
|
|
@ -839,7 +839,7 @@ class CustomImageFilePath(AbstractImage):
|
|||
different contents - this isn't guaranteed as we're only using
|
||||
the first three characters of the checksum.
|
||||
"""
|
||||
original_filepath = super(CustomImageFilePath, self).get_upload_to(filename)
|
||||
original_filepath = super().get_upload_to(filename)
|
||||
folder_name, filename = original_filepath.split(os.path.sep)
|
||||
|
||||
# Ensure that we consume the entire file, we can't guarantee that
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ class WagtailPageTests(WagtailTestUtils, TestCase):
|
|||
A set of asserts to help write tests for your own Wagtail site.
|
||||
"""
|
||||
def setUp(self):
|
||||
super(WagtailPageTests, self).setUp()
|
||||
super().setUp()
|
||||
self.login()
|
||||
|
||||
def _testCanCreateAt(self, parent_model, child_model):
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class UsernameForm(forms.ModelForm):
|
|||
something else, don't touch it.
|
||||
"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(UsernameForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
if User.USERNAME_FIELD == 'username':
|
||||
field = self.fields['username']
|
||||
field.regex = r"^[\w.@+-]+$"
|
||||
|
|
@ -92,7 +92,7 @@ class UserForm(UsernameForm):
|
|||
'or setting.'))
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(UserForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
if self.password_enabled:
|
||||
if self.password_required:
|
||||
|
|
@ -139,11 +139,11 @@ class UserForm(UsernameForm):
|
|||
return password2
|
||||
|
||||
def _clean_fields(self):
|
||||
super(UserForm, self)._clean_fields()
|
||||
super()._clean_fields()
|
||||
self._clean_username()
|
||||
|
||||
def save(self, commit=True):
|
||||
user = super(UserForm, self).save(commit=False)
|
||||
user = super().save(commit=False)
|
||||
|
||||
if self.password_enabled:
|
||||
password = self.cleaned_data['password1']
|
||||
|
|
@ -170,7 +170,7 @@ class UserEditForm(UserForm):
|
|||
|
||||
def __init__(self, *args, **kwargs):
|
||||
editing_self = kwargs.pop('editing_self', False)
|
||||
super(UserEditForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
if editing_self:
|
||||
del self.fields["is_active"]
|
||||
|
|
@ -186,7 +186,7 @@ class UserEditForm(UserForm):
|
|||
|
||||
class GroupForm(forms.ModelForm):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(GroupForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
self.registered_permissions = Permission.objects.none()
|
||||
for fn in hooks.get_hooks('register_permissions'):
|
||||
self.registered_permissions = self.registered_permissions | fn()
|
||||
|
|
@ -232,7 +232,7 @@ class GroupForm(forms.ModelForm):
|
|||
except ValueError:
|
||||
# this form is not bound; we're probably creating a new group
|
||||
untouchable_permissions = []
|
||||
group = super(GroupForm, self).save()
|
||||
group = super().save()
|
||||
group.permissions.add(*untouchable_permissions)
|
||||
return group
|
||||
|
||||
|
|
@ -272,7 +272,7 @@ class BaseGroupPagePermissionFormSet(forms.BaseFormSet):
|
|||
'permission_types': [pp.permission_type for pp in page_permissions]
|
||||
})
|
||||
|
||||
super(BaseGroupPagePermissionFormSet, self).__init__(
|
||||
super().__init__(
|
||||
data, files, initial=initial_data, prefix=prefix
|
||||
)
|
||||
for form in self.forms:
|
||||
|
|
@ -280,7 +280,7 @@ class BaseGroupPagePermissionFormSet(forms.BaseFormSet):
|
|||
|
||||
@property
|
||||
def empty_form(self):
|
||||
empty_form = super(BaseGroupPagePermissionFormSet, self).empty_form
|
||||
empty_form = super().empty_form
|
||||
empty_form.fields['DELETE'].widget = forms.HiddenInput()
|
||||
return empty_form
|
||||
|
||||
|
|
@ -353,7 +353,7 @@ GroupPagePermissionFormSet = forms.formset_factory(
|
|||
|
||||
class NotificationPreferencesForm(forms.ModelForm):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(NotificationPreferencesForm, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
user_perms = UserPagePermissionsProxy(self.instance.user)
|
||||
if not user_perms.can_publish_pages():
|
||||
del self.fields['submitted_notifications']
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ class PermissionPanelFormsMixin:
|
|||
if 'permission_panels' not in kwargs:
|
||||
kwargs['permission_panels'] = self.get_permission_panel_forms()
|
||||
|
||||
return super(PermissionPanelFormsMixin, self).get_context_data(**kwargs)
|
||||
return super().get_context_data(**kwargs)
|
||||
|
||||
|
||||
class IndexView(mixins.SearchableListMixin, generic.IndexView):
|
||||
|
|
|
|||
|
|
@ -4,4 +4,4 @@ from wagtail.admin.widgets import Button
|
|||
class UserListingButton(Button):
|
||||
def __init__(self, label, url, classes=set(), **kwargs):
|
||||
classes = {'button', 'button-small', 'button-secondary'} | set(classes)
|
||||
super(UserListingButton, self).__init__(label, url, classes=classes, **kwargs)
|
||||
super().__init__(label, url, classes=classes, **kwargs)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ from django.utils.safestring import mark_safe
|
|||
class WidgetWithScript(Widget):
|
||||
def render_html(self, name, value, attrs):
|
||||
"""Render the HTML (non-JS) portion of the field markup"""
|
||||
return super(WidgetWithScript, self).render(name, value, attrs)
|
||||
return super().render(name, value, attrs)
|
||||
|
||||
def render(self, name, value, attrs=None):
|
||||
# no point trying to come up with sensible semantics for when 'id' is missing from attrs,
|
||||
|
|
|
|||
Loading…
Reference in a new issue