|
@@ -6,8 +6,9 @@ from __future__ import unicode_literals
|
|
|
import autocomplete_light
|
|
|
from django.contrib import admin
|
|
|
from django.contrib import messages
|
|
|
+from django.http import HttpResponseRedirect
|
|
|
|
|
|
-from .models import MaillingList
|
|
|
+from .models import MaillingList, SyncCommandError
|
|
|
|
|
|
|
|
|
class MaillingListAdmin(admin.ModelAdmin):
|
|
@@ -36,5 +37,24 @@ class MaillingListAdmin(admin.ModelAdmin):
|
|
|
fields='__all__',
|
|
|
)
|
|
|
|
|
|
+ def change_view(self, request, object_id, form_url='', extra_context=None):
|
|
|
+ try:
|
|
|
+ return super(MaillingListAdmin, self).change_view(
|
|
|
+ request, object_id, form_url, extra_context)
|
|
|
+
|
|
|
+ except SyncCommandError as e:
|
|
|
+ try:
|
|
|
+ ml = MaillingList.objects.get(pk=object_id)
|
|
|
+ ml_name = "La liste mail « {} »".format(ml.short_name)
|
|
|
+ except MaillingList.DoesNotExist:
|
|
|
+ ml_name = "La nouvelle liste mail"
|
|
|
+
|
|
|
+ messages.error(
|
|
|
+ request,
|
|
|
+ "{} n'a pas pu être synchronisée".format(ml_name) +
|
|
|
+ " vers le serveur de listes : « {} ». Vous pouvez".format(e) +
|
|
|
+ " relancer la synchro depuis la liste des listes mail.")
|
|
|
+ return HttpResponseRedirect(request.path)
|
|
|
+
|
|
|
|
|
|
admin.site.register(MaillingList, MaillingListAdmin)
|