Skip to content
Snippets Groups Projects
Commit 7d5e38e7 authored by Alice Heaton's avatar Alice Heaton :speech_balloon:
Browse files

Refactor views into multiple files prior to developing edit item features....

Refactor views into multiple files prior to developing edit item features. Also changed the edit/create item urls.
parent 36af7a61
No related branches found
No related tags found
2 merge requests!37Items can be edited when form is submitted,!36Edit item frontend
......@@ -2,7 +2,7 @@ from mock import Mock
from django.core.urlresolvers import reverse
from ..views import UploadSpreadsheetView
from ..views.upload_spreadsheet import UploadSpreadsheetView
def test_redirects_to_next_url_after_upload():
......
......@@ -3,9 +3,10 @@ from django.contrib.auth.decorators import login_required
from dashboard.views import DashboardView
from .views import (
UploadSpreadsheetView, ListSources, ViewSingleItem
)
from .views.upload_spreadsheet import UploadSpreadsheetView
from .views.list_sources import ListSources
from .views.item import AddEditItem
from hid.tabs.view_and_edit_table import view_and_edit_table_form_process_items
urlpatterns = patterns('',
......@@ -13,6 +14,7 @@ urlpatterns = patterns('',
url(r'^sources/(?P<label>\w+)/$', login_required(ListSources.as_view()), name='sources-edit'),
url(r'^sources/$', login_required(ListSources.as_view()), name='sources'),
url(r'^process-items/$', login_required(view_and_edit_table_form_process_items), name="data-view-process"),
url(r'^view/(?P<id>\d+)$', login_required(ViewSingleItem.as_view())),
url(r'^item/(?P<id>\d+)/edit/$', login_required(AddEditItem.as_view())),
url(r'^item/new/$', login_required(AddEditItem.as_view())),
url(r'^$', login_required(DashboardView.as_view()), name='dashboard'),
)
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
def csrf_failure(request, reason=''):
# If the user presses the back button in the browser to go back to the
# login page and logs in again, they will get a CSRF error page because
# the token will be wrong.
# We override this with a redirect to the dashboard, which if not already
# logged in, will redirect to the login page (with a fresh token).
return HttpResponseRedirect(reverse('dashboard'))
from django.views.generic.base import TemplateView
class AddEditItem(TemplateView):
template_name = "hid/item.html"
def get_context_data(self, **kwargs):
ctx = super(AddEditItem, self).get_context_data(**kwargs) or {}
return ctx
from django.views.generic.base import TemplateView
from ..forms import UploadForm, get_spreadsheet_choices
class ListSources(TemplateView):
template_name = "hid/sources.html"
def get_sources(self):
sources = []
for src, label in get_spreadsheet_choices():
sources.append({
'name': label,
'src': src,
'form': UploadForm(initial={'source': src})
})
return sources
def get_context_data(self, **kwargs):
ctx = super(ListSources, self).get_context_data(**kwargs) or {}
ctx['sources'] = self.get_sources()
return ctx
from django.contrib import messages
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.utils.translation import ungettext
from django.views.generic import FormView
from django.views.generic.base import TemplateView
from chn_spreadsheet.importer import Importer, SheetImportException
from .forms import UploadForm, get_spreadsheet_choices
class ListSources(TemplateView):
template_name = "hid/sources.html"
def get_sources(self):
sources = []
for src, label in get_spreadsheet_choices():
sources.append({
'name': label,
'src': src,
'form': UploadForm(initial={'source': src})
})
return sources
def get_context_data(self, **kwargs):
ctx = super(ListSources, self).get_context_data(**kwargs) or {}
ctx['sources'] = self.get_sources()
return ctx
from ..forms import UploadForm
class UploadSpreadsheetView(FormView):
......@@ -53,21 +32,3 @@ class UploadSpreadsheetView(FormView):
messages.error(self.request, msg)
return HttpResponseRedirect(self.get_success_url())
class ViewSingleItem(TemplateView):
template_name = "hid/item.html"
def get_context_data(self, **kwargs):
ctx = super(ViewSingleItem, self).get_context_data(**kwargs) or {}
return ctx
def csrf_failure(request, reason=''):
# If the user presses the back button in the browser to go back to the
# login page and logs in again, they will get a CSRF error page because
# the token will be wrong.
# We override this with a redirect to the dashboard, which if not already
# logged in, will redirect to the login page (with a fresh token).
return HttpResponseRedirect(reverse('dashboard'))
......@@ -392,6 +392,6 @@ else:
)
########## END TEMPLATE CONFIGURATION
CSRF_FAILURE_VIEW = 'hid.views.csrf_failure'
CSRF_FAILURE_VIEW = 'hid.views.csrf.csrf_failure'
########## Your stuff: Below this line define 3rd party libary settings
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