This commit is contained in:
2026-01-20 20:31:49 +01:00
parent fcb6377b21
commit 8cc19b67f9
2 changed files with 23 additions and 37 deletions

View File

@@ -1,4 +1,5 @@
from trytond.model import ModelSQL, ModelView, fields, Workflow
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Eval
from trytond.wizard import Button
import requests
@@ -185,17 +186,28 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
def run_pipeline(cls, docs):
for doc in docs:
try:
if cls.rule_set.ocr_required:
cls.run_ocr([doc])
if cls.rule_set.structure_required and doc.state != "error":
cls.run_structure([doc])
if cls.rule_set.table_required and doc.state != "error":
cls.run_tables([doc])
if cls.rule_set.metadata_required and doc.state != "error":
cls.run_metadata([doc])
if doc.state != "error":
doc.state = "validated"
doc.notes = (doc.notes or "") + "Pipeline completed\n"
metadata = cls.metadata_json
if isinstance(metadata, str):
metadata = json.loads(metadata)
if not isinstance(metadata, dict):
logger.info("NOT A JSON STRUCTURE:%s",metadata)
WeightReport = Pool().get('weight.report')
WeightReport.create_from_json(metadata)
# if cls.rule_set.ocr_required:
# cls.run_ocr([doc])
# if cls.rule_set.structure_required and doc.state != "error":
# cls.run_structure([doc])
# if cls.rule_set.table_required and doc.state != "error":
# cls.run_tables([doc])
# if cls.rule_set.metadata_required and doc.state != "error":
# cls.run_metadata([doc])
# if doc.state != "error":
# doc.state = "validated"
# doc.notes = (doc.notes or "") + "Pipeline completed\n"
except Exception as e:
doc.state = "error"
doc.notes = (doc.notes or "") + f"Pipeline error: {e}\n"

View File

@@ -38,32 +38,6 @@ class Incoming(metaclass=PoolMeta):
WR.run_ocr([wr])
WR.run_metadata([wr])
metadata = wr.metadata_json
# DEBUG: Vérifiez le type et contenu
print(f"Type de metadata: {type(metadata)}")
print(f"Contenu de metadata: {metadata}")
# Si c'est une chaîne, parsez-la
if isinstance(metadata, str):
try:
metadata = json.loads(metadata)
except json.JSONDecodeError as e:
raise DocumentIncomingProcessError(
gettext('document_incoming.msg_invalid_json',
document=self.rec_name,
error=str(e)))
# Maintenant metadata devrait être un dict
if not isinstance(metadata, dict):
raise DocumentIncomingProcessError(
gettext('document_incoming.msg_no_metadata',
document=self.rec_name))
# Créez le rapport - CORRECT, pas besoin de save() supplémentaire
WeightReport = Pool().get('weight.report')
WeightReport.create_from_json(metadata)
return wr
# @property