From 7117709a9629168d5bdddbad6caa094c486f39c8 Mon Sep 17 00:00:00 2001 From: jgenero Date: Mon, 24 Oct 2022 11:46:28 +0200 Subject: [PATCH] handle multiple transcribers --- app/cmd/db.py | 12 ++++++------ app/routes.py | 11 +++++------ app/templates/acte.html | 6 +++++- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/app/cmd/db.py b/app/cmd/db.py index 2c2aebb..b5466ca 100644 --- a/app/cmd/db.py +++ b/app/cmd/db.py @@ -104,9 +104,9 @@ def __find_transcribers(folder: str)-> None: for acte in sorted(os.listdir(folder)): if acte.endswith(".xml"): soup = make_soup(os.path.join(folder, acte)) - transcriber = soup.fileDesc.titleStmt.respStmt - for name in transcriber.find_all("name"): - transcribers.append(name.text) + transcriber = soup.fileDesc.titleStmt + for item in transcriber.find_all("respStmt"): + transcribers.append(item.find("name").text) return set(transcribers) def _create_agent(name_lst: list)-> None: @@ -163,10 +163,10 @@ def _create_transcribed_by(folder: str)-> None: soup = make_soup(os.path.join(folder, acte)) acte_q = [t.id_acte for t in Acte.select().where( Acte.filename == acte.replace(".xml", ""))] - transcriber = soup.fileDesc.titleStmt.respStmt - for name in transcriber.find_all("name"): + transcriber = soup.fileDesc.titleStmt + for item in transcriber.find_all("respStmt"): agent_q = [t.id_agent for t in Agent.select().where( - Agent.agent_name == name.text)] + Agent.agent_name == item.find("name").text)] transcribed.append({"transcr_acte": acte_q[0], "transcr_agent": agent_q[0]}) for data in tqdm(transcribed, desc="Populating Transcribed_by..."): diff --git a/app/routes.py b/app/routes.py index 3de1a2c..c84a829 100644 --- a/app/routes.py +++ b/app/routes.py @@ -86,11 +86,10 @@ def acte(house=None, prince=None, acte_id=None): acte_diplo_type = t.diplo_type_acte - q_agent = [t.agent_name for t in Agent.select().where( - Agent.id_agent == - [t.transcr_agent for t in Transcribed_by.select().where( - Transcribed_by.transcr_acte == acte_number)][0])] - transcriber = q_agent[0] + transcribers = [[t.agent_name for t in Agent.select().where( + Agent.id_agent == name_id)][0] + for name_id in [t.transcr_agent for t in Transcribed_by.select().where( + Transcribed_by.transcr_acte == acte_number)]] place = [t.placename for t in Production_place.select().where( Production_place.id_place == acte_place_id)] @@ -129,7 +128,7 @@ def acte(house=None, prince=None, acte_id=None): infos=q_acte, place=place[0], doc=doc[0][0], arch=inst[0], diplo=diplo_t[0].replace("_", " "), state=state[0], output_doc=output_doc, name_prince=prince_name[0], - transcriber=transcriber) + transcribers=transcribers) @main.route("/contact") def contact() -> t.Text: diff --git a/app/templates/acte.html b/app/templates/acte.html index 1f657cd..8346a1f 100644 --- a/app/templates/acte.html +++ b/app/templates/acte.html @@ -17,6 +17,10 @@

{{state}}, {{diplo}}, {{arch}}, {{doc}}, {{item.ref_acte}}.

{% endfor %}--> {{output_doc|safe}} -

Transcription : {{transcriber}}.

+ +

+ Transcription : {% for name in transcribers %}{% if name == transcribers[0] %}{{name}}{% elif name == transcribers[-1] %} et {{name}}{% else %}, {{name}}{% endif %}{% endfor %}. +

+ {% endblock %} \ No newline at end of file