- REGISTER FORM HERE + Please register here.
{% endblock %} \ No newline at end of file diff --git a/frontend/templates/login.html b/frontend/templates/registration/logged_out.html similarity index 58% rename from frontend/templates/login.html rename to frontend/templates/registration/logged_out.html index 7e293b9..52e1e84 100644 --- a/frontend/templates/login.html +++ b/frontend/templates/registration/logged_out.html @@ -1,6 +1,6 @@ {% extends "layout/base.html" %} {% block content %}- LOGIN FORM HERE + You are logged out. Goodbye!
{% endblock %} \ No newline at end of file diff --git a/frontend/templates/registration/login.html b/frontend/templates/registration/login.html new file mode 100644 index 0000000..65fab6a --- /dev/null +++ b/frontend/templates/registration/login.html @@ -0,0 +1,15 @@ +{% extends "layout/base.html" %} +{% block content %} + {% if form.errors %} +Your username and password did not match. Please try again.
+ {% endif %} ++
+ +{% endblock %} \ No newline at end of file diff --git a/frontend/views.py b/frontend/views.py index 67bc9a4..896570a 100644 --- a/frontend/views.py +++ b/frontend/views.py @@ -1,30 +1,61 @@ # -*- coding: utf-8 -*- -from django.views.generic import TemplateView -class BaseSiteView(TemplateView): - template_name = "base.html" - page_name = "Citavi Mapper" - page_title = "BASE" - +from django.contrib.auth.decorators import login_required +from django.utils.decorators import method_decorator +from django.views.generic import TemplateView +from django.contrib.auth.views import login, logout + +FRONTEND_PAGE_NAME = 'Citavi Mapper' + +def login_wrap(*args, **kwargs): + kwargs['extra_context'] = { + 'page': { + 'name': FRONTEND_PAGE_NAME, + 'title': 'Login' + } + } + return login(*args, **kwargs) + +def logout_wrap(*args, **kwargs): + kwargs['extra_context'] = { + 'page': { + 'name': FRONTEND_PAGE_NAME, + 'title': 'Logout' + } + } + return logout(*args, **kwargs) + + +class BaseView(TemplateView): + template_name = 'base.html' + page_name = FRONTEND_PAGE_NAME + page_title = 'BASE' + + def get_page_data(self): + return { + u'name': self.page_name, + u'title': self.page_title + } def get(self, request, **kwargs): - self._request = request - return super(BaseSiteView, self).get(request, **kwargs) + return super(BaseView, self).get(request, **kwargs) def get_context_data(self, **kwargs): - context = super(BaseSiteView, self).get_context_data(**kwargs) - context['page_name'] = self.page_name - context['page_title'] = self.page_title - return context + kwargs[u'page'] = self.get_page_data() + return super(BaseView, self).get_context_data(**kwargs) -class IndexView(BaseSiteView): - template_name = "index.html" - page_title = "Index" +class LoggedInMixin(object): + @method_decorator(login_required) + def dispatch(self, *args, **kwargs): + return super(LoggedInMixin, self).dispatch(*args, **kwargs) -class RegisterView(BaseSiteView): - template_name = "register.html" - page_title = "Register" +class ProtectedSiteView(LoggedInMixin, BaseView): + pass -class LoginView(BaseSiteView): - template_name = "login.html" - page_title = "Login" +class IndexView(ProtectedSiteView): + template_name = 'index.html' + page_title = 'Index' + +class RegisterView(BaseView): + template_name = 'register.html' + page_title = 'Register'