diff --git a/base/forms.py b/base/forms.py new file mode 100644 index 0000000..024ee98 --- /dev/null +++ b/base/forms.py @@ -0,0 +1,11 @@ +from django import forms +from django.contrib.auth.forms import UserCreationForm +from django.contrib.auth.models import User + + +class UserSignupForm(UserCreationForm): + email = forms.EmailField() + + class Meta: + model = User + fields = ["username", "email"] diff --git a/base/static/css/main.css b/base/static/css/main.css index 1fb8b6e..60f2420 100644 --- a/base/static/css/main.css +++ b/base/static/css/main.css @@ -37,3 +37,30 @@ a.group { color: var(--pico-color-zinc-500); margin-left: .5em; } + +article.message { + &::before { + margin-right: .5em; + font-family: remixicon; + } + &.debug::before { + content: "\eb06"; + color: var(--pico-color-zinc-500); + } + &.info::before { + content: "\ee58"; + color: var(--pico-color-indigo-600); + } + &.success::before { + content: "\eb80"; + color: var(--pico-color-green-500); + } + &.warning::before { + content: "\eca0"; + color: var(--pico-color-amber-200); + } + &.error::before { + content: "\eca0"; + color: var(--pico-color-red-500); + } +} diff --git a/base/templates/auth/user_form.html b/base/templates/auth/user_form.html new file mode 100644 index 0000000..257d1dc --- /dev/null +++ b/base/templates/auth/user_form.html @@ -0,0 +1,6 @@ +{% extends "base.html" %} +{% load form %} +{% block content %} +
+ Créer un compte +
{% form form submit="Se connecter" %} {% endblock content %} diff --git a/base/urls.py b/base/urls.py index 8468c3e..2a6b2d5 100644 --- a/base/urls.py +++ b/base/urls.py @@ -4,5 +4,6 @@ from . import views urlpatterns = [ path("", views.HomePageView.as_view(), name="index"), + path("accounts/signup/", views.SignupView.as_view(), name="signup"), path("accounts/", include("django.contrib.auth.urls")), ] diff --git a/base/views.py b/base/views.py index d1762b8..e3618a0 100644 --- a/base/views.py +++ b/base/views.py @@ -1,5 +1,17 @@ +from django.contrib.auth.models import User +from django.contrib.messages.views import SuccessMessageMixin from django.views.generic.base import TemplateView +from django.views.generic.edit import CreateView + +from . import forms class HomePageView(TemplateView): template_name = "index.html" + + +class SignupView(SuccessMessageMixin, CreateView): + model = User + form_class = forms.UserSignupForm + success_url = "/" + success_message = "Le compte %(username)s a été créé avec succès." diff --git a/game/views.py b/game/views.py index 312e051..1b188e5 100644 --- a/game/views.py +++ b/game/views.py @@ -6,6 +6,7 @@ import googleapiclient.discovery from django.conf import settings from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.models import User +from django.contrib.messages.views import SuccessMessageMixin from django.db.models import Count, Q from django.http import JsonResponse from django.shortcuts import get_object_or_404, redirect @@ -46,8 +47,9 @@ class GroupUpdateView(OwnerFilterMixin, GroupMixin, UpdateView): pass -class GroupDeleteView(OwnerFilterMixin, GroupMixin, DeleteView): +class GroupDeleteView(OwnerFilterMixin, GroupMixin, SuccessMessageMixin, DeleteView): success_url = "/" + success_message = "Le groupe a été supprimé avec succès." class GroupDetailView(MemberFilterMixin, GroupMixin, DetailView): @@ -124,8 +126,9 @@ class GroupRemoveMemberView(View): return redirect(group) -class GroupRemoveGameView(SingleObjectMixin, View): +class GroupRemoveGameView(SingleObjectMixin, SuccessMessageMixin, View): model = models.MusikGame + success_message = "Le jeu du %(date)s a été supprimé avec succès." def get_queryset(self): return super().get_queryset().filter(group__owner=self.request.user)