diff --git a/app/routes/routes.py b/app/routes/routes.py index 2c8de57..e49bcfc 100755 --- a/app/routes/routes.py +++ b/app/routes/routes.py @@ -7,8 +7,6 @@ from app.modeles.utilisateurs import LoginForm, RegistrationForm, EditProfileForm from datetime import date - - from ..app import app, db # on importe l'application provenant du fichier app.py un niveau au dessus dans l'arborescence des dossiers @@ -16,6 +14,8 @@ from ..constantes import RESULTS_PER_PAGE, DOSSIER_UPLOAD # on importe des constantes du fichier constantes.py un niveau au dessus dans l'arborescence des dossiers from ..modeles.donnees import Document, Authorship, Person, Tag, HasTag + + # on importe la classe Document du fichier donnees.py contenu dans le dossier modeles @app.route('/') @@ -36,7 +36,6 @@ def accueil(): resultats=resultats) - @app.route("/recherche") def recherche(): """ @@ -185,7 +184,6 @@ def recherche(): if date: query = Document.query.filter(Document.document_date.like("%{}%".format(date))) - resultats = query.order_by(Document.document_title.asc()).paginate(page=page, per_page=RESULTS_PER_PAGE) def lenDesc(desc): @@ -216,20 +214,21 @@ def lenTitle(title): return render_template( "pages/recherche.html", - resultats = resultats, - titre = titre, - keyword = motclef, - matiere = matiere, - matieres = matieres, - img = img, - txt = txt, - code = code, - autre = autre, - date = date, - lenDesc = lenDesc, - lenTitle = lenTitle + resultats=resultats, + titre=titre, + keyword=motclef, + matiere=matiere, + matieres=matieres, + img=img, + txt=txt, + code=code, + autre=autre, + date=date, + lenDesc=lenDesc, + lenTitle=lenTitle ) + @app.route("/document/", methods=['GET', "POST"]) def document(docu_id): """ @@ -268,11 +267,10 @@ def document(docu_id): if unfav: Person.remove_docu_to_favorites(current_user, requested_docu) - return render_template("pages/document.html", - docu = requested_docu, - auteur = auteur, - current_user = current_user) + docu=requested_docu, + auteur=auteur, + current_user=current_user) @app.route('/login', methods=['GET', "POST"]) @@ -296,6 +294,7 @@ def login(): return redirect(next_page) return render_template('pages/connexion.html', form=form) + @app.route('/logout') def logout(): """ @@ -305,6 +304,7 @@ def logout(): logout_user() return redirect('/') + @app.route('/register', methods=['GET', 'POST']) def register(): """ @@ -322,7 +322,7 @@ def register(): person_git=form.person_git.data, person_linkedIn=form.person_linkedIn.data, person_promotion=form.person_promotion.data, - person_last_seen= date.today(), + person_last_seen=date.today(), person_is_teacher=form.person_is_teacher.data) user.set_password(form.person_password.data) db.session.add(user) @@ -331,6 +331,7 @@ def register(): return redirect(url_for('login')) return render_template('pages/inscription.html', form=form) + @app.route("/personne/") def person(person_id): requested_person = Person.query.get(person_id) @@ -340,8 +341,6 @@ def person(person_id): person=requested_person) - - @app.route("/annuaire") def annuaire(): page = request.args.get("page", 1) @@ -349,13 +348,12 @@ def annuaire(): page = int(page) else: page = 1 - # reprise dans les 4 dernières lignes de code du code utilisé pour la page recherche ; permet à la fonction - # paginate de fonctionner + # fonction paginate permet de paginer car l'annuaire comptera plusieurs entrées resultats = [] - resultats = Person.query.order_by(Person.person_name.asc()).paginate(page=page, per_page=RESULTS_PER_PAGE) - # idée : création d'une liste vide, résultats dans laquelle se trouvent toutes les entrées person, requêtées par query - # les résultats seront affichés par ordre alphabtique, grâce à order by et asc + resultats = Person.query.order_by(Person.person_name.asc()).all() + # création d'une liste vide, resultats dans laquelle se trouvent toutes les entrées person, requêtées par query + # les résultats seront affichés par ordre alphabtique, grâce à order by et asc return render_template( "pages/annuaire.html", @@ -365,7 +363,9 @@ def annuaire(): def extension_ok(nom_fichier=""): """ Renvoie True si le fichier possède une extension valide. """ return '.' in nom_fichier and nom_fichier.rsplit('.', 1)[1] in ('txt', 'pdf', 'csv', 'doc', 'jpg', 'json', - 'jpeg', 'gif', 'bmp', 'png', 'word', 'xml', 'py', 'odt') + 'jpeg', 'gif', 'bmp', 'png', 'word', 'xml', 'py', + 'odt') + @app.route('/upload', methods=['GET', 'POST']) @login_required @@ -383,10 +383,10 @@ def upload(): # dans f, on stocke le fichier uploadé if f: # on vérifie qu'un fichier a bien été envoyé if extension_ok(f.filename): # on vérifie que son extension est valide - nom = secure_filename(f.filename) # on stocke le nom de fichier dans nom - f.save(DOSSIER_UPLOAD + nom) # et on l'enregistre dans le dossier d'upload + nom = secure_filename(f.filename) # on stocke le nom de fichier dans nom + f.save(DOSSIER_UPLOAD + nom) # et on l'enregistre dans le dossier d'upload - downloadlink = url_for('static', filename = "uploads/" + nom) + downloadlink = url_for('static', filename="uploads/" + nom) # on stocke le lien de stockage sur le serveur du fichier uploadé docu = Document.add_doc(title, description, format, date, matiere, downloadlink) # on ajoute le document à la BDD @@ -400,8 +400,8 @@ def upload(): else: flash(u'Vous avez oublié le fichier !', 'error') + return render_template('pages/import.html') # , form=form) - return render_template('pages/import.html') #, form=form) @app.route("/upped") def upped(): @@ -421,7 +421,7 @@ def user(person_login): :param person_login: login enregistré dans la base de données (Person.person_login) :return: Page de profile qui correspond, dans l'URL, au Login demandé """ - user = Person.query.filter_by(person_login=person_login).first_or_404() #si le login demandé n'existe pas + user = Person.query.filter_by(person_login=person_login).first_or_404() # si le login demandé n'existe pas # # # RÉCUPÉRATION DE LA LISTE DES DOCUMENTS MIS EN FAVORIS PAR L'UTILISATEUR all_docu = Document.query.all() @@ -458,10 +458,12 @@ def lenTitle(title): return render_template('pages/profile.html', user=user, - docus = docus, - lenTitle = lenTitle, - lenDesc = lenDesc) -#permet de générer une page profil pour chaque login enregistré (différent des entrées BDD : car tout le monde dans + docus=docus, + lenTitle=lenTitle, + lenDesc=lenDesc) + + +# permet de générer une page profil pour chaque login enregistré (différent des entrées BDD : car tout le monde dans # la base de données n'a pas de profil enregistré @app.route('/admin//edit_profile', methods=['GET', 'POST']) @@ -480,7 +482,7 @@ def admin(person_login): user.person_description = form.person_description.data user.person_is_admin = form.person_is_admin.data db.session.commit() - return redirect(url_for('user', person_login = person_login)) + return redirect(url_for('user', person_login=person_login)) elif request.method == 'GET': form.person_login.data = user.person_login form.person_email.data = user.person_email @@ -493,6 +495,7 @@ def admin(person_login): form.person_is_admin.data = user.person_is_admin return render_template('pages/admin.html', form=form) + @app.route('/edit_profile', methods=['GET', 'POST']) @login_required def edit_profile(): @@ -514,7 +517,7 @@ def edit_profile(): flash('Changement(s) sauvegardé(s)') return redirect(url_for('user', person_login=current_user.person_login)) elif request.method == 'GET': - #Si le formulaire n'est pas soumis ni modifier, l'utilisateur verra ses données enregistrées dans la BDD + # Si le formulaire n'est pas soumis ni modifier, l'utilisateur verra ses données enregistrées dans la BDD form.person_login.data = current_user.person_login form.person_email.data = current_user.person_email form.person_name.data = current_user.person_name @@ -525,6 +528,7 @@ def edit_profile(): form.person_description.data = current_user.person_description return render_template('pages/edit_profile.html', form=form) + @app.before_request def before_request(): """ @@ -535,4 +539,3 @@ def before_request(): today = date.today() current_user.person_last_seen = date.today() db.session.commit() - diff --git a/app/templates/pages/annuaire.html b/app/templates/pages/annuaire.html index 593608e..d333d51 100644 --- a/app/templates/pages/annuaire.html +++ b/app/templates/pages/annuaire.html @@ -4,115 +4,89 @@ {% block corps %} - - + + -
- {% if current_user.is_anonymous %} -
+
+ {% if current_user.is_anonymous %} +
- -

