Deletion of alias now possible!

This commit is contained in:
Pierre-antoine Comby 2020-03-01 00:25:53 +01:00
parent 27391049f2
commit 35d5bcdf0f
3 changed files with 19 additions and 10 deletions

View File

@ -8,11 +8,14 @@ from django.utils.translation import gettext_lazy as _
from django.views.generic import CreateView, DetailView, UpdateView, TemplateView,DeleteView from django.views.generic import CreateView, DetailView, UpdateView, TemplateView,DeleteView
from django.views.generic.edit import FormMixin from django.views.generic.edit import FormMixin
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.contrib import messages
from django.urls import reverse_lazy from django.urls import reverse_lazy
from django.http import HttpResponseRedirect
from django.db.models import Q from django.db.models import Q
from django_tables2.views import SingleTableView from django_tables2.views import SingleTableView
from rest_framework.authtoken.models import Token from rest_framework.authtoken.models import Token
from django.core.exceptions import ValidationError
from note.models import Alias, NoteUser from note.models import Alias, NoteUser
from note.models.transactions import Transaction from note.models.transactions import Transaction
from note.tables import HistoryTable, AliasTable from note.tables import HistoryTable, AliasTable
@ -189,8 +192,22 @@ class AliasView(LoginRequiredMixin,FormMixin,DetailView):
class DeleteAliasView(LoginRequiredMixin, DeleteView): class DeleteAliasView(LoginRequiredMixin, DeleteView):
model = Alias model = Alias
def delete(self,request,*args,**kwargs):
try:
self.object = self.get_object()
self.object.delete()
except ValidationError as e:
# TODO: pass message to redirected view.
messages.error(self.request,str(e))
else:
messages.success(self.request,_("Alias successfully deleted"))
return HttpResponseRedirect(get_success_url)
def get_success_url(self): def get_success_url(self):
print(self.request)
return reverse_lazy('member:user_alias',kwargs={'pk':self.object.note.user.pk}) return reverse_lazy('member:user_alias',kwargs={'pk':self.object.note.user.pk})
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
return self.post(request, *args, **kwargs) return self.post(request, *args, **kwargs)

View File

@ -219,14 +219,6 @@ class Alias(models.Model):
if all(not unicodedata.category(char).startswith(cat) if all(not unicodedata.category(char).startswith(cat)
for cat in {'M', 'P', 'Z', 'C'})).casefold() for cat in {'M', 'P', 'Z', 'C'})).casefold()
def save(self, *args, **kwargs):
"""
Handle normalized_name
"""
self.normalized_name = Alias.normalize(self.name)
if len(self.normalized_name) < 256:
super().save(*args, **kwargs)
def clean(self): def clean(self):
normalized_name = Alias.normalize(self.name) normalized_name = Alias.normalize(self.name)
if len(normalized_name) >= 255: if len(normalized_name) >= 255:

View File

@ -36,4 +36,4 @@ class AliasTable(tables.Table):
template_name = 'django_tables2/bootstrap4.html' template_name = 'django_tables2/bootstrap4.html'
delete = tables.LinkColumn('member:user_alias_delete', args=[A('pk')], attrs={ delete = tables.LinkColumn('member:user_alias_delete', args=[A('pk')], attrs={
'a': {'class': 'btn btn-danger'} },text='delete') 'a': {'class': 'btn btn-danger'} },text='delete',accessor='pk')