Skip to content

Commit 57eadc2

Browse files
committed
Merge pull request #40 from gchp/issue/22
Added request parameter to FormPreview.parse_params - fixes #22
2 parents 965a83d + 76551dd commit 57eadc2

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

docs/changelog.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ This page details the changes in the various ``django-formtools`` releases.
66
1.0 (2015-03-25)
77
----------------
88

9+
- Added the ``request`` parameter to :meth:`FormPreview.parse_params()
10+
<formtools.preview.FormPreview.parse_params>`.
11+
912
- Added the ``request`` parameter to :meth:`WizardView.get_prefix()
1013
<formtools.wizard.views.WizardView.get_prefix>`.
1114

formtools/preview.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def __call__(self, request, *args, **kwargs):
2626
'1': 'preview',
2727
'2': 'post',
2828
}.get(request.POST.get(self.unused_name('stage')), 'preview')
29-
self.parse_params(*args, **kwargs)
29+
self.parse_params(request, *args, **kwargs)
3030
try:
3131
method = getattr(self, stage + '_' + request.method.lower())
3232
except AttributeError:
@@ -118,7 +118,7 @@ def get_context(self, request, form):
118118
'state': self.state,
119119
}
120120

121-
def parse_params(self, *args, **kwargs):
121+
def parse_params(self, request, *args, **kwargs):
122122
"""
123123
Given captured args and kwargs from the URLconf, saves something in
124124
self.state and/or raises :class:`~django.http.Http404` if necessary.

tests/tests.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919

2020

2121
class TestFormPreview(preview.FormPreview):
22+
def parse_params(self, request, *args, **kwargs):
23+
self.state['user'] = request.user
24+
2225
def get_context(self, request, form):
2326
context = super(TestFormPreview, self).get_context(request, form)
2427
context.update({'custom_context': True})
@@ -47,6 +50,16 @@ def setUp(self):
4750
self.input = input_template % (self.preview.unused_name('stage'), "%d")
4851
self.test_data = {'field1': 'foo', 'field1_': 'asdf'}
4952

53+
def test_parse_params_takes_request_object(self):
54+
"""
55+
FormPreview.parse_params takes a request object as the first argument.
56+
"""
57+
preview = TestFormPreview(TestForm)
58+
response = self.client.get('/preview/')
59+
state = response.context['state']
60+
self.assertTrue(state.get('user') is not None, "Expected to find a "
61+
"user key in response.context['state']")
62+
5063
def test_unused_name(self):
5164
"""
5265
Verifies name mangling to get uniue field name.

0 commit comments

Comments
 (0)