Skip to content
Snippets Groups Projects
Commit daf6173a authored by Martin Burchell's avatar Martin Burchell
Browse files

Added next url parameter to upload form

So user is redirected to the correct page after uploading data
parent c13bacb8
No related branches found
No related tags found
2 merge requests!26Make view edit view into tab,!25Fix upload button
......@@ -6,4 +6,6 @@ class UploadForm(forms.Form):
source = forms.ChoiceField(choices=get_spreadsheet_choices,
widget=forms.HiddenInput,
required=True)
next = forms.CharField(widget=forms.HiddenInput,
required=True)
file = forms.FileField()
......@@ -139,7 +139,17 @@ class ViewAndEditTableTab(object):
# Build the upload form
source = kwargs.get('source')
upload_form = UploadForm(initial={'source': source})
next_url = reverse(
'tabbed-page',
kwargs={
'name': tab_instance.page.name,
'tab_name': tab_instance.name,
})
upload_form = UploadForm(initial={
'source': source,
'next': next_url,
})
# Build the actions drop down
actions = [
......
from mock import Mock
from django.core.urlresolvers import reverse
from ..views import UploadSpreadsheetView
def test_redirects_to_next_url_after_upload():
next_url = reverse('tabbed-page',
kwargs={'name': 'main', 'tab_name': 'rumors'})
view = UploadSpreadsheetView()
view.request = Mock(POST={'next': next_url})
url = view.get_success_url()
assert url == next_url
......@@ -14,6 +14,11 @@ from hid.tabs.view_and_edit_table import (
DELETE_COMMAND
)
from tabbed_page.tests.factories import (
TabbedPageFactory,
TabInstanceFactory
)
from taxonomies.tests.factories import (
TaxonomyFactory,
TermFactory,
......@@ -167,13 +172,36 @@ def test_get_category_options_orders_by_lowercase_name():
@pytest.mark.django_db
def test_upload_form_source_read_from_settings():
page = TabbedPageFactory()
tab_instance = TabInstanceFactory(page=page)
request = Mock(GET={})
tab = ViewAndEditTableTab()
context_data = tab.get_context_data(tab_instance,
request,
source='rapidpro')
form = context_data['upload_form']
assert form.initial.get('source') == 'rapidpro'
@pytest.mark.django_db
def test_upload_form_next_url_read_from_tab_instance():
page = TabbedPageFactory(name='main')
tab_instance = TabInstanceFactory(page=page, name='rumors')
request = Mock(GET={})
context_data = tab.get_context_data(request, source='rapidpro')
tab = ViewAndEditTableTab()
context_data = tab.get_context_data(tab_instance,
request,
source='rapidpro')
form = context_data['upload_form']
assert form.initial == {'source': 'rapidpro'}
expected_url = reverse('tabbed-page',
kwargs={'name': 'main', 'tab_name': 'rumors'})
assert form.initial.get('next') == expected_url
def test_views_item_get_request_parameters_renames_items_of_active_location():
......
......@@ -61,7 +61,7 @@ class UploadSpreadsheetView(FormView):
template_name = "hid/upload.html"
def get_success_url(self):
return reverse("data-view")
return self.request.POST.get('next')
def form_valid(self, form):
data = form.cleaned_data
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment