Bug #75698
connecteur "pdf", comparaison "rects" vide (?) (IndexError: list index out of range)
0%
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
Révisions associées
utils/pdf: do not crash on field without a /Rect (#75698)
Historique
Mis à jour par Frédéric Péters il y a environ un an
- Projet changé de Suivi des traces à Passerelle
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é
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 :
- URL : https://git.entrouvert.org/entrouvert/passerelle/pulls/155
- Titre : Accepter les PDFs avec des boutons radios sans boutons ou des champs sans zone définie (/Rect) (#75698)
- Modifications : https://git.entrouvert.org/entrouvert/passerelle/pulls/155/files
Mis à jour par Benjamin Dauvergne il y a environ un an
- 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.
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.
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 :
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 :
- URL : https://git.entrouvert.org/entrouvert/passerelle/pulls/155
- Titre : Accepter les PDFs avec des boutons radios sans boutons ou des champs sans zone définie (/Rect) (#75698)
- Modifications : https://git.entrouvert.org/entrouvert/passerelle/pulls/155/files
Mis à jour par Transition automatique il y a environ un an
- Statut changé de Résolu (à déployer) à Solution déployée
utils/pdf: check radio buttons have kids (#75698)