Skip to content

Commit

Permalink
Finalisation de l'annuaire
Browse files Browse the repository at this point in the history
Annuaire, version avec finitions #9
  • Loading branch information
Segolene-Albouy authored Mar 26, 2019
2 parents a40a170 + 1f0a0f5 commit 3881bc8
Show file tree
Hide file tree
Showing 3 changed files with 202 additions and 253 deletions.
85 changes: 44 additions & 41 deletions app/routes/routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@
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


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('/')
Expand All @@ -36,7 +36,6 @@ def accueil():
resultats=resultats)



@app.route("/recherche")
def recherche():
"""
Expand Down Expand Up @@ -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):
Expand Down Expand Up @@ -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/<int:docu_id>", methods=['GET', "POST"])
def document(docu_id):
"""
Expand Down Expand Up @@ -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"])
Expand All @@ -296,6 +294,7 @@ def login():
return redirect(next_page)
return render_template('pages/connexion.html', form=form)


@app.route('/logout')
def logout():
"""
Expand All @@ -305,6 +304,7 @@ def logout():
logout_user()
return redirect('/')


@app.route('/register', methods=['GET', 'POST'])
def register():
"""
Expand All @@ -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)
Expand All @@ -331,6 +331,7 @@ def register():
return redirect(url_for('login'))
return render_template('pages/inscription.html', form=form)


@app.route("/personne/<int:person_id>")
def person(person_id):
requested_person = Person.query.get(person_id)
Expand All @@ -340,22 +341,19 @@ def person(person_id):
person=requested_person)




@app.route("/annuaire")
def annuaire():
page = request.args.get("page", 1)
if isinstance(page, str) and page.isdigit():
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",
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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():
Expand All @@ -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()
Expand Down Expand Up @@ -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/<person_login>/edit_profile', methods=['GET', 'POST'])
Expand All @@ -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
Expand All @@ -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():
Expand All @@ -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
Expand All @@ -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():
"""
Expand All @@ -535,4 +539,3 @@ def before_request():
today = date.today()
current_user.person_last_seen = date.today()
db.session.commit()

Loading

0 comments on commit 3881bc8

Please sign in to comment.