Merge branch 'master' into demo
This commit is contained in:
commit
bcaae09277
2 changed files with 102 additions and 74 deletions
|
@ -14,5 +14,5 @@ urlpatterns = patterns('calendrier.views',
|
|||
url(r'(?P<codeus>\w{6})/(?P<codeev>\w{6})/non', 'repnondir'),
|
||||
url(r'(?P<pYear>\d+)/(?P<pMonth>\d+)/(?P<id>\d+)/?', 'view_event'),
|
||||
url(r'(?P<pYear>\d+)/(?P<pMonth>\d+)/?$', 'calendar'),
|
||||
url(r'(?P<id>\d+)/?', 'view_eventbis'),
|
||||
url(r'(?P<id>\d+)/?', 'view_eventbis', 'view-event'),
|
||||
)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from django.shortcuts import render, redirect
|
||||
from calendrier.forms import ModifEventForm, EventForm, ParticipantsForm, SendMail, ChangeDoodleName
|
||||
from calendrier.forms import ModifEventForm, EventForm, ParticipantsForm, \
|
||||
SendMail, ChangeDoodleName
|
||||
from calendrier.models import Event, Participants
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.views.generic import UpdateView, DeleteView
|
||||
|
@ -10,31 +11,33 @@ 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
|
||||
from email.mime.text import MIMEText
|
||||
|
||||
from calendrier.calend import EventCalendar
|
||||
from calendar import monthrange
|
||||
from datetime import *
|
||||
from datetime import datetime, date
|
||||
|
||||
from propositions.utils import generer
|
||||
|
||||
|
||||
def named_month(pMonthNumber):
|
||||
return date(1900, pMonthNumber, 1).strftime('%B')
|
||||
|
||||
|
||||
def home(request):
|
||||
lToday = datetime.now()
|
||||
return calendar(request, lToday.year, lToday.month)
|
||||
|
||||
|
||||
def calendar(request, pYear, pMonth):
|
||||
lYear=int(pYear)
|
||||
lYear = int(pYear)
|
||||
lMonth = int(pMonth)
|
||||
lCalendarFromMonth = datetime(lYear, lMonth, 1)
|
||||
lCalendarToMonth = datetime(lYear, lMonth, monthrange(lYear, lMonth)[1])
|
||||
lEvents = Event.objects.filter(date__gte=lCalendarFromMonth, date__lte=lCalendarToMonth, calendrier=True)
|
||||
lEvents = Event.objects.filter(date__gte=lCalendarFromMonth,
|
||||
date__lte=lCalendarToMonth,
|
||||
calendrier=True)
|
||||
if request.user.is_authenticated():
|
||||
lEvents = Event.objects.filter(date__gte=lCalendarFromMonth, date__lte=lCalendarToMonth)
|
||||
lEvents = Event.objects.filter(date__gte=lCalendarFromMonth,
|
||||
date__lte=lCalendarToMonth)
|
||||
lCalendar = EventCalendar(lEvents).formatmonth(lYear, lMonth)
|
||||
lPreviousYear = lYear
|
||||
lPreviousMonth = lMonth - 1
|
||||
|
@ -48,9 +51,10 @@ def calendar(request, pYear, pMonth):
|
|||
lNextYear = lYear + 1
|
||||
lYearAfterThis = lYear + 1
|
||||
lYearBeforeThis = lYear - 1
|
||||
return render(request, 'calendrier/home.html', {'Calendar': mark_safe(lCalendar),
|
||||
return render(request, 'calendrier/home.html', {
|
||||
'Calendar': mark_safe(lCalendar),
|
||||
'Month': lMonth,
|
||||
'MonthName' : named_month(lMonth),
|
||||
'MonthName': named_month(lMonth),
|
||||
'Year': lYear,
|
||||
'PreviousMonth': lPreviousMonth,
|
||||
'PreviousMonthName': named_month(lPreviousMonth),
|
||||
|
@ -62,6 +66,7 @@ def calendar(request, pYear, pMonth):
|
|||
'YearAfterThis': lYearAfterThis,
|
||||
})
|
||||
|
||||
|
||||
def view_event(request, pYear, pMonth, id):
|
||||
ev = Event.objects.get(id=id)
|
||||
if not request.user.is_authenticated() and not ev.calendrier:
|
||||
|
@ -79,6 +84,7 @@ def view_event(request, pYear, pMonth, id):
|
|||
desc = True
|
||||
return render(request, 'calendrier/view_event.html', locals())
|
||||
|
||||
|
||||
def view_eventbis(request, id):
|
||||
ev = Event.objects.get(id=id)
|
||||
if not request.user.is_authenticated() and not ev.calendrier:
|
||||
|
@ -96,9 +102,10 @@ 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":
|
||||
if request.method == "POST":
|
||||
form = SendMail(request.POST)
|
||||
if form.is_valid():
|
||||
ev = Event.objects.get(id=id)
|
||||
|
@ -107,24 +114,35 @@ def resend(request, id):
|
|||
try:
|
||||
for user in users:
|
||||
if user.mails:
|
||||
Subject = "[Pouet-Pouet] " + ev.nom + ", le " + ev.date.strftime('%d/%m/%Y')
|
||||
Subject = "[Pouet-Pouet] %s, le %s" % (
|
||||
ev.nom, 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+= '\n Pour voir l\'événement, allez sur http://www.ernestophone.ens.fr/calendar/' + str(ev.id) +'\n'
|
||||
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'
|
||||
else:
|
||||
text = "Bonjour, un évémenent a été créé.\n"
|
||||
text += 'Pour voir l\'événement, allez sur %s\n' \
|
||||
+ 'Pour répondre oui allez sur %s\n' \
|
||||
+ 'Pour répondre non, allez sur %s\n' \
|
||||
+ 'Pour répondre peut-être, allez sur %s\n' \
|
||||
% (reverse_lazy('view-event', args=[ev.id]),
|
||||
reverse_lazy('repouidir', args=[
|
||||
user.slug, ev.slug]),
|
||||
reverse_lazy('repnondir', args=[
|
||||
user.slug, ev.slug]),
|
||||
reverse_lazy('reppedir', args=[
|
||||
user.slug, ev.slug]))
|
||||
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é."
|
||||
erreur = "Une erreur est survenue, le mail n'a pas pu être " \
|
||||
+ "envoyé."
|
||||
else:
|
||||
form = SendMail()
|
||||
return render(request, "calendrier/resend.html", locals())
|
||||
|
||||
|
||||
@login_required
|
||||
def changename(request):
|
||||
if request.method == 'POST':
|
||||
|
@ -132,11 +150,12 @@ def changename(request):
|
|||
form = ChangeDoodleName(requbis, instance=request.user)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
success=True
|
||||
success = True
|
||||
else:
|
||||
form = ChangeDoodleName(instance=request.user)
|
||||
return render(request, 'calendrier/changename.html', locals())
|
||||
|
||||
|
||||
@chef_required
|
||||
def create_event(request):
|
||||
if request.method == "POST":
|
||||
|
@ -148,7 +167,7 @@ def create_event(request):
|
|||
try:
|
||||
Event.objects.get(slug=code)
|
||||
except:
|
||||
temp=False
|
||||
temp = False
|
||||
sendmail = form.cleaned_data["sendmail"]
|
||||
nom = form.cleaned_data["nom"]
|
||||
date = form.cleaned_data["date"]
|
||||
|
@ -158,38 +177,43 @@ def create_event(request):
|
|||
obj = form.save(commit=False)
|
||||
obj.slug = code
|
||||
obj.save()
|
||||
id= obj.id
|
||||
id = obj.id
|
||||
envoi = True
|
||||
if sendmail:
|
||||
users = ErnestoUser.objects.filter(is_ernesto=True)
|
||||
for user in users:
|
||||
if user.mails:
|
||||
try:
|
||||
Subject = "[Pouet-Pouet] " + nom + ", le " + date
|
||||
Subject = "[Pouet-Pouet] %s, le %s" % (nom, date)
|
||||
sender = 'fanfare@ens.fr'
|
||||
receivers = [user.user.email]
|
||||
text = "Bonjour, un évémenent a été créé."
|
||||
if message != '':
|
||||
text = message
|
||||
text+= '\n Pour voir l\'événement, allez sur http://www.ernestophone.ens.fr/calendar/' + str(obj.id) +'\n'
|
||||
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'
|
||||
else:
|
||||
text = "Bonjour, un évémenent a été créé.\n"
|
||||
text += "Pour voir l'événement, allez sur %s" \
|
||||
+ '\nPour répondre oui allez sur %s\n' \
|
||||
+ 'Pour répondre non, allez sur %s\n' \
|
||||
+ 'Pour répondre peut-être, allez sur %s' \
|
||||
+ '\n' \
|
||||
% (reverse_lazy('view-event', args=[
|
||||
obj.id]),
|
||||
reverse_lazy('repouidir', args=[
|
||||
user.slug, obj.slug]),
|
||||
reverse_lazy('repnondir', args=[
|
||||
user.slug, obj.slug]),
|
||||
reverse_lazy('reppedir', args=[
|
||||
user.slug, obj.slug]))
|
||||
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é."
|
||||
erreur = "Une erreur est survenue, le mail n'a " \
|
||||
+ "pas pu être envoyé."
|
||||
else:
|
||||
form = EventForm()
|
||||
|
||||
return render(request, "calendrier/create.html", locals())
|
||||
|
||||
|
||||
@login_required
|
||||
def reponse(request, id):
|
||||
part = request.user.profile
|
||||
|
@ -211,6 +235,7 @@ def reponse(request, id):
|
|||
form = ParticipantsForm()
|
||||
return render(request, "calendrier/reponse.html", locals())
|
||||
|
||||
|
||||
def repouidir(request, codeus, codeev):
|
||||
part = ErnestoUser.objects.get(slug=codeus)
|
||||
ev = Event.objects.get(slug=codeev)
|
||||
|
@ -222,9 +247,9 @@ def repouidir(request, codeus, codeev):
|
|||
obj = Participants()
|
||||
obj.participant = part
|
||||
obj.event = ev
|
||||
obj.reponse="oui"
|
||||
obj.reponse = "oui"
|
||||
obj.save()
|
||||
envoi = True
|
||||
# envoi = True # Variable not used ???
|
||||
return redirect('calendrier.views.home')
|
||||
|
||||
|
||||
|
@ -239,11 +264,12 @@ def reppedir(request, codeus, codeev):
|
|||
obj = Participants()
|
||||
obj.participant = part
|
||||
obj.event = ev
|
||||
obj.reponse="pe"
|
||||
obj.reponse = "pe"
|
||||
obj.save()
|
||||
envoi = True
|
||||
# envoi = True # Variable not used ???
|
||||
return redirect('calendrier.views.home')
|
||||
|
||||
|
||||
def repnondir(request, codeus, codeev):
|
||||
part = ErnestoUser.objects.get(slug=codeus)
|
||||
ev = Event.objects.get(slug=codeev)
|
||||
|
@ -255,11 +281,12 @@ def repnondir(request, codeus, codeev):
|
|||
obj = Participants()
|
||||
obj.participant = part
|
||||
obj.event = ev
|
||||
obj.reponse="non"
|
||||
obj.reponse = "non"
|
||||
obj.save()
|
||||
envoi = True
|
||||
# envoi = True # Variable not used ???
|
||||
return redirect('calendrier.views.home')
|
||||
|
||||
|
||||
class EventUpdate(UpdateView):
|
||||
model = Event
|
||||
template_name = "calendrier/update.html"
|
||||
|
@ -270,6 +297,7 @@ class EventUpdate(UpdateView):
|
|||
def dispatch(self, *args, **kwargs):
|
||||
return super(EventUpdate, self).dispatch(*args, **kwargs)
|
||||
|
||||
|
||||
class EventDelete(DeleteView):
|
||||
model = Event
|
||||
template_name = "calendrier/delete.html"
|
||||
|
|
Loading…
Add table
Reference in a new issue