docs: record the prefill seam and the optional local config

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Pierre Martin
2026-07-17 14:30:48 +02:00
co-authored by Claude Opus 4.8
parent 2e60bd08d8
commit 23e58b17ee
3 changed files with 114 additions and 18 deletions
+28 -18
View File
@@ -45,24 +45,34 @@ Content script qui **remplit le DOM par id**, puis **l'utilisateur soumet à la
### Mapping des champs (ids confirmés présents dans le HTML)
| id DOM | name | Contenu | Source |
|---|---|---|---|
| `#input_6_42` | `input_42` | Organisateur | config (« L'Atelier du Huit ») |
| `#input_6_41` | `input_41` | Email | config |
| `#input_6_1` | `input_1` | Titre | SUMMARY |
| `#input_6_3` | `input_3` | Description (textarea) | DESCRIPTION |
| `#input_6_20` | `input_20` | Thème (select) | mapping (voir §3) |
| `#input_6_31` | `input_31` | Date début `jj/mm/aaaa` | DTSTART |
| `#input_6_32` | `input_32` | Date fin `jj/mm/aaaa` | DTEND |
| `#input_6_38_1` / `#input_6_38_2` | `input_38[]` | Heure début [HH, MM] | DTSTART |
| `#input_6_39_1` / `#input_6_39_2` | `input_39[]` | Heure fin [HH, MM] | DTEND |
| `#input_6_35` (`_1`) | `input_35.1` | Accessibilité (case) | fixe |
| `#input_6_36` | `input_36` | Public ciblé | optionnel |
| `#input_6_40` | `input_40` | Tarifs | défaut « Gratuit » |
| `#nova_address` | `nova_address` | Adresse texte | défaut café |
| `#input_6_18` | `input_18` | `lat\|lng\|adresse` (hidden) | défaut café |
| `#input_6_34` | `input_34` | **Image (file)** | ⚠️ non remplissable par script (sécurité) → manuel |
| `#input_6_23`, `#input_6_43` | | Honeypot | laisser vide |
> ⚠️ **La colonne « balise réelle » a été payée par un bug** (2026-07-17). Le
> corps de la tâche T1 affirmait « Heures = 2 **selects** » : c'est **faux**, ce
> sont des `<input type="number">`. Le code l'a suivi et les 4 champs d'heures
> ont échoué (`champ.options` undefined → TypeError). **Ne pas déduire le type
> d'un champ de son intitulé : le HTML est la seule source de vérité.** Types
> ci-dessous vérifiés sur la page réelle le 2026-07-17.
| id DOM | name | Balise réelle | Contenu | Source |
|---|---|---|---|---|
| `#input_6_42` | `input_42` | `input[type=text]` | Organisateur | config (« L'Atelier du Huit ») |
| `#input_6_41` | `input_41` | `input[type=email]` | Email | config |
| `#input_6_1` | `input_1` | `input[type=text]` | Titre | SUMMARY |
| `#input_6_3` | `input_3` | `textarea` | Description | DESCRIPTION |
| `#input_6_20` | `input_20` | **`select`** | Thème | mapping (voir §3) |
| `#input_6_31` | `input_31` | `input[type=text]` (datepicker) | Date début `jj/mm/aaaa` | DTSTART |
| `#input_6_32` | `input_32` | `input[type=text]` (datepicker) | Date fin `jj/mm/aaaa` | DTEND |
| `#input_6_38_1` / `#input_6_38_2` | `input_38[]` | **`input[type=number]`** (`min/max`, placeholder `HH`/`MM`) | Heure début [HH, MM] | DTSTART |
| `#input_6_39_1` / `#input_6_39_2` | `input_39[]` | **`input[type=number]`** | Heure fin [HH, MM] | DTEND |
| `#input_6_35` (`_1`) | `input_35.1` | `input[type=checkbox]` | Accessibilité | ⚠️ laissé **intact** : la machine ne sait pas si le lieu est accessible |
| `#input_6_36` | `input_36` | | Public ciblé | optionnel |
| `#input_6_40` | `input_40` | **`textarea`** | Tarifs | défaut « Gratuit » |
| `#nova_address` | `nova_address` | `input[type=text]` | Adresse texte | défaut café |
| `#input_6_18` | `input_18` | `input[type=hidden]` | `lat\|lng\|adresse` | défaut café |
| `#input_6_34` | `input_34` | `input[type=file]` | **Image** | ⚠️ non remplissable par script (sécurité) → manuel |
| `#input_6_23`, `#input_6_43` | | | Honeypot | laisser vide |
Les 4 champs d'heures acceptent le **zéro-padding** (`"09"`, `"00"`) : une suite
de chiffres est un *valid floating-point number* au sens HTML.
**Défaut café** : `8 Rue du Pré Vicinal 31270 Cugnaux`
`input_18` = `43.53753132806989|1.342981890597508|8 Rue du Pré Vicinal 31270 Cugnaux`