From 1a04f285ff7052c2393c6b9d6ba7d1344291f2a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gregor=20M=C3=BCllegger?= Date: Tue, 4 Jun 2013 22:31:59 +0200 Subject: [PATCH 1/3] Fixes #181 -- Choices were not copied for Select widgets for floppified forms. --- djadmin2/forms.py | 12 ++++--- example/blog/tests/test_modelforms.py | 52 ++++++++++++++++++++++++--- 2 files changed, 54 insertions(+), 10 deletions(-) diff --git a/djadmin2/forms.py b/djadmin2/forms.py index d34d828..719e9c2 100644 --- a/djadmin2/forms.py +++ b/djadmin2/forms.py @@ -56,7 +56,7 @@ def _create_radioselect(original): return original create_new_widget = _create_widget( floppyforms.widgets.RadioSelect, - ('allow_multiple_selected',)) + ('choices', 'allow_multiple_selected',)) return create_new_widget(original) @@ -130,19 +130,21 @@ _django_to_floppyforms_widget = { django.forms.widgets.Select: _create_widget( floppyforms.widgets.Select, - ('allow_multiple_selected',)), + ('choices', 'allow_multiple_selected',)), django.forms.widgets.NullBooleanSelect: _create_widget( floppyforms.widgets.NullBooleanSelect, - ('allow_multiple_selected',)), + ('choices', 'allow_multiple_selected',)), django.forms.widgets.SelectMultiple: _create_widget( floppyforms.widgets.SelectMultiple, - ('allow_multiple_selected',)), + ('choices', 'allow_multiple_selected',)), django.forms.widgets.RadioSelect: _create_radioselect, django.forms.widgets.CheckboxSelectMultiple: - _create_widget(floppyforms.widgets.CheckboxSelectMultiple), + _create_widget( + floppyforms.widgets.CheckboxSelectMultiple, + ('choices', 'allow_multiple_selected',)), django.forms.widgets.MultiWidget: _create_widget( floppyforms.widgets.MultiWidget, diff --git a/example/blog/tests/test_modelforms.py b/example/blog/tests/test_modelforms.py index a797ed9..9e48b60 100644 --- a/example/blog/tests/test_modelforms.py +++ b/example/blog/tests/test_modelforms.py @@ -201,39 +201,71 @@ class GetFloppyformWidgetTest(TestCase): self.assertTrue(new_widget.check_test is check_test) def test_select_widget(self): + choices = ( + ('draft', 'Draft'), + ('public', 'Public'), + ) + self.assertExpectWidget( forms.widgets.Select(), floppyforms.widgets.Select) - widget = forms.widgets.Select() + widget = forms.widgets.Select(choices=choices) widget.allow_multiple_selected = True self.assertExpectWidget( widget, floppyforms.widgets.Select, - ('allow_multiple_selected',)) + ('choices', 'allow_multiple_selected',)) def test_nullbooleanselect_widget(self): self.assertExpectWidget( forms.widgets.NullBooleanSelect(), - floppyforms.widgets.NullBooleanSelect) + floppyforms.widgets.NullBooleanSelect, + ('choices', 'allow_multiple_selected',)) + + widget = forms.widgets.NullBooleanSelect() + widget.choices = list(widget.choices) + + value, label = widget.choices[0] + widget.choices[0] = value, 'Maybe' + + self.assertExpectWidget( + widget, + floppyforms.widgets.NullBooleanSelect, + ('choices', 'allow_multiple_selected',)) def test_selectmultiple_widget(self): + choices = ( + ('draft', 'Draft'), + ('public', 'Public'), + ) + self.assertExpectWidget( forms.widgets.SelectMultiple(), floppyforms.widgets.SelectMultiple) - widget = forms.widgets.SelectMultiple() + widget = forms.widgets.SelectMultiple(choices=choices) widget.allow_multiple_selected = False self.assertExpectWidget( widget, floppyforms.widgets.SelectMultiple, - ('allow_multiple_selected',)) + ('choices', 'allow_multiple_selected',)) def test_radioselect_widget(self): + choices = ( + ('draft', 'Draft'), + ('public', 'Public'), + ) + self.assertExpectWidget( forms.widgets.RadioSelect(), floppyforms.widgets.RadioSelect) + self.assertExpectWidget( + forms.widgets.RadioSelect(choices=choices), + floppyforms.widgets.RadioSelect, + ('choices', 'allow_multiple_selected',)) + widget = forms.widgets.RadioSelect(renderer='custom renderer') # don't overwrite widget with floppyform widget if a custom renderer # was used. We cannot copy this over since floppyform doesn't use the @@ -243,10 +275,20 @@ class GetFloppyformWidgetTest(TestCase): forms.widgets.RadioSelect) def test_checkboxselectmultiple_widget(self): + choices = ( + ('draft', 'Draft'), + ('public', 'Public'), + ) + self.assertExpectWidget( forms.widgets.CheckboxSelectMultiple(), floppyforms.widgets.CheckboxSelectMultiple) + self.assertExpectWidget( + forms.widgets.CheckboxSelectMultiple(choices=choices), + floppyforms.widgets.CheckboxSelectMultiple, + ('choices', 'allow_multiple_selected',)) + def test_multi_widget(self): self.assertExpectWidget( forms.widgets.MultiWidget([]), From caee5ac214d16358cccb755850f8a1413855e5a6 Mon Sep 17 00:00:00 2001 From: allenhu Date: Wed, 5 Jun 2013 14:47:43 +0800 Subject: [PATCH 2/3] fixed MANIFEST.in without static resources configuration --- MANIFEST.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index b70a3b3..f4ffdab 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,5 @@ include README.rst include LICENSE include AUTHORS.rst -include MANIFEST.in \ No newline at end of file +include MANIFEST.in +recursive-include djadmin2 *.html *.css *.js From e6cb526df4258bd5cce7f63f258269f8fd7d2846 Mon Sep 17 00:00:00 2001 From: Daniel Greenfeld Date: Wed, 5 Jun 2013 11:27:02 +0200 Subject: [PATCH 3/3] Adding @the5fire to authors. --- AUTHORS.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS.rst b/AUTHORS.rst index 0f88e30..8aa7683 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -21,3 +21,4 @@ Developers * Roman Gladkov (@d1ffuz0r / d1fffuz0r@gmail.com) * Pau Rosello Van Schoor (@paurosello) * Wade Austin (@waustin) +* the5fire (@the5fire)