|
|
|
|
|
import typing as t
|
|
|
|
|
|
import urllib.parse
|
|
|
|
|
|
|
|
|
|
|
|
from flask import Blueprint, abort, render_template, request, send_from_directory
|
|
|
|
|
|
from pymongo import MongoClient
|
|
|
|
|
|
|
|
|
|
|
|
from .config import dbadmin, dbpassword, server_ip
|
|
|
|
|
|
from .helper import find_one_or_404
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
main = Blueprint("main", __name__, url_prefix="/")
|
|
|
|
|
|
|
|
|
|
|
|
# database connexion
|
|
|
|
|
|
username = urllib.parse.quote_plus(dbadmin)
|
|
|
|
|
|
password = urllib.parse.quote_plus(dbpassword)
|
|
|
|
|
|
dbclient = MongoClient(f'mongodb://{username}:{password}@{server_ip}:27017')
|
|
|
|
|
|
actesdb = dbclient["actesdb"]
|
|
|
|
|
|
housecol = actesdb["house"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@main.route("/")
|
|
|
|
|
|
def home():
|
|
|
|
|
|
"""home route"""
|
|
|
|
|
|
return render_template("home.html")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@main.route("/about/")
|
|
|
|
|
|
def about():
|
|
|
|
|
|
"""about route"""
|
|
|
|
|
|
return render_template("about.html")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@main.route("/actes/")
|
|
|
|
|
|
def corpora_all():
|
|
|
|
|
|
"""copora all
|
|
|
|
|
|
|
|
|
|
|
|
lists houses
|
|
|
|
|
|
sample_house_names = ["Bourbon", "Berry", "Anjou", ...]
|
|
|
|
|
|
"""
|
|
|
|
|
|
houses = list(housecol.find())
|
|
|
|
|
|
return render_template("corpora_all.html", houses=houses)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@main.route("/actes/<house>") # dont put a slash at the end
|
|
|
|
|
|
def actes(house):
|
|
|
|
|
|
"""actes route"""
|
|
|
|
|
|
#house = "Berry"
|
|
|
|
|
|
# FIXME faire des princes correspondant à la maison (house) sélectionnée
|
|
|
|
|
|
# FIXME : supprimer ces ids
|
|
|
|
|
|
# Corpus > Bourbon
|
|
|
|
|
|
princes = [("Charles Ier de Bourbon", 36), ("Agnès de Bourgogne", 38),
|
|
|
|
|
|
("Marie de Berry", 39)]
|
|
|
|
|
|
return render_template("corpus.html", house=house, princes=princes)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# FIXME SLUGGIFY the house
|
|
|
|
|
|
# FIXME supprimer cet id de prince et remplacer par le slug du prince
|
|
|
|
|
|
@main.route("/actes/<house>/<prince>") # don't put a slash at the end
|
|
|
|
|
|
def prince_corpus(house=None, prince=None):
|
|
|
|
|
|
"""copora prince, **timeline view**"""
|
|
|
|
|
|
return "FIXME"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# FIXME : slugigy this route (remove acte_id) (prince and acte)
|
|
|
|
|
|
# FIXME: isn't it /acte/house/prince/slug instead of /acte/prince/slug ?
|
|
|
|
|
|
@main.route("/acte/<prince>/<acte_id>") # don't put a slash at the end
|
|
|
|
|
|
def acte(house=None, prince=None, acte_id=None):
|
|
|
|
|
|
"""specific prince's acte"""
|
|
|
|
|
|
return "FIXME"
|
|
|
|
|
|
|
|
|
|
|
|
@main.route("/contact")
|
|
|
|
|
|
def contact() -> t.Text:
|
|
|
|
|
|
"""Displays the Contact page"""
|
|
|
|
|
|
return render_template("contact.html", title="Contact")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@main.route("/termsofservice")
|
|
|
|
|
|
def terms() -> t.Text:
|
|
|
|
|
|
"""Displaysthe T&C page."""
|
|
|
|
|
|
return render_template("terms.html", title="Mentions légales")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@main.route("/privacy")
|
|
|
|
|
|
def privacy() -> t.Text:
|
|
|
|
|
|
"""Displays the privacy policy page."""
|
|
|
|
|
|
return render_template("privacy.html", title="Politique de confidentialité")
|