Esempio n. 1
0
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
    })
Esempio n. 2
0
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
    })
Esempio n. 3
0
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})
Esempio n. 4
0
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
    })
Esempio n. 5
0
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
    })
Esempio n. 6
0
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})