diff --git a/ephetienn/.idea/dataSources.xml b/ephetienn/.idea/dataSources.xml index 0ef0a93..0563c94 100644 --- a/ephetienn/.idea/dataSources.xml +++ b/ephetienn/.idea/dataSources.xml @@ -7,5 +7,11 @@ org.sqlite.JDBC jdbc:sqlite:C:\Users\Simon\Documents\GitHub\devWeb\ephetienn\db.sqlite3 + + sqlite.xerial + true + org.sqlite.JDBC + jdbc:sqlite:C:\Users\François\Documents\GitHub\devWeb\ephetienn\db.sqlite3 + \ No newline at end of file diff --git a/ephetienn/menu/__pycache__/db_param.cpython-38.pyc b/ephetienn/menu/__pycache__/db_param.cpython-38.pyc index d51da86..2a1713e 100644 Binary files a/ephetienn/menu/__pycache__/db_param.cpython-38.pyc and b/ephetienn/menu/__pycache__/db_param.cpython-38.pyc differ diff --git a/ephetienn/menu/__pycache__/envoiemail.cpython-38.pyc b/ephetienn/menu/__pycache__/envoiemail.cpython-38.pyc index 0a53056..e185676 100644 Binary files a/ephetienn/menu/__pycache__/envoiemail.cpython-38.pyc and b/ephetienn/menu/__pycache__/envoiemail.cpython-38.pyc differ diff --git a/ephetienn/menu/__pycache__/forms.cpython-38.pyc b/ephetienn/menu/__pycache__/forms.cpython-38.pyc index aab182d..cda431f 100644 Binary files a/ephetienn/menu/__pycache__/forms.cpython-38.pyc and b/ephetienn/menu/__pycache__/forms.cpython-38.pyc differ diff --git a/ephetienn/menu/__pycache__/urls.cpython-38.pyc b/ephetienn/menu/__pycache__/urls.cpython-38.pyc index d7b1cab..7e2f948 100644 Binary files a/ephetienn/menu/__pycache__/urls.cpython-38.pyc and b/ephetienn/menu/__pycache__/urls.cpython-38.pyc differ diff --git a/ephetienn/menu/__pycache__/views.cpython-38.pyc b/ephetienn/menu/__pycache__/views.cpython-38.pyc index a1755ed..1d545e7 100644 Binary files a/ephetienn/menu/__pycache__/views.cpython-38.pyc and b/ephetienn/menu/__pycache__/views.cpython-38.pyc differ diff --git a/ephetienn/menu/db_param.py b/ephetienn/menu/db_param.py index 447aec9..b92a143 100644 --- a/ephetienn/menu/db_param.py +++ b/ephetienn/menu/db_param.py @@ -4,13 +4,14 @@ host="localhost", user="root", passwd="root", - database="db_ephetienn" + database="ephetienne" ) mycursor = mydb.cursor() def afficherInfoDb(nomDb): + element = [] sql = ("Select * from {0}").format(nomDb) mycursor.execute(sql) @@ -18,11 +19,14 @@ def afficherInfoDb(nomDb): myresult = mycursor.fetchall() for x in myresult: - print(x) + element = myresult + + + return element def insertUser(nom, mdp): - sql = "INSERT INTO user (name, pswd) VALUES (%s, %s)" + sql = "INSERT INTO user (userName, userPswd) VALUES (%s, %s)" val = (nom, mdp) mycursor.execute(sql, val) @@ -31,8 +35,8 @@ def insertUser(nom, mdp): print(mycursor.rowcount, "record inserted.") -def insertEvent(date, event, description): - sql = ("INSERT INTO event (dateEvent, nameEvent, descEvent) VALUES ('{0}', '{1}', '{2}')").format(date, event, description) +def insertEvent(event, date, description): + sql = ("INSERT INTO event (eventName, eventDate, eventDesc) VALUES ('{0}', '{1}', '{2}')").format(date, event, description) # date au format '2020-03-11' @@ -44,7 +48,7 @@ def insertEvent(date, event, description): print(mycursor.rowcount, "record inserted.") def insertInscription(nom, prenom, dateNaiss, numTel, emailParent, remarques): - sql = ("INSERT INTO inscrits (nom, prenom, dateNaiss, numTel, emailParent, remarques) VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}')").format(nom, prenom,dateNaiss, numTel, emailParent, remarques) + sql = ("INSERT INTO membre (membreNom, membrePrenom, dateNaiss, telParent, emailParent, remarques) VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}')").format(nom, prenom, dateNaiss, numTel, emailParent, remarques) # date au format '2020-03-11' print(sql) @@ -55,8 +59,6 @@ def insertInscription(nom, prenom, dateNaiss, numTel, emailParent, remarques): - - def updateUser(id): sql = ("UPDATE user SET name = 'Canyon' WHERE id = {0}").format(id) @@ -67,8 +69,8 @@ def updateUser(id): print(mycursor.rowcount, "record(s) affected") -def deleteData(nomDb, id): - sql = ("DELETE FROM {0} WHERE id = {1}").format(nomDb, id) +def deleteMembre(id): + sql = ("DELETE FROM membre WHERE idmembre = {0}").format(id) mycursor.execute(sql) @@ -76,5 +78,66 @@ def deleteData(nomDb, id): print(mycursor.rowcount, "record(s) deleted") +def selectUser(user, mdp): + sql = ("Select * from user") + + mycursor.execute(sql) + + myresult = mycursor.fetchall() + + for x in myresult: + print(x[1], x[2]) + if user == x[1] and mdp == x[2]: + return True + +def modifMembreDb(id): + sql = ("Select * from membre where idmembre = {0}").format(id) + mycursor.execute(sql) + + myresult = mycursor.fetchall() + + #debug + print(myresult) + + #debug + print(sql) + + return myresult + +def supEventDb(nom, date): + + sql = ("Delete from event Where eventName = '{0}' and eventDate = '{1}' ").format(nom, date) + mycursor.execute(sql) + print(sql) + + mydb.commit() + + print("effacement réussi") + + +def selectMembre(id): + sql = ("Select * from membre where idmembre = {0}").format(id) + mycursor.execute(sql) + + myresult = mycursor.fetchall() + + # debug + print(myresult) + + # debug + print(sql) + + return myresult + +def updateMembre(id, nom, prenom, dateNaiss, numTel, email, rem): + sql = ("UPDATE membre set membreNom = '{1}', membrePrenom = '{2}', dateNaiss= '{3}', telParent = '{4}', emailParent = '{5}', remarques = '{6}' where idmembre = {0}").format(id, nom, prenom, dateNaiss, numTel, email, rem) + + print(sql) + mycursor.execute(sql) + + mydb.commit() + + + diff --git a/ephetienn/menu/envoiemail.py b/ephetienn/menu/envoiemail.py index 94c7eca..65bec92 100644 --- a/ephetienn/menu/envoiemail.py +++ b/ephetienn/menu/envoiemail.py @@ -23,7 +23,7 @@ def envoiCopie(to, subject, message): msg['From'] = 'ephetiennetest@gmail.com' msg['To'] = to msg['Subject'] = 'copie de votre message - ' + subject - msg.attach(MIMEText(message)) + msg.attach(MIMEText("Voici la copie du message que vous nous avez envoyé: \n" + message)) mailserver = smtplib.SMTP('smtp.gmail.com', 587) mailserver.ehlo() mailserver.starttls() @@ -33,4 +33,16 @@ def envoiCopie(to, subject, message): mailserver.quit() - +def confirmInscription(to, nom, prenom): + msg = MIMEMultipart() + msg['From'] = 'ephetiennetest@gmail.com' + msg['To'] = to + msg['Subject'] = 'confirmation inscritpion - ' + nom + ' ' + prenom + msg.attach(MIMEText("nous avons bien reçu l'inscription de votre enfant")) + mailserver = smtplib.SMTP('smtp.gmail.com', 587) + mailserver.ehlo() + mailserver.starttls() + mailserver.ehlo() + mailserver.login('ephetiennetest@gmail.com', 'Ephet_RP003') + mailserver.sendmail('ephetiennetest@gmail.com', to, msg.as_string()) + mailserver.quit() \ No newline at end of file diff --git a/ephetienn/menu/forms.py b/ephetienn/menu/forms.py index 890fc74..77279a2 100644 --- a/ephetienn/menu/forms.py +++ b/ephetienn/menu/forms.py @@ -4,14 +4,14 @@ class formInscription(forms.Form): nom = forms.CharField(max_length=100) prenom = forms.CharField(max_length=100) - dateNaiss = forms.DateField(label="format 2020-03-21") - numeroTel = forms.CharField(label="numer telephone") + dateNaiss = forms.DateField(label="Date de Naissance (format 2020-03-21)") + numeroTel = forms.CharField(label="numero telephone") emailParents = forms.EmailField(label="Votre adresse e-mail") remarques = forms.CharField(max_length=1000) class formEvent(forms.Form): - date = forms.DateField(label="date de l'évenement") + date = forms.DateField(label="Date") nom = forms.CharField(max_length=45) description = forms.CharField(widget=forms.Textarea) @@ -21,3 +21,20 @@ class ContactForm(forms.Form): subject = forms.CharField(required=True) message = forms.CharField(widget=forms.Textarea, required=True) renvoi = forms.BooleanField(help_text="Cochez si vous souhaitez obtenir une copie du mail envoyé.", required=False) + +class connexion(forms.Form): + user = forms.CharField(required=True) + mdp = forms.CharField(max_length=32, widget=forms.PasswordInput) + +class formSupEvent(forms.Form): + nom = forms.CharField(required=True) + date = forms.DateField(label="format 2020-03-21") + +class modifierMembre(forms.Form): + id = forms.IntegerField(required=True) + nom = forms.CharField(max_length=100) + prenom = forms.CharField(max_length=100) + dateNaiss = forms.DateField(label="Date de Naissance: (format 2020-03-21)") + numeroTel = forms.CharField(label="numero telephone") + emailParents = forms.EmailField(label="Votre adresse e-mail") + remarques = forms.CharField(max_length=1000) \ No newline at end of file diff --git a/ephetienn/menu/urls.py b/ephetienn/menu/urls.py index f84ead5..5abf391 100644 --- a/ephetienn/menu/urls.py +++ b/ephetienn/menu/urls.py @@ -1,13 +1,19 @@ from . import views from django.urls import path -from .views import emailView, successView urlpatterns = [ path('inscription/', views.inscription, name='inscription'), path('insertEvent/', views.event, name='insertEvent'), + path('supEvent/', views.supEvent, name='supEvent'), path('acceuil/', views.home, name='acceuil'), - path('contact/', emailView, name='contact'), - path('success/', successView, name='success'), + path('contact/', views.emailView, name='contact'), + path('success/', views.successView, name='success'), + path('admin/', views.admin, name='admin'), + path('membre/', views.affMembre, name='membre'), + path('modifierMembre/', views.modifMembre, name="modifierMembre"), + path('supMembre/', views.supMembre, name='supMembre'), + path('affEvent/', views.affEvent, name='affEvent'), + ] diff --git a/ephetienn/menu/views.py b/ephetienn/menu/views.py index db41a95..c8aa3c3 100644 --- a/ephetienn/menu/views.py +++ b/ephetienn/menu/views.py @@ -1,12 +1,11 @@ -from .db_param import insertEvent -from .forms import formInscription -from .db_param import insertInscription -from .forms import formEvent +from .db_param import insertEvent, supEventDb +from .db_param import insertInscription, deleteMembre, updateMembre +from.db_param import afficherInfoDb, selectUser, modifMembreDb, updateUser, selectMembre from django.shortcuts import render, redirect -from .forms import ContactForm from django.core.mail import send_mail, BadHeaderError from django.http import HttpResponse -from .envoiemail import envoi, envoiCopie +from .envoiemail import envoi, envoiCopie, confirmInscription +from . import forms @@ -14,11 +13,13 @@ def home(request): return render(request, 'menu/acceuil.html') + def inscription(request): + # Construire le formulaire, soit avec les données postées, # soit vide si l'utilisateur accède pour la première fois # à la page. - form = formInscription(request.POST or None) + form = forms.formInscription(request.POST or None) # Nous vérifions que les données envoyées sont valides # Cette méthode renvoie False s'il n'y a pas de données # dans le formulaire ou qu'il contient des erreurs. @@ -33,19 +34,19 @@ def inscription(request): #envoie des donnees du formulaire vers la base de données insertInscription(nom, prenom, dateNaiss, numeroTel, emailParents, remarques) + confirmInscription(emailParents, nom, prenom) - # Nous pourrions ici envoyer l'e-mail grâce aux données - # que nous venons de récupérer envoi = True # Quoiqu'il arrive, on affiche la page du formulaire. + return render(request, 'menu/inscription.html', locals()) def event(request): # Construire le formulaire, soit avec les données postées, # soit vide si l'utilisateur accède pour la première fois # à la page. - form = formEvent(request.POST or None) + form = forms.formEvent(request.POST or None) # Nous vérifions que les données envoyées sont valides # Cette méthode renvoie False s'il n'y a pas de données # dans le formulaire ou qu'il contient des erreurs. @@ -58,8 +59,7 @@ def event(request): # envoie des donnees du formulaire vers la base de données insertEvent(date, nom, description) - # Nous pourrions ici envoyer l'e-mail grâce aux données - # que nous venons de récupérer + envoi = True # Quoiqu'il arrive, on affiche la page du formulaire. @@ -68,9 +68,9 @@ def event(request): def emailView(request): if request.method == 'GET': - form = ContactForm() + form = forms.ContactForm() else: - form = ContactForm(request.POST) + form = forms.ContactForm(request.POST) if form.is_valid(): subject = form.cleaned_data['subject'] from_email = form.cleaned_data['from_email'] @@ -90,3 +90,150 @@ def successView(request): return HttpResponse('Success! Thank you for your message.') +def admin(request): + + form = forms.connexion(request.POST or None) + # Nous vérifions que les données envoyées sont valides + # Cette méthode renvoie False s'il n'y a pas de données + # dans le formulaire ou qu'il contient des erreurs. + if form.is_valid(): + user = form.cleaned_data['user'] + mdp = form.cleaned_data['mdp'] + redirect = selectUser(user, mdp) + print(redirect) + + envoi = True + + if redirect == True: + return render(request, 'menu/admin.html', locals()) + + else : + return render(request, 'menu/acceuil.html', locals()) + + return render(request, 'menu/acceuil.html', locals()) + +def supEvent(request): + form = forms.formSupEvent(request.POST or None) + # Nous vérifions que les données envoyées sont valides + # Cette méthode renvoie False s'il n'y a pas de données + # dans le formulaire ou qu'il contient des erreurs. + if form.is_valid(): + nom = form.cleaned_data['nom'] + date = form.cleaned_data['date'] + + supEventDb(nom, date) + + envoi = True + + return render(request, "menu/supEvent.html", locals()) + +def supMembre(request): + form = forms.modifierMembre(request.POST or None) + # Nous vérifions que les données envoyées sont valides + # Cette méthode renvoie False s'il n'y a pas de données + # dans le formulaire ou qu'il contient des erreurs. + if form.is_valid(): + id = form.cleaned_data['id'] + + + deleteMembre(id) + + envoi = True + + return render(request, "menu/supMembre.html", locals()) + +def affMembre(request): + + afficher = affichageMembres() + + + return render(request, "menu/membre.html", locals()) + +def modifMembre(request): + + answer=[] + form = forms.modifierMembre(request.POST or None) + # Nous vérifions que les données envoyées sont valides + # Cette méthode renvoie False s'il n'y a pas de données + # dans le formulaire ou qu'il contient des erreurs. + if form.is_valid(): + id = form.cleaned_data['id'] + nom = form.cleaned_data['nom'] + prenom = form.cleaned_data['prenom'] + dateNaiss = form.cleaned_data['dateNaiss'] + numeroTel = form.cleaned_data['numeroTel'] + emailParents = form.cleaned_data['emailParents'] + remarques = form.cleaned_data['remarques'] + + answer = selectMembre(id) + print("answer: ", answer) + updateMembre(id, nom, prenom, dateNaiss, numeroTel, emailParents, remarques) + envoi = True + + afficher = answer + + + return render(request, "menu/modifierMembre.html", locals()) + +def affichageMembres(): + liste = [] + afficher= " " + + + + membres = afficherInfoDb('membre') + print(type(membres)) + print(membres) + + i = 0 + while i < len(membres): + print(membres[i][0]) + liste += [[membres[i][0], membres[i][1], membres[i][2]]] + i += 1 + + print(liste) + print(type(liste)) + + print("résultat désirer: ") + for id, nom, prenom in liste: + print("id: {} nom: {} prenom : {}".format(id, nom, prenom)) + afficher += ("id: {} nom: {} prenom : {} \n ".format(id, nom, prenom)) + print("test: ", afficher) + + + + return liste + +def affichageEvent(): + + #Print utiliser pour debug + eventAvenir = [] + afficher = " " + + events = afficherInfoDb('event') + print(type(events)) + print(events) + + i = 0 + while i < len(events): + print(events[i][0]) + eventAvenir += [[events[i][0], events[i][1], events[i][2]]] + i += 1 + + print("eventAvenir:", eventAvenir) + print(type(eventAvenir)) + + + print("résultat désirer: ") + for nom, date, description in eventAvenir: + afficher += ("nom: {} date: {} description : {} \n".format(nom, date, description)) + print("test: ", afficher) + + return eventAvenir + +def affEvent(request): + + eventAvenir = affichageEvent() + + return render(request, "menu/affEvent.html", locals()) + diff --git a/ephetienn/templates/menu/acceuil.html b/ephetienn/templates/menu/acceuil.html index 34ec423..0950e55 100644 --- a/ephetienn/templates/menu/acceuil.html +++ b/ephetienn/templates/menu/acceuil.html @@ -9,14 +9,23 @@

