[Python-modules-commits] [django-floppyforms] 01/05: Import django-floppyforms_1.6.0+dfsg.orig.tar.gz
Michael Fladischer
fladi at moszumanska.debian.org
Sat Dec 5 19:28:35 UTC 2015
This is an automated email from the git hooks/post-receive script.
fladi pushed a commit to branch master
in repository django-floppyforms.
commit 1a058001ef9348387831dee191443d2defdd2a93
Author: Michael Fladischer <FladischerMichael at fladi.at>
Date: Sat Dec 5 18:23:50 2015 +0100
Import django-floppyforms_1.6.0+dfsg.orig.tar.gz
---
.travis.yml | 4 ++++
CHANGES.rst | 9 ++++++++-
README.rst | 4 ++--
floppyforms/__future__/models.py | 11 ++++++++---
floppyforms/__init__.py | 11 ++++++++---
floppyforms/compat.py | 8 ++++++++
floppyforms/fields.py | 10 +++++++---
floppyforms/gis/widgets.py | 2 +-
floppyforms/models.py | 2 +-
floppyforms/widgets.py | 10 ++++++----
requirements/tests.txt | 2 +-
setup.py | 1 +
tox.ini | 8 +++++---
13 files changed, 60 insertions(+), 22 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index c24881d..d44783b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,10 +9,12 @@ env:
- TOXENV=py27-16
- TOXENV=py27-17
- TOXENV=py27-18
+ - TOXENV=py27-19
- TOXENV=py32-15
- TOXENV=py32-16
- TOXENV=py32-17
- TOXENV=py32-18
+ - TOXENV=py32-18
- TOXENV=py33-15
- TOXENV=py33-16
- TOXENV=py33-17
@@ -21,11 +23,13 @@ env:
- TOXENV=py34-16
- TOXENV=py34-17
- TOXENV=py34-18
+ - TOXENV=py34-19
- TOXENV=pypy-14
- TOXENV=pypy-15
- TOXENV=pypy-16
- TOXENV=pypy-17
- TOXENV=pypy-18
+ - TOXENV=pypy-19
- TOXENV=docs
- TOXENV=flake8
before_install:
diff --git a/CHANGES.rst b/CHANGES.rst
index 99a601b..ffec2f0 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -1,6 +1,13 @@
Changelog
---------
+1.6.0
+~~~~~
+
+* `#160`_: Django 1.9 support! Thanks to Jonas Haag for the patch.
+
+.. _#160: https://github.com/gregmuellegger/django-floppyforms/pull/160
+
1.5.2
~~~~~
@@ -124,7 +131,7 @@ Changelog
class Meta:
model = Profile
- This feature will become the default behaviour in floppyforms 1.6.
+ This feature will become the default behaviour in floppyforms 2.0.
See the documentation for more information:
http://django-floppyforms.readthedocs.org/en/latest/usage.html#modelforms
diff --git a/README.rst b/README.rst
index 57c1594..d1f4d54 100644
--- a/README.rst
+++ b/README.rst
@@ -27,9 +27,9 @@ readthedocs`_
.. _read it on readthedocs: http://django-floppyforms.readthedocs.org/
To install the `in-development version`_ of django-floppyforms, run ``pip
-install django-floppyforms==dev``.
+install "https://github.com/gregmuellegger/django-floppyforms/tarball/master#egg=django-floppyforms"``.
-.. _in-development version: https://github.com/gregmuellegger/django-floppyforms/tarball/master#egg=django-floppyforms-dev
+.. _in-development version: https://github.com/gregmuellegger/django-floppyforms
Help
----
diff --git a/floppyforms/__future__/models.py b/floppyforms/__future__/models.py
index 82bdb89..4c1b155 100644
--- a/floppyforms/__future__/models.py
+++ b/floppyforms/__future__/models.py
@@ -7,8 +7,10 @@ from django.forms.models import (ModelForm as _ModelForm,
modelformset_factory as _modelformset_factory,
inlineformset_factory as _inlineformset_factory,
model_to_dict, fields_for_model, BaseModelForm,
- save_instance, BaseModelFormSet,
+ BaseModelFormSet,
BaseInlineFormSet)
+if django.VERSION < (1, 9):
+ from django.forms.models import save_instance
from django.utils import six
from floppyforms import fields
@@ -19,10 +21,12 @@ from floppyforms.widgets import Textarea
__all__ = (
'ModelForm', 'BaseModelForm', 'model_to_dict', 'fields_for_model',
- 'save_instance', 'ModelChoiceField', 'ModelMultipleChoiceField',
+ 'ModelChoiceField', 'ModelMultipleChoiceField',
'BaseModelFormSet', 'modelformset_factory', 'BaseInlineFormSet',
'inlineformset_factory',
)
+if django.VERSION < (1, 9):
+ __all__ += ('save_instance',)
if django.VERSION > (1, 7):
@@ -43,7 +47,6 @@ FORMFIELD_OVERRIDES = {
db_models.FloatField: {'form_class': fields.FloatField},
db_models.IntegerField: {'form_class': fields.IntegerField},
db_models.BigIntegerField: {'form_class': fields.IntegerField},
- db_models.IPAddressField: {'form_class': fields.IPAddressField},
db_models.GenericIPAddressField: {'form_class': fields.GenericIPAddressField},
db_models.NullBooleanField: {'form_class': fields.NullBooleanField},
db_models.PositiveIntegerField: {'form_class': fields.IntegerField},
@@ -62,6 +65,8 @@ FORMFIELD_OVERRIDES = {
db_models.ManyToManyField: {'form_class': ModelMultipleChoiceField},
db_models.OneToOneField: {'form_class': ModelChoiceField},
}
+if django.VERSION < (1, 9):
+ FORMFIELD_OVERRIDES[db_models.IPAddressField] = {'form_class': fields.IPAddressField}
for value in FORMFIELD_OVERRIDES.values():
value['choices_form_class'] = fields.TypedChoiceField
diff --git a/floppyforms/__init__.py b/floppyforms/__init__.py
index 096be56..f774ae3 100644
--- a/floppyforms/__init__.py
+++ b/floppyforms/__init__.py
@@ -1,7 +1,6 @@
# flake8: noqa
from django.forms import (BaseModelForm, model_to_dict, fields_for_model,
- save_instance, ValidationError, Media,
- MediaDefiningClass)
+ ValidationError, Media, MediaDefiningClass)
from .fields import *
from .forms import *
@@ -9,10 +8,16 @@ from .models import *
from .widgets import *
try:
+ # Django < 1.9
+ from django.forms import save_instance
+except ImportError:
+ pass
+
+try:
from . import gis
except Exception:
import warnings
warnings.warn(
"Unable to import floppyforms.gis, geometry widgets not available")
-__version__ = '1.5.2'
+__version__ = '1.6.0'
diff --git a/floppyforms/compat.py b/floppyforms/compat.py
index 9b83468..bc76741 100644
--- a/floppyforms/compat.py
+++ b/floppyforms/compat.py
@@ -3,6 +3,14 @@ from contextlib import contextmanager
import django
from django.template import Context
+try:
+ from django.utils.datastructures import MultiValueDict, MergeDict
+ MULTIVALUE_DICT_TYPES = (MultiValueDict, MergeDict)
+except ImportError:
+ # Django >= 1.9
+ from django.utils.datastructures import MultiValueDict
+ MULTIVALUE_DICT_TYPES = (MultiValueDict,)
+
REQUIRED_CONTEXT_ATTRIBTUES = (
'_form_config',
diff --git a/floppyforms/fields.py b/floppyforms/fields.py
index 00dfaf7..8f9caca 100644
--- a/floppyforms/fields.py
+++ b/floppyforms/fields.py
@@ -1,3 +1,4 @@
+import django
from django import forms
import decimal
@@ -12,11 +13,13 @@ __all__ = (
'Field', 'CharField', 'IntegerField', 'DateField', 'TimeField',
'DateTimeField', 'EmailField', 'FileField', 'ImageField', 'URLField',
'BooleanField', 'NullBooleanField', 'ChoiceField', 'MultipleChoiceField',
- 'FloatField', 'DecimalField', 'SlugField', 'RegexField', 'IPAddressField',
+ 'FloatField', 'DecimalField', 'SlugField', 'RegexField',
'GenericIPAddressField', 'TypedChoiceField', 'FilePathField',
'TypedMultipleChoiceField', 'ComboField', 'MultiValueField',
'SplitDateTimeField',
)
+if django.VERSION < (1, 9):
+ __all__ += ('IPAddressField',)
class Field(forms.Field):
@@ -163,8 +166,9 @@ class RegexField(Field, forms.RegexField):
return attrs
-class IPAddressField(Field, forms.IPAddressField):
- widget = IPAddressInput
+if django.VERSION < (1, 9):
+ class IPAddressField(Field, forms.IPAddressField):
+ widget = IPAddressInput
class GenericIPAddressField(Field, forms.GenericIPAddressField):
diff --git a/floppyforms/gis/widgets.py b/floppyforms/gis/widgets.py
index e967a3e..d9754d9 100644
--- a/floppyforms/gis/widgets.py
+++ b/floppyforms/gis/widgets.py
@@ -167,5 +167,5 @@ class BaseGMapWidget(BaseGeometryWidget):
js = (
'floppyforms/openlayers/OpenLayers.js',
'floppyforms/js/MapWidget.js',
- 'https://maps.google.com/maps/api/js?sensor=false',
+ 'https://maps.google.com/maps/api/js?v=3&sensor=false',
)
diff --git a/floppyforms/models.py b/floppyforms/models.py
index 3e9ef49..05ee8b2 100644
--- a/floppyforms/models.py
+++ b/floppyforms/models.py
@@ -14,7 +14,7 @@ class ModelForm(LayoutRenderer, models.ModelForm):
url = 'https://github.com/gregmuellegger/django-floppyforms/tree/1.2.0/CHANGES.rst'
warnings.warn(
'The behaviour of subclasses of floppyforms.models.ModelForm will '
- 'change with django-floppyforms 1.6. '
+ 'change with django-floppyforms 2.0. '
'Use `import floppyforms.__future__ as forms` instead of '
'`import floppyforms as forms` to use the new behaviour now. '
'See announcement here: %s' % url,
diff --git a/floppyforms/widgets.py b/floppyforms/widgets.py
index 4edd05f..f78d124 100644
--- a/floppyforms/widgets.py
+++ b/floppyforms/widgets.py
@@ -12,7 +12,6 @@ except ImportError:
from django.forms.widgets import FILE_INPUT_CONTRADICTION
from django.conf import settings
from django.template import loader
-from django.utils.datastructures import MultiValueDict, MergeDict
from django.utils.html import conditional_escape
from django.utils.translation import ugettext_lazy as _
from django.utils import datetime_safe, formats, six
@@ -20,7 +19,7 @@ from django.utils.dates import MONTHS
from django.utils.encoding import force_text
from django.utils.safestring import mark_safe
-from .compat import flatten_contexts
+from .compat import MULTIVALUE_DICT_TYPES, flatten_contexts
RE_DATE = re.compile(r'(\d{4})-(\d\d?)-(\d\d?)$')
@@ -168,7 +167,7 @@ class MultipleHiddenInput(HiddenInput):
return mark_safe("\n".join(inputs))
def value_from_datadict(self, data, files, name):
- if isinstance(data, (MultiValueDict, MergeDict)):
+ if isinstance(data, MULTIVALUE_DICT_TYPES):
return data.getlist(name)
return data.get(name, None)
@@ -283,6 +282,9 @@ class DateInput(Input):
def __init__(self, attrs=None, format=None):
super(DateInput, self).__init__(attrs)
+ # We hardcode the format here as the HTML5 input type="date" only
+ # accepts the ISO date format. See issue #115 for details:
+ # https://github.com/gregmuellegger/django-floppyforms/issues/115
self.format = '%Y-%m-%d'
def _format_value(self, value):
@@ -549,7 +551,7 @@ class SelectMultiple(Select):
return [force_text(v) for v in value]
def value_from_datadict(self, data, files, name):
- if isinstance(data, (MultiValueDict, MergeDict)):
+ if isinstance(data, MULTIVALUE_DICT_TYPES):
return data.getlist(name)
return data.get(name, None)
diff --git a/requirements/tests.txt b/requirements/tests.txt
index 577586c..ceab467 100644
--- a/requirements/tests.txt
+++ b/requirements/tests.txt
@@ -1,5 +1,5 @@
argparse
-coverage
+coverage<4.0
flake8
django-discover-runner
Pillow
diff --git a/setup.py b/setup.py
index 8dffae4..8eb715d 100644
--- a/setup.py
+++ b/setup.py
@@ -42,6 +42,7 @@ setup(
'Framework :: Django :: 1.6',
'Framework :: Django :: 1.7',
'Framework :: Django :: 1.8',
+ 'Framework :: Django :: 1.9',
'Intended Audience :: Developers',
'License :: OSI Approved :: BSD License',
'Natural Language :: English',
diff --git a/tox.ini b/tox.ini
index 841dc71..2a6b979 100644
--- a/tox.ini
+++ b/tox.ini
@@ -4,11 +4,12 @@ envlist =
docs,
flake8,
py26-{14,15,16},
- py27-{14,15,16,17,18},
+ py27-{14,15,16,17,18,19},
py32-{15,16,17,18},
py33-{15,16,17,18},
- py34-{15,16,17,18},
- pypy-{14,15,16,17,18}
+ py34-{15,16,17,18,19},
+ # py35-{19},
+ pypy-{14,15,16,17,18,19}
[testenv]
deps =
@@ -17,6 +18,7 @@ deps =
16: Django >= 1.6, < 1.7
17: Django >= 1.7, < 1.8
18: Django >= 1.8, < 1.9
+ 19: https://github.com/django/django/tarball/stable/1.9.x
-r{toxinidir}/requirements/tests.txt
commands = python runtests.py
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/django-floppyforms.git
More information about the Python-modules-commits
mailing list