all routes ok

develop
gwen 2 years ago
parent 8f2df04dbe
commit ba693793d1

@ -8,10 +8,10 @@ with the pymongo library.
"""
import urllib.parse
from unidecode import unidecode # to remove accents in house and prince names in the urls
from pymongo import MongoClient
from .config import dbadmin, dbpassword, server_ip
from .helper import normalize_trigrams
# ______________________________________________________________________________
# database connexion
@ -36,7 +36,9 @@ helpers = actesdb["helpers"]
# storage extractor utilities
def make_acteid_from_route(house=None, prince=None, date_and_item=None):
"/acte/Anjou/Isabelle_i/1441_08_05a -> anj_isa_i_1441_08_05a"
"""
/acte/Anjou/Isabelle_i/1441_08_05a -> anj_isa_i_1441_08_05a
"""
return "_".join([trigram_house(house), bigram_prince(prince), date_and_item])
@ -72,10 +74,17 @@ def extract_prince_in_house(house, prince_code):
if pr['prince_code'] == prince_code:
return pr
def normalize_trigrams(trigram):
"""normalizes names, usefull for the uris routes
sample: Alençon -> Alencon
Orléans -> Orleans
"""
return {unidecode(value):key for key, value in trigram.items()}
# ______________________________________________________________________________
# in memory storage extracted 'meta' informations upon the database
# TODO: if it takes too much time at launch, put it in something like
# TODO: if it takes too much time at startup, jsut put it in something like
# a `flask init` procedure
helpers_dicts = helpers.find_one()
@ -83,10 +92,13 @@ house_trigram = helpers_dicts["house_trigram"]
prince_bigram = helpers_dicts["prince_bigram"]
princes_in_houses = extract_princes_in_houses()
"""
house_trigram sample:
{'Alencon': 'alb', 'Anjou': 'anj', 'Armagnac': 'arm', 'Bourbon': 'brb', 'Bretagne': 'bre', 'Bourgogne': 'brg', 'Berry': 'bry', 'Orleans': 'orl', 'Savoie': 'sav'}
"""
house_trigram = normalize_trigrams(house_trigram)
"""
prince_bigram sample:

@ -2,7 +2,6 @@
TODO: maybe all these calculations are to be put in the db storage
"""
from unidecode import unidecode # to remove accents in house and prince names in the urls
def make_timeitem_from_filename(filename):
"""
@ -11,14 +10,6 @@ def make_timeitem_from_filename(filename):
trs_fname = filename.split('_')
return "_".join(trs_fname[3:])
def normalize_trigrams(trigram):
"""normalizes names, usefull for the uris routes
sample: Alençon -> Alencon
Orléans -> Orleans
"""
return {unidecode(value):key for key, value in trigram.items()}
#from flask import abort
#
#def find_one_or_404(collection, **kwargs):

@ -110,12 +110,18 @@ def prince_corpus(house=None, prince=None):
}
]))
transformed_query = [pr['_id'] for pr in query]
invert_prince_bigram = {val: key for key, val in prince_bigram.items()}
#print(invert_prince_bigram)
# constructing the dateitem
for trs in transformed_query:
trs['timeitem'] = make_timeitem_from_filename(trs['filename'])
trs['dateitem'] = make_timeitem_from_filename(trs['filename'])
bigram, number = trs['prince_code'].split('_')
long_prince_bigram = inverted_prince_bigram(bigram) + '_' + number
return render_template("prince_corpus.html", house=house, duke_name=prince_long_name,
prince_code=prince_code.capitalize(), actes=transformed_query)
prince_name=long_prince_bigram.capitalize(), actes=transformed_query)
@main.route("/acte/<house>/<prince>/<dateitem>")
def acte(house=None, prince=None, dateitem=None):
@ -132,7 +138,7 @@ def acte(house=None, prince=None, dateitem=None):
"""
filestem = make_acteid_from_route(house, prince, dateitem)
result = actecol.find_one({'_id': filestem})
return render_template("acte.html", house=house, prince=prince,
return render_template("acte.html", house=house, prince=result.get('prince_code'),
#infos=None, place=None, doc=None, arch=None,
#diplo=diplo_t[0].replace("_", " "), state=state[0],
output_doc=result.get('xmlcontent'), name_prince=result.get("prince_name"),

@ -16,7 +16,7 @@
<h3>{{ acte['date'] }}</h3>
</div>
<div class="pboly">
<p class="chrono-p font-weight-bold"><a href="{{url_for('main.acte', house=house, prince=prince_code, dateitem=dateitem)}}">{{ acte['analysis'] }}.</a></p>
<p class="chrono-p font-weight-bold"><a href="{{url_for('main.acte', house=house.capitalize(), prince=prince_name, dateitem=acte['dateitem'])}}">{{ acte['analysis'] }}.</a></p>
<p style="margin-bottom: 5%">
{% if acte['place'] != 'NS' %}
<span class="badge badge-pill badge" style="background-color: #284AA7; color: white; font-size: small;">{{ acte['place'] }}</span>

Loading…
Cancel
Save