From c884cbb0adba0e46b6c524f5e4daf15ba7b239da Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Mon, 17 Feb 2020 11:36:46 +0100 Subject: [PATCH] Add some comments --- apps/member/views.py | 14 ++++++-------- apps/note/views.py | 4 +++- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/member/views.py b/apps/member/views.py index ec7a3e0c..174072ab 100644 --- a/apps/member/views.py +++ b/apps/member/views.py @@ -4,11 +4,8 @@ # SPDX-License-Identifier: GPL-3.0-or-later from dal import autocomplete from django.contrib.auth.mixins import LoginRequiredMixin -from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ from django.views.generic import CreateView, ListView, DetailView, UpdateView -from django.http import HttpResponseRedirect -from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.models import User from django.urls import reverse_lazy from django.db.models import Q @@ -65,13 +62,13 @@ class UserUpdateView(LoginRequiredMixin,UpdateView): return context def get_form(self, form_class=None): - from django.forms import forms - form: forms.Form = super().get_form(form_class) + form = super().get_form(form_class) if 'username' not in form.data: return form new_username = form.data['username'] + # Si l'utilisateur cherche à modifier son pseudo, le nouveau pseudo ne doit pas être proche d'un alias existant note = NoteUser.objects.filter(alias__normalized_name=Alias.normalize(new_username)) if note.exists() and note.get().user != self.request.user: form.add_error('username', _("An alias with a similar name already exists.")) @@ -84,16 +81,17 @@ class UserUpdateView(LoginRequiredMixin,UpdateView): if form.is_valid() and profile_form.is_valid(): new_username = form.data['username'] alias = Alias.objects.filter(name=new_username) + # Si le nouveau pseudo n'est pas un de nos alias, on supprime éventuellement un alias similaire pour le remplacer if not alias.exists(): similar = Alias.objects.filter(normalized_name=Alias.normalize(new_username)) if similar.exists(): similar.delete() - note = NoteUser.objects.filter(alias__normalized_name=Alias.normalize(self.request.user.username)).get() - Alias(name=new_username, note=note).save() - user = form.save() + + user = form.save(commit=False) profile = profile_form.save(commit=False) profile.user = user profile.save() + user.save() return super().form_valid(form) def get_success_url(self, **kwargs): diff --git a/apps/note/views.py b/apps/note/views.py index 7e45d44d..3414a6c0 100644 --- a/apps/note/views.py +++ b/apps/note/views.py @@ -60,7 +60,7 @@ class NoteAutocomplete(autocomplete.Select2QuerySetView): def get_queryset(self): """ Quand une personne cherche un alias, une requête est envoyée sur l'API dédiée à l'auto-complétion. - Cette fonction récupère la requête, et renvoie la liste filtrée des notes par aliases. + Cette fonction récupère la requête, et renvoie la liste filtrée des aliases. """ # Un utilisateur non connecté n'a accès à aucune information if not self.request.user.is_authenticated: @@ -89,6 +89,7 @@ class NoteAutocomplete(autocomplete.Select2QuerySetView): return qs def get_result_label(self, result): + # Gère l'affichage de l'alias dans la recherche res = result.name note_name = str(result.note) if res != note_name: @@ -96,6 +97,7 @@ class NoteAutocomplete(autocomplete.Select2QuerySetView): return res def get_result_value(self, result): + # Le résultat renvoyé doit être l'identifiant de la note, et non de l'alias return str(result.note.pk)