diff --git a/src/InSillyCloWeb/assemblies/views.py b/src/InSillyCloWeb/assemblies/views.py index 5688aaedf505e7dfb99715f7eeadca79206dd9bb..a3913f4e145a07092b4bcc61051f3d9dd36c75b7 100644 --- a/src/InSillyCloWeb/assemblies/views.py +++ b/src/InSillyCloWeb/assemblies/views.py @@ -5,19 +5,17 @@ from typing import Tuple import crispy_forms.helper from django.contrib import messages +from django.contrib.sessions.models import Session from django.http import HttpResponse -from django.shortcuts import render, redirect, get_object_or_404 +from django.shortcuts import render, redirect from django.urls import reverse_lazy from django.utils.translation import gettext_lazy as _ from django.views.generic import ListView, DetailView, View, DeleteView, UpdateView from django.views.generic.detail import SingleObjectMixin -from django.contrib.sessions.models import Session -from django.contrib.auth import authenticate, login -from django.contrib.auth.forms import AuthenticationForm -from . import mixins from assemblies import forms, models, utils from assemblies.insillyclo_impl import InSillyCloDjangoMessageObserver +from . import mixins # Create your views here. @@ -213,44 +211,3 @@ class JobDownloadView( traceback.print_exc() messages.error(request, str(e.__class__) + str(e)) return redirect(request.headers['Referer']) - - -def loginView(request): - - if request.user.is_authenticated: - return redirect("assemblies:home") - - if request.method == "POST": - form = AuthenticationForm(data=request.POST or None) - if form.is_valid(): - user = form.get_user() - session_key = request.session.session_key - print(f"session = {session_key}") - if session_key: - try: - session = Session.objects.get(session_key=session_key) - models.SimulatorJob.objects.filter( - owning_session=session, - ).update( - owner=user, - owning_session=None, - ) - - models.Assembly.objects.filter( - owning_session=session, - ).update( - owner=user, - owning_session=None, - ) - - except Session.DoesNotExist: - pass - - login(request, user) - return redirect('assemblies:home') - - return render( - request=request, - template_name='registration/login.html', - context=locals(), - ) diff --git a/src/InSillyCloWeb/insillycloweb/urls.py b/src/InSillyCloWeb/insillycloweb/urls.py index 34c134b9576ca13c7f4018d23c6ca2d42c88d303..e3b0282928a55e34d2e4f7ba7a5d1e10b5c9ad41 100644 --- a/src/InSillyCloWeb/insillycloweb/urls.py +++ b/src/InSillyCloWeb/insillycloweb/urls.py @@ -9,7 +9,7 @@ from assemblies import views as assemblies urlpatterns = [ path("i18n/", include("django.conf.urls.i18n")), path('', include('django_kubernetes_probes.urls')), - path('accounts/login/', assemblies.loginView, name='login'), + path('', include('pre_basetheme_bootstrap.urls')), path('', include('basetheme_bootstrap.urls')), path('admin/', admin.site.urls), path('', include("assemblies.urls")), diff --git a/src/InSillyCloWeb/pre_basetheme_bootstrap/urls.py b/src/InSillyCloWeb/pre_basetheme_bootstrap/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..8fe6cf11cda0492fd8d48f64230d619e9497486b --- /dev/null +++ b/src/InSillyCloWeb/pre_basetheme_bootstrap/urls.py @@ -0,0 +1,8 @@ +from django.urls import path + +from . import views + + +urlpatterns = [ + path('accounts/login/', views.loginView, name='login'), +] diff --git a/src/InSillyCloWeb/pre_basetheme_bootstrap/views.py b/src/InSillyCloWeb/pre_basetheme_bootstrap/views.py new file mode 100644 index 0000000000000000000000000000000000000000..9bcea6add1baf3f0d474c4e1335e7e79d15f9851 --- /dev/null +++ b/src/InSillyCloWeb/pre_basetheme_bootstrap/views.py @@ -0,0 +1,55 @@ +from basetheme_bootstrap.forms import AuthenticationForm +from django.contrib.auth import login +from django.contrib.sessions.models import Session +from django.shortcuts import render, redirect + +from assemblies import models + + +def loginView(request): + + if request.user.is_authenticated: + return redirect("assemblies:home") + + if request.method == "POST": + form = AuthenticationForm( + data=request.POST, + request=request, + ) + if form.is_valid(): + user = form.get_user() + session_key = request.session.session_key + if session_key: + try: + session = Session.objects.get(session_key=session_key) + models.SimulatorJob.objects.filter( + owning_session=session, + ).update( + owner=user, + owning_session=None, + ) + + models.Assembly.objects.filter( + owning_session=session, + ).update( + owner=user, + owning_session=None, + ) + + except Session.DoesNotExist: + pass + + login(request, user) + return redirect('assemblies:home') + else: + form = AuthenticationForm( + request=request, + ) + + return render( + request=request, + template_name='registration/login.html', + context=dict( + form=form, + ), + )