Bienvenue sur le site Ephetienne Rhode-Saint-Genè

paragraphe test

- -



+
+
+ + +

espace admin

+ +
+ {% csrf_token %} + {{ form.as_p }} + +
diff --git a/ephetienn/templates/menu/admin.html b/ephetienn/templates/menu/admin.html new file mode 100644 index 0000000..691e5b3 --- /dev/null +++ b/ephetienn/templates/menu/admin.html @@ -0,0 +1,20 @@ + + + + + admin + + + + +
+ +
+ +
+
+ + + + + \ No newline at end of file diff --git a/ephetienn/templates/menu/affEvent.html b/ephetienn/templates/menu/affEvent.html new file mode 100644 index 0000000..6b7b57e --- /dev/null +++ b/ephetienn/templates/menu/affEvent.html @@ -0,0 +1,12 @@ + + + + + Evénements à venir + + +

Evénements à venir :
{%for i in eventAvenir%} {{ i }}
{% endfor %}

+
+ + + \ No newline at end of file diff --git a/ephetienn/templates/menu/inscription.html b/ephetienn/templates/menu/inscription.html index 507bd88..0fda95e 100644 --- a/ephetienn/templates/menu/inscription.html +++ b/ephetienn/templates/menu/inscription.html @@ -6,7 +6,7 @@ {% if envoi %} - Votre inscription a bien été enregistrer! + Votre inscription a bien été enregistrer! Vous receverez un mail de confirmation d'ici peu. {% endif %} diff --git a/ephetienn/templates/menu/insertEvent.html b/ephetienn/templates/menu/insertEvent.html index 1bb461d..01bd75c 100644 --- a/ephetienn/templates/menu/insertEvent.html +++ b/ephetienn/templates/menu/insertEvent.html @@ -2,19 +2,26 @@ - Ajout Evénement + Evénement +

