Commit 7118aa63 authored by Nicolas G.'s avatar Nicolas G.

Mise à jour vers Django 2.0.1

parent c2cb44c2
......@@ -62,7 +62,7 @@ INSTALLED_APPS = (
#'django_extensions',
)
MIDDLEWARE_CLASSES = (
MIDDLEWARE = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
......
......@@ -38,7 +38,7 @@ urlpatterns = [
# TinyMCE
url(r'^tinymce/', include('tinymce.urls')),
# Administration
url(r'^' + settings.ADMIN_URL +'/', include(geoadmin.site.urls)),
url(r'^' + settings.ADMIN_URL +'/', geoadmin.site.urls),
# Rappel de mot de passe
url(r'^admin/password_reset/$', auth_views.password_reset, name='admin_password_reset'),
......
......@@ -60,7 +60,7 @@ class Ville(models.Model):
description = tinymce_models.HTMLField(
verbose_name=_("Message plus court"), help_text=_("Apparaît sur le résumé."),
)
lieu = models.ForeignKey(Lieu, null=True)
lieu = models.ForeignKey(Lieu, null=True, on_delete=models.PROTECT)
tag = models.CharField(verbose_name=_("Tags"), help_text=_("Utile pour la soumission à l'Agenda du Libre <br><em>Séparés par des espaces, ils ne peuvent contenir que des lettres minuscules, des chiffres et des tirets. Ajoutez le nom de la ou des organisations de l'événement, mais pas de la ville ou de la région.</em>"), max_length=364, null=True)
email = models.TextField(verbose_name=_("Message sur le courriel de confirmation d'inscription"),default=_("Bonjour #PRENOM #NOM.\n\nVotre inscription a bien été prise en compte (pour #NB) :\n- Ville : #VILLE\n- Date : #DATE\n- Cette rencontre aura lieu à #LIEU\n- Adresse IP : #IP\n\nPour annuler votre inscription, vous pouvez cliquer sur le lien suivant : \n#URL_DEL"), help_text=_("Les mots-clés suivants peuvent être utilisés :<br>#NOM : Nom de l'inscrit<br>#PRENOM : prénom de l'inscrit<br>#ASSO : Association<br>#VILLE : nom complet de la ville<br>#LIEU : Nom du lieu de la rencontre<br>#DATE : date de la rencontre<br>#NB : nombre d'inscrit<br>#IP : adresse IP de l'inscrit<br>#URL_DEL : adresse de désinscription"))
numday = models.IntegerField(verbose_name=_("Jour de la semaine"),null=False, choices=JOURS)
......@@ -88,7 +88,7 @@ class Inscrits(models.Model):
courriel = models.EmailField(verbose_name=_("Adresse de courriel de l'inscrit"), max_length=40, null=False)
nb = models.IntegerField(verbose_name=_("Nombre d'inscrits"),validators=[pas_plus_de_cinq], default=1)
num = models.CharField(verbose_name=_("Numéro du rendez-vous correspondant à la date AAAAMMJJ"), max_length=8, null=False)
ville = models.ForeignKey('Ville')
ville = models.ForeignKey('Ville', on_delete=models.PROTECT)
ip = models.CharField(verbose_name=_("Adresse IP"), max_length=40)
def __str__ (self):
......
#-*- coding: utf-8 -*-
from django.conf.urls import include, url
from django.urls import path
from fj.views import InscritsDelete, inscription, adl, adlxml
#from ponctu.views import InscritsDeletePonctu
......@@ -25,22 +26,22 @@ urlpatterns = [
# url(r'^$', 'fj.views.liste_villes', name='index'),
# Page de désinscription pour les régulières
url(r'^del/(?P<unique>.+)$', InscritsDelete.as_view(), name='inscrit_delete'),
path('del/<str:unique>', InscritsDelete.as_view(), name='inscrit_delete'),
# Génération du fichier XML pour la soumission à l'Agenda Du Libre
url(r'^agenda/(?P<code>.+)\.xml$',
path('agenda/<str:code>.xml',
adlxml,
name='adlxml'
),
#url(r'^(?P<code>.+)/stats$', 'fj.views.stats'),
# Page pour soumettre à l'Agenda du Libre
url(r'^agenda/(?P<code>.+)$',
path('agenda/<str:code>',
adl,
name='adl'
),
# Page d'une ville : inscription
url(r'^(?P<code>.+)$', inscription, name="voir_ville"),
path('<str:code>', inscription, name="voir_ville"),
]
......@@ -28,7 +28,7 @@ import uuid
from django import http
from django.views.generic import ListView, DeleteView
from django.core.urlresolvers import reverse_lazy
from django.urls import reverse_lazy
# Import de bidules pour le calcul de date
from dateutil.rrule import *
......@@ -235,16 +235,32 @@ def adl(request, code):
if form.is_valid():
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
script = BASE_DIR + '/adl-submit.py'
import locale
encoding = locale.getpreferredencoding()
print("encoding * * * * * * * * *")
print(encoding)
with tempfile.TemporaryDirectory() as tempdir:
# Écrire le fichier XML
print("1")
fichier = tempdir + "/" + str(time.time()) + ".xml"
f = open(fichier, "w", encoding="utf-8")
print("2")
f = open(fichier, "w", encoding="utf8")
#f = open(fichier, "w", encoding="ascii")
print("3")
print(request.POST['xml'])
print("4")
f.write(request.POST['xml'])
print("5")
f.close()
print("6")
#print("FICHIER :" +fichier)
#time.sleep(60)
print("7")
print("Le fichier ⇒ " + fichier)
time.sleep(60)
cmd = subprocess.Popen([script, '--submitter', request.POST['email'], '--file', fichier], stdout=subprocess.PIPE)
print("8")
resultat = cmd.communicate()[0]
print("9")
else:
form=AgendaForm()
......
......@@ -47,7 +47,7 @@ class Rencontre(models.Model):
verbose_name=_("Message plus court"), help_text=("Apparaît sur le résumé."),
)
email = models.TextField(verbose_name=_("Message sur le courriel de confirmation d'inscription"),default=_("Bonjour #PRENOM #NOM.\n\nVotre inscription (pour #NB) a bien été prise en compte :\n- Rencontre : #RENCONTRE\n- Date : #DATE\n- Lieu : #LIEU\n- Adresse IP : #IP\n\nPour annuler votre inscription, vous pouvez cliquer sur le lien suivant : \n#URL_DEL"), help_text=_("Les mots-clés suivants peuvent être utilisés :<br>#NOM : Nom de l'inscrit<br>#PRENOM : prénom de l'inscrit<br>#ASSO : Association<br>#RENCONTRE : nom complet de la rencontre<br>#DATE : date de la rencontre<br>#LIEU : Nom du lieu de la rencontre<br>#NB : nombre d'inscrit<br>#IP : adresse IP de l'inscrit<br>#URL_DEL : adresse de désinscription"))
lieu = models.ForeignKey(Lieu, null=True)
lieu = models.ForeignKey(Lieu, null=True, on_delete=models.PROTECT)
tag = models.CharField(verbose_name=_("Tags"), help_text=_("Utile pour la soumission à l'Agenda du Libre <br><em>Séparés par des espaces, ils ne peuvent contenir que des lettres minuscules, des chiffres et des tirets. Ajoutez le nom de la ou des organisations de l'événement, mais pas de la ville ou de la région.</em>"), max_length=364, null=True)
date = models.DateField(verbose_name=_("Date"),help_text=_('Saisissez donc la date !'), null=False)
debut = models.TimeField(verbose_name=_("Heure de début"), null=True, blank=True)
......@@ -72,7 +72,7 @@ class Inscrits(models.Model):
asso = models.CharField(verbose_name=_("Association"), max_length=150, null=False)
courriel = models.CharField(verbose_name=_("Adresse de courriel de l'inscrit"), max_length=40, null=False)
nb = models.IntegerField(verbose_name=_("Nombre d'inscrits"),validators=[pas_plus_de_cinq], default=1)
rencontre = models.ForeignKey('Rencontre')
rencontre = models.ForeignKey('Rencontre', on_delete=models.PROTECT)
ip = models.CharField(verbose_name=_("Adresse IP"), max_length=40)
def __str__ (self):
......
#-*- coding: utf-8 -*-
from django.conf.urls import include, url
from django.urls import path
from ponctu.views import InscritsDeletePonctu, inscription, adl, adlxml
from django.conf import settings
......@@ -19,21 +20,21 @@ urlpatterns = [
# url(r'^blog/', include('blog.urls')),
# Page de désinscription pour les ponctuelles
url(r'^del/?(?P<unique>.+)$', InscritsDeletePonctu.as_view(), name='inscrit_delete_ponctu'),
path('del/<str:unique>', InscritsDeletePonctu.as_view(), name='inscrit_delete_ponctu'),
# Génération du fichier XML pour la soumission à l'Agenda Du Libre
url(r'^agenda/(?P<code>.+)\.xml$',
adl,
path('agenda/<str:code>.xml',
adlxml,
name='adlxml'
),
# Page pour soumettre à l'Agenda du Libre
url(r'^agenda/(?P<code>.+)$',
path('agenda/<str:code>',
adl,
name='adl'
),
# Page d'une recontre : inscription
url(r'^(?P<code>.+)$', inscription, name="voir_rencontre"),
path('<str:code>', inscription, name="voir_rencontre"),
]
......@@ -30,7 +30,7 @@ import uuid
from django import http
from django.views.generic import ListView, DeleteView
from django.core.urlresolvers import reverse_lazy
from django.urls import reverse_lazy
# dates en français
import locale, time
......
Django==1.11.1
Werkzeug==0.12.1
django-extensions==1.7.9
django-geojson==2.10.0
argh==0.26.2
asn1crypto==0.24.0
attrs==17.4.0
Automat==0.6.0
cffi==1.11.2
configparser==3.5.0
constantly==15.1.0
cryptography==2.1.4
Django==2.0.1
django-extensions==1.9.8
django-geojson==2.11.0
django-ical==1.4
django-leaflet==0.22.0
django-tinymce==2.6.0
djangosecure==0.0.3
icalendar==3.10
jsonfield==2.0.1
python-dateutil==2.6.0
pytz==2017.2
six==1.10.0
django-leaflet==0.23.0
django-tinymce==2.7.0
djangosecure==0.0.6
future==0.16.0
hendrix==2.0.2
hyperlink==17.3.1
icalendar==4.0.0
idna==2.6
incremental==17.5.0
Jinja2==2.10
jsonfield==2.0.2
MarkupSafe==1.0
pathtools==0.1.2
pkg-resources==0.0.0
pyasn1==0.4.2
pyasn1-modules==0.2.1
pychalk==0.0.5
pycparser==2.18
pycrypto==2.6.1
pyOpenSSL==17.5.0
python-dateutil==2.6.1
pytz==2017.3
PyYAML==3.12
service-identity==17.0.0
six==1.11.0
Twisted==17.9.0
typing==3.6.2
watchdog==0.8.3
Werkzeug==0.14.1
zope.interface==4.4.3
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment