Skip to content
Snippets Groups Projects

feat: bugs fixed

Open bruno.lenzi requested to merge changes_anthony into main
2 files
+ 73
57
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 64
54
@@ -101,29 +101,32 @@ def page3():
Ci-dessous vous trouverez une proposition de collection de documents que vous pouvez modifier si besoin."
)
def set_values(row):
# Pre-defined or default values
doc_name = st.session_state.get(f"{pdf_selected}/doc_name{row}", f"Nom_Document_{row+1}")
def set_values():
nrows = pdf_state["info_pdf"]["info_pdfstruct"]["nrows"]
for row in range(nrows):
# Pre-defined or default values
doc_name = st.session_state.get(f"{pdf_selected}/doc_name{row}", f"Nom_Document_{row+1}")
if row < nrows - 2:
last = pdf_state["info_docs"][row + 1]["first"] - 1
elif (row - 1) >= 0 and pdf_state["info_docs"][row - 1]["first"] + 1 < pdf_state["info_pdf"][
"doc_page_count"
]:
last = pdf_state["info_docs"][row - 1]["first"] + 1
else:
last = pdf_state["info_pdf"]["doc_page_count"]
if row < nrows - 1:
last = pdf_state["info_docs"][row + 1]["first"] - 1
elif (row - 1) >= 0 and pdf_state["info_docs"][row - 1]["first"] + 1 < pdf_state["info_pdf"]["doc_page_count"]:
last = pdf_state["info_docs"][row - 1]["first"] + 1
else:
last = pdf_state["info_pdf"]["doc_page_count"]
first = st.session_state.get(
f"page_min{row}", pdf_state["info_docs"][row]["first"] if row < nrows - 1 else last
)
keep = st.session_state.get(f"keep{row}", "")
pdf_state["info_docs"][row] = {
"doc_name": doc_name,
"first": first,
"keep": keep,
"doc_state": "Document acceptable 🟢",
"flagged": "",
}
first = st.session_state.get(
f"page_min{row}", pdf_state["info_docs"][row]["first"] if row < nrows - 1 else last
)
keep = st.session_state.get(f"keep{row}", "")
pdf_state["info_docs"][row] = {
"doc_name": doc_name,
"first": first,
"keep": keep,
"doc_state": "Document acceptable 🟢",
"flagged": "",
}
st.session_state[f"{pdf_selected}/validated"] = False
st.session_state["run_validated"] = False
st.session_state["unrun_validated"] = False
@@ -141,17 +144,10 @@ def page3():
page_max = pdf_state["info_docs"][row + 1]["first"]
toc1 = get_toc_doc(toc, page_min, page_max, doc_name, keep)
toc2 = get_toc_doc(toc, page_min, page_max, doc_name, keep)
toc3 = get_toc_doc(toc, page_min, page_max, doc_name, keep)
# if st.session_state.modif:
# for level, title, page, dest, keep in toc1:
# if isinstance(dest["to"], str):
# point = dest["to"]
# bbox = fitz.Point()
# bbox.x = float(point[point.find("(") + 1 : point.find(",")])
# bbox.y = float(point[point.find(" ") + 1 : point.find(") ")])
# dest["to"] = bbox
pdf_state["toc_docs"][doc_name] = {"original_toc": toc1, "toc_doc": toc1, "validated_toc": toc1}
pdf_state["toc_docs"][doc_name] = {"original_toc": toc1, "toc_doc": toc2, "validated_toc": toc3}
# Check if titles do not have the same name and page ranges are coherent
errors = bool(warning_same_title(pdf_state, pdf_selected) or warning_page_range(pdf_state, pdf_selected))
@@ -164,12 +160,13 @@ def page3():
def add_row():
pdf_state["info_pdf"]["info_pdfstruct"]["nrows"] += 1
set_values(pdf_state["info_pdf"]["info_pdfstruct"]["nrows"] - 1)
set_values()
st.session_state[f"{pdf_selected}/validated"] = False
def remove_row():
del pdf_state["info_docs"][pdf_state["info_pdf"]["info_pdfstruct"]["nrows"] - 1]
pdf_state["info_pdf"]["info_pdfstruct"]["nrows"] -= 1
set_values()
st.session_state[f"{pdf_selected}/validated"] = False
# Columns to lay out the inputs
@@ -183,7 +180,7 @@ def page3():
st.session_state[f"{pdf_selected}/first_time"] = False
for row in range(nrows):
doc_name = pdf_selected.strip(".pdf") if row == 0 else f"Nom_Document_{row+1}"
doc_name = f"Nom_Document_{row+1}"
first = first_pages[row]
keep = ""
@@ -212,19 +209,19 @@ def page3():
else pdf_state["info_pdf"]["doc_page_count"]
)
col1.text_input("", value=doc_name, key=f"{pdf_selected}/doc_name{row}", on_change=lambda: set_values(row))
col1.text_input("", value=doc_name, key=f"{pdf_selected}/doc_name{row}", on_change=lambda: set_values())
col2.number_input(
"",
min_value=min_value,
max_value=max_value,
value=first,
key=f"page_min{row}",
on_change=lambda: set_values(row),
on_change=lambda: set_values(),
)
former_choice = keep == ""
col3.selectbox(
"", ["", ""] if former_choice else ["", ""], key=f"keep{row}", on_change=lambda: set_values(row)
"", ["", ""] if former_choice else ["", ""], key=f"keep{row}", on_change=lambda: set_values()
)
dict_document = {"doc_name": doc_name, "first": first, "keep": keep, "doc_state": doc_state, "flagged": flagged}
@@ -454,26 +451,26 @@ def page3():
else pdf_state["info_pdf"]["doc_page_count"]
)
def update_level():
max_level = st.session_state.get(f"max_level{doc_selected}", 1)
toc_items = []
dict_transfer = {}
index = 0
index_toc_items = 0
for level, title, page, dest, keep in toc_modified:
if level <= max_level:
toc_items.append(list_titles_unchecked[index])
dict_transfer[index] = index_toc_items
index_toc_items += 1
index += 1
if pdf_state["modif_docs"][doc_selected]["title_selected"] not in toc_items:
pdf_state["modif_docs"][doc_selected]["title_selected"] = toc_items[0]
# title_selected = pdf_state["modif_docs"][doc_selected]["title_selected"]
level_title_selected = toc_modified[index_selected][0]
if len(levels) > 1:
def update_level():
max_level = st.session_state.get(f"max_level{doc_selected}", 1)
toc_items = []
dict_transfer = {}
index = 0
index_toc_items = 0
for level, title, page, dest, keep in toc_modified:
if level <= max_level:
toc_items.append(list_titles_unchecked[index])
dict_transfer[index] = index_toc_items
index_toc_items += 1
index += 1
if pdf_state["modif_docs"][doc_selected]["title_selected"] not in toc_items:
pdf_state["modif_docs"][doc_selected]["title_selected"] = toc_items[0]
# title_selected = pdf_state["modif_docs"][doc_selected]["title_selected"]
st.number_input(
"Niveau max titres",
min(levels),
@@ -494,6 +491,20 @@ def page3():
pdf_state["modif_docs"][doc_selected]["title_selected"] = title_selected
st.session_state["run_validated"] = False
max_level = st.session_state.get(f"max_level{doc_selected}", 1)
toc_items = []
dict_transfer = {}
index = 0
index_toc_items = 0
for level, title, page, dest, keep in toc_modified:
if level <= max_level:
toc_items.append(list_titles_unchecked[index])
dict_transfer[index] = index_toc_items
index_toc_items += 1
index += 1
# st.write(index_selected)
# st.write(dict_transfer)
index_selected_toc_items = dict_transfer[index_selected]
if toc_items:
st.selectbox(
@@ -524,7 +535,6 @@ def page3():
# Modif the title when the user change buttons
titles_modifications(pdf_state, doc_selected, dict_titles, index_selected)
change_title_name(pdf_state, doc_selected, dict_titles, index_selected)
add_title(pdf_state, doc_selected, dict_titles, index_selected)
# Build pdf toc with unselected docs
Loading