100% coverage
Fix random Chrome SCRIPTS/test_gui.py failure
Table : fix absolute columns widths
Coverage 100% for firstname surname
Better error message on bad import url
Coverage 100% for abj_change.py and open_pages.py
Coverage 100% for annotate.py competences_year_result.py authentication.py entity.py tomuss_init.py
Coverage 100% for config_contacts and home3.py
Coverage 100% for columngrade_session.py
Add 'visited-students' regtest
Coverage 100% for abj.py
Coverage 100% for PLUGINS/suivi_students.py
Table: fix 'aggregate' popup random table content
Coverage 100% for TEMPLATES/P.py
More resilient regtests
Coverage 100% for utilities.py
Coverage 100% for document.py
Coverage 100% for COLUMN_TYPES/upload.py
Coverage 100% for COLUMN_TYPES/prst.py
scanner.py was not using the good value for configuration.all_all
Coverage: 100% for tomuss_python.py
Coverage and regtest enhancements : aggregate_ue
Add regression test for COMPETENCES_YEAR_RESULT column type
Coverage and regtest enhancements
Competences aggregation: fix the case ['c1 Observed = * Min .']
Coverage and regtest enhancements
Coverage configuration: fix 'omit' files list
Coverage for 'aggregate_subcomps
Coverage for comp_result_cell_compute and comps_grade_cell_compute
Coverage of 'formula_explain'. Add 'coverage-pythonjs' goal
No more unload a table with a pending update
Table : the 'non' was not remove on student registration
Template 'config_contacts' add contacts to '?' menu on home page
Table : absolute columns widths
Table: column stats for text columns
scanner_remove_history : enhance erreor messages
Table: reverse unfreezing of filtered column if too many
Fix 'Table: force a minimum of 3 unfreezed columns'
preamble_js.py : add 'ord()' to Javascript has in Python
Entity: add 'in' operator to check if an attribute is yet defined
Table: force a minimum of 3 unfreezed columns
Add '.git-blame-ignore-revs'
Interactive Etape QRCode: wait 60 secs before sending ABI mail
Fix a backtrace in scanner_remove_history
Table: allow to use the mouse to move cursor to edit rotated title
Table: fix feedback when changing course dates in column popup menu
Table attendance resume for P template: nice message if no students
Table print: fix display of course dates attribute
Suivi: the attendance resume links to the P table
Table: fix table filter
Table : put all INSCRIT_icoNS under ♿
Fix Inscrits icons : all visibles and not unselectable
ABJ management: ABI→ABJ button can be clicked twice without error
Visible column with hidden grades: they were visible in RSS stream
Dispatcher: if in a dead end, retry column filling in another order
Seleniumn script cleanup
fix 'regtest1' goal to return an error code for pre-commit hook
TT table column title first character defines icons to put in Inscrit column
Wheel event handling rewrite (horizontal wheel problem)
Teacher template: the XLS with QRCode was not printable
Add a missing '. venv' in a shell script
Dispatcher: when it can't find a full solution, it gives a partial one
Turn around a Chrome bug with scrolling overflow (taken into account in no scrollable area)
Dispatcher optimizer full rewrite
Dispatcher: add interactivity
Dispatcher new method when many columns (not finished)
Hide javascript backtrace
Suivi: hide javascript backtrace if the student enter an invalide value
Fix javascript backtrace
Hide a javascript backtrace (the random bug is not fixed)
Unsemestrialized table: symbolic links are created for all semesters
Table: fix print page when there are competences
Enhance backtrace mail for failed mail sending
SCRIPTS/merge.py merges diverged tables
Authentication with URL with diacritics was no more working
QRCode: more resilient when special characters in column title
Table: a single letter no more define ABJ/ABI/... (bad coloring on J group)
Table: add an justified leave icon 🔷 in inscrits
Table: allow to display 10 icons in the Inscrit cell
Table: 'dispense_assiduite' is now ONLY for DA in other tables
Anywhere: scrolling overflow no more scroll the parent
Add SCRIPTS/scan_entities.py to search problems in cached data
Table : remove warning on filter using an hidden column
scranner_tor more resilient to bad logs
Table dynamic CSV import: allow to update unregistered student cells
Table: fix pinned options
Table: change in column menu trigger a table content update (for red/orange triangles)
Average with remove best/worst grade is allowed with different column weights
Competence: fix critical section in 'get_catalog'
Table: fix icon «DA»
ABJ/DA change update tables in less than 10 minutes
«make regtest1» check firefox Selenium
Remove LOCAL* from coverage report
SCRITPS/scanner_tor.py allows to read log file with bad UTF encoding
Table: fix multiple ABI/ABJ highlight bugs
Fix regtests to run in 2026
Allow to use PYPY3 venv
Dispatch column type: fix count of free slots when done in multiple steps
test_gui.py works 100% with Chrome and Firefox
add regtests for the suivi page