Marin/pages.py

119 lines
4.3 KiB
Python

from flask import render_template
import definitions as lib
from difflib import SequenceMatcher
dbname = "site.db"
# Fonctions qui seront associées à des URLs
def main():
return render_template("index.html")
def modifs():
return render_template("modification.html")
def error():
return render_template("error.html")
def bateau(idbateau):
dico = {}
dico["NomBateau"] = "Le Bateau"
dico["nom"] = "Le constructeur"
dico["date_naissance"] = "Aujourd'hui"
dico["date_mort"] = "Demain"
dico["HistoireBateau"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam at odio cursus, rutrum odio non, dignissim risus. Pellentesque non varius ante. Vivamus scelerisque pulvinar mauris, nec imperdiet ante mattis et."
result = lib.ex_sql(dbname,"SELECT * FROM bateau WHERE ship_id=?",(idbateau,))
if len(result)>=1:
result = result[0]
dico["nom"] = result["nom"]
print(result)
dico["date_naissance"] = result["date_naissance"]
dico["date_mort"] = result["date_mort"]
dico["Histoire"] = result["histoire"]
dico["dimensions"] = result["dimension"]
return render_template("bateau.html",**dico)
else:
return error()
def expeditions(idexpedition):
dico = {}
dico["Nom"] = "joe"
dico["Date"] = "quatrieme univers"
result = lib.ex_sql(dbname,"SELECT * FROM expedition WHERE expedition_id=?",(idexpedition,))
if len(result) >= 1:
result = result[0]
dico["nom"] = result["nom"]
dico["date"] = result["date"]
return render_template("expedition.html",**dico)
else:
return error()
def sauveteur(idsauveteur):
dico = {}
dico["nom"] = "John"
dico["prenom"] = "Doe"
dico["nb_sauvetages"] = 666
dico["nb_sauves"] = 666
dico["naissance"] = "vie"
dico["deces"] = "mort"
dico["gratifications"] = 1
dico["description"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam at odio cursus, rutrum odio non, dignissim risus. Pellentesque non varius ante. Vivamus scelerisque pulvinar mauris, nec imperdiet ante mattis et."
dico["expeditions"] = []
result = lib.ex_sql(dbname,"SELECT * FROM sauveteur WHERE personal_id=?",(idsauveteur,))
if len(result)==1:
result = result[0]
print(result["date_naissance"])
print(result["date_mort"])
dico["nom"] = result["nom"]
dico["prenom"] = result["prenom"]
dico["date_naissance"] = result["date_naissance"]
dico["date_deces"] = result["date_mort"]
dico["description"] = result["description"]
print(dico["naissance"])
print(dico["deces"])
ids = lib.ex_sql(dbname,"SELECT * FROM mission WHERE personal_id=?",(idsauveteur,))
dico["nb_sauvetages"] = 0
dico["nb_sauves"] = 0
for id in ids:
nbs = lib.ex_sql(dbname,"SELECT * FROM sauvee WHERE expedition_id=?",(id["expedition_id"],))
dico["nb_sauvetages"]+=1
dico["nb_sauves"] += len(nbs)
return render_template("sauveteur.html",**dico)
else:
return error()
def search(texte):
sauveurs = lib.ex_sql(dbname,"SELECT * FROM sauveteur")
bateaux = lib.ex_sql(dbname,"SELECT * FROM bateau")
expeditions = lib.ex_sql(dbname,"SELECT * FROM expedition")
totals = sauveurs+bateaux+expeditions
for i in totals:
i["score"] = 0
for key in i.keys():
if key!="score":
r = 1
if key=="nom":
r = 3
i["score"] += SequenceMatcher(None, texte.lower(), str(i[key]).lower()).ratio()*r
print(i["nom"],i["score"])
totals.sort(key=lambda x : x["score"])
totals.reverse()
totals = totals[:8]
results = []
for i in totals:
r = {}
if "ship_id" in i.keys():
r["lien"] = "/bateaux/"+str(i["ship_id"])
n = "Bateau"
elif "personal_id" in i.keys():
r["lien"] = "/sauveteurs/"+str(i["personal_id"])
n = "Sauveteurs"
elif "expedition_id" in i.keys():
r["lien"] = "/expeditions/"+str(i["expedition_id"])
n = "Expeditions"
r["nom"] = i["nom"]+" - "+n
results.append(r)
return render_template("searchresults.html",liste=results)