Vous devez être connecté·e pour accéder à l'annuaire.


+ +

Vous devez être connecté·e pour accéder à l'annuaire.


- Inscription - Connexion - - -{% else %} -
-
-
-

Annuaire du master TNAH de l'École nationale des chartes

-

Retrouvez les informations de contact des étudiant·e·s du Master TNAH inscrit·e·s sur TNAHBox.

-

Il y a {{resultats.total}} personnes inscrites sur l'annuaire TNAH :

- - - - - -
-
- -
-
- -
-{% for found_person in resultats.items %} -
-
- - {% if found_person.person_is_teacher %} - - {% else %} - - {% endif %} - - - - {{found_person.person_firstName}} {{found_person.person_name}} - - - - -
- - -
-
- {% if found_person.person_git %} - gitHub - {% else %} - - {% endif %} - {% if found_person.person_linkedIn %} - LinkedIn - {% else %} - - {% endif %} - + Inscription + Connexion + +
+ {% else %} +
+
+

Annuaire du master TNAH de l'École nationale des chartes

+

Retrouvez les informations de contact des étudiant·e·s du Master TNAH inscrit·e·s sur TNAHBox.

+

Il y a {{resultats|length}} personnes inscrites sur l'annuaire TNAH :

+ + + +
+
+ +
+
+ +
+ {% for found_person in resultats %} +
+
+ + {% if found_person.person_is_teacher %} + + {% else %} + + {% endif %} + + + + {{found_person.person_firstName}} {{found_person.person_name}} + + + + +
+
+
+ {% if found_person.person_git %} + GitHub + {% else %} + + {% endif %} + {% if found_person.person_linkedIn %} + LinkedIn + {% else %} + + {% endif %} + +
+ + {% if found_person.person_promotion %} + ({{found_person.person_promotion}}) + {% endif %} + + +
+
+
+
+ {% endfor %} + +
- - {% if found_person.person_promotion %} - ({{found_person.person_promotion}}) - {% else %} - - {% endif %} - - -
-
-
- {% endfor %} - -
-
-
- -{% endif %} - -
+ {% endif %} - {% include "partials/retour_accueil.html" %} {% endblock %} diff --git a/app/templates/pages/person.html b/app/templates/pages/person.html index b6e7cdb..09a28ef 100644 --- a/app/templates/pages/person.html +++ b/app/templates/pages/person.html @@ -1,144 +1,116 @@ {% extends "conteneur.html" %} {% block titre %} - {%if person %}| Personne : {{person.person_name}} {% endif %} + {%if person %}| Personne : {{person.person_name}} {% endif %} {% endblock %} - {% block corps %} - -
- -
adresse mail :
{{person.person_email}}
-
linkedIn :
{{person.person_linkedIn}}
-
CV :
{{person.person_cv}}
-
git :
{{person.person_git}}
-
promotion :
{{person.person_promotion}}
-
- {% else %} -