Page gestion des événements

{% if envoi %} Evénement bien enregistrer! {% endif %} -

Page d'insertion d'évenement

+
+

Ajout d'un nouvel évenement

Introduire l'événement:

-
- {% csrf_token %} - {{ form.as_p }} - -
+
+ {% csrf_token %} + {{ form.as_p }} + +
+
+ + + + \ No newline at end of file diff --git a/ephetienn/templates/menu/membre.html b/ephetienn/templates/menu/membre.html new file mode 100644 index 0000000..afbad3f --- /dev/null +++ b/ephetienn/templates/menu/membre.html @@ -0,0 +1,16 @@ + + + + + membres + + +

Liste des membres :
{%for i in afficher%} {{ i }}
{% endfor %}

+

quel choix voulez vou faire:

+ +

modifier:

+ +

Supprimer:

+ + + \ No newline at end of file diff --git a/ephetienn/templates/menu/modifierMembre.html b/ephetienn/templates/menu/modifierMembre.html new file mode 100644 index 0000000..995568b --- /dev/null +++ b/ephetienn/templates/menu/modifierMembre.html @@ -0,0 +1,24 @@ + + + + + Modifier un membre + + + +

Membre à modifier

+ {% if envoi %} +

ancienne données: {{ afficher }}

+ {% endif %} +
+

modification Membre

+

Introduire membre

+
+ {% csrf_token %} + {{ form.as_p }} + +
+
+ + + \ No newline at end of file diff --git a/ephetienn/templates/menu/supEvent.html b/ephetienn/templates/menu/supEvent.html new file mode 100644 index 0000000..33dc284 --- /dev/null +++ b/ephetienn/templates/menu/supEvent.html @@ -0,0 +1,23 @@ + + + + + Supprimer un événement + + +

Evénement à supprimer

+ {% if envoi %} + Evénement bien supprimer! + {% endif %} +
+

Supression événement

+

Introduire l'événement:

+
+ {% csrf_token %} + {{ form.as_p }} + +
+
+ + + \ No newline at end of file diff --git a/ephetienn/templates/menu/supMembre.html b/ephetienn/templates/menu/supMembre.html new file mode 100644 index 0000000..e03bad6 --- /dev/null +++ b/ephetienn/templates/menu/supMembre.html @@ -0,0 +1,22 @@ + + + + + Supprimer un membre + +

Membre à supprimer

+ {% if envoi %} + Membre bbien supprimer! + {% endif %} +
+

Supression Membre

+

Introduire l'événement:

+
+ {% csrf_token %} + {{ form.as_p }} + +
+
+ + + \ No newline at end of file