From 438be7e481581ca2e050e3a9d751f0215efe7a1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Wed, 13 Jul 2016 19:37:55 +0200 Subject: [PATCH 1/2] Nettoyage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PEP8 - Imports non utilisés --- calendrier/views.py | 172 +++++++++++++++++++++++++------------------- 1 file changed, 99 insertions(+), 73 deletions(-) diff --git a/calendrier/views.py b/calendrier/views.py index 0eccabc..3d98619 100644 --- a/calendrier/views.py +++ b/calendrier/views.py @@ -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,24 +51,26 @@ def calendar(request, pYear, pMonth): lNextYear = lYear + 1 lYearAfterThis = lYear + 1 lYearBeforeThis = lYear - 1 - return render(request, 'calendrier/home.html', {'Calendar': mark_safe(lCalendar), - 'Month': lMonth, - 'MonthName' : named_month(lMonth), - 'Year': lYear, - 'PreviousMonth': lPreviousMonth, - 'PreviousMonthName': named_month(lPreviousMonth), - 'PreviousYear': lPreviousYear, - 'NextMonth': lNextMonth, - 'NextMonthName': named_month(lNextMonth), - 'NextYear': lNextYear, - 'YearBeforeThis': lYearBeforeThis, - 'YearAfterThis': lYearAfterThis, + return render(request, 'calendrier/home.html', { + 'Calendar': mark_safe(lCalendar), + 'Month': lMonth, + 'MonthName': named_month(lMonth), + 'Year': lYear, + 'PreviousMonth': lPreviousMonth, + 'PreviousMonthName': named_month(lPreviousMonth), + 'PreviousYear': lPreviousYear, + 'NextMonth': lNextMonth, + 'NextMonthName': named_month(lNextMonth), + 'NextYear': lNextYear, + 'YearBeforeThis': lYearBeforeThis, + '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: - return redirect('calendrier.views.home') + return redirect('calendrier.views.home') nom = ev.nom.capitalize fin = False desc = False @@ -76,13 +81,14 @@ def view_event(request, pYear, pMonth, id): if ev.fin: fin = True if ev.description: - desc = True - return render(request, 'calendrier/view_event.html', locals()) + 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: - return redirect('calendrier.views.home') + return redirect('calendrier.views.home') part = ev.participants_set.all() nom = ev.nom.capitalize fin = False @@ -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) @@ -106,25 +113,36 @@ def resend(request, id): message = form.cleaned_data["message"] try: for user in users: - if user.mails: - Subject = "[Pouet-Pouet] " + 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+= '\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' - send_mail(Subject, text, sender, receivers) + if user.mails: + Subject = "[Pouet-Pouet] " + 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 += '\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' + 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,41 @@ 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 - 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' - 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é." + users = ErnestoUser.objects.filter(is_ernesto=True) + for user in users: + if user.mails: + try: + Subject = "[Pouet-Pouet] " + nom + ", le " + 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 ' + text += 'http://www.ernestophone.ens.fr/calendar/' + text += str(obj.id) + '\n' + text += '\nPour répondre oui, allez sur ' + text += 'http://www.ernestophone.ens.fr/calendar/' + text += user.slug + '/' + obj.slug + '/oui' + text += '\nPour répondre non, allez sur ' + text += 'http://www.ernestophone.ens.fr/calendar/' + text += user.slug + '/' + obj.slug + '/non' + text += '\nPour répondre peut-être, allez sur ' + text += 'http://www.ernestophone.ens.fr/calendar/' + text += user.slug + '/' + obj.slug + '/pe' + send_mail(Subject, text, sender, receivers) + except: + 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 +233,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 +245,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 +262,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 +279,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 +295,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" From 79eb0ad2fc3ed68d45378c102796911b1642c7ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Wed, 13 Jul 2016 20:12:11 +0200 Subject: [PATCH 2/2] Nettoyage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Moins de concaténations chaînes de caractères - Utilisation de `reverse_lazy` pour écrire des urls --- calendrier/urls.py | 2 +- calendrier/views.py | 60 +++++++++++++++++++++++---------------------- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/calendrier/urls.py b/calendrier/urls.py index 6c7419d..5badbab 100644 --- a/calendrier/urls.py +++ b/calendrier/urls.py @@ -14,5 +14,5 @@ urlpatterns = patterns('calendrier.views', url(r'(?P\w{6})/(?P\w{6})/non', 'repnondir'), url(r'(?P\d+)/(?P\d+)/(?P\d+)/?', 'view_event'), url(r'(?P\d+)/(?P\d+)/?$', 'calendar'), - url(r'(?P\d+)/?', 'view_eventbis'), + url(r'(?P\d+)/?', 'view_eventbis', 'view-event'), ) diff --git a/calendrier/views.py b/calendrier/views.py index 3d98619..e1f5145 100644 --- a/calendrier/views.py +++ b/calendrier/views.py @@ -114,25 +114,25 @@ 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: @@ -184,24 +184,26 @@ def create_event(request): 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 ' - text += 'http://www.ernestophone.ens.fr/calendar/' - text += str(obj.id) + '\n' - text += '\nPour répondre oui, allez sur ' - text += 'http://www.ernestophone.ens.fr/calendar/' - text += user.slug + '/' + obj.slug + '/oui' - text += '\nPour répondre non, allez sur ' - text += 'http://www.ernestophone.ens.fr/calendar/' - text += user.slug + '/' + obj.slug + '/non' - text += '\nPour répondre peut-être, allez sur ' - text += 'http://www.ernestophone.ens.fr/calendar/' - text += 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) except: erreur = "Une erreur est survenue, le mail n'a " \