Factorise les réponses aux événements
This commit is contained in:
parent
9b04266305
commit
1841851cc9
2 changed files with 43 additions and 73 deletions
|
@ -11,9 +11,9 @@ urlpatterns = [
|
|||
url(r'^resend/(?P<id>\d+)$', views.resend, name='calendrier-resend'),
|
||||
url(r'^changename/?$', views.changename, name='change-doodle-name'),
|
||||
url(r'(?P<id>\d+)/reponse/?', views.reponse, name='calendrier-reponse'),
|
||||
url(r'(?P<codeus>\w{6})/(?P<codeev>\w{6})/oui', views.repouidir),
|
||||
url(r'(?P<codeus>\w{6})/(?P<codeev>\w{6})/pe', views.reppedir),
|
||||
url(r'(?P<codeus>\w{6})/(?P<codeev>\w{6})/non', views.repnondir),
|
||||
url(r'(?P<codeus>\w{6})/(?P<codeev>\w{6})/(?P<coderep>\w+)/?',
|
||||
views.reponse_event,
|
||||
name='calendrier.reponse_event'),
|
||||
url(r'(?P<pYear>\d+)/(?P<pMonth>\d+)/(?P<id>\d+)/?', views.view_event),
|
||||
url(r'(?P<pYear>\d+)/(?P<pMonth>\d+)/?$', views.calendar),
|
||||
url(r'(?P<id>\d+)/?', views.view_eventbis, name='view-event'),
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
from datetime import date, datetime
|
||||
|
||||
from django.shortcuts import render, redirect, get_object_or_404
|
||||
from calendrier.forms import ModifEventForm, EventForm, ParticipantsForm, \
|
||||
SendMail, ChangeDoodleName
|
||||
from calendrier.models import Event, Participants
|
||||
from django.contrib.sites.shortcuts import get_current_site
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.views.generic import UpdateView, DeleteView
|
||||
from django.core.urlresolvers import reverse_lazy
|
||||
from partitions.decorators import chef_required
|
||||
from django.core.urlresolvers import reverse, reverse_lazy
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from gestion.models import ErnestoUser
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.core.mail import send_mail
|
||||
from django.http import Http404
|
||||
|
||||
from gestion.models import ErnestoUser
|
||||
from calendrier.calend import EventCalendar
|
||||
from calendar import monthrange
|
||||
from datetime import date, datetime
|
||||
|
||||
from calendrier.forms import ModifEventForm, EventForm, ParticipantsForm, \
|
||||
SendMail, ChangeDoodleName
|
||||
from calendrier.models import Event, Participants
|
||||
from partitions.decorators import chef_required
|
||||
from propositions.utils import generer
|
||||
|
||||
|
||||
|
@ -130,16 +131,19 @@ def resend(request, id):
|
|||
'Pour répondre non, allez sur %s%s\n'
|
||||
'Pour répondre peut-être, allez sur %s%s\n') \
|
||||
% (domain,
|
||||
reverse_lazy('view-event', args=[ev.id]),
|
||||
reverse_lazy('view-event', args=[obj.id]),
|
||||
domain,
|
||||
reverse_lazy('calendrier.views.repouidir',
|
||||
args=[user.slug, ev.slug]),
|
||||
reverse_lazy(
|
||||
'calendrier.reponse_event',
|
||||
args=[user.slug, obj.slug, "oui"]),
|
||||
domain,
|
||||
reverse_lazy('calendrier.views.repnondir',
|
||||
args=[user.slug, ev.slug]),
|
||||
reverse_lazy(
|
||||
'calendrier.reponse_event',
|
||||
args=[user.slug, obj.slug, "non"]),
|
||||
domain,
|
||||
reverse_lazy('calendrier.views.reppedir',
|
||||
args=[user.slug, ev.slug]))
|
||||
reverse_lazy(
|
||||
'calendrier.reponse_event',
|
||||
args=[user.slug, obj.slug, "pe"]))
|
||||
send_mail(Subject, text, sender, receivers)
|
||||
return redirect("calendrier.views.view_eventbis", id)
|
||||
except:
|
||||
|
@ -205,16 +209,19 @@ def create_event(request):
|
|||
'Pour répondre non, allez sur %s%s\n'
|
||||
'Pour répondre peut-être, allez sur %s%s\n') \
|
||||
% (domain,
|
||||
reverse_lazy('view-event', args=[obj.id]),
|
||||
reverse('view-event', args=[obj.id]),
|
||||
domain,
|
||||
reverse_lazy('calendrier.views.repouidir',
|
||||
args=[user.slug, obj.slug]),
|
||||
reverse(
|
||||
'calendrier.reponse_event',
|
||||
args=[user.slug, obj.slug, "oui"]),
|
||||
domain,
|
||||
reverse_lazy('calendrier.views.repnondir',
|
||||
args=[user.slug, obj.slug]),
|
||||
reverse(
|
||||
'calendrier.reponse_event',
|
||||
args=[user.slug, obj.slug, "non"]),
|
||||
domain,
|
||||
reverse_lazy('calendrier.views.reppedir',
|
||||
args=[user.slug, obj.slug]))
|
||||
reverse(
|
||||
'calendrier.reponse_event',
|
||||
args=[user.slug, obj.slug, "pe"]))
|
||||
send_mail(Subject, text, sender, receivers)
|
||||
except:
|
||||
erreur = "Une erreur est survenue, le mail n'a " \
|
||||
|
@ -247,54 +254,19 @@ def reponse(request, id):
|
|||
return render(request, "calendrier/reponse.html", locals())
|
||||
|
||||
|
||||
def repouidir(request, codeus, codeev):
|
||||
def reponse_event(request, codeus, codeev, coderep):
|
||||
"""
|
||||
Inscriptions aux événements via les liens envoyés par mail.
|
||||
"""
|
||||
# On vérifie qu'on a reçu une réponse valide
|
||||
if coderep not in ['oui', 'non', 'pe']:
|
||||
raise Http404
|
||||
part = get_object_or_404(ErnestoUser, slug=codeus)
|
||||
ev = get_object_or_404(Event, slug=codeev)
|
||||
try:
|
||||
p = Participants.objects.get(event=ev, participant=part)
|
||||
p.delete()
|
||||
except Participants.DoesNotExist:
|
||||
pass
|
||||
obj = Participants()
|
||||
obj.participant = part
|
||||
obj.event = ev
|
||||
obj.reponse = "oui"
|
||||
obj.save()
|
||||
# envoi = True # Variable not used ???
|
||||
return redirect('calendrier.views.home')
|
||||
|
||||
|
||||
def reppedir(request, codeus, codeev):
|
||||
part = get_object_or_404(ErnestoUser, slug=codeus)
|
||||
ev = get_object_or_404(Event, slug=codeev)
|
||||
try:
|
||||
p = Participants.objects.get(event=ev, participant=part)
|
||||
p.delete()
|
||||
except Participants.DoesNotExist:
|
||||
pass
|
||||
obj = Participants()
|
||||
obj.participant = part
|
||||
obj.event = ev
|
||||
obj.reponse = "pe"
|
||||
obj.save()
|
||||
# envoi = True # Variable not used ???
|
||||
return redirect('calendrier.views.home')
|
||||
|
||||
|
||||
def repnondir(request, codeus, codeev):
|
||||
part = get_object_or_404(ErnestoUser, slug=codeus)
|
||||
ev = get_object_or_404(Event, slug=codeev)
|
||||
try:
|
||||
p = Participants.objects.get(event=ev, participant=part)
|
||||
p.delete()
|
||||
except Participants.DoesNotExist:
|
||||
pass
|
||||
obj = Participants()
|
||||
obj.participant = part
|
||||
obj.event = ev
|
||||
obj.reponse = "non"
|
||||
obj.save()
|
||||
# envoi = True # Variable not used ???
|
||||
# On supprime la précédente réponse si elle existe
|
||||
Participants.objects.filter(event=ev, participant=part).delete()
|
||||
# Et on écrit la nouvelle inscription
|
||||
Participants.objects.create(participant=part, event=ev, reponse=coderep)
|
||||
return redirect('calendrier.views.home')
|
||||
|
||||
|
||||
|
@ -317,5 +289,3 @@ class EventDelete(DeleteView):
|
|||
@method_decorator(chef_required)
|
||||
def dispatch(self, *args, **kwargs):
|
||||
return super(EventDelete, self).dispatch(*args, **kwargs)
|
||||
|
||||
# Create your views here.
|
||||
|
|
Loading…
Add table
Reference in a new issue