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.edit import FormMixin
from django.contrib.auth.models import User
from django.contrib import messages
from django.urls import reverse_lazy
from django.http import HttpResponseRedirect
from django.db.models import Q
from django_tables2.views import SingleTableView
from rest_framework.authtoken.models import Token
from django.core.exceptions import ValidationError
from note.models import Alias, NoteUser
from note.models.transactions import Transaction
from note.tables import HistoryTable, AliasTable
@ -189,8 +192,22 @@ class AliasView(LoginRequiredMixin,FormMixin,DetailView):
class DeleteAliasView(LoginRequiredMixin, DeleteView):
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):
print(self.request)
return reverse_lazy('member:user_alias',kwargs={'pk':self.object.note.user.pk})
def get(self, 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)
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):
normalized_name = Alias.normalize(self.name)
if len(normalized_name) >= 255:

View File

@ -36,4 +36,4 @@ class AliasTable(tables.Table):
template_name = 'django_tables2/bootstrap4.html'
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')