La base de données est en cours de constitution : n'hésitez pas à vous inscrire !

- {% endif %} -

Retour à l'accueil

---> - - - - -{% if current_user.is_anonymous %} -
- - -

Vous devez être connecté·e pour accéder à cette page.


- - Inscription - Connexion - + {% if current_user.is_anonymous %} +
+ +

Vous devez être connecté·e pour accéder à cette page.


+ Inscription + Connexion + +
+ + {% else %} + +
+ +
+

{{person.person_firstName}} {{person.person_name}}

+ + {% if person.person_promotion %} +
Promotion :
+
{{person.person_promotion}}
+ + {% endif %} + + {% if person_description %} +
Description :
+ {{person_description}} + {% else %} + Aucune description n'a été renseignée. + {% endif %} + + {% if person.person_login %} + +
Profil :
+
{{person.person_login}}
+ + {% endif %} -
- -{% else %} - -
- -
-

{{person.person_firstName}} {{person.person_name}}

- -
Promotion
- {% if person.person_promotion %} -
{{person.person_promotion}}
- {% else %} -
Le promotion de {{person.person_firstName}} {{person.person_name}} n'a pas été renseignée.
- {% endif %} -
CV
- {% if person.person_cv %} -
{{person.person_cv}}
- {% else %} -
Le CV de {{person.person_firstName}} {{person.person_name}} n'a pas été rempli.
- {% endif %} - -
-
- -
+
+
-
-

Contact

-
    -
  1. GitHub : +
+
+

Contact

+
    +
  1. GitHub : {% if person.person_git %} {{(person.person_git).replace("https://github.com/","")|safe}} - + {% else %} Aucun compte GitHub n'a été renseigné. {% endif %} -
  2. -
  3. LinkedIn : +
  4. +
  5. LinkedIn : {% if person.person_linkedIn %} {{person.person_firstName}} {{person.person_name}} {% else %} Aucun compte LinkedIn n'a été renseigné. {% endif %} -
  6. -
  7. Adresse email : - {% if person.person_email %} +
  8. +
  9. Adresse email : + {% if person.person_email %} {{person.person_email}} - {% else %} - Aucune adresse mail n'a été renseignée.
    Essayez : {{person.person_firstName}}.{{person.person_name}}@chartes.psl.eu
    - {% endif %} -
  10. - -
-
+ {% else %} + Aucune adresse mail n'a été renseignée.
Essayez : {{person.person_firstName}}.{{person.person_name}}@chartes.psl.eu
+ {% endif %} + + + +
+
+
+
+
CV :
+ {% if person.person_cv %} +
CV de {{person.person_firstName}} {{person.person_name}}
+ + {% else %} +
Le CV de {{person.person_firstName}} {{person.person_name}} n'est pas disponible.
+ {% endif %}
-
-
-
Description :
- - {% if person_description %} -

{{person_description}}

- {% else %} - Aucune description n'a été renseignée. - {% endif %} - - {% if person.person_login %} - -
Profil :
- {{person.person_login}} - - {% endif %} - - -
-
-
Documents ajoutés :
- {% if person.created_document %} -

{{person.person_firstName}} {{person.person_name}} a ajouté {{person.created_document.count(document)+1}} document(s) dans TNAHBox :

- - {% for document in person.created_document %} -
{{document.document_title}}
- {% endfor %} - {% else %} -
{{person.person_firstName}} {{person.person_name}} n'a ajouté aucun document à TNAHBox.
- {% endif %} -
+
+
Documents ajoutés :
+ {% if person.created_document %} +

{{person.person_firstName}} {{person.person_name}} a ajouté {{person.created_document|length}} document(s) dans TNAHBox :

+ + {% for document in person.created_document %} +
{{document.document_title}}
+ {% endfor %} + + {% else %} +
{{person.person_firstName}} {{person.person_name}} n'a ajouté aucun document à TNAHBox.
+ {% endif %}
-{% endif %} +
+ + {% endif %} -