From ac8dcbf73da18db58cedc61cb79882b8bf3e74b1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fr=C3=A9d=C3=A9ric=20Perrin?= Date: Wed, 9 Nov 2016 23:59:50 +0000 Subject: [PATCH] Create an administrative interface --- djsite/urls.py | 2 +- quotes/adminviews.py | 19 +++++++++++++++++++ quotes/conftest.py | 14 ++++++++++---- quotes/templates/quotes/listadmintools.html | 15 +++++++++++++++ quotes/test_massimport.py | 17 ++++++++++------- quotes/urls.py | 8 ++++++-- quotes/views.py | 8 -------- 7 files changed, 61 insertions(+), 22 deletions(-) create mode 100644 quotes/adminviews.py create mode 100644 quotes/templates/quotes/listadmintools.html diff --git a/djsite/urls.py b/djsite/urls.py index 3ffc7fc..6eaff7d 100644 --- a/djsite/urls.py +++ b/djsite/urls.py @@ -17,7 +17,7 @@ from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ - url(r'^admin/', include(admin.site.urls)), + url(r'^cntrl/', include(admin.site.urls)), url(r'^tinymce/', include('tinymce.urls')), url(r'^quotes/', include('quotes.urls', namespace='quotes')), ] diff --git a/quotes/adminviews.py b/quotes/adminviews.py new file mode 100644 index 0000000..757418c --- /dev/null +++ b/quotes/adminviews.py @@ -0,0 +1,19 @@ +from django.shortcuts import render +from django.contrib.auth.decorators import permission_required + +from quotes.massimport import domassimport + +check_admin = permission_required('quotes.can_add', + login_url='/quotes/admin/login') + +@check_admin +def massimport(request): + if 'quotes' in request.POST: + resultcontext = domassimport(request.POST['quotes']) + return render(request, 'quotes/domassimport.html', resultcontext) + else: + return render(request, 'quotes/massimport.html', {}) + +@check_admin +def listadmintools(request): + return render(request, 'quotes/listadmintools.html', {}) diff --git a/quotes/conftest.py b/quotes/conftest.py index 5cdf30a..b87a6ba 100644 --- a/quotes/conftest.py +++ b/quotes/conftest.py @@ -17,18 +17,24 @@ class ValidatingClient(object): else: raise RuntimeError('Unknown method %s for %s' % (method, url)) assert response.status_code == exp_status + if response.status_code != 200: + return None assert response.charset == 'utf-8' document = response.content.decode(response.charset) lxml.etree.fromstring(document) assert ' A rose by any other name... @@ -73,13 +73,13 @@ Romeo and Juliet tag1, tag555 ===""" - results = c.postPage('massimport/', {'quotes': allquotes}) + results = c_adm.postPage('massimport/', {'quotes': allquotes}) assert "