port to new django, AI automated
This commit is contained in:
@@ -1,10 +1,17 @@
|
||||
from django.views.generic.edit import UpdateView
|
||||
from django.views.generic import ListView
|
||||
from musicians.models import Musician
|
||||
import json
|
||||
from datetime import timedelta
|
||||
|
||||
from django import forms
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import render
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.contrib.auth import authenticate, login, logout
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.auth.views import PasswordChangeView
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.urls import reverse_lazy
|
||||
from django.views.generic import ListView
|
||||
from django.views.generic.edit import UpdateView
|
||||
|
||||
from .models import Musician
|
||||
|
||||
|
||||
class MusicianList(ListView):
|
||||
@@ -14,32 +21,49 @@ class MusicianList(ListView):
|
||||
class UserEditForm(forms.ModelForm):
|
||||
email = forms.EmailField()
|
||||
|
||||
def __init__(self, *args, **kw):
|
||||
|
||||
if 'instance' in kw.keys():
|
||||
user = kw['instance'].user
|
||||
initVals = {'email': user.email}
|
||||
if not 'initial' in kw.keys():
|
||||
kw['initial'] = initVals
|
||||
else:
|
||||
kw['initial'].update(initVals)
|
||||
|
||||
super(UserEditForm, self).__init__(*args, **kw)
|
||||
|
||||
self.fields.keyOrder.remove('email')
|
||||
|
||||
self.fields.keyOrder.insert(2, 'email')
|
||||
|
||||
def save(self):
|
||||
if self.is_valid():
|
||||
super(UserEditForm, self).save()
|
||||
self.instance.user.email = self.cleaned_data['email']
|
||||
self.instance.user.save()
|
||||
|
||||
class Meta:
|
||||
model = Musician
|
||||
exclude = ['user', 'image', 'small_image', 'instrument', 'position', 'public_description']
|
||||
# fields = '__all__'
|
||||
exclude = [
|
||||
"user",
|
||||
"image",
|
||||
"small_image",
|
||||
"instrument",
|
||||
"position",
|
||||
"public_description",
|
||||
]
|
||||
|
||||
def __init__(self, *args, **kw):
|
||||
if "instance" in kw:
|
||||
user = kw["instance"].user
|
||||
initVals = {"email": user.email}
|
||||
if "initial" not in kw:
|
||||
kw["initial"] = initVals
|
||||
else:
|
||||
kw["initial"].update(initVals)
|
||||
|
||||
super().__init__(*args, **kw)
|
||||
|
||||
# Reorder fields to put email near the top
|
||||
if "email" in self.fields:
|
||||
email_field = self.fields.pop("email")
|
||||
new_fields = {}
|
||||
field_names = list(self.fields.keys())
|
||||
# Insert email at position 2 (after first two fields)
|
||||
for i, name in enumerate(field_names):
|
||||
if i == 2:
|
||||
new_fields["email"] = email_field
|
||||
new_fields[name] = self.fields[name]
|
||||
if "email" not in new_fields:
|
||||
new_fields["email"] = email_field
|
||||
self.fields = new_fields
|
||||
|
||||
def save(self, commit=True):
|
||||
if self.is_valid():
|
||||
instance = super().save(commit=commit)
|
||||
self.instance.user.email = self.cleaned_data["email"]
|
||||
self.instance.user.save()
|
||||
return instance
|
||||
return None
|
||||
|
||||
|
||||
def own_profile(request):
|
||||
@@ -49,30 +73,31 @@ def own_profile(request):
|
||||
def user_edit(request, username):
|
||||
musician = get_object_or_404(Musician, user__username=username)
|
||||
|
||||
if request.method == 'POST': # If the form has been submitted...
|
||||
form = UserEditForm(request.POST) # A form bound to the POST data
|
||||
form.instance = musician
|
||||
if form.is_valid(): # All validation rules pass
|
||||
if request.method == "POST":
|
||||
form = UserEditForm(request.POST, instance=musician)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
return HttpResponseRedirect('/') # Redirect after POST
|
||||
return HttpResponseRedirect("/")
|
||||
else:
|
||||
form = UserEditForm(instance=musician)
|
||||
|
||||
return render(request, 'musicians/musician_edit.html', {'form': form, 'musician': musician})
|
||||
return render(
|
||||
request, "musicians/musician_edit.html", {"form": form, "musician": musician}
|
||||
)
|
||||
|
||||
|
||||
class MusicianUpdate(UpdateView):
|
||||
model = Musician
|
||||
# fields = []
|
||||
template_name = "musicians/musician_edit.html"
|
||||
success_url = '/books/'
|
||||
success_url = "/books/"
|
||||
fields = "__all__"
|
||||
|
||||
|
||||
def addressbook(request):
|
||||
context = dict()
|
||||
context['musicians'] = Musician.objects.all().order_by('user__first_name')
|
||||
context = {}
|
||||
context["musicians"] = Musician.objects.all().order_by("user__first_name")
|
||||
|
||||
return render(request, 'musicians/addressbook.html', context)
|
||||
return render(request, "musicians/addressbook.html", context)
|
||||
|
||||
|
||||
############################################################################################################
|
||||
@@ -80,17 +105,13 @@ def addressbook(request):
|
||||
############################################################################################################
|
||||
|
||||
|
||||
from django.contrib.auth.views import PasswordChangeView
|
||||
from django.contrib.auth import authenticate, login, logout
|
||||
from django.shortcuts import redirect
|
||||
from django.http import HttpResponse
|
||||
import json
|
||||
from django.contrib.auth.models import User
|
||||
from datetime import timedelta
|
||||
class ChangePasswordView(PasswordChangeView):
|
||||
template_name = "musicians/change_password.html"
|
||||
success_url = reverse_lazy("website:home")
|
||||
|
||||
|
||||
def change_password(request):
|
||||
return PasswordChangeView.as_view(request, "musicians/change_password.html", post_change_redirect="/")
|
||||
return ChangePasswordView.as_view()(request)
|
||||
|
||||
|
||||
def logout_view(request):
|
||||
@@ -100,47 +121,44 @@ def logout_view(request):
|
||||
|
||||
def userlistForAutocompletion(request):
|
||||
result = [u.username for u in User.objects.all()]
|
||||
return HttpResponse(json.dumps(result), content_type='application/json')
|
||||
return HttpResponse(json.dumps(result), content_type="application/json")
|
||||
|
||||
|
||||
def login_view(request):
|
||||
if request.method == 'POST': # If the form has been submitted...
|
||||
raise_first_letter = lambda s: s[:1].upper() + s[1:] if s else ''
|
||||
username = raise_first_letter(request.POST['username'])
|
||||
password = request.POST['password']
|
||||
user = authenticate(username=username, password=password)
|
||||
result = dict()
|
||||
result['err'] = ""
|
||||
if request.method == "POST":
|
||||
raiseFirstLetter = lambda s: s[:1].upper() + s[1:] if s else ""
|
||||
username = raiseFirstLetter(request.POST.get("username", ""))
|
||||
password = request.POST.get("password", "")
|
||||
user = authenticate(request, username=username, password=password)
|
||||
result = {}
|
||||
result["err"] = ""
|
||||
if user is not None:
|
||||
if user.is_active:
|
||||
if not request.POST.get('remember', None):
|
||||
if not request.POST.get("remember", None):
|
||||
# Expire in one year
|
||||
request.session.set_expiry(timedelta(weeks=52).seconds)
|
||||
request.session.set_expiry(timedelta(weeks=52))
|
||||
else:
|
||||
# Expire on browser close
|
||||
request.session.set_expiry(0)
|
||||
|
||||
login(request, user)
|
||||
result['redirect'] = "/"
|
||||
print("Setting Redirect")
|
||||
if 'next' in request.POST:
|
||||
result['redirect'] = request.POST["next"]
|
||||
print("Using " + request.POST["next"])
|
||||
result["redirect"] = "/"
|
||||
if "next" in request.POST:
|
||||
result["redirect"] = request.POST["next"]
|
||||
else:
|
||||
result['err'] = "Dein Account wurde deaktiviert."
|
||||
# Return a 'disabled account' error message
|
||||
result["err"] = "Dein Account wurde deaktiviert."
|
||||
else:
|
||||
result['err'] = "Falscher Benutzername oder falsches Kennwort."
|
||||
result["err"] = "Falscher Benutzername oder falsches Kennwort."
|
||||
|
||||
return HttpResponse(json.dumps(result), content_type='application/json')
|
||||
return HttpResponse(json.dumps(result), content_type="application/json")
|
||||
|
||||
else:
|
||||
# Check if user already logged in
|
||||
if request.user.is_authenticated:
|
||||
return redirect("/")
|
||||
|
||||
if 'next' in request.GET:
|
||||
nextPage = request.GET['next']
|
||||
if "next" in request.GET:
|
||||
nextPage = request.GET["next"]
|
||||
else:
|
||||
nextPage = "/"
|
||||
return render(request, 'musicians/login.html', {'next': nextPage})
|
||||
return render(request, "musicians/login.html", {"next": nextPage})
|
||||
|
||||
Reference in New Issue
Block a user