multimail/backend/multimail/forms.py

64 lines
No EOL
1.8 KiB
Python

from django.contrib.auth.decorators import login_required
from django.forms import ModelForm
from django.http import HttpResponseRedirect
from django.shortcuts import render
from multimail.models import Domain, Mailbox, Alias
class DomainForm(ModelForm):
class Meta:
model = Domain
fields = ['domain']
class MailboxForm(ModelForm):
class Meta:
model = Mailbox
fields = '__all__'
class AliasForm(ModelForm):
class Meta:
model = Alias
fields = '__all__'
@login_required(login_url='/login/')
def edit_domain(request, domain_id):
domain = Domain.objects.get(id=domain_id)
if request.method == 'POST':
form = DomainForm(request.POST, instance=domain)
if form.is_valid():
form.save()
return HttpResponseRedirect('/domains/')
else:
form = DomainForm(instance=domain)
return render(request, 'multimail/edit_domain.html', {'form': form})
@login_required(login_url='/login/')
def edit_mailbox(request, mailbox_id):
mailbox = Mailbox.objects.get(id=mailbox_id)
if request.method == 'POST':
form = MailboxForm(request.POST, instance=mailbox)
if form.is_valid():
form.save()
return HttpResponseRedirect('/mailboxes/')
else:
form = MailboxForm(instance=mailbox)
return render(request, 'multimail/edit_mailbox.html', {'form': form})
@login_required(login_url='/login/')
def edit_alias(request, alias_id):
alias = Alias.objects.get(id=alias_id)
if request.method == 'POST':
form = AliasForm(request.POST, instance=alias)
if form.is_valid():
form.save()
return HttpResponseRedirect('/aliases/')
else:
form = AliasForm(instance=alias)
return render(request, 'multimail/edit_alias.html', {'form': form})