def delete_auth_host(request, host_id, template='config/delete_auth_host.html'): 'Deletes an external auth host' host = get_object_or_404(MailAuthHost, id=host_id) if request.method == 'POST': form = DeleteMailAuthHostForm(request.POST, instance=host) if form.is_valid(): try: go_id = host.useraddress.id msg = _('External authentication %(auth)s: on host %(host)s' ' for domain %(dom)s has been deleted') % { 'auth': AUTH_TYPES[host.protocol], 'host': host.address, 'dom': host.useraddress.address } host.delete() if request.is_ajax(): response = anyjson.dumps({'success': True, 'html': msg}) return HttpResponse( response, content_type='application/javascript; charset=utf-8') djmessages.info(request, msg) return HttpResponseRedirect( reverse('view-domain', args=[go_id])) except DatabaseError: msg = _('External authentication %(auth)s: on host %(host)s' ' for domain %(dom)s could not be deleted') % { 'auth': AUTH_TYPES[host.protocol], 'host': host.address, 'dom': host.useraddress.address } if request.is_ajax(): response = anyjson.dumps({'success': False, 'html': msg}) return HttpResponse( response, content_type='application/javascript; charset=utf-8') djmessages.info(request, msg) else: form = DeleteMailAuthHostForm(instance=host) return render_to_response(template, locals(), context_instance=RequestContext(request))