def repondre(request, message_id): """Renvoie vers la vue de réponse au message dont l'id est message_id""" message = get_object_or_404(Message, pk=message_id) if message.auteur == request.user: # on ne peut que "répondre à tous" à un message qu'on a envoyé raise Http404 destinataire = get_object_or_404(Destinataire, message=message, user=request.user) if request.user.eleve and destinataire.reponses and not Config.objects.get_config( ).message_eleves or message.auteur.username in ['admin', 'Secrétariat']: return HttpResponseForbidden("Vous n'avez pas le droit de répondre") form = ReponseForm(message, request.POST or None, initial={'destinataire': str(message.auteur)}) if form.is_valid(): mesage = Message(auteur=request.user, listedestinataires=str(message.auteur), titre=form.cleaned_data['titre'], corps=form.cleaned_data['corps']) mesage.save() Destinataire(user=message.auteur, message=message).save() messagees.error(request, "Message envoyé") destinataire.reponses += 1 destinataire.save() return redirect('messages') return render(request, "accueil/repondre.html", { 'form': form, 'message': message })
def repondre(request, destinataire_id): """Renvoie vers la vue de réponse au message dont le destinataire est destinataire_id""" destinataire = get_object_or_404(Destinataire, pk=destinataire_id) if destinataire.user != request.user: raise Http404 repondre = False if destinataire.message.auteur.username not in ['admin', 'Secrétariat']: if request.user.colleur or (request.user.eleve and not destinataire.reponses): repondre = True if not repondre: return HttpResponseForbidden("Vous n'avez pas le droit de répondre") form = ReponseForm(destinataire, request.POST or None) if form.is_valid(): message = Message(auteur=request.user, listedestinataires=str(destinataire.message.auteur), titre=form.cleaned_data['titre'], corps=form.cleaned_data['corps']) message.save() Destinataire(user=destinataire.message.auteur, message=message).save() destinataire.reponses += 1 destinataire.save() messagees.error(request, "Message envoyé") return redirect('messages') return render(request, "accueil/repondre.html", { 'form': form, 'destinataire': destinataire })
def repondreatous(request,message_id): """Renvoie vers la vue de réponse au message dont l'id est message_id""" message = Message.objects.filter(pk=message_id).filter(Q(auteur = request.user, hasAuteur = True) | Q(messagerecu__user = request.user)) if not message.exists(): raise Http404("Message non trouvé") message = message.first() destinataires = list(message.messagerecu.all()) if message.auteur.username in ['admin','Secrétariat']: returHttpResponseForbidden("Vous n'avez pas le droit de répondre") if message.auteur == request.user: # si on répond à un message qu'on a envoyé if request.user.eleve and not Config.objects.get_config().message_eleves: returHttpResponseForbidden("Vous n'avez pas le droit de répondre") else: desti = get_object_or_404(Destinataire,message=message,user=request.user) if request.user.eleve and desti.reponses and not Config.objects.get_config().message_eleves: return HttpResponseForbidden("Vous n'avez pas le droit de répondre") destinataires.append(Destinataire(user=message.auteur,message=None)) listedestinataires = "; ".join([str(desti.user) for desti in destinataires]) form = ReponseForm(message,request.POST or None, initial = {"destinataire": listedestinataires}) if form.is_valid(): mesage = Message(auteur=request.user,listedestinataires=listedestinataires,titre=form.cleaned_data['titre'],corps=form.cleaned_data['corps']) mesage.save() for destinat in destinataires: if destinat.user != request.user: Destinataire(message = mesage, user=destinat.user).save() messagees.error(request, "Message envoyé") if message.auteur != request.user: desti.reponses +=1 desti.save() return redirect('messages') return render(request,"accueil/repondre.html",{'form':form,'message':message})
def repondre(request, message_id): """Renvoie vers la vue de réponse au message dont l'id est message_id""" message = get_object_or_404(Message, pk=message_id) if message.auteur == request.user: # on ne peut que "répondre à tous" à un message qu'on a envoyé raise Http404 destinataire = get_object_or_404(Destinataire, message=message, user=request.user) if request.user.eleve and destinataire.reponses and not Config.objects.get_config( ).message_eleves or message.auteur.username in ['admin', 'Secrétariat']: return HttpResponseForbidden("Vous n'avez pas le droit de répondre") reponse = Message(auteur=request.user, listedestinataires=str(message.auteur), titre="Re: " + message.titre, corps=(">" + message.corps.strip().replace("\n", "\n>") + "\n")) form = ReponseForm(message, False, request.user, request.POST or None, request.FILES or None, initial={'destinataire': reponse.listedestinataires}, instance=reponse) if form.is_valid(): form.save() messagees.error(request, "Message envoyé") destinataire.reponses += 1 destinataire.save() return redirect('messages') return render(request, "accueil/repondre.html", { 'form': form, 'message': message })
def repondreatous(request, message_id): """Renvoie vers la vue de réponse au message dont l'id est message_id""" message = Message.objects.filter(pk=message_id).filter( Q(auteur=request.user, hasAuteur=True) | Q(messagerecu__user=request.user)) if not message.exists(): raise Http404("Message non trouvé") message = message.first() destinataires = list(message.messagerecu.all()) if message.auteur == request.user: # si on répond à un message qu'on a envoyé if request.user.eleve and not Config.objects.get_config( ).message_eleves: return HttpResponseForbidden( "Vous n'avez pas le droit de répondre") else: desti = get_object_or_404(Destinataire, message=message, user=request.user) if request.user.eleve and desti.reponses and not Config.objects.get_config( ).message_eleves: return HttpResponseForbidden( "Vous n'avez pas le droit de répondre") destinataires.append(Destinataire(user=message.auteur, message=None)) listedestinataires = "; ".join( [str(desti.user) for desti in destinataires]) reponse = Message(auteur=request.user, listedestinataires=listedestinataires, titre="Re: " + message.titre, corps=(">" + message.corps.strip().replace("\n", "\n>") + "\n")) form = ReponseForm(message, destinataires, request.user, request.POST or None, request.FILES or None, initial={"destinataire": listedestinataires}, instance=reponse) if form.is_valid(): form.save() messagees.error(request, "Message envoyé") if message.auteur != request.user: desti.reponses += 1 desti.save() return redirect('messages') return render(request, "accueil/repondre.html", { 'form': form, 'message': message })
def repondre(request,destinataire_id): """Renvoie vers la vue de réponse au message dont le destinataire est destinataire_id""" destinataire = get_object_or_404(Destinataire,pk=destinataire_id) if destinataire.user != request.user: raise Http404 repondre = False if destinataire.message.auteur.username not in ['admin','Secrétariat']: if request.user.colleur or (request.user.eleve and not destinataire.reponses): repondre = True if not repondre: return HttpResponseForbidden("Vous n'avez pas le droit de répondre") form = ReponseForm(destinataire,request.POST or None) if form.is_valid(): message = Message(auteur=request.user,listedestinataires=str(destinataire.message.auteur),titre=form.cleaned_data['titre'],corps=form.cleaned_data['corps']) message.save() Destinataire(user=destinataire.message.auteur,message=message).save() destinataire.reponses+=1 destinataire.save() messagees.error(request, "Message envoyé") return redirect('messages') return render(request,"accueil/repondre.html",{'form':form,'destinataire':destinataire})