Une autre option est de résoudre ce côté serveur puisque vous devriez vérifier qu'il est valide là aussi . Lorsque l'événement "concept" est déplacé sur le jour, envoyez la requête Ajax au serveur pour mettre à jour la date de l'événement "concept", si elle n'est pas valide, appelez revertFunc()
pour remettre l'événement à zéro.
eventDrop: function(event, dayDelta, minuteDelta, allDay,
revertFunc, jsEvent, ui, view) {
$.post("/concep_update/", { id: event.id, delta: dayDelta },
function(data) {
if(data!="true") {
revertFunc();
}
}, "text"});
}
Sur le serveur, vérifiez qu'il ya un événement « réunion » le même jour, et le cas échéant, mettre à jour l'événement « concept » et le retour « true », sinon, le retour « false ».
@require_POST @login_required
def concept_update(request):
concept = get_object_or_404(Concept.objects.all(),
id=int(request.POST.get("id","0")))
concept.date = concept.date + timedelta(days=int(request.POST.get("delta","0")))
meetings = Meeting.objects.filter(date=concept.date)
if meetings.count() > 0:
concept.save()
return HttpResponse("true", status=200, content_type="text/plain")
else:
return HttpResponse("false", status=200, content_type="text/plain")
Belle de un Vous m'a aidé à comprendre comment appeler la 'revertFunc' après un appel ajax. J'ai stocké 'revertFunc' dans une variable et quand j'en ai eu besoin plus tard, j'ai juste fait' variablename() 'Merci pour l'inspiration :) – ppumkin