"""Webapp views.""" from django.db.models import Count from django.shortcuts import render, redirect from django.contrib.auth import login, logout, authenticate from django.views.decorators.http import require_http_methods from django.views.decorators.csrf import ensure_csrf_cookie from django.http import HttpResponse, HttpResponseRedirect from django.contrib.auth.decorators import permission_required, login_required from django.conf import settings import logging import requests from dealer.git import git from webapp.models import Official from members.views.utils import * @require_http_methods(["GET"]) def main_index(request, *args, **kwargs): """Render main page.""" return render(request, "main_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.""" latest_commit = "Not found" latest_date = "Not found" latest_tag = "Not found" try: repo = git.init_repo() latest_commit = repo.git("rev-parse HEAD").decode('utf-8') latest_date = repo.git("show -s --format=%ci " + latest_commit).decode('utf-8') latest_tag = repo.git("describe --tags " + repo.git("rev-list --tags --max-count=1").decode('utf-8')).decode('utf-8') except: pass context = { 'commit': latest_commit, 'date': latest_date, 'tag': latest_tag } return render(request, "about.html", context) @require_http_methods(["GET"]) def guild_view(request, *args, **kwargs): """Render "Guild" page.""" return render(request, "guild.html", {}) @require_http_methods(["GET"]) def freshmen_view(request, *args, **kwargs): """Render "Freshmen" page.""" return render(request, "freshmen.html", {}) @require_http_methods(["GET"]) def jobs_view(request, *args, **kwargs): """Render "Jobs" page.""" return render(request, "jobs.html", {}) @require_http_methods(["GET"]) def event_calendar_view(request, *args, **kwargs): """Render "Event calendar" page.""" return render(request, "event_calendar.html", {}) @require_http_methods(["GET"]) def international_view(request, *args, **kwargs): """Render "International" page.""" return render(request, "international.html", {}) @require_http_methods(["GET"]) def sosso_view(request, *args, **kwargs): """Render "Sössö" page.""" return render(request, "sosso.html", {}) @require_http_methods(["GET"]) def contact_view(request, *args, **kwargs): """Render "Contact" page.""" kaikki = Official.objects.all() context = {"kaikki": kaikki} return render(request, "contact.html", context)