Warn and redirect users to the source setup view if none exists

This commit is contained in:
Roberto Rosario
2014-10-30 13:24:09 -04:00
parent 79ad3bade3
commit 4543f06ca2
2 changed files with 14 additions and 13 deletions

View File

@@ -102,6 +102,10 @@ class UploadBaseView(MultiFormView):
else:
self.source = InteractiveSource.objects.filter(enabled=True).select_subclasses().first()
if InteractiveSource.objects.filter(enabled=True).count() == 0:
messages.error(request, _(u'No interactive document sources have been defined or none have been enabled, create one before proceeding.'))
return HttpResponseRedirect(reverse('sources:setup_source_list'))
return super(UploadBaseView, self).dispatch(request, *args, **kwargs)
def get_context_data(self, **kwargs):
@@ -110,18 +114,6 @@ class UploadBaseView(MultiFormView):
context['source'] = self.source
if InteractiveSource.objects.filter(enabled=True).count() == 0:
subtemplates_list.append(
{
'name': 'main/generic_subtemplate.html',
'context': {
'title': _(u'Upload sources'),
'paragraphs': [
_(u'No interactive document sources have been defined or none have been enabled.'),
],
}
})
if isinstance(self.source, StagingFolderSource):
try:
staging_filelist = list(self.source.get_files())
@@ -443,7 +435,7 @@ def setup_source_delete(request, source_id):
messages.error(request, _(u'Error deleting source "%(source)s": %(error)s') % {
'source': source, 'error': exception
})
return HttpResponseRedirect(reverse(redirect_view))
return HttpResponseRedirect(redirect_view)
context = {
'title': _(u'Are you sure you wish to delete the source: %s?') % source,

View File

@@ -1,5 +1,6 @@
from __future__ import absolute_import
from django.contrib import messages
from django.contrib.formtools.wizard.views import SessionWizardView
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
@@ -11,6 +12,8 @@ from documents.forms import DocumentTypeSelectForm
from documents.permissions import PERMISSION_DOCUMENT_CREATE
from metadata.forms import MetadataFormSet
from .models import InteractiveSource
class DocumentCreateWizard(MayanPermissionCheckMixin, SessionWizardView):
form_list = [DocumentTypeSelectForm, MetadataFormSet]
@@ -26,6 +29,12 @@ class DocumentCreateWizard(MayanPermissionCheckMixin, SessionWizardView):
except TypeError:
return False
def dispatch(self, request, *args, **kwargs):
if InteractiveSource.objects.filter(enabled=True).count() == 0:
messages.error(request, _(u'No interactive document sources have been defined or none have been enabled, create one before proceeding.'))
return HttpResponseRedirect(reverse('sources:setup_source_list'))
return super(DocumentCreateWizard, self).dispatch(request, *args, **kwargs)
def __init__(self, *args, **kwargs):
super(DocumentCreateWizard, self).__init__(*args, **kwargs)