Il JS del filtro va accodato agli asset del widget nella stessa lista Media,
non in un forms.Media separato: aggiunto a parte, il merge di Django lo
collocava prima di jquery.init.js (django.jQuery non ancora definito) e gli
handler non si agganciavano, quindi selezionando dalla tendina il filtro non
veniva applicato. Regressione introdotta in 55a1592.
Il tag admin_list_filter valuta sempre list(spec.choices(cl)) anche se il
template del filtro renderizza il widget autocomplete e ignora le opzioni.
Con i facet attivi, choices() tentava il conteggio iterando su
BLANK_CHOICE_DASH (pk vuoto), causando
"Field 'id' expected a number but got ''".
Il filtro autocomplete non enumera le opzioni: choices() ora ritorna un
elenco vuoto, così i facet (non applicabili a questo filtro) non rompono
piu la changelist.
- Installazione via dipendenza git (Poetry classico e PEP 621), coerente con
i deployment Briq, al posto del pip install da PyPI.
- Nota sulle differenze: media locale-aware e reset della paginazione.
- I media di jQuery/select2/autocomplete sono derivati dal widget
AutocompleteSelect invece che da una lista hard-coded: si caricano i
percorsi corretti per la versione di Django e la traduzione del select2
nella lingua attiva (prima veniva forzata la i18n turca, lasciando il
widget in inglese).
- Il JS esclude il parametro "p" nella ricostruzione della querystring:
cambiando filtro la paginazione torna a pagina 1, come i link filtro
standard dell'admin, evitando "pagina senza risultati".
The field being named with the field name means we should be doing an "endswith" jQuery selector, without that the field isn't found and a Javascript console error fires.
By specifying a prefix of the field's name on each Autocomplete form multiple autocomplete filters can be put on the page. Without this, all fields are named/IDed autocomplete_field and there's a collision.