Projet

Général

Profil

Bug #75698

connecteur "pdf", comparaison "rects" vide (?) (IndexError: list index out of range)

Ajouté par Sentry Io il y a environ un an. Mis à jour il y a environ un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
22 mars 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

https://sentry.entrouvert.org/entrouvert/publik/issues/108713/

IndexError: list index out of range
(10 additional frame(s) were not displayed)
...
  File "django/views/generic/edit.py", line 33, in get_form
    return form_class(**self.get_form_kwargs())
  File "passerelle/apps/pdf/forms.py", line 37, in __init__
    for i, field in enumerate(page.fields):
  File "passerelle/utils/pdf.py", line 271, in fields
    fields.sort(key=functools.cmp_to_key(compare))
  File "passerelle/utils/pdf.py", line 269, in compare
    return rect_compare(field1.rect, field2.rect)
  File "passerelle/utils/pdf.py", line 122, in rect
    return self.rects[0]

Demandes liées

Lié à Passerelle - Bug #75700: pdf: toujours impossible d'accéder au modèle PDFFermé22 mars 2023

Actions

Révisions associées

Révision 64456cde (diff)
Ajouté par Benjamin Dauvergne il y a environ un an

utils/pdf: check radio buttons have kids (#75698)

Révision 2fbfeedb (diff)
Ajouté par Benjamin Dauvergne il y a environ un an

utils/pdf: do not crash on field without a /Rect (#75698)

Historique

#1

Mis à jour par Frédéric Péters il y a environ un an

  • Projet changé de Suivi des traces à Passerelle
#2

Mis à jour par Benjamin Dauvergne il y a environ un an

  • Lié à Bug #75700: pdf: toujours impossible d'accéder au modèle PDF ajouté
#3

Mis à jour par Benjamin Dauvergne il y a environ un an

  • Assigné à mis à Benjamin Dauvergne
#4

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de Nouveau à Solution proposée

Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :

#5

Mis à jour par Benjamin Dauvergne il y a environ un an

Le PDF est tout moisi, deux soucis :
  • un champ radio "Groupe4" sans enfants (/Kids) pour définir les checkbox associés, je l'ignore,
  • un champ texte, "Fait à 2" sans position définie qui est pourtant obligatoire, je renvoie un rectangle hors champ arbitraire,
    {'/DA': '(/Helv 14 Tf 0 0 1 rg)', '/FT': '/Tx', '/Ff': '8392704', '/Kids': [(190, 0), (189, 0)], '/T': '(Fait à 2)'}
    

Je n'ai pas poussé le test associé car je ne sais pas si je peux diffuser le PDF, mais le voilà, il passe.

$ git stash show -p
diff --git a/tests/test_utils_pdf.py b/tests/test_utils_pdf.py
index dd13f9ad..71351a77 100644
--- a/tests/test_utils_pdf.py
+++ b/tests/test_utils_pdf.py
@@ -117,3 +117,9 @@ def test_combo_box():
     assert combo.value is None
     combo.set('FRANCE')
     assert combo.value == 'FRANCE'
+
+
+def test_radio_with_no_kids():
+    with open('tests/data/ordre_de_mission.pdf', 'rb') as fd:
+        pdf = PDF(content=fd)
+    assert not [field for field in pdf.page(0).fields if 'Groupe4' in field.name]

PS: j'ai aussi testé dans mon passerelle local, le PDF s'affiche dans la vue d'édition des correspondances.

#6

Mis à jour par Renaud Boitouzet il y a environ un an

Benjamin Dauvergne a écrit :

Le PDF est tout moisi

Je n’en doute pas, mais on n’a pas la main dessus, hélas…

je ne sais pas si je peux diffuser le PDF

Non, à ne pas diffuser publiquement ici en effet.

#7

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de Solution proposée à Solution validée

Thomas NOËL (tnoel) a approuvé une pull request sur Gitea concernant cette demande :

#8

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de Solution validée à Résolu (à déployer)

Benjamin Dauvergne (bdauvergne) a mergé une pull request sur Gitea concernant cette demande :

#9

Mis à jour par Transition automatique il y a environ un an

  • Statut changé de Résolu (à déployer) à Solution déployée
#10

Mis à jour par Transition automatique il y a 11 mois

Automatic expiration

Formats disponibles : Atom PDF