64 lines
No EOL
1.8 KiB
Python
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}) |