mirror of
https://github.com/kristoferssolo/FOSSDB.git
synced 2025-10-21 17:50:35 +00:00
Created settings page
This commit is contained in:
parent
e1e858beaa
commit
1590ae8e84
24
src/apps/account/templates/setting.html
Normal file
24
src/apps/account/templates/setting.html
Normal file
@ -0,0 +1,24 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
{% block title %}{{ title }}{% endblock %}
|
||||
{% block meta %}{% endblock %}
|
||||
{% block content %}
|
||||
<div class="py-8 px-32">
|
||||
<div class="flex justify-end">
|
||||
<a href="{% url 'change_password' %}">
|
||||
<i class="fa-solid fa-shield fa-2xl"></i>
|
||||
</a>
|
||||
</div>
|
||||
<form method="POST"
|
||||
enctype="multipart/form-data"
|
||||
class="flex flex-col items-center justify-center space-y-4 my-auto">
|
||||
<h2 class="text-3xl font-abel">Edit profile</h2>
|
||||
{% csrf_token %}
|
||||
{{ user_form.username }}
|
||||
{{ user_form.email }}
|
||||
{{ user_form.first_name }}
|
||||
{{ user_form.last_name }}
|
||||
<button type="submit" class="button bg-skyblue-300 text-gray-500">Update</button>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@ -1,12 +1,66 @@
|
||||
from django.contrib.auth import authenticate, login
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth import authenticate, login, update_session_auth_hash
|
||||
from django.contrib.auth.forms import PasswordChangeForm
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.views.generic import ListView
|
||||
from django.shortcuts import redirect, render
|
||||
from django.views.generic import ListView, TemplateView
|
||||
|
||||
from fossdb.models import Project
|
||||
|
||||
from .forms import LoginForm, SignUpForm
|
||||
from .models import User
|
||||
from .forms import LoginForm, SignUpForm, UserChangeForm
|
||||
|
||||
|
||||
class ProfileUpdateView(LoginRequiredMixin, TemplateView):
|
||||
template_name = "setting.html"
|
||||
login_url = "/login/"
|
||||
redirect_field_name = "redirect_to"
|
||||
|
||||
def get(self, request):
|
||||
user_form = UserChangeForm(instance=request.user)
|
||||
context = {
|
||||
"title": "Your profile",
|
||||
"user_form": user_form,
|
||||
}
|
||||
return self.render_to_response(context)
|
||||
|
||||
def post(self, request):
|
||||
user_form = UserChangeForm(request.POST, instance=request.user)
|
||||
|
||||
if user_form.is_valid():
|
||||
user_form.save()
|
||||
messages.add_message(request, messages.SUCCESS, "Your profile was successfully updated!")
|
||||
|
||||
context = {
|
||||
"title": "Your profile",
|
||||
"user_form": user_form,
|
||||
}
|
||||
return self.render_to_response(context)
|
||||
|
||||
|
||||
class PasswordChangeView(LoginRequiredMixin, TemplateView):
|
||||
template_name = "password.html"
|
||||
|
||||
def get(self, request):
|
||||
form = PasswordChangeForm(user=request.user)
|
||||
context = {
|
||||
"title": "Change password",
|
||||
"form": form,
|
||||
}
|
||||
return self.render_to_response(context)
|
||||
|
||||
def post(self, request):
|
||||
form = PasswordChangeForm(data=request.POST, user=request.user)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
|
||||
update_session_auth_hash(request, form.user)
|
||||
messages.add_message(request, messages.SUCCESS, "Your password was successfully updated!")
|
||||
|
||||
context = {
|
||||
"title": "Change password",
|
||||
"form": form,
|
||||
}
|
||||
return self.render_to_response(context)
|
||||
|
||||
|
||||
class ProfileProjectListView(LoginRequiredMixin, ListView):
|
||||
@ -25,16 +79,6 @@ class ProfileProjectListView(LoginRequiredMixin, ListView):
|
||||
return data
|
||||
|
||||
|
||||
def profile(request, username):
|
||||
user = get_object_or_404(User, username=username)
|
||||
|
||||
context = {
|
||||
"title": user.username + ("" if not user.full_name else f" ({user.full_name})"),
|
||||
"user": user,
|
||||
}
|
||||
return render(request, "profile.html", context)
|
||||
|
||||
|
||||
def signup_view(request):
|
||||
form = SignUpForm(request.POST or None)
|
||||
if request.method == "POST":
|
||||
|
||||
Loading…
Reference in New Issue
Block a user