diff --git a/Ernestophone/__init__.pyc b/Ernestophone/__init__.pyc
index ecb8875..fcd9268 100644
Binary files a/Ernestophone/__init__.pyc and b/Ernestophone/__init__.pyc differ
diff --git a/Ernestophone/__pycache__/__init__.cpython-34.pyc b/Ernestophone/__pycache__/__init__.cpython-34.pyc
index b503708..b887856 100644
Binary files a/Ernestophone/__pycache__/__init__.cpython-34.pyc and b/Ernestophone/__pycache__/__init__.cpython-34.pyc differ
diff --git a/Ernestophone/__pycache__/settings.cpython-34.pyc b/Ernestophone/__pycache__/settings.cpython-34.pyc
index 2ceeb75..c40fcd1 100644
Binary files a/Ernestophone/__pycache__/settings.cpython-34.pyc and b/Ernestophone/__pycache__/settings.cpython-34.pyc differ
diff --git a/Ernestophone/__pycache__/urls.cpython-34.pyc b/Ernestophone/__pycache__/urls.cpython-34.pyc
index 2633fdf..2b6a3f5 100644
Binary files a/Ernestophone/__pycache__/urls.cpython-34.pyc and b/Ernestophone/__pycache__/urls.cpython-34.pyc differ
diff --git a/Ernestophone/__pycache__/wsgi.cpython-34.pyc b/Ernestophone/__pycache__/wsgi.cpython-34.pyc
index 3f8fa30..e0af050 100644
Binary files a/Ernestophone/__pycache__/wsgi.cpython-34.pyc and b/Ernestophone/__pycache__/wsgi.cpython-34.pyc differ
diff --git a/Ernestophone/settings.py b/Ernestophone/settings.py
index c86685d..8b14c29 100644
--- a/Ernestophone/settings.py
+++ b/Ernestophone/settings.py
@@ -14,6 +14,8 @@ BASE_DIR = os.path.dirname(os.path.dirname(__file__))
MEDIA_ROOT = 'media/'
MEDIA_URL = 'media/'
+EMAIL_HOST='clipper.ens.fr'
+EMAIL_PORT= 25
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
diff --git a/Ernestophone/settings.pyc b/Ernestophone/settings.pyc
index 37a4e8b..76e32b1 100644
Binary files a/Ernestophone/settings.pyc and b/Ernestophone/settings.pyc differ
diff --git a/calendrier/__init__.pyc b/calendrier/__init__.pyc
new file mode 100644
index 0000000..4dc58f0
Binary files /dev/null and b/calendrier/__init__.pyc differ
diff --git a/calendrier/__pycache__/__init__.cpython-34.pyc b/calendrier/__pycache__/__init__.cpython-34.pyc
index 66a1268..cf1b7fa 100644
Binary files a/calendrier/__pycache__/__init__.cpython-34.pyc and b/calendrier/__pycache__/__init__.cpython-34.pyc differ
diff --git a/calendrier/__pycache__/admin.cpython-34.pyc b/calendrier/__pycache__/admin.cpython-34.pyc
index 2e03d25..806dd1d 100644
Binary files a/calendrier/__pycache__/admin.cpython-34.pyc and b/calendrier/__pycache__/admin.cpython-34.pyc differ
diff --git a/calendrier/__pycache__/calend.cpython-34.pyc b/calendrier/__pycache__/calend.cpython-34.pyc
index 71698c7..8a07141 100644
Binary files a/calendrier/__pycache__/calend.cpython-34.pyc and b/calendrier/__pycache__/calend.cpython-34.pyc differ
diff --git a/calendrier/__pycache__/forms.cpython-34.pyc b/calendrier/__pycache__/forms.cpython-34.pyc
index cf38687..80d3712 100644
Binary files a/calendrier/__pycache__/forms.cpython-34.pyc and b/calendrier/__pycache__/forms.cpython-34.pyc differ
diff --git a/calendrier/__pycache__/models.cpython-34.pyc b/calendrier/__pycache__/models.cpython-34.pyc
index dfecff1..38462e7 100644
Binary files a/calendrier/__pycache__/models.cpython-34.pyc and b/calendrier/__pycache__/models.cpython-34.pyc differ
diff --git a/calendrier/__pycache__/urls.cpython-34.pyc b/calendrier/__pycache__/urls.cpython-34.pyc
index f039f5c..454581d 100644
Binary files a/calendrier/__pycache__/urls.cpython-34.pyc and b/calendrier/__pycache__/urls.cpython-34.pyc differ
diff --git a/calendrier/__pycache__/views.cpython-34.pyc b/calendrier/__pycache__/views.cpython-34.pyc
index f5bc7f5..e82daf3 100644
Binary files a/calendrier/__pycache__/views.cpython-34.pyc and b/calendrier/__pycache__/views.cpython-34.pyc differ
diff --git a/calendrier/calend.py b/calendrier/calend.py
index a061a4f..808dd74 100644
--- a/calendrier/calend.py
+++ b/calendrier/calend.py
@@ -20,7 +20,7 @@ class EventCalendar(HTMLCalendar):
body = []
for ev in self.events[day]:
body.append('' % ev.id)
- body.append(esc(ev.nom))
+ body.append(esc(ev.nomcourt))
body.append('
')
return self.day_cell(cssclass, '
%d
%s' % (day, ''.join(body)))
return self.day_cell(cssclass, '%d
' % day)
diff --git a/calendrier/forms.py b/calendrier/forms.py
index a9ff200..bd75501 100644
--- a/calendrier/forms.py
+++ b/calendrier/forms.py
@@ -1,9 +1,7 @@
from django import forms
from calendrier.models import Event, Participants
-class EventForm(forms.ModelForm):
- sendmail = forms.BooleanField(initial=False, label="Envoyer l'invitation à la liste fanfare")
- message = forms.CharField(max_length=2000, widget=forms.Textarea(attrs={"placeholder":"Remplir ici pour remplacer le mail automatique"}), required=False)
+class ModifEventForm(forms.ModelForm):
class Meta:
model = Event
widgets = {
@@ -13,6 +11,21 @@ class EventForm(forms.ModelForm):
'fin': forms.TextInput(attrs={"placeholder": 'hh:mm facultatif'})
}
+class SendMail(forms.Form):
+ message = forms.CharField(max_length=2000, widget=forms.Textarea(attrs={"placeholder":"Remplir ici pour remplacer le mail automatique"}), required=False)
+
+class EventForm(forms.ModelForm):
+ sendmail = forms.BooleanField(initial=False, label="Envoyer l'invitation à la liste fanfare", required=False)
+ message = forms.CharField(max_length=2000, widget=forms.Textarea(attrs={"placeholder":"Remplir ici pour remplacer le mail automatique"}), required=False)
+ class Meta:
+ model = Event
+ widgets = {
+ 'description': forms.Textarea(attrs={"placeholder":"facultatif"}),
+ 'date': forms.TextInput(attrs={"placeholder": 'jj/mm/aaaa'}),
+ 'debut': forms.TextInput(attrs={"placeholder": 'hh:mm'}),
+ 'fin': forms.TextInput(attrs={"placeholder": 'hh:mm facultatif'})
+ }
+
class ParticipantsForm(forms.ModelForm):
class Meta:
model = Participants
diff --git a/calendrier/models.py b/calendrier/models.py
index 24ebcce..3bd45bd 100644
--- a/calendrier/models.py
+++ b/calendrier/models.py
@@ -9,13 +9,14 @@ ANSWERS = (
class Event(models.Model):
nom = models.CharField(max_length=100)
+ nomcourt = models.CharField(max_length=9, verbose_name="Nom court")
date = models.DateField()
debut = models.TimeField()
fin = models.TimeField(blank=True, null=True)
slug = models.CharField(max_length=7, editable=False, unique=True)
lieu = models.CharField(max_length=200)
description = models.TextField(blank=True)
- calendrier = models.BooleanField(default=False, verbose_name="Afficher dans le calendrier")
+ calendrier = models.BooleanField(default=False, verbose_name="Afficher dans le calendrier pour tous")
def __str__(self):
return self.nom
diff --git a/calendrier/templatetags/__pycache__/frenchmonth.cpython-34.pyc b/calendrier/templatetags/__pycache__/frenchmonth.cpython-34.pyc
index 98abdbb..94dc273 100644
Binary files a/calendrier/templatetags/__pycache__/frenchmonth.cpython-34.pyc and b/calendrier/templatetags/__pycache__/frenchmonth.cpython-34.pyc differ
diff --git a/calendrier/templatetags/__pycache__/translate.cpython-34.pyc b/calendrier/templatetags/__pycache__/translate.cpython-34.pyc
index 421b94b..a444bee 100644
Binary files a/calendrier/templatetags/__pycache__/translate.cpython-34.pyc and b/calendrier/templatetags/__pycache__/translate.cpython-34.pyc differ
diff --git a/calendrier/urls.py b/calendrier/urls.py
index c318270..813fdca 100644
--- a/calendrier/urls.py
+++ b/calendrier/urls.py
@@ -6,6 +6,7 @@ urlpatterns = patterns('calendrier.views',
url(r'^$', 'home'),
url(r'^edition/(?P\d+)$', EventUpdate.as_view()),
url(r'^supprimer/(?P\d+)$', EventDelete.as_view()),
+ url(r'^resend/(?P\d+)$', 'resend'),
url(r'(?P\d+)/reponse/?', 'reponse'),
url(r'(?P\w{6})/(?P\w{6})/oui', 'repouidir'),
url(r'(?P\w{6})/(?P\w{6})/pe', 'reppedir'),
diff --git a/calendrier/views.py b/calendrier/views.py
index 5a5f80c..9429fb0 100644
--- a/calendrier/views.py
+++ b/calendrier/views.py
@@ -1,5 +1,5 @@
-from django.shortcuts import render
-from calendrier.forms import EventForm, ParticipantsForm
+from django.shortcuts import render, redirect
+from calendrier.forms import ModifEventForm, EventForm, ParticipantsForm, SendMail
from calendrier.models import Event, Participants
from django.utils.safestring import mark_safe
from django.views.generic import UpdateView, DeleteView
@@ -8,6 +8,7 @@ from partitions.decorators import chef_required
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
import smtplib
from email.mime.multipart import MIMEMultipart
@@ -91,6 +92,34 @@ def view_eventbis(request, id):
desc = True
return render(request, 'calendrier/view_event.html', locals())
+@chef_required
+def resend(request, id):
+ if request.method=="POST":
+ form = SendMail(request.POST)
+ if form.is_valid():
+ ev = Event.objects.get(id=id)
+ users = ErnestoUser.objects.filter(is_ernesto=True)
+ message = form.cleaned_data["message"]
+ try:
+ for user in users:
+ Subject = ev.nom + ", le " + ev.date.strftime('%d/%m/%Y')
+ sender = 'fanfare@ens.fr'
+ receivers = [user.user.email]
+ text = "Bonjour, un évémenent a été créé."
+ if message != '':
+ text = message
+ text+= '\nPour répondre oui, allez sur http://www.ernestophone.ens.fr/calendar/' + user.slug + '/' + ev.slug + '/oui'
+ text+= '\nPour répondre non, allez sur http://www.ernestophone.ens.fr/calendar/' + user.slug + '/' + ev.slug + '/non'
+ text+= '\nPour répondre peut-être, allez sur http://www.ernestophone.ens.fr/calendar/' + user.slug + '/' + ev.slug + '/pe'
+ send_mail(Subject, text, sender, receivers)
+ return redirect("calendrier.views.view_eventbis", id)
+ except:
+ erreur = "Une erreur est survenue, le mail n'a pas pu être envoyé."
+ else:
+ form = SendMail()
+ return render(request, "calendrier/resend.html", locals())
+
+
@chef_required
def create_event(request):
if request.method == "POST":
@@ -110,28 +139,33 @@ def create_event(request):
debut = form.cleaned_data["debut"]
message = form.cleaned_data["message"]
obj = form.save(commit=False)
- id= obj.id
obj.slug = code
obj.save()
+ id= obj.id
envoi = True
if sendmail:
- try:
- smtpObj = smtplib.SMTP('clipper.ens.fr', 25)
- sender = 'fanfare@ens.fr'
- receivers = 'aymeric.fromherz@ens.fr'
- msg = MIMEMultipart("alternative")
- msg["Subject"] = nom + ", le " + date
- msg["From"] = sender
- msg["To"] = receivers
- text = "Bonjour, un évémenent a été créé."
- if message != '':
- text = message
- text+= '\nPour répondre, allez sur www.ernestophone.ens.fr/calendar/' + id + '/reponse'
- text = MIMEText(text, 'plain')
- msg.attach(text)
- smtpObj.sendmail(sender, receivers, msg.as_string())
- except:
- erreur = "Une erreur est survenue, le mail n'a pas pu être envoyé."
+ users = ErnestoUser.objects.filter(is_ernesto=True)
+ for user in users:
+ try:
+ Subject = nom + ", le " + date
+ sender = 'fanfare@ens.fr'
+ receivers = [user.user.email]
+ text = "Bonjour, un évémenent a été créé."
+ if message != '':
+ text = message
+ text+= '\nPour répondre oui, allez sur http://www.ernestophone.ens.fr/calendar/' + user.slug + '/' + obj.slug + '/oui'
+ text+= '\nPour répondre non, allez sur http://www.ernestophone.ens.fr/calendar/' + user.slug + '/' + obj.slug + '/non'
+ text+= '\nPour répondre peut-être, allez sur http://www.ernestophone.ens.fr/calendar/' + user.slug + '/' + obj.slug + '/pe'
+ send_mail(Subject, text, sender, receivers)
+ # smtpObj = smtplib.SMTP('clipper.ens.fr', 25)
+ # msg = MIMEMultipart("alternative")
+ # msg["From"] = sender
+ # msg["To"] = receivers
+ # text = MIMEText(text, 'plain')
+ # msg.attach(text)
+ # smtpObj.sendmail(sender, receivers, msg.as_string())
+ except:
+ erreur = "Une erreur est survenue, le mail n'a pas pu être envoyé."
else:
form = EventForm()
@@ -172,7 +206,7 @@ def repouidir(request, codeus, codeev):
obj.reponse="oui"
obj.save()
envoi = True
- return render(request,"calendrier/home.html", locals())
+ return redirect('calendrier.views.home')
def reppedir(request, codeus, codeev):
@@ -189,7 +223,6 @@ def reppedir(request, codeus, codeev):
obj.reponse="pe"
obj.save()
envoi = True
- return render(request,"calendrier/home.html", locals())
def repnondir(request, codeus, codeev):
part = ErnestoUser.objects.get(slug=codeus)
@@ -205,12 +238,12 @@ def repnondir(request, codeus, codeev):
obj.reponse="non"
obj.save()
envoi = True
- return render(request,"calendrier/home.html", locals())
+ return redirect('calendrier.views.home')
class EventUpdate(UpdateView):
model = Event
template_name = "calendrier/update.html"
- form_class = EventForm
+ form_class = ModifEventForm
success_url = reverse_lazy(home)
@method_decorator(chef_required)
diff --git a/db.sqlite3 b/db.sqlite3
index d4695ab..babceac 100644
Binary files a/db.sqlite3 and b/db.sqlite3 differ
diff --git a/gestion/__init__.pyc b/gestion/__init__.pyc
index e52ddc1..4cec155 100644
Binary files a/gestion/__init__.pyc and b/gestion/__init__.pyc differ
diff --git a/gestion/__pycache__/__init__.cpython-34.pyc b/gestion/__pycache__/__init__.cpython-34.pyc
index 1acf9ed..85447b4 100644
Binary files a/gestion/__pycache__/__init__.cpython-34.pyc and b/gestion/__pycache__/__init__.cpython-34.pyc differ
diff --git a/gestion/__pycache__/admin.cpython-34.pyc b/gestion/__pycache__/admin.cpython-34.pyc
index 177ee13..61ed786 100644
Binary files a/gestion/__pycache__/admin.cpython-34.pyc and b/gestion/__pycache__/admin.cpython-34.pyc differ
diff --git a/gestion/__pycache__/forms.cpython-34.pyc b/gestion/__pycache__/forms.cpython-34.pyc
index 8c224d4..ca9eee9 100644
Binary files a/gestion/__pycache__/forms.cpython-34.pyc and b/gestion/__pycache__/forms.cpython-34.pyc differ
diff --git a/gestion/__pycache__/models.cpython-34.pyc b/gestion/__pycache__/models.cpython-34.pyc
index 2a7ec6e..3c001ea 100644
Binary files a/gestion/__pycache__/models.cpython-34.pyc and b/gestion/__pycache__/models.cpython-34.pyc differ
diff --git a/gestion/__pycache__/views.cpython-34.pyc b/gestion/__pycache__/views.cpython-34.pyc
index d411948..d1ebf2a 100644
Binary files a/gestion/__pycache__/views.cpython-34.pyc and b/gestion/__pycache__/views.cpython-34.pyc differ
diff --git a/gestion/migrations/__pycache__/0001_initial.cpython-34.pyc b/gestion/migrations/__pycache__/0001_initial.cpython-34.pyc
index df1f329..f5906a6 100644
Binary files a/gestion/migrations/__pycache__/0001_initial.cpython-34.pyc and b/gestion/migrations/__pycache__/0001_initial.cpython-34.pyc differ
diff --git a/gestion/migrations/__pycache__/0002_auto_20150313_1739.cpython-34.pyc b/gestion/migrations/__pycache__/0002_auto_20150313_1739.cpython-34.pyc
index bd61aa9..e542c02 100644
Binary files a/gestion/migrations/__pycache__/0002_auto_20150313_1739.cpython-34.pyc and b/gestion/migrations/__pycache__/0002_auto_20150313_1739.cpython-34.pyc differ
diff --git a/gestion/migrations/__pycache__/__init__.cpython-34.pyc b/gestion/migrations/__pycache__/__init__.cpython-34.pyc
index 598e23d..3304131 100644
Binary files a/gestion/migrations/__pycache__/__init__.cpython-34.pyc and b/gestion/migrations/__pycache__/__init__.cpython-34.pyc differ
diff --git a/gestion/models.pyc b/gestion/models.pyc
index 81a6f66..8ecd9a3 100644
Binary files a/gestion/models.pyc and b/gestion/models.pyc differ
diff --git a/manage.py b/manage.py
old mode 100755
new mode 100644
diff --git a/partitions/__init__.pyc b/partitions/__init__.pyc
new file mode 100644
index 0000000..a84c559
Binary files /dev/null and b/partitions/__init__.pyc differ
diff --git a/partitions/__pycache__/__init__.cpython-34.pyc b/partitions/__pycache__/__init__.cpython-34.pyc
index b5479d8..9388312 100644
Binary files a/partitions/__pycache__/__init__.cpython-34.pyc and b/partitions/__pycache__/__init__.cpython-34.pyc differ
diff --git a/partitions/__pycache__/admin.cpython-34.pyc b/partitions/__pycache__/admin.cpython-34.pyc
index a74d1ce..49ba40f 100644
Binary files a/partitions/__pycache__/admin.cpython-34.pyc and b/partitions/__pycache__/admin.cpython-34.pyc differ
diff --git a/partitions/__pycache__/decorators.cpython-34.pyc b/partitions/__pycache__/decorators.cpython-34.pyc
index 2bbced7..9ac2e5c 100644
Binary files a/partitions/__pycache__/decorators.cpython-34.pyc and b/partitions/__pycache__/decorators.cpython-34.pyc differ
diff --git a/partitions/__pycache__/forms.cpython-34.pyc b/partitions/__pycache__/forms.cpython-34.pyc
index 9b8ba52..38a5f02 100644
Binary files a/partitions/__pycache__/forms.cpython-34.pyc and b/partitions/__pycache__/forms.cpython-34.pyc differ
diff --git a/partitions/__pycache__/models.cpython-34.pyc b/partitions/__pycache__/models.cpython-34.pyc
index aa0ca29..29a64b3 100644
Binary files a/partitions/__pycache__/models.cpython-34.pyc and b/partitions/__pycache__/models.cpython-34.pyc differ
diff --git a/partitions/__pycache__/urls.cpython-34.pyc b/partitions/__pycache__/urls.cpython-34.pyc
index 944175d..52c3d64 100644
Binary files a/partitions/__pycache__/urls.cpython-34.pyc and b/partitions/__pycache__/urls.cpython-34.pyc differ
diff --git a/partitions/__pycache__/views.cpython-34.pyc b/partitions/__pycache__/views.cpython-34.pyc
index a7b54ac..9e2a7b4 100644
Binary files a/partitions/__pycache__/views.cpython-34.pyc and b/partitions/__pycache__/views.cpython-34.pyc differ
diff --git a/partitions/migrations/__pycache__/0001_initial.cpython-34.pyc b/partitions/migrations/__pycache__/0001_initial.cpython-34.pyc
index c2aa5ec..6be546c 100644
Binary files a/partitions/migrations/__pycache__/0001_initial.cpython-34.pyc and b/partitions/migrations/__pycache__/0001_initial.cpython-34.pyc differ
diff --git a/partitions/migrations/__pycache__/0002_partitionset.cpython-34.pyc b/partitions/migrations/__pycache__/0002_partitionset.cpython-34.pyc
index 96b5c5e..948f3d1 100644
Binary files a/partitions/migrations/__pycache__/0002_partitionset.cpython-34.pyc and b/partitions/migrations/__pycache__/0002_partitionset.cpython-34.pyc differ
diff --git a/partitions/migrations/__pycache__/0003_auto_20150316_1613.cpython-34.pyc b/partitions/migrations/__pycache__/0003_auto_20150316_1613.cpython-34.pyc
index 3d334ba..9140822 100644
Binary files a/partitions/migrations/__pycache__/0003_auto_20150316_1613.cpython-34.pyc and b/partitions/migrations/__pycache__/0003_auto_20150316_1613.cpython-34.pyc differ
diff --git a/partitions/migrations/__pycache__/0004_remove_partition_morceau.cpython-34.pyc b/partitions/migrations/__pycache__/0004_remove_partition_morceau.cpython-34.pyc
index 949f278..b164471 100644
Binary files a/partitions/migrations/__pycache__/0004_remove_partition_morceau.cpython-34.pyc and b/partitions/migrations/__pycache__/0004_remove_partition_morceau.cpython-34.pyc differ
diff --git a/partitions/migrations/__pycache__/0005_partition_morceau.cpython-34.pyc b/partitions/migrations/__pycache__/0005_partition_morceau.cpython-34.pyc
index 338c926..96fc347 100644
Binary files a/partitions/migrations/__pycache__/0005_partition_morceau.cpython-34.pyc and b/partitions/migrations/__pycache__/0005_partition_morceau.cpython-34.pyc differ
diff --git a/partitions/migrations/__pycache__/__init__.cpython-34.pyc b/partitions/migrations/__pycache__/__init__.cpython-34.pyc
index 8a1b5d4..3cd3278 100644
Binary files a/partitions/migrations/__pycache__/__init__.cpython-34.pyc and b/partitions/migrations/__pycache__/__init__.cpython-34.pyc differ
diff --git a/partitions/models.pyc b/partitions/models.pyc
new file mode 100644
index 0000000..374da6d
Binary files /dev/null and b/partitions/models.pyc differ
diff --git a/partitions/templatetags/__pycache__/__init__.cpython-34.pyc b/partitions/templatetags/__pycache__/__init__.cpython-34.pyc
index 302a5b5..01b7a42 100644
Binary files a/partitions/templatetags/__pycache__/__init__.cpython-34.pyc and b/partitions/templatetags/__pycache__/__init__.cpython-34.pyc differ
diff --git a/partitions/templatetags/__pycache__/urls_extra.cpython-34.pyc b/partitions/templatetags/__pycache__/urls_extra.cpython-34.pyc
index 2c20cb5..1244e4d 100644
Binary files a/partitions/templatetags/__pycache__/urls_extra.cpython-34.pyc and b/partitions/templatetags/__pycache__/urls_extra.cpython-34.pyc differ
diff --git a/propositions/__init__.pyc b/propositions/__init__.pyc
new file mode 100644
index 0000000..213f2a7
Binary files /dev/null and b/propositions/__init__.pyc differ
diff --git a/propositions/__pycache__/__init__.cpython-34.pyc b/propositions/__pycache__/__init__.cpython-34.pyc
index 50165c4..f46587a 100644
Binary files a/propositions/__pycache__/__init__.cpython-34.pyc and b/propositions/__pycache__/__init__.cpython-34.pyc differ
diff --git a/propositions/__pycache__/admin.cpython-34.pyc b/propositions/__pycache__/admin.cpython-34.pyc
index f1c6aa7..a7cfd3e 100644
Binary files a/propositions/__pycache__/admin.cpython-34.pyc and b/propositions/__pycache__/admin.cpython-34.pyc differ
diff --git a/propositions/__pycache__/forms.cpython-34.pyc b/propositions/__pycache__/forms.cpython-34.pyc
index 8e477b1..e3e8466 100644
Binary files a/propositions/__pycache__/forms.cpython-34.pyc and b/propositions/__pycache__/forms.cpython-34.pyc differ
diff --git a/propositions/__pycache__/models.cpython-34.pyc b/propositions/__pycache__/models.cpython-34.pyc
index 0c60811..43161e7 100644
Binary files a/propositions/__pycache__/models.cpython-34.pyc and b/propositions/__pycache__/models.cpython-34.pyc differ
diff --git a/propositions/__pycache__/urls.cpython-34.pyc b/propositions/__pycache__/urls.cpython-34.pyc
index 39044ec..4155271 100644
Binary files a/propositions/__pycache__/urls.cpython-34.pyc and b/propositions/__pycache__/urls.cpython-34.pyc differ
diff --git a/propositions/__pycache__/utils.cpython-34.pyc b/propositions/__pycache__/utils.cpython-34.pyc
index c9f9852..16f1e2d 100644
Binary files a/propositions/__pycache__/utils.cpython-34.pyc and b/propositions/__pycache__/utils.cpython-34.pyc differ
diff --git a/propositions/__pycache__/views.cpython-34.pyc b/propositions/__pycache__/views.cpython-34.pyc
index 3163ba5..3f7f9dc 100644
Binary files a/propositions/__pycache__/views.cpython-34.pyc and b/propositions/__pycache__/views.cpython-34.pyc differ
diff --git a/templates/calendrier/resend.html b/templates/calendrier/resend.html
new file mode 100644
index 0000000..946a530
--- /dev/null
+++ b/templates/calendrier/resend.html
@@ -0,0 +1,15 @@
+{% extends "base.html" %}
+
+{% block titre %}Renvoyer les mails{% endblock %}
+
+{% block content %}
+{% if erreur %}
+{{ erreur }}
+{% endif %}
+
+{% endblock %}
diff --git a/templates/calendrier/view_event.html b/templates/calendrier/view_event.html
index afcae11..9ee471c 100644
--- a/templates/calendrier/view_event.html
+++ b/templates/calendrier/view_event.html
@@ -7,6 +7,7 @@
{% if user.profile.is_chef %}
Modifier l'événement
Supprimer l'événement
+Renvoyer les mails
{% endif %}
{% if user.is_authenticated %}
Répondre à l'événement
diff --git a/templates/gestion/login.html b/templates/gestion/login.html
index e6ce0b5..9bde3e0 100644
--- a/templates/gestion/login.html
+++ b/templates/gestion/login.html
@@ -13,18 +13,18 @@
{% csrf_token %}
-
{% if next %}
{% else %}
{% endif %}
+
{% endblock %}