Merge branch 'Django2.0' into 'develop'
:Django2.0 See merge request vtmk/web2.0!115
This commit is contained in:
@@ -321,7 +321,7 @@ class ExternalImageInfoItem(InfoItem):
|
||||
class InfoInstance(models.Model):
|
||||
"""Class for Info instance in Infoscreen."""
|
||||
|
||||
rotation = models.ForeignKey('Rotation', related_name='instances')
|
||||
rotation = models.ForeignKey('Rotation', related_name='instances', on_delete=models.CASCADE)
|
||||
duration = models.FloatField(default=15.0) # seconds
|
||||
# generic relation to some kind of InfoItem
|
||||
item_id = models.PositiveIntegerField()
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
{% block body %}
|
||||
<div id="header" class="row">
|
||||
<div class="logout-button">
|
||||
<form action="/logout" method="post"> {% csrf_token %}
|
||||
<form action="/admin/logout/" method="post"> {% csrf_token %}
|
||||
<input type="Submit" value="{% trans "Log out" %}" name="Logout" class="btn btn-danger"/>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -24,7 +24,7 @@ from infoscreen.models import ApyInfoItem
|
||||
from infoscreen.models import VideoInfoItem
|
||||
|
||||
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('infoscreen.change_infoinstance', raise_exception=True)
|
||||
def admin(request, *args, **kwargs):
|
||||
"""Render infoscreen admin page."""
|
||||
@@ -36,7 +36,7 @@ def create_item_generator(model):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["POST"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('infoscreen.add_infoinstance', raise_exception=True)
|
||||
def create_item(request, *args, **kwargs):
|
||||
try:
|
||||
@@ -58,7 +58,7 @@ def delete_item_generator(model):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["DELETE"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('infoscreen.delete_infoinstance', raise_exception=True)
|
||||
def delete_item(request, *args, **kwargs):
|
||||
idx = kwargs.pop("idx", 0)
|
||||
@@ -80,7 +80,7 @@ def delete_item_generator(model):
|
||||
|
||||
# due to model structure this is little complicated
|
||||
@ensure_csrf_cookie
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('infoscreen.delete_infoinstance', raise_exception=True)
|
||||
@require_http_methods(["DELETE"])
|
||||
def delete_info_item(request, *args, **kwargs):
|
||||
@@ -105,7 +105,7 @@ def delete_info_item(request, *args, **kwargs):
|
||||
|
||||
@require_http_methods(["POST"])
|
||||
@ensure_csrf_cookie
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('infoscreen.add_infoinstance', raise_exception=True)
|
||||
def create_image_item(request, *args, **kwargs):
|
||||
"""Create image Infoscreen item."""
|
||||
@@ -122,7 +122,7 @@ def create_image_item(request, *args, **kwargs):
|
||||
|
||||
@require_http_methods(["POST"])
|
||||
@ensure_csrf_cookie
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('infoscreen.add_infoinstance', raise_exception=True)
|
||||
def create_video_item(request, *args, **kwargs):
|
||||
"""Create video Infoscreen item."""
|
||||
@@ -139,7 +139,7 @@ def create_video_item(request, *args, **kwargs):
|
||||
|
||||
@require_http_methods(["POST"])
|
||||
@ensure_csrf_cookie
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('infoscreen.add_rotation', raise_exception=True)
|
||||
def create_rotation(request, *args, **kwargs):
|
||||
"""Create rotation."""
|
||||
@@ -161,7 +161,7 @@ def create_rotation(request, *args, **kwargs):
|
||||
|
||||
@require_http_methods(["DELETE"])
|
||||
@ensure_csrf_cookie
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('infoscreen.delete_rotation', raise_exception=True)
|
||||
def delete_rotation(request, *args, **kwargs):
|
||||
"""Delete rotation."""
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@ class Comment(CommentParent):
|
||||
verbose_name_plural = _('Kaehmykommentit')
|
||||
|
||||
message = models.TextField(_('Message'))
|
||||
parent = models.ForeignKey('CommentParent', related_name='messages')
|
||||
parent = models.ForeignKey('CommentParent', related_name='messages', on_delete=models.CASCADE)
|
||||
|
||||
|
||||
class Application(CommentParent):
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
<li><a href="/members/settings">{% trans "Settings" %}</a></li>
|
||||
</ul>
|
||||
|
||||
<form action="/logout" method="post"> {% csrf_token %}
|
||||
<form action="/admin/logout/" method="post"> {% csrf_token %}
|
||||
<input type="Submit" value="{% trans "Log out" %}" name="Logout" class="btn btn-danger"/>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
"""File containing Member app tests."""
|
||||
|
||||
from django.test import TestCase, Client
|
||||
from unittest import skip
|
||||
from django.contrib.auth.models import User
|
||||
from members.management.commands.createsahkopiikkiuser import Command as SahkopiikkiCommand
|
||||
from members.models import Member, Payment, Request
|
||||
from rest_framework.authtoken.models import Token
|
||||
|
||||
|
||||
import logging
|
||||
import os
|
||||
import pyexcel
|
||||
|
||||
+1
-5
@@ -45,10 +45,6 @@ from members.views import application_submit
|
||||
favicon_view = RedirectView.as_view(
|
||||
url='static/img/favicon.ico', permanent=True)
|
||||
|
||||
member_autocomplete_view = login_required(
|
||||
permission_required('members.change_member', login_url='/login')(MemberAutoComplete.as_view())
|
||||
)
|
||||
|
||||
urlpatterns = [
|
||||
|
||||
# landing page
|
||||
@@ -126,7 +122,7 @@ urlpatterns = [
|
||||
# member select autocomplete view
|
||||
url(
|
||||
r'^member-autocomplete/$',
|
||||
member_autocomplete_view,
|
||||
MemberAutoComplete.as_view(),
|
||||
name='member-autocomplete',
|
||||
),
|
||||
|
||||
|
||||
+1
-1
@@ -15,7 +15,6 @@ from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
from django.utils.http import urlsafe_base64_encode
|
||||
from django.utils.encoding import force_bytes
|
||||
from django.core.mail import send_mail
|
||||
|
||||
import json
|
||||
import requests
|
||||
@@ -27,6 +26,7 @@ from smtplib import SMTPAuthenticationError
|
||||
|
||||
from members.models import Member, Request, Payment
|
||||
from members.forms import MemberForm, PaymentForm, ApplicationForm, CSVValidationError
|
||||
from members.views.utils import send_mail_wrapper
|
||||
|
||||
|
||||
@receiver(post_save, sender=Request)
|
||||
|
||||
@@ -19,7 +19,7 @@ from members.views import error_view
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.read_application', raise_exception=True)
|
||||
def application_list(request, *args, **kwargs):
|
||||
"""List member applications not yet processed."""
|
||||
@@ -42,7 +42,7 @@ def application_list(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.change_request', raise_exception=True)
|
||||
def application_edit(request, *args, **kwargs):
|
||||
"""Edit member request information."""
|
||||
@@ -60,7 +60,7 @@ def application_edit(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["POST"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.add_member', raise_exception=True)
|
||||
def application_accept(request, *args, **kwargs):
|
||||
"""Accept application."""
|
||||
@@ -102,7 +102,7 @@ def application_accept(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["POST"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.delete_request', raise_exception=True)
|
||||
def application_delete(request, *args, **kwargs):
|
||||
"""Delete member application."""
|
||||
@@ -128,7 +128,7 @@ def application_delete(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.delete_request', raise_exception=True)
|
||||
def application_delete_confirm(request, *args, **kwargs):
|
||||
"""Confirm application deletion."""
|
||||
@@ -152,7 +152,7 @@ def application_form(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["POST"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.delete_request', raise_exception=True)
|
||||
def application_submit(request, *args, **kwargs):
|
||||
"""Submit member application"""
|
||||
|
||||
+11
-10
@@ -7,7 +7,6 @@ from django.http import HttpResponse, HttpResponseRedirect, JsonResponse, HttpRe
|
||||
from django.core.mail import send_mail
|
||||
from django.conf import settings
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils import timezone
|
||||
from django.forms.models import model_to_dict
|
||||
from dal import autocomplete
|
||||
from django.utils import timezone
|
||||
@@ -30,7 +29,7 @@ from members.views.utils import *
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.read_member', raise_exception=True)
|
||||
def member_list(request, *args, **kwargs):
|
||||
"""Render members list."""
|
||||
@@ -68,7 +67,7 @@ def member_list(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.add_member', raise_exception=True)
|
||||
def member_add(request, *args, **kwargs):
|
||||
"""Render add member page."""
|
||||
@@ -78,7 +77,7 @@ def member_add(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.delete_member', raise_exception=True)
|
||||
def member_delete_confirm(request, *args, **kwargs):
|
||||
"""Render member deletion confirmation page."""
|
||||
@@ -94,7 +93,7 @@ def member_delete_confirm(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.add_member', raise_exception=True)
|
||||
def member_add_many(request, *args, **kwargs):
|
||||
"""Render add multiple members page."""
|
||||
@@ -103,7 +102,7 @@ def member_add_many(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["POST"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.add_member', raise_exception=True)
|
||||
def add_many_confirm(request, *args, **kwargs):
|
||||
models = request.session['models']
|
||||
@@ -130,7 +129,7 @@ def add_many_confirm(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["POST"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.add_member', raise_exception=True)
|
||||
def member_submit(request, *args, **kwargs):
|
||||
"""Add member based on data gained from member form."""
|
||||
@@ -151,7 +150,7 @@ def member_submit(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["POST"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.change_member', raise_exception=True)
|
||||
def member_update(request, *args, **kwargs):
|
||||
"""Update member information."""
|
||||
@@ -179,7 +178,7 @@ def member_update(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["POST"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.delete_member', raise_exception=True)
|
||||
def member_delete(request, *args, **kwargs):
|
||||
"""Delete member."""
|
||||
@@ -204,7 +203,7 @@ def member_delete(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.change_member', raise_exception=True)
|
||||
def member_edit(request, *args, **kwargs):
|
||||
"""Edit member information."""
|
||||
@@ -218,6 +217,8 @@ def member_edit(request, *args, **kwargs):
|
||||
request, 'member_edit.html', {'member_id': i, 'form': form})
|
||||
|
||||
|
||||
@method_decorator(login_required(login_url='/admin/login'), name='dispatch')
|
||||
@method_decorator(permission_required('members.change_member'), name='dispatch')
|
||||
class MemberAutoComplete(autocomplete.Select2QuerySetView):
|
||||
|
||||
def get_queryset(self):
|
||||
|
||||
@@ -19,7 +19,7 @@ from members.views import error_view
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.read_payment', raise_exception=True)
|
||||
def payment_list(request, *args, **kwargs):
|
||||
"""Render list of payments."""
|
||||
@@ -47,7 +47,7 @@ def payment_list(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.add_payment', raise_exception=True)
|
||||
def payment_add(request, *args, **kwargs):
|
||||
"""Render add payment form."""
|
||||
@@ -57,7 +57,7 @@ def payment_add(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["POST"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.add_payment', raise_exception=True)
|
||||
def payment_submit(request, *args, **kwargs):
|
||||
"""Submit payment."""
|
||||
@@ -79,7 +79,7 @@ def payment_submit(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.change_payment', raise_exception=True)
|
||||
def payment_edit(request, *args, **kwargs):
|
||||
"""Edit payment."""
|
||||
@@ -96,7 +96,7 @@ def payment_edit(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.delete_payment', raise_exception=True)
|
||||
def payment_delete_confirm(request, *args, **kwargs):
|
||||
"""Render payment delete confirmation page."""
|
||||
@@ -113,7 +113,7 @@ def payment_delete_confirm(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["POST"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.delete_payment', raise_exception=True)
|
||||
def payment_delete(request, *args, **kwargs):
|
||||
"""Delete payment."""
|
||||
@@ -138,7 +138,7 @@ def payment_delete(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["POST"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.change_payment', raise_exception=True)
|
||||
def payment_update(request, *args, **kwargs):
|
||||
"""Update payment information."""
|
||||
|
||||
@@ -95,7 +95,7 @@ def convert_table_to_html(table, request):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required('members.change_member', raise_exception=True)
|
||||
def settings_page(request, *args, **kwargs):
|
||||
"""Render member app settings page."""
|
||||
@@ -104,7 +104,7 @@ def settings_page(request, *args, **kwargs):
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["POST"])
|
||||
@login_required(login_url='/login')
|
||||
@login_required(login_url='/admin/login')
|
||||
@permission_required(['members.change_member', 'members.change_payment'], raise_exception=True)
|
||||
def import_csv(request, *args, **kwargs):
|
||||
"""Get csv data imported to page and create members based on that."""
|
||||
|
||||
+6
-7
@@ -1,6 +1,6 @@
|
||||
backports.shutil-get-terminal-size==1.0.0
|
||||
decorator==4.0.9
|
||||
Django==1.11
|
||||
Django==2.0.7
|
||||
ipython==4.2.0
|
||||
ipython-genutils==0.1.0
|
||||
pexpect==4.1.0
|
||||
@@ -13,23 +13,22 @@ Pillow==4.3.0
|
||||
requests==2.11.1
|
||||
django-nocaptcha-recaptcha==0.0.19
|
||||
django-cors-headers==2.0.1
|
||||
djangorestframework==3.5.3
|
||||
djangorestframework==3.8.2
|
||||
coverage==4.3.4
|
||||
django-nose==1.4.4
|
||||
django-nose==1.4.5
|
||||
nose-exclude==0.5.0
|
||||
psycopg2==2.7.3.1
|
||||
django-bootstrap3==8.2.3
|
||||
django-tables2==1.6.1
|
||||
pycodestyle==2.3.1
|
||||
dealer==2.0.5
|
||||
django-modeltranslation==0.12.1
|
||||
django-auditlog==0.4.3
|
||||
django-modeltranslation==0.13b1
|
||||
django-auditlog==0.4.5
|
||||
django-phonenumber-field==1.3.0
|
||||
django-autocomplete-light==3.2.10
|
||||
six==1.10.0
|
||||
django-suit==0.2.25
|
||||
django-suit==0.2.26
|
||||
telepot==12.3
|
||||
django-password-reset==1.0
|
||||
pyexcel==0.5.8
|
||||
pyexcel-xlsx==0.5.5
|
||||
django-import-export==0.7.0
|
||||
|
||||
+4
-3
@@ -102,7 +102,6 @@ INSTALLED_APPS = [
|
||||
'auditlog',
|
||||
'phonenumber_field',
|
||||
'import_export',
|
||||
'password_reset',
|
||||
]
|
||||
|
||||
IMPORT_EXPORT_USE_TRANSACTIONS = True
|
||||
@@ -118,7 +117,7 @@ NOSE_ARGS = [
|
||||
'--exclude-dir={}'.format(os.path.join(BASE_DIR, 'webapp', 'migrations')),
|
||||
]
|
||||
|
||||
MIDDLEWARE_CLASSES = [
|
||||
MIDDLEWARE = [
|
||||
'sikweb.middleware.ForceDefaultLanguageMiddleware',
|
||||
'django.middleware.security.SecurityMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
@@ -127,11 +126,13 @@ MIDDLEWARE_CLASSES = [
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
'auditlog.middleware.AuditlogMiddleware'
|
||||
]
|
||||
MIDDLEWARE_CLASSES = [
|
||||
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
|
||||
]
|
||||
CORS_ORIGIN_ALLOW_ALL = True
|
||||
|
||||
ROOT_URLCONF = 'sikweb.urls'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
class ForceDefaultLanguageMiddleware(object):
|
||||
def ForceDefaultLanguageMiddleware(get_response):
|
||||
"""
|
||||
Ignore Accept-Language HTTP headers
|
||||
|
||||
@@ -8,6 +8,9 @@ class ForceDefaultLanguageMiddleware(object):
|
||||
Should be installed *before* any middleware that checks request.META['HTTP_ACCEPT_LANGUAGE'],
|
||||
namely django.middleware.locale.LocaleMiddleware
|
||||
"""
|
||||
def process_request(self, request):
|
||||
def process_request(request):
|
||||
if 'HTTP_ACCEPT_LANGUAGE' in request.META:
|
||||
del request.META['HTTP_ACCEPT_LANGUAGE']
|
||||
return get_response(request)
|
||||
|
||||
return process_request
|
||||
|
||||
@@ -26,7 +26,6 @@ import webapp.urls
|
||||
import infoscreen.urls
|
||||
import members.urls
|
||||
import coffee_scale.urls
|
||||
import password_reset.urls
|
||||
|
||||
urlpatterns = [
|
||||
url(r'', include('webapp.urls')),
|
||||
@@ -38,7 +37,6 @@ urlpatterns = [
|
||||
|
||||
# admin
|
||||
url(r'^admin/', admin.site.urls),
|
||||
url(r'^reset/', include('password_reset.urls')),
|
||||
|
||||
# i18n default view for changing the active language
|
||||
url(r'^i18n/', include('django.conf.urls.i18n')),
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
{% extends "webapp:base.html" %}
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
|
||||
{% block navigation %}
|
||||
{% endblock navigation %}
|
||||
|
||||
{% block content %}
|
||||
<h1>SIK Admin</h1>
|
||||
<form method="POST" class="form-horizontal" action=""> {% csrf_token %}
|
||||
<div class="form-group">
|
||||
<label for="input-username" class="col-form-label">{% trans "Username" %}</label>
|
||||
<input type="text" name="username" id="input-username" class="form-control" placeholder="{% trans "Username" %}"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="input-password" class="col-form-label">{% trans "Password" %}</label>
|
||||
<input type="password" name="passwd" id="input-passwd" class="form-control" placeholder="{% trans "Password" %}"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<a href={% url "password_reset_recover" %}>{% trans "Forgot password?" %}</a>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="text-danger">{{ error }}</div>
|
||||
</div>
|
||||
<div class="form-group" id="login-button">
|
||||
<button type="submit" class="btn btn-primary">{% trans "Log in" %}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -1 +0,0 @@
|
||||
{% extends "login.html" %}
|
||||
@@ -1,8 +0,0 @@
|
||||
{% extends "password_reset/base.html" %}{% load i18n %}
|
||||
|
||||
{% block title %}{% trans "New password set" %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<p>{% trans "Your password has successfully been reset. You can use it right now on the login page." %}</p>
|
||||
<p><a href="/login">Log in</a></p>
|
||||
{% endblock %}
|
||||
@@ -1,12 +0,0 @@
|
||||
{% extends "password_reset/base.html" %}
|
||||
{% load i18n %}
|
||||
{% load bootstrap3 %}
|
||||
|
||||
{% block content %}
|
||||
<h1>{% trans "Password recovery" %}</h1>
|
||||
<form method="post" action="{{ url }}">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
<p><input class="btn btn-primary" type="submit" value="{% trans "Send" %}"></p>
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -1,14 +0,0 @@
|
||||
{% extends "password_reset/base.html" %}{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
{% if invalid %}{% url "password_reset_recover" as recovery_url %}
|
||||
<p>{% blocktrans %}Sorry, this password reset link is invalid. You can still <a href="{{ recovery_url }}">request a new one</a>.{% endblocktrans %}</p>
|
||||
{% else %}
|
||||
<p>{% blocktrans %}Hi, <strong>{{ username }}</strong>. Please choose your new password.{% endblocktrans %}</p>
|
||||
<form method="post" action="{% url "password_reset_reset" token %}">
|
||||
{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<p><input type="submit" value="{% trans "Set new password" %}"></p>
|
||||
</form>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -1,15 +0,0 @@
|
||||
{% autoescape off %}
|
||||
You're receiving this e-mail because you requested a password reset for your user account at {{ site_name }}.
|
||||
|
||||
Please go to the following page and choose a new password:
|
||||
{% block reset_link %}
|
||||
{{ protocol }}://{{ domain }}{% url django.contrib.auth.views.password_reset_confirm uidb36=uid, token=token %}
|
||||
{% endblock %}
|
||||
|
||||
Your username, in case you've forgotten: {{ user.username }}
|
||||
|
||||
Thanks for using our site!
|
||||
|
||||
The {{ site_name }} team.
|
||||
|
||||
{% endautoescape %}
|
||||
@@ -1,8 +0,0 @@
|
||||
{% extends "password_reset/base.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}{% trans "Password recovery sent" %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<p>{% blocktrans with ago=timestamp|timesince %}An email was sent to <strong>{{ email }}</strong> {{ ago }} ago. Use the link in it to set a new password.{% endblocktrans %}</p>
|
||||
{% endblock %}
|
||||
+4
-4
@@ -7,8 +7,8 @@ from rest_framework import routers
|
||||
# from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
# from webapp.views import main_index
|
||||
from webapp.views import login_view
|
||||
from webapp.views import logout_view
|
||||
# from webapp.views import login_view
|
||||
# from webapp.views import logout_view
|
||||
from webapp.views import about_view
|
||||
# from webapp.views import guild_view
|
||||
# from webapp.views import freshmen_view
|
||||
@@ -32,8 +32,8 @@ router.register(r'questions', SavedQuestionsViewSet)
|
||||
urlpatterns = [
|
||||
url(r'^api/', include(router.urls)),
|
||||
# login stuff
|
||||
url(r'^login$', login_view),
|
||||
url(r'^logout$', logout_view),
|
||||
# url(r'^login$', login_view),
|
||||
# url(r'^logout$', logout_view),
|
||||
|
||||
# git revision
|
||||
url(r'^about', about_view),
|
||||
|
||||
@@ -64,36 +64,6 @@ def main_index(request, *args, **kwargs):
|
||||
return render(request, "index.html", {})
|
||||
|
||||
|
||||
@require_http_methods(["GET", "POST"])
|
||||
def login_view(request, *args, **kwargs):
|
||||
"""Render login view."""
|
||||
if request.method == "POST":
|
||||
uname = request.POST.get("username", None)
|
||||
pw = request.POST.get("passwd", None)
|
||||
user = authenticate(username=uname, password=pw)
|
||||
if user is not None:
|
||||
login(request, user)
|
||||
original_site = request.GET.get("next", None) or "/"
|
||||
return redirect(original_site)
|
||||
return render(request,
|
||||
"login.html",
|
||||
{"error": "☹ Kirjautuminen kosahti. Yritä uudelleen!"})
|
||||
|
||||
# user got here by a get request
|
||||
user = request.user
|
||||
if user.is_authenticated():
|
||||
# user shoud not be here authenticated with get but get rid if is
|
||||
return redirect("/")
|
||||
return render(request, "login.html", {})
|
||||
|
||||
|
||||
@require_http_methods(["GET", "POST"])
|
||||
def logout_view(request, *args, **kwargs):
|
||||
"""Logout user and return to main page."""
|
||||
logout(request)
|
||||
return redirect("/")
|
||||
|
||||
|
||||
@require_http_methods(["GET"])
|
||||
def about_view(request, *args, **kwargs):
|
||||
"""Render about page."""
|
||||
|
||||
Reference in New Issue
Block a user