Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-django-extra-views for
openSUSE:Factory checked in at 2021-07-24 20:39:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-extra-views (Old)
and /work/SRC/openSUSE:Factory/.python-django-extra-views.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django-extra-views"
Sat Jul 24 20:39:01 2021 rev:2 rq:908032 version:0.14.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-django-extra-views/python-django-extra-views.changes
2020-06-29 21:18:12.929756179 +0200
+++
/work/SRC/openSUSE:Factory/.python-django-extra-views.new.1899/python-django-extra-views.changes
2021-07-24 20:39:13.784410247 +0200
@@ -1,0 +2,14 @@
+Sat Jul 24 02:07:33 UTC 2021 - John Vandenberg <[email protected]>
+
+- Added merged_pr_233.patch for Django 3.2 support
+- Update to v0.14.0
+ * Removed support for Python 2.7.
+ * Added support for Python 3.8 and Django 3.1.
+ * Removed the following classes (use the class in parentheses instead):
+ + BaseFormSetMixin (use BaseFormSetFactory)
+ + BaseInlineFormSetMixin (use BaseInlineFormSetFactory)
+ + InlineFormSet (use InlineFormSetFactory)
+ + BaseGenericInlineFormSetMixin (use BaseGenericInlineFormSetFactory)
+ + GenericInlineFormSet (use GenericInlineFormSetFactory)
+
+-------------------------------------------------------------------
Old:
----
django-extra-views-0.13.0.tar.gz
New:
----
django-extra-views-0.14.0.tar.gz
merged_pr_233.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-django-extra-views.spec ++++++
--- /var/tmp/diff_new_pack.AYSyG2/_old 2021-07-24 20:39:14.236409723 +0200
+++ /var/tmp/diff_new_pack.AYSyG2/_new 2021-07-24 20:39:14.240409719 +0200
@@ -17,14 +17,16 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%define skip_python2 1
Name: python-django-extra-views
-Version: 0.13.0
+Version: 0.14.0
Release: 0
Summary: Extra class-based views for Django
License: MIT
Group: Development/Languages/Python
URL: https://github.com/AndrewIngram/django-extra-views
Source:
https://github.com/AndrewIngram/django-extra-views/archive/%{version}.tar.gz#/django-extra-views-%{version}.tar.gz
+Patch0:
https://patch-diff.githubusercontent.com/raw/AndrewIngram/django-extra-views/pull/233.patch#/merged_pr_233.patch
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
@@ -43,6 +45,7 @@
%prep
%setup -q -n django-extra-views-%{version}
+%patch0 -p1
%build
%python_build
++++++ django-extra-views-0.13.0.tar.gz -> django-extra-views-0.14.0.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-extra-views-0.13.0/.travis.yml
new/django-extra-views-0.14.0/.travis.yml
--- old/django-extra-views-0.13.0/.travis.yml 2019-12-20 11:49:35.000000000
+0100
+++ new/django-extra-views-0.14.0/.travis.yml 2021-06-09 11:02:13.000000000
+0200
@@ -2,55 +2,28 @@
language: python
python:
- - "2.7"
- "3.5"
- "3.6"
-# Travis does not currently support Python 3.7 globally, see below.
-# - "3.7"
+ - "3.7"
+ - "3.8"
env:
- - DJANGO=django111
- DJANGO=django21
- DJANGO=django22
- DJANGO=django30
+ - DJANGO=django31
- DJANGO=djangomaster
matrix:
- # Workaround to include Python 3.7
- include:
- - python: "3.7"
- dist: xenial
- sudo: true
- env: DJANGO=django111
- - python: "3.7"
- dist: xenial
- sudo: true
- env: DJANGO=django21
- - python: "3.7"
- dist: xenial
- sudo: true
- env: DJANGO=django22
- - python: "3.7"
- dist: xenial
- sudo: true
- env: DJANGO=django30
- - python: "3.7"
- dist: xenial
- sudo: true
- env: DJANGO=djangomaster
exclude:
- - python: "2.7"
- env: DJANGO=django21
- - python: "2.7"
- env: DJANGO=django22
- - python: "2.7"
- env: DJANGO=django30
- python: "3.5"
env: DJANGO=django30
- - python: "2.7"
- env: DJANGO=djangomaster
+ - python: "3.5"
+ env: DJANGO=django31
- python: "3.5"
env: DJANGO=djangomaster
+ - python: "3.8"
+ env: DJANGO=django21
allow_failures:
- env: DJANGO=djangomaster
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-extra-views-0.13.0/CHANGELOG.rst
new/django-extra-views-0.14.0/CHANGELOG.rst
--- old/django-extra-views-0.13.0/CHANGELOG.rst 2019-12-20 11:49:35.000000000
+0100
+++ new/django-extra-views-0.14.0/CHANGELOG.rst 2021-06-09 11:02:13.000000000
+0200
@@ -1,6 +1,31 @@
Change History
==============
+0.14.0 (2021-06-08)
+-------------------------
+
+Changes:
+~~~~~~~~
+Supported Versions:
+
+======== ==========
+Python Django
+======== ==========
+3.5 2.1???2.2
+3.6-3.7 2.1???3.1
+3.8 2.2???3.1
+======== ==========
+
+- Removed support for Python 2.7.
+- Added support for Python 3.8 and Django 3.1.
+- Removed the following classes (use the class in parentheses instead):
+
+ - ``BaseFormSetMixin`` (use ``BaseFormSetFactory``).
+ - ``BaseInlineFormSetMixin`` (use ``BaseInlineFormSetFactory``).
+ - ``InlineFormSet`` (use ``InlineFormSetFactory``).
+ - ``BaseGenericInlineFormSetMixin`` (use
``BaseGenericInlineFormSetFactory``).
+ - ``GenericInlineFormSet`` (use ``GenericInlineFormSetFactory``).
+
0.13.0 (2019-12-20)
-------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-extra-views-0.13.0/docs/pages/formset-customization.rst
new/django-extra-views-0.14.0/docs/pages/formset-customization.rst
--- old/django-extra-views-0.13.0/docs/pages/formset-customization.rst
2019-12-20 11:49:35.000000000 +0100
+++ new/django-extra-views-0.14.0/docs/pages/formset-customization.rst
2021-06-09 11:02:13.000000000 +0200
@@ -116,7 +116,7 @@
class ItemInline(InlineFormSetFactory):
model = Item
- formset_kwargs = {'form_kwargs': {'initial': {'name': 'example'}}
+ formset_kwargs = {'form_kwargs': {'initial': {'name': 'example'}}}
If these need to be modified at run time, it can be done by
:code:`get_formset_kwargs()`:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-extra-views-0.13.0/docs/pages/formset-views.rst
new/django-extra-views-0.14.0/docs/pages/formset-views.rst
--- old/django-extra-views-0.13.0/docs/pages/formset-views.rst 2019-12-20
11:49:35.000000000 +0100
+++ new/django-extra-views-0.14.0/docs/pages/formset-views.rst 2021-06-09
11:02:13.000000000 +0200
@@ -71,7 +71,7 @@
template_name = 'address_formset.html'
form_class = AddressForm
formset_class = BaseAddressFormSet
- initial = [{'type': 'home'}, {'type', 'work'}]
+ initial = [{'type': 'home'}, {'type': 'work'}]
prefix = 'address-form'
success_url = 'success/'
factory_kwargs = {'extra': 2, 'max_num': None,
@@ -227,7 +227,7 @@
from :code:`django.inlineformset_factory()`. Each class within in
:code:`CreateWithInlines.inlines` and :code:`UpdateWithInlines.inlines`
should be a subclass of :code:`InlineFormSetFactory`. All the
-same methods and attributes as :code:`InlineFormSetView` are availble, with the
+same methods and attributes as :code:`InlineFormSetView` are available, with
the
exception of any view-related attributes and methods, such as
:code:`success_url`
or :code:`formset_valid()`:
@@ -279,4 +279,4 @@
:code:`GenericInlineFormSetFactory` can be used in
:code:`CreateWithInlines.inlines` and :code:`UpdateWithInlines.inlines` in the
-obvious way.
\ No newline at end of file
+obvious way.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-extra-views-0.13.0/extra_views/__init__.py
new/django-extra-views-0.14.0/extra_views/__init__.py
--- old/django-extra-views-0.13.0/extra_views/__init__.py 2019-12-20
11:49:35.000000000 +0100
+++ new/django-extra-views-0.14.0/extra_views/__init__.py 2021-06-09
11:02:13.000000000 +0200
@@ -1,7 +1,6 @@
from extra_views.advanced import (
CreateWithInlinesView,
FormSetSuccessMessageMixin,
- InlineFormSet,
InlineFormSetFactory,
NamedFormsetsMixin,
SuccessMessageMixin,
@@ -10,19 +9,16 @@
from extra_views.contrib.mixins import SearchableListMixin, SortableListMixin
from extra_views.dates import CalendarMonthView
from extra_views.formsets import (
- BaseFormSetMixin,
- BaseInlineFormSetMixin,
FormSetView,
InlineFormSetView,
ModelFormSetView,
)
-__version__ = "0.13.0"
+__version__ = "0.14.0"
__all__ = [
"CreateWithInlinesView",
"FormSetSuccessMessageMixin",
- "InlineFormSet",
"InlineFormSetFactory",
"NamedFormsetsMixin",
"SuccessMessageMixin",
@@ -30,8 +26,6 @@
"SearchableListMixin",
"SortableListMixin",
"CalendarMonthView",
- "BaseFormSetMixin",
- "BaseInlineFormSetMixin",
"FormSetView",
"InlineFormSetView",
"ModelFormSetView",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-extra-views-0.13.0/extra_views/advanced.py
new/django-extra-views-0.14.0/extra_views/advanced.py
--- old/django-extra-views-0.13.0/extra_views/advanced.py 2019-12-20
11:49:35.000000000 +0100
+++ new/django-extra-views-0.14.0/extra_views/advanced.py 2021-06-09
11:02:13.000000000 +0200
@@ -28,23 +28,11 @@
Overrides construct_formset to attach the model class as
an attribute of the returned formset instance.
"""
- formset = super(InlineFormSetFactory, self).construct_formset()
+ formset = super().construct_formset()
formset.model = self.inline_model
return formset
-class InlineFormSet(InlineFormSetFactory):
- def __init__(self, *args, **kwargs):
- from warnings import warn
-
- warn(
- "`extra_views.InlineFormSet` has been renamed to
`InlineFormSetFactory`. "
- "`InlineFormSet` will be removed in a future release.",
- DeprecationWarning,
- )
- super(InlineFormSet, self).__init__(*args, **kwargs)
-
-
class ModelFormWithInlinesMixin(ModelFormMixin):
"""
A mixin that provides a way to show and handle a modelform and inline
@@ -146,11 +134,11 @@
def get(self, request, *args, **kwargs):
self.object = None
- return super(BaseCreateWithInlinesView, self).get(request, *args,
**kwargs)
+ return super().get(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
self.object = None
- return super(BaseCreateWithInlinesView, self).post(request, *args,
**kwargs)
+ return super().post(request, *args, **kwargs)
class CreateWithInlinesView(
@@ -173,11 +161,11 @@
def get(self, request, *args, **kwargs):
self.object = self.get_object()
- return super(BaseUpdateWithInlinesView, self).get(request, *args,
**kwargs)
+ return super().get(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
self.object = self.get_object()
- return super(BaseUpdateWithInlinesView, self).post(request, *args,
**kwargs)
+ return super().post(request, *args, **kwargs)
class UpdateWithInlinesView(
@@ -219,7 +207,7 @@
if "formset" in kwargs:
context[inlines_names[0]] = kwargs["formset"]
context.update(kwargs)
- return super(NamedFormsetsMixin, self).get_context_data(**context)
+ return super().get_context_data(**context)
class SuccessMessageMixin(object):
@@ -234,7 +222,7 @@
success_message = ""
def forms_valid(self, form, inlines):
- response = super(SuccessMessageMixin, self).forms_valid(form, inlines)
+ response = super().forms_valid(form, inlines)
success_message = self.get_success_message(form.cleaned_data, inlines)
if success_message:
messages.success(self.request, success_message)
@@ -256,7 +244,7 @@
success_message = ""
def formset_valid(self, formset):
- response = super(FormSetSuccessMessageMixin,
self).formset_valid(formset)
+ response = super().formset_valid(formset)
success_message = self.get_success_message(formset)
if success_message:
messages.success(self.request, success_message)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-extra-views-0.13.0/extra_views/contrib/mixins.py
new/django-extra-views-0.14.0/extra_views/contrib/mixins.py
--- old/django-extra-views-0.13.0/extra_views/contrib/mixins.py 2019-12-20
11:49:35.000000000 +0100
+++ new/django-extra-views-0.14.0/extra_views/contrib/mixins.py 2021-06-09
11:02:13.000000000 +0200
@@ -1,15 +1,11 @@
-from __future__ import unicode_literals
-
import datetime
import functools
import operator
-import six
from django.contrib import messages
from django.core.exceptions import ImproperlyConfigured
from django.db.models import Q
from django.views.generic.base import ContextMixin
-from six.moves import reduce
VALID_STRING_LOOKUPS = (
"iexact",
@@ -61,7 +57,7 @@
def get_search_fields_with_filters(self):
fields = []
for sf in self.search_fields:
- if isinstance(sf, six.string_types):
+ if isinstance(sf, str):
fields.append((sf, "icontains"))
else:
if self.check_lookups and sf[1] not in VALID_STRING_LOOKUPS:
@@ -107,8 +103,8 @@
for field_name in self.search_date_fields
]
)
- w_qs.append(reduce(operator.or_, filters))
- qs = qs.filter(reduce(operator.and_, w_qs))
+ w_qs.append(functools.reduce(operator.or_, filters))
+ qs = qs.filter(functools.reduce(operator.and_, w_qs))
qs = qs.distinct()
return qs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-extra-views-0.13.0/extra_views/dates.py
new/django-extra-views-0.14.0/extra_views/dates.py
--- old/django-extra-views-0.13.0/extra_views/dates.py 2019-12-20
11:49:35.000000000 +0100
+++ new/django-extra-views-0.14.0/extra_views/dates.py 2021-06-09
11:02:13.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import datetime
import math
from calendar import Calendar
@@ -7,13 +5,7 @@
from django.core.exceptions import ImproperlyConfigured
from django.db.models import Q
-# Remove check when support for python < 3 is dropped.
-#
https://docs.djangoproject.com/en/3.0/releases/3.0/#features-deprecated-in-3-0
-import sys
-if sys.version_info[0] >= 3:
- from django.utils.translation import gettext_lazy as _
-else:
- from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.views.generic.dates import (
DateMixin,
MonthMixin,
@@ -113,7 +105,7 @@
"""
Returns a queryset of models for the month requested
"""
- qs = super(BaseCalendarMonthView, self).get_queryset()
+ qs = super().get_queryset()
year = self.get_year()
month = self.get_month()
@@ -179,7 +171,7 @@
Variables added are: `calendar`, `weekdays`, `month`, `next_month` and
`previous_month`.
"""
- data = super(BaseCalendarMonthView, self).get_context_data(**kwargs)
+ data = super().get_context_data(**kwargs)
year = self.get_year()
month = self.get_month()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-extra-views-0.13.0/extra_views/formsets.py
new/django-extra-views-0.14.0/extra_views/formsets.py
--- old/django-extra-views-0.13.0/extra_views/formsets.py 2019-12-20
11:49:35.000000000 +0100
+++ new/django-extra-views-0.14.0/extra_views/formsets.py 2021-06-09
11:02:13.000000000 +0200
@@ -31,13 +31,6 @@
Returns an instance of the formset
"""
formset_class = self.get_formset()
- if hasattr(self, "get_extra_form_kwargs"):
- klass = type(self).__name__
- raise DeprecationWarning(
- "Calling {0}.get_extra_form_kwargs is no longer supported. "
- "Set `form_kwargs` in {0}.formset_kwargs or override "
- "{0}.get_formset_kwargs() directly.".format(klass)
- )
return formset_class(**self.get_formset_kwargs())
def get_initial(self):
@@ -87,44 +80,12 @@
"""
Returns the keyword arguments for calling the formset factory
"""
- # Perform deprecation check
- for attr in [
- "extra",
- "max_num",
- "can_order",
- "can_delete",
- "ct_field",
- "formfield_callback",
- "fk_name",
- "widgets",
- "ct_fk_field",
- ]:
- if hasattr(self, attr):
- klass = type(self).__name__
- raise DeprecationWarning(
- "Setting `{0}.{1}` at the class level is now deprecated. "
- "Set `{0}.factory_kwargs` instead.".format(klass, attr)
- )
-
kwargs = self.factory_kwargs.copy()
if self.get_formset_class():
kwargs["formset"] = self.get_formset_class()
return kwargs
-class BaseFormSetMixin(BaseFormSetFactory):
- def __init__(self, *args, **kwargs):
- from warnings import warn
-
- warn(
- "`extra_views.BaseFormSetMixin` has been renamed to "
- "`BaseFormSetFactory`. `BaseFormSetMixin` will be removed in "
- "a future release.",
- DeprecationWarning,
- )
- super(BaseFormSetMixin, self).__init__(*args, **kwargs)
-
-
class FormSetMixin(BaseFormSetFactory, ContextMixin):
"""
A view mixin that provides a way to show and handle a single formset in a
request.
@@ -172,7 +133,7 @@
"""
Returns the keyword arguments for instantiating the formset.
"""
- kwargs = super(ModelFormSetMixin, self).get_formset_kwargs()
+ kwargs = super().get_formset_kwargs()
kwargs["queryset"] = self.get_queryset()
return kwargs
@@ -180,7 +141,7 @@
"""
Returns the keyword arguments for calling the formset factory
"""
- kwargs = super(ModelFormSetMixin, self).get_factory_kwargs()
+ kwargs = super().get_factory_kwargs()
kwargs.setdefault("fields", self.fields)
kwargs.setdefault("exclude", self.exclude)
@@ -199,7 +160,7 @@
If the formset is valid, save the associated models.
"""
self.object_list = formset.save()
- return super(ModelFormSetMixin, self).formset_valid(formset)
+ return super().formset_valid(formset)
class BaseInlineFormSetFactory(BaseFormSetFactory):
@@ -224,14 +185,7 @@
"""
Returns the keyword arguments for instantiating the formset.
"""
- # Perform deprecation check
- if hasattr(self, "save_as_new"):
- klass = type(self).__name__
- raise DeprecationWarning(
- "Setting `{0}.save_as_new` at the class level is now "
- "deprecated. Set `{0}.formset_kwargs` instead.".format(klass)
- )
- kwargs = super(BaseInlineFormSetFactory, self).get_formset_kwargs()
+ kwargs = super().get_formset_kwargs()
kwargs["instance"] = self.object
return kwargs
@@ -239,7 +193,7 @@
"""
Returns the keyword arguments for calling the formset factory
"""
- kwargs = super(BaseInlineFormSetFactory, self).get_factory_kwargs()
+ kwargs = super().get_factory_kwargs()
kwargs.setdefault("fields", self.fields)
kwargs.setdefault("exclude", self.exclude)
@@ -256,19 +210,6 @@
)
-class BaseInlineFormSetMixin(BaseInlineFormSetFactory):
- def __init__(self, *args, **kwargs):
- from warnings import warn
-
- warn(
- "`extra_views.BaseInlineFormSetMixin` has been renamed to "
- "`BaseInlineFormSetFactory`. `BaseInlineFormSetMixin` will be
removed in "
- "a future release.",
- DeprecationWarning,
- )
- super(BaseInlineFormSetMixin, self).__init__(*args, **kwargs)
-
-
class InlineFormSetMixin(BaseInlineFormSetFactory, SingleObjectMixin,
FormSetMixin):
"""
A view mixin that provides a way to show and handle a single inline formset
@@ -277,7 +218,7 @@
def formset_valid(self, formset):
self.object_list = formset.save()
- return super(InlineFormSetMixin, self).formset_valid(formset)
+ return super().formset_valid(formset)
class ProcessFormSetView(View):
@@ -328,11 +269,11 @@
def get(self, request, *args, **kwargs):
self.object_list = self.get_queryset()
- return super(BaseModelFormSetView, self).get(request, *args, **kwargs)
+ return super().get(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
self.object_list = self.get_queryset()
- return super(BaseModelFormSetView, self).post(request, *args, **kwargs)
+ return super().post(request, *args, **kwargs)
class ModelFormSetView(MultipleObjectTemplateResponseMixin,
BaseModelFormSetView):
@@ -349,11 +290,11 @@
def get(self, request, *args, **kwargs):
self.object = self.get_object()
- return super(BaseInlineFormSetView, self).get(request, *args, **kwargs)
+ return super().get(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
self.object = self.get_object()
- return super(BaseInlineFormSetView, self).post(request, *args,
**kwargs)
+ return super().post(request, *args, **kwargs)
class InlineFormSetView(SingleObjectTemplateResponseMixin,
BaseInlineFormSetView):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-extra-views-0.13.0/extra_views/generic.py
new/django-extra-views-0.14.0/extra_views/generic.py
--- old/django-extra-views-0.13.0/extra_views/generic.py 2019-12-20
11:49:35.000000000 +0100
+++ new/django-extra-views-0.14.0/extra_views/generic.py 2021-06-09
11:02:13.000000000 +0200
@@ -24,19 +24,6 @@
return result
-class BaseGenericInlineFormSetMixin(BaseGenericInlineFormSetFactory):
- def __init__(self, *args, **kwargs):
- from warnings import warn
-
- warn(
- "`extra_views.BaseGenericInlineFormSetMixin` has been renamed to "
- "`BaseGenericInlineFormSetFactory`.
`BaseGenericInlineFormSetMixin` "
- "will be removed in a future release.",
- DeprecationWarning,
- )
- super(BaseGenericInlineFormSetMixin, self).__init__(*args, **kwargs)
-
-
class GenericInlineFormSetFactory(BaseGenericInlineFormSetFactory):
"""
Class used to create a `GenericInlineFormSet` from
`generic_inlineformset_factory`
@@ -55,19 +42,6 @@
self.view = view
-class GenericInlineFormSet(GenericInlineFormSetFactory):
- def __init__(self, *args, **kwargs):
- from warnings import warn
-
- warn(
- "`extra_views.GenericInlineFormSet` has been renamed to "
- "`GenericInlineFormSetFactory`. `GenericInlineFormSet` "
- "will be removed in a future release.",
- DeprecationWarning,
- )
- super(GenericInlineFormSet, self).__init__(*args, **kwargs)
-
-
class GenericInlineFormSetMixin(BaseGenericInlineFormSetFactory,
InlineFormSetMixin):
"""
A mixin that provides a way to show and handle a generic inline formset in
a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-extra-views-0.13.0/extra_views_tests/forms.py
new/django-extra-views-0.14.0/extra_views_tests/forms.py
--- old/django-extra-views-0.13.0/extra_views_tests/forms.py 2019-12-20
11:49:35.000000000 +0100
+++ new/django-extra-views-0.14.0/extra_views_tests/forms.py 2021-06-09
11:02:13.000000000 +0200
@@ -9,7 +9,7 @@
fields = ["name"]
def save(self, commit=True):
- instance = super(OrderForm, self).save(commit=commit)
+ instance = super().save(commit=commit)
if commit:
instance.action_on_save = True
@@ -34,4 +34,4 @@
postcode = forms.CharField(max_length=10, required=True)
def __init__(self, *args, **kwargs):
- super(AddressForm, self).__init__(*args, **kwargs)
+ super().__init__(*args, **kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-extra-views-0.13.0/extra_views_tests/formsets.py
new/django-extra-views-0.14.0/extra_views_tests/formsets.py
--- old/django-extra-views-0.13.0/extra_views_tests/formsets.py 2019-12-20
11:49:35.000000000 +0100
+++ new/django-extra-views-0.14.0/extra_views_tests/formsets.py 2021-06-09
11:02:13.000000000 +0200
@@ -13,11 +13,11 @@
class AddressFormSet(BaseFormSet):
def add_fields(self, form, index):
- super(AddressFormSet, self).add_fields(form, index)
+ super().add_fields(form, index)
form.fields["county"] = forms.ChoiceField(choices=COUNTRY_CHOICES,
initial="gb")
class BaseArticleFormSet(BaseModelFormSet):
def add_fields(self, form, index):
- super(BaseArticleFormSet, self).add_fields(form, index)
+ super().add_fields(form, index)
form.fields["notes"] = forms.CharField(initial="Write notes here")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-extra-views-0.13.0/extra_views_tests/tests.py
new/django-extra-views-0.14.0/extra_views_tests/tests.py
--- old/django-extra-views-0.13.0/extra_views_tests/tests.py 2019-12-20
11:49:35.000000000 +0100
+++ new/django-extra-views-0.14.0/extra_views_tests/tests.py 2021-06-09
11:02:13.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import datetime
from decimal import Decimal as D
from unittest import expectedFailure
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-extra-views-0.13.0/extra_views_tests/views.py
new/django-extra-views-0.14.0/extra_views_tests/views.py
--- old/django-extra-views-0.13.0/extra_views_tests/views.py 2019-12-20
11:49:35.000000000 +0100
+++ new/django-extra-views-0.14.0/extra_views_tests/views.py 2021-06-09
11:02:13.000000000 +0200
@@ -92,7 +92,7 @@
success_message = "Order %(name)s was created successfully!"
def form_valid(self, form):
- response = super(OrderCreateView, self).form_valid(form)
+ response = super().form_valid(form)
# Update the response url to indicate that form_valid was called
response["Location"] += "?form_valid_called=1"
return response
@@ -136,14 +136,14 @@
if self.define_query:
return "test B"
else:
- return super(SearchableItemListView, self).get_search_query()
+ return super().get_search_query()
def get(self, request, *args, **kwargs):
if self.exact_query:
self.search_fields = [("name", "iexact"), "sku"]
elif self.wrong_lookup:
self.search_fields = [("name", "gte"), "sku"]
- return super(SearchableItemListView, self).get(request, *args,
**kwargs)
+ return super().get(request, *args, **kwargs)
class SortableItemListView(SortableListMixin, generic.ListView):
@@ -157,4 +157,4 @@
elif kwargs["flag"] == "aliases":
self.sort_fields_aliases = [("name", "by_name"), ("sku", "by_sku")]
self.sort_fields = []
- return super(SortableItemListView, self).get(request, *args, **kwargs)
+ return super().get(request, *args, **kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-extra-views-0.13.0/setup.py
new/django-extra-views-0.14.0/setup.py
--- old/django-extra-views-0.13.0/setup.py 2019-12-20 11:49:35.000000000
+0100
+++ new/django-extra-views-0.14.0/setup.py 2021-06-09 11:02:13.000000000
+0200
@@ -10,7 +10,7 @@
name="django-extra-views",
version=VERSION,
url="https://github.com/AndrewIngram/django-extra-views",
- install_requires=["Django >=1.11", "six>=1.5.2"],
+ install_requires=["Django >=2.1"],
description="Extra class-based views for Django",
long_description=open("README.rst", "r").read(),
license="MIT",
@@ -22,8 +22,8 @@
"Environment :: Web Environment",
"Framework :: Django",
"Intended Audience :: Developers",
+ "License :: OSI Approved :: MIT License",
"Programming Language :: Python",
- "Programming Language :: Python :: 2",
"Programming Language :: Python :: 3",
],
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-extra-views-0.13.0/tox.ini
new/django-extra-views-0.14.0/tox.ini
--- old/django-extra-views-0.13.0/tox.ini 2019-12-20 11:49:35.000000000
+0100
+++ new/django-extra-views-0.14.0/tox.ini 2021-06-09 11:02:13.000000000
+0200
@@ -1,8 +1,8 @@
[tox]
-envlist = py27-django{111}
- py35-django{111,21,22}
- py36-django{111,21,22,30,master}
- py37-django{111,21,22,30,master}
+envlist = py35-django{21,22}
+ py36-django{21,22,30,31,master}
+ py37-django{21,22,30,31,master}
+ py38-django{22,30,31,master}
docs
[testenv]
@@ -15,11 +15,11 @@
pytest {posargs}
deps =
- django111: Django>=1.11,<1.12
django21: Django>=2.1,<2.2
django22: Django>=2.2,<2.3
django30: Django>=3.0a1,<3.1
- djangomaster: https://github.com/django/django/archive/master.tar.gz
+ django31: Django>=3.1,<3.2
+ djangomaster: https://github.com/django/django/archive/main.tar.gz
pytest-django
pytest-cov
++++++ merged_pr_233.patch ++++++
>From 4a2bf63352b3fb58c5e932a67e9763a68a012702 Mon Sep 17 00:00:00 2001
From: sdolemelipone <[email protected]>
Date: Fri, 18 Jun 2021 16:04:21 +0100
Subject: [PATCH 1/3] Added Django 3.2 and Python 3.9 and fixed management form
test.
---
extra_views_tests/tests.py | 21 ++++++++++++++++++---
tox.ini | 8 +++++---
2 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/extra_views_tests/tests.py b/extra_views_tests/tests.py
index 013bdd7..758779c 100644
--- a/extra_views_tests/tests.py
+++ b/extra_views_tests/tests.py
@@ -2,6 +2,7 @@
from decimal import Decimal as D
from unittest import expectedFailure
+import django
from django.contrib.messages import get_messages
from django.core.exceptions import ImproperlyConfigured
from django.forms import ValidationError
@@ -32,9 +33,23 @@ def test_formset_named(self):
self.assertEqual(res.status_code, 200)
self.assertEqual(res.context["formset"], res.context["AddressFormset"])
- def test_missing_management(self):
- with self.assertRaises(ValidationError):
- self.client.post("/formset/simple/", {})
+ def test_missing_management_form(self):
+ # Django >=3.2 and does not raise an exception, but returns an error.
+ if django.__version__ >= "3.2.0":
+ res = self.client.post("/formset/simple/", {})
+ self.assertEqual(200, res.status_code)
+ formset = res.context["formset"]
+ self.assertFalse(formset.is_valid())
+ self.assertIn(
+ "ManagementForm data is missing or has been tampered with",
+ formset.non_form_errors()[0],
+ )
+ else:
+ with self.assertRaisesRegex(
+ ValidationError,
+ "ManagementForm data is missing or has been tampered with",
+ ):
+ self.client.post("/formset/simple/", {})
def test_success(self):
res = self.client.post("/formset/simple/", self.management_data,
follow=True)
diff --git a/tox.ini b/tox.ini
index 908caeb..26d386c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,8 +1,9 @@
[tox]
envlist = py35-django{21,22}
- py36-django{21,22,30,31,master}
- py37-django{21,22,30,31,master}
- py38-django{22,30,31,master}
+ py36-django{21,22,30,31,32,master}
+ py37-django{21,22,30,31,32,master}
+ py38-django{22,30,31,32,master}
+ py39-django{22,30,31,32,master}
docs
[testenv]
@@ -19,6 +20,7 @@ deps =
django22: Django>=2.2,<2.3
django30: Django>=3.0a1,<3.1
django31: Django>=3.1,<3.2
+ django32: Django>=3.2,<3.3
djangomaster: https://github.com/django/django/archive/main.tar.gz
pytest-django
pytest-cov
>From 41048f5a22e0117e0474b93f11087cf9da3aeb49 Mon Sep 17 00:00:00 2001
From: sdolemelipone <[email protected]>
Date: Fri, 18 Jun 2021 16:37:32 +0100
Subject: [PATCH 2/3] Updated extra_views_tests.urls to use django.urls.path
and djangomaster envs
---
extra_views_tests/urls.py | 54 +++++++++++++++++++--------------------
tox.ini | 4 +--
2 files changed, 29 insertions(+), 29 deletions(-)
diff --git a/extra_views_tests/urls.py b/extra_views_tests/urls.py
index 08147a8..bb71c36 100644
--- a/extra_views_tests/urls.py
+++ b/extra_views_tests/urls.py
@@ -1,4 +1,4 @@
-from django.conf.urls import url
+from django.urls import path
from django.views.generic import TemplateView
from .formsets import AddressFormSet
@@ -21,37 +21,37 @@
)
urlpatterns = [
- url(r"^formset/simple/$", AddressFormSetView.as_view()),
- url(r"^formset/simple/named/$", AddressFormSetViewNamed.as_view()),
- url(r"^formset/simple/kwargs/$", AddressFormSetViewKwargs.as_view()),
- url(
- r"^formset/simple_redirect/$",
+ path("formset/simple/", AddressFormSetView.as_view()),
+ path("formset/simple/named/", AddressFormSetViewNamed.as_view()),
+ path("formset/simple/kwargs/", AddressFormSetViewKwargs.as_view()),
+ path(
+ "formset/simple_redirect/",
AddressFormSetView.as_view(success_url="/formset/simple_redirect/valid/"),
),
- url(
- r"^formset/simple_redirect/valid/$",
+ path(
+ "formset/simple_redirect/valid/",
TemplateView.as_view(template_name="extra_views/success.html"),
),
- url(r"^formset/custom/$",
AddressFormSetView.as_view(formset_class=AddressFormSet)),
- url(r"^modelformset/simple/$", ItemModelFormSetView.as_view()),
- url(r"^modelformset/exclude/$", ItemModelFormSetExcludeView.as_view()),
- url(r"^modelformset/custom/$", FormAndFormSetOverrideView.as_view()),
- url(r"^modelformset/paged/$", PagedModelFormSetView.as_view()),
- url(r"^inlineformset/(?P<pk>\d+)/$", OrderItemFormSetView.as_view()),
- url(r"^inlines/(\d+)/new/$", OrderCreateView.as_view()),
- url(r"^inlines/new/$", OrderCreateView.as_view()),
- url(r"^inlines/new/named/$", OrderCreateNamedView.as_view()),
- url(r"^inlines/(?P<pk>\d+)/$", OrderUpdateView.as_view()),
- url(r"^genericinlineformset/(?P<pk>\d+)/$", OrderTagsView.as_view()),
- url(r"^sortable/(?P<flag>\w+)/$", SortableItemListView.as_view()),
- url(r"^events/(?P<year>\d{4})/(?P<month>\w+)/$",
EventCalendarView.as_view()),
- url(r"^searchable/$", SearchableItemListView.as_view()),
- url(
- r"^searchable/predefined_query/$",
+ path("formset/custom/",
AddressFormSetView.as_view(formset_class=AddressFormSet)),
+ path("modelformset/simple/", ItemModelFormSetView.as_view()),
+ path("modelformset/exclude/", ItemModelFormSetExcludeView.as_view()),
+ path("modelformset/custom/", FormAndFormSetOverrideView.as_view()),
+ path("modelformset/paged/", PagedModelFormSetView.as_view()),
+ path("inlineformset/<int:pk>/", OrderItemFormSetView.as_view()),
+ path("inlines/<int:pk>/new/", OrderCreateView.as_view()),
+ path("inlines/new/", OrderCreateView.as_view()),
+ path("inlines/new/named/", OrderCreateNamedView.as_view()),
+ path("inlines/<int:pk>/", OrderUpdateView.as_view()),
+ path("genericinlineformset/<int:pk>/", OrderTagsView.as_view()),
+ path("sortable/<str:flag>/", SortableItemListView.as_view()),
+ path("events/<int:year>/<str:month>/", EventCalendarView.as_view()),
+ path("searchable/", SearchableItemListView.as_view()),
+ path(
+ "searchable/predefined_query/",
SearchableItemListView.as_view(define_query=True),
),
- url(r"^searchable/exact_query/$",
SearchableItemListView.as_view(exact_query=True)),
- url(
- r"^searchable/wrong_lookup/$",
SearchableItemListView.as_view(wrong_lookup=True)
+ path("searchable/exact_query/",
SearchableItemListView.as_view(exact_query=True)),
+ path(
+ "searchable/wrong_lookup/",
SearchableItemListView.as_view(wrong_lookup=True)
),
]
diff --git a/tox.ini b/tox.ini
index 26d386c..82bc66e 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,7 +1,7 @@
[tox]
envlist = py35-django{21,22}
- py36-django{21,22,30,31,32,master}
- py37-django{21,22,30,31,32,master}
+ py36-django{21,22,30,31,32}
+ py37-django{21,22,30,31,32}
py38-django{22,30,31,32,master}
py39-django{22,30,31,32,master}
docs
>From bf394e92aaa2ecbc8f0a8526df8a9ae90f6f6f2a Mon Sep 17 00:00:00 2001
From: sdolemelipone <[email protected]>
Date: Fri, 18 Jun 2021 16:51:44 +0100
Subject: [PATCH 3/3] Updated travis.
---
.travis.yml | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index c14ba85..74afc83 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,12 +6,14 @@ python:
- "3.6"
- "3.7"
- "3.8"
+ - "3.9"
env:
- DJANGO=django21
- DJANGO=django22
- DJANGO=django30
- DJANGO=django31
+ - DJANGO=django32
- DJANGO=djangomaster
matrix:
@@ -21,9 +23,17 @@ matrix:
- python: "3.5"
env: DJANGO=django31
- python: "3.5"
+ env: DJANGO=django32
+ - python: "3.5"
+ env: DJANGO=djangomaster
+ - python: "3.6"
+ env: DJANGO=djangomaster
+ - python: "3.7"
env: DJANGO=djangomaster
- python: "3.8"
env: DJANGO=django21
+ - python: "3.9"
+ env: DJANGO=django21
allow_failures:
- env: DJANGO=djangomaster