- IntegrityError (ex: email déjà utilisé) est désormais capturée et
reconvertie en ValueError, pour rester dans le funnel d'alerte
existant du callback admin au lieu de faire planter le callback Dash.
- Une UPDATE qui touche 0 ligne (ligne supprimée entre le chargement du
tableau et la soumission de l'édition) lève désormais une ValueError
au lieu d'être silencieusement traitée comme un succès (ce qui aurait
créé un log d'audit trompeur).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
When switching tables, the table-switch branch writes fresh data for the
new table, which re-fires the same callback with data_previous still
holding the old table's rows. find_changed_cell only checked row count
before diffing, so if the two tables happened to have the same number of
rows it would zip mismatched-schema dicts and report a spurious changed
cell (usually the PK column), producing a confusing red alert right after
switching tables.