TOMUSS: The Online Multi User Simple Spreadsheet

TOMUSS is an interactive web application (groupware) allowing multiple concurrent users to edit data tables as in google spreadsheet. TOMUSS is open source. TOMUSS est une application web interactive permettant à plusieurs utilisateurs de modifier ensemble des tableaux de données partagées comme avec google spreadsheet. TOMUSS est un logiciel libre.


UE edition
Édition UE
UE edition/Édition UE
Home page
Home Page/Accueil
Student resume
Le suivi d'un étudiant
Student resume/Le suivi d'un étudiant
Justified leaves management
Gestion des ABJ
Justified leaves management/Gestion des ABJ
Personnal mailing
Mass mailing
Forms editor
Editeur de formulaire
Forms editor/Editeur de formulaire
Notation editor
Notation détaillée
Notation editor/Notation détaillée
Table copy
Copie de tableaux
Table copy/Copie de tableaux
Column filling
Remplissage de colonne
Column filling/Remplissage de colonne
Problems display
Affichage des problèmes
Problems display/Affichage des problèmes
Realtime server state
Etat temps réel du serveur
Realtime server state/Etat temps réel du serveur
Printing and exporting
Impression et exportation
Printing and exporting/Impression et exportation
Justified leaves
Absences justifiées
Justified leaves/Absences justifiées
Attendance notation
Saisie présence
Attendance notation on phone/Saisie des présences sur téléphone
MCQ editor
Éditeur de QCM
MCQ editor/Éditeur de QCM
Online PDF annotator
Annotateur de PDF
Online PDF annotator/Annotateur de PDF


Some goals of this spreadsheet are :
  • Simple to use.
  • Minimize human error.
  • An unobstructive and intuitive security model.
  • Be extensible and integrable in an existing environment.
Advertising vidéos (in french) : Posters:
Quelques buts de ce tableur :
  • Simple d'utilisation.
  • Minimise les risques d'erreur humaine.
  • Gestion intuitive des droits d'accès qui ne bloque pas les utilisateurs.
  • Être extensible et intégrable dans un système d'information existant.
Vidéos de présentation : Posters en anglais :
Introduction Manipulated data Teacher usage Filters

Student management

The spreadsheet has been designed in the context of student ranking management.
  • There is a table per course and semester.
  • Student lists are retrieved from official ones.
  • Students see all the informations about them.
  • Teachers can send mails to students.
  • Teachers can print table of student pictures.
  • TOMUSS manages students with special examination condition, justified leaves, assiduity exemption.
  • Students may answer questions to fill the table.
  • Students and teachers may upload files
More details on the functionnalities list (in french language)
Le tableur a été conçu afin d'être utilisé pour gérer les notes des étudiants.
  • Il y a une table par UE et par semestre.
  • Les listes d'étudiants sont extraites des listes officielles.
  • Les étudiants peuvent voir toutes les informations les concernant.
  • Les enseignants peuvent envoyer des mails aux étudiants.
  • Les enseignants peuvent afficher les trombinoscopes.
  • TOMUSS gère les étudiants avec des conditions spéciales d'examen, les justificatifs d'absences et les dispenses d'assiduité.
  • Les étudiants peuvent répondre à des questions dont les réponses s'insèrent dans les tableaux.
  • Les étudiants et enseignants peuvent déposer des fichiers.
Vous voulez plus de détails : regardez la liste des fonctionnalités


The TOMUSS server needs only the Python/Unix environment to run. And the users browsers can be recent version of Firefox, Opera, Chrome, Edge. Le serveur TOMUSS nécessite seulement un environnement Python/Unix pour fonctionner. Les utilisateurs peuvent utiliser une version récente de Firefox, Opera, Chrome, Edge.


TOMUSS is a stable product, it is in use since 2008. Hundreds of teachers and thousands of students use it at the university of Lyon 1. Graphics showing the usage evolution at Lyon 1 university TOMUSS est une application stable utilisée depuis 2008. Des centaines d'enseignants et des milliers d'étudiants l'utilisent actuellement à l'université Lyon 1. Graphique montrant l'évolution de l'utilisation de TOMUSS à l'université Lyon 1.

Try it now!

You can try TOMUSS on the demonstration server.
Beware, if you are freezed on a white page it is because your anti-virus don't like TOMUSS.
Vous pouvez immédiatement essayer TOMUSS sur le serveur de démonstration.
Attention, si vous êtes bloqué sur une page blanche c'est que votre anti-virus n'aime pas TOMUSS.

Si vous avez des identifiants dans une université/école française (enseignant, personnel ou étudiant), vous pouvez accéder à TOMUSS-FR (accès direct au service).


The user interface works in english and french. The tips provide all the necessary information to use TOMUSS.

The user documentation and tutorials are only in french language.

The technical documentations are only in english.

L'interface utilisateur fonctionne en français et en anglais. Les bulles d'aides donnent toutes les informations nécessaires pour utiliser TOMUSS.

Les documentations utilisateurs et cours sont seulement en français.

La documentation technique est seulement en anglais.

User Documentation

All in french:

Tout en français (et lié à l'enseignement en France) :

Technical Documentation

All in English:

Tout en anglais :

Diapos PyConFR 2014

Download sources

The GPL copyrighted sources and their release notes.

The GIT repository is hosted by SourceForge.

Les sources (avec un licence GPL) ainsi que les informations sur les versions.

Le dépôt GIT est hébergé par SourceForge.

git clone git:// tomuss-code

Change logs



Long time without news, but work continue. Only new features are described here.

New column types:

  • Calendar allows users to defines if time slots are possible, impossible or neutral.
  • Abis allows to get the number of unjustified leaves for the current semester.
  • Commute time and Working hours per week columns type. The value are defined by students on their suivi options.
  • Rank allows to compute the grade rank.
  • The Dispatcher column type works nicely.

Table editor:

  • Columns visibility add choice: «Hidden to teacher, visible to student»
  • When entering a new student login, it is possible to retrieve data from the last year table if the columns are named the same way.
  • The horizontal scrollbar displays blinking columns names if a filter is defined on a not visible column.
  • The Annotator column type can now be used to create PDF forms.


  • Uploaded video are displayed on the current page. But it works nicely only with WEBM video encoding.
  • Assiduity exemptions are readable from external source.
  • On the home page, it is possible to add a private comment on students.
  • The students may hide their grades and color to themselves on the suivi page (to prevent spying).
  • The competence management is not yet ready, do not use it, the recorded data format may change and many basic functionalities are missing.



Teachers and P templates for global attendance managing:

  • When using Teachers and P templates, the student attendance is resumed on its 'suivi' page.
  • «Table / abj» page: add link to P template PRST resume for the UE.
  • P template: add «Business Administrator» to «Business Tutor»
  • P template: allow to filter lines before opening 'messages' popup.

Enumeration enhancements:

  • Enumeration ending by '_' are merged in suivi menu because on student selection the one with free slots will be used.
  • In the table editor, when entering a value for an enumeration, only values with free slots are displayed.

Table editor:

  • «Update table content NOW» allows to indicates other table from which student list must be taken and integrated into the current table. The modification is persistent. This feature must be used in place of the «__» trick in the table name.
  • When importing values in a column, allow to clamp to min/max.
  • It is now possible to send mails on cell change. Configuration in « Column / Config »
  • «Dispatcher» column type asking preference to students and dispatching values in columns using these preferences. Never yet used in real life, so really experimental.
  • « Table / Action » allows to empty all red lines of the table.
  • The column titles are now draggable in order to change their order.

And many bug fixes.


The really big change: when the browser send multiple changes to the server they are merged and so it is very fast.

Another big change: it is possible to allow students to edit some tables. The configuration is done in the «exceptions» line from the «config_table».

Add a «replace» column type to define for example:
NaN 🡆 DEF ● ABI 🡆 DEF ● <10 🡆 AJ ● >=10 🡆 ADM

The «columns» attributes can now be equal to: «*», «*Note», «*Prst»... to operate on numerous columns. Beware: «*Note *Prst» is not allowed.

QRCode Teachers table: it is possible to indicate that ABI are to be mailed to the teacher.

The ABI must be indicated less than 24 hours after the course date.

When dispatching students to a referent, allows to select only a group of students from a table.

In the home page configuration, the «clean» plugin link must be updated to javascript:goto_url(add_ticket('clean/'+year_semester()))

And many big fixes.


Stable release before a big change.
Stable release before a big change.
  • Nicer home page for phone. Allow to choose multiple TD groups.
  • The dynamic CSV import can import into cell comments.
  • A «Details» tab in the cell bloc with Abj/DA/TT...
  • The column sorting menu allows to modify some values: course date, visibility state, modifiable on suivi state.
Templates «Teachers» and «P» for QRCode attendance:
  • Courses duration is required.
  • Help to enter manually a new course attendance.
  • Allow you to create your own reporting.
  • The QRCode is automaticaly closed after course duration + 1hour.
  • Take into account known justified leaves.
  • Better managing of unexpected students.
  • Student is CCed to the enterprise mail.
Column types:
  • «Normalize»: keeps not number as is.
  • «COW»: emptying the cell restore the synchronisation.
  • «UE_Grade»: compute automaticaly the full grade using the columns with the new attributes: «Grade_Type» and «Grade_Session». Filling the column list is not needed.
Table editor:
  • Displays a 2d colored graph about the last 3 columns selected.
  • Add preference to disable cell double-click.
  • The table copy can now copy uploaded files.
  • New «Table/Message» tab to display various help/warning/error messages.
  • Visibility menu new option: «Unvalidated cells...». The columns is visible on the suivi but all is displayed and computed as if the cell was empty.
  • Hierarchical boxed display with columns named as «Work1/YourFile» «Work1/YourGrade»
  • Add a preference to display all the cells with the same width.
  • Display the deadline for value change.
Misc :
  • Statistic table about all tables: list grade columns without examination date.
  • Home page: allow to select multiple student group and choose any column to display.

Tons of bug fixes and small enhancements, and many new functionalities.

About QRCode, Teachers and P templates :

  • add 3 different reportings.
  • add duration of the course.
  • it is possible reject student scanning if the TD group does not match.
  • '_' are stripped from group names. It is needed if you have enumeration with A A_ A__ B B_ and repetition=5 in order to have 15 students in group A and 10 in group B.
  • QRCode can be generated from the home page.

New column types:

  • Civilite (Him, Her...) and the display of hidable ♂♀ on the suivi page.
  • Analyser : run a teacher Python defined script to display message on student upload and eventually grade the upload.

A virtual table with all the ABJ and DA can be loaded.

«TMP/» contains the last TOMUSS log of each student.

«SCRIPTS/run», load, configures and runs TOMUSS in a Docker



Stable (many bug fixes), except for the new functionalities.

  • The '...' Table/Action (popup_on_red_line) to allow unregistered students is now persistent. The student list allows new student synchronization, but never remove a student.
  • An RGPD link can be added to the student picture.
  • The 'Print' page has now an «XLS» link to get the full table in a XLS file with the maximum of information.
  • Teachers template:
    • create virtual TD and TP groups.
    • Allows to send QRCode in the mail (without XLS file).
    • Allows to CCed the P table manager on ABI.
    • SVC: automatic logout on QRCode scan to prevent problems if a student lend its phone to scan.
    • If the end QRCode is not scanned, on QRCode expiration it will closed, mail will be send and ABIs recorded.

UNSTABLE: The first day in production raised many problems. do not use it without applying the last commits.

Full rewrite of the tip management, press the Shift key and move the cursor to see the tips. There are no more tip popping everywhere when moving the cursor, There is a dotted underline to highlight the students with a justified leave.

In order to make all the users aware of these new tips, it is possible to display a message the first time an user edit a table. The message is defined in «config_table», if it is modified, then it will be displayed one time to all the users.


This release is stable.

  • Refactoring of many SCRIPTS using a 'scanner' framework. The goal was to not reload all the tables all the nights. Run SCRIPTS/ to have an overview of the jobs done.
  • The XLS files sent by Teachers template now contains QRCodes to begin and stop attendance registration.
  • In order to use less resources, the TOMUSS DB backup are done using one GIT repository per year.
  • Move DB/LOGINS/.../GUI_record into LOGS/GUI_record/...
  • TOMUSS use much less memory when loading big tables.
  • The Annotator no more assigns documents randomly, it chooses the least assigned one.
  • There is a new column type: «Status», you can use it to retrieve any information about the student status. It is used by the «P» template for the attendance management.
  • Other new column type: «Normalize». It takes the grade from a column and computes new one verifying an average and a standard deviation goal.
  • The dynamic importing of external data now verify «cell_writable» filter.
  • 🔍 on suivi page allows TOMUSS administrator to see User details and update caches.

This release is stable, but the memory usage seems strange.

A necessary small API change: 'column_type.stat()' has a new parameter: 'grp_seq'.

    • Disable GC at runtime and exit to fix latency problems. So all circular references must be removed or 'weakref' must be used.
    • Replace 'ast.literal_eval' by 'utilities.literal_eval' (no leak)
    • Replace 'ldap3' library by 'ldap' one
    • Add a plugin to search circular reference
    • Students can register their attendance using a QRCode displayed by the teacher. The link is next to the 'Prst' button column type.
    • Add a TOMUSS dashboard and remove no more necessary plugins
    • Add a QRCode interface to Prst columns.

A necessary small API change: the entity attribute getters are now staticmethod.

Many bug fixes and big changes:

    • In plugins «launch_thread='batch'» allows to queue not urgent jobs, as sending student pictures.
    • The thread list page allow to see the main thread stack every seconds, put in evidence time problems and the batch queue length.
    • Close more quickly broken connections in order to not be blocked by the maximum of open files.
    • Optimization of Entity to remove circular references so memory is more quickly released. It uses weakref, so a reference to Users objects must be kept while using the User objects it contains.

Full rewrite of user management. The new API is not 100% compatible with the old one, so some tweaking may be needed.

  • Vectorized user attribute extraction. It is now easier to work with user attributes and the access is faster. See '' for explanations.
  • 100% code coverage for python. Many bugs in corner cases were uncovered.
  • More than 3000 line of regressions tests added.
  • The PICTURES directory now contains only user downloaded images. The cached images are in the User cache in TMP/ENTITY
  • The cleanups and updates are no more periodically done by a thread or a cron but done step by step each time an HTTP request is done. Take a look at utilities.background_clean.

Some new functionnalities:

  • ⏎ and ⇥ are usable in any table INPUT
  • Add 🖈 to record table display options in the browser
  • Dynamic column import: can choose the join key. It may not be a student ID
  • Add a Teachers template allowing to send all the student informations per mail to a teacher without TOMUSS access. In the future, it will be possible to the teacher to register attence with this mail.

Some things to update for this new version:

  • Remove cached files from PICTURES (but not downloaded ones)
  • Remove all icons files from PICTURES
  • From the config_cron table, remove:
    Theses task are now done by little steps.
A couple of bug fix.

The 2021-04-19 the 7.0.0 version will be in production at Claude Bernard University. At the end of the month, if all is fine a version 7.0.1 will be released.

Many bug fixes, and not many new things:
  • Full display mode on tables (link right to #columns)
  • 'Invitation' may automaticaly redirect to the 'suivi' page
  • Allow spaces in keys when importing in a column (replaced by '_')

This release is the last stable before the 7.0.0 where the internal API will change for user attributes access.


Many bug fixes and new functionnalities:
  • The Annotator allows ⏎ in questions
  • The Notation allows non integer max scoring
  • The MCQ can export students answers and grades
  • The MCQ may consider incomplete answer as good
  • The MCQ scoring scale may be hidden on the suivi page
  • The «Seq» column is now hidden (see config_table)
  • The column export can export cell modification date
Except for the new functionnalities (untested in production) this release is stable.
Stable release!


Many bug fixes.

The mass mailing allows to add «noreply» to the sender email.

And the biggest change: the annotator allows the students to upload a PDF. The teachers annotate and grade the PDF without having to download and upload it.


An 'Annotator' column type has been added to allow teachers and students to annotate graphicaly PDF document on the web page without needing to download and upload files. You can look the video of demonstration or read the documentation.

The user documentation (french) has been fully rewritten (80 pages without counting the 78 screenshots).

For the developpers: the javascript code has been reformated with VSCode default options.


Stable release, it fixes a huge bug introduced in the last release and add functionnalities. You should upgrade.

  • If there are more than 10 students in a group, the group members are not displayed on the suivi page.
  • If given to a student, the table editor URL highlight the designated table on the suivi page.
  • The student can give access to the suivi page to a teacher and the teacher can ask for it.
  • If «A», «B» and «C» are tables with students, then the table named «A__B__C» will merge the 3 students list. It is a double underscore, and it works for any number of tables.

Stable release: only bug and GUI fixes, except that :

  • The average result can be clamped
  • The average can be sorted by standard deviation
  • «?<42'» indicates a modification done the last 42 minutes

Unstable release (its the devil one, don't trust it). Wait a couple of days to have a production tested one.

  • MCQ: student preview, print preview, Wooclap translator, more grading options, questions groups, histogram of computed grades and the average and median, filter students by choices.
  • The 'suivi' page display the formulas as boxes tree.
  • «Visible the» is now «Visible if» and a filter.
  • Allow to log the downloads of an uploaded file.
  • If writable, the «Notation» column allow the students to enter the comments. MathJax is enabled if needed.
  • The filter tip display a natural language explanation of the filter.
  • Students are no more allowed to reload quickly.
and many many bug fixes.


  • The browser IP is no more used, it is replaced by a cookie. So jumping from wifi to wire is now transparent.
  • The students may create shared links to their 'suivi' page. This functionnality can be disabled by configuration.suivi_share
  • The URL column type can now display the pointed picture inside the table editor and/or the 'suivi' page.
  • The night job destroy more the 2 years old uploaded files, it send a mail 2 months before doing it (
  • MCQ: grading exception are indicated to the student.
  • MCQ: the simple editor allow to set individual question behavior.
  • The long column titles in the table editor are now readable on mouse hovering.
  • Many fixes for the screen reader version of the table editor.
  • The column import values allows to import multiple adjacent columns in one time.
and many small bug fixes.

Stable release with many bug fixes and small enhancements:

  • Can now import column content and ZIP using student mails as keys.
  • 'tierstemps' and 'dispense_assiduite' are now indicated in the «Inscrit» column.
  • Feedback on 'dispense_assiduite' students.
  • Better column export default: student ID + call value.
  • uploaded HTML files are no more downloaded as HTML.



Stable release with many bug fixes and small enhancements.

  • Big MCQ et Notation column type enhancements.
  • It is possible to create a table with only one groupe of students.
  • Add a 'config_cron' table to manage TOMUSS tasks and reduce the number of threads.

Stable release. The two visibles changes are :

  • Swap the Grp and Seq columns (changeable in the user preference).
  • Random shuffle of table lines (to pick students in a random order).

Stable release. The two main changes are :

  • One log file is created per day
  • Resynchronization of the table editor if the network connection has been lost a long time. For example when the client computer is suspended.

Stable release with many MCQ enhancements.


BEWARE: the last commits are untested in production. But this version fixes a great number of problems.

API change for filters, if you have defined new filter types, they need to be fixed.

New things:

  • Alert the user if the session ticket has expired.
  • NaN are no more displayed on 'suivi' page.
  • Warns if a file with the same size is uploaded.
  • Add an exprimental MCQ column type. The goal is that the students answer in the classroom in order to have a real grading.
  • The history of cell comment change is now displayed.
  • The upload column type has now moved to the good place in the type choosing popup.
  • Add «Is a teacher» filter « #[] » allowing to have not the same rules for teacher and student. It was needed to the MCQ examination workflow: all the teachers can open/close (Yes/No) the exam but students can only answer when the exam is open.



BEWARE: unstable

One big change: the session ticket is kept at the end of the URL. There are two goals:

  • the ticket is no more displayed on screen, so this raise the security level.
  • The users can easely paste the URL without the ticket:✀_______…

All the other change are bug or GUI fixing.


Stable release with many big bug fixes. Upgrading is highly recommended.

The mirroring support has been removed to simplify the code.

There is now a journal of user preference modification. It is done in order to keep the date of 'private_suivi' change. An hook can be defined to add any behavior on preference change.


Stable release with many bug fixes and:

  • It is now possible to update the table content without updating the student list.
  • Replaced InjLeave by UnjLeave.
  • It is possible to hide with 'config_table' some empty tables from the 'suivi page.
  • The cursor move as in other spreadsheet with previous/next page key.
  • The table layout is "nicer". Add a compact layout option to restore the old one. On small screens, the layout is compact.
  • Statistic page displays Notation column type as Grade.
  • RSS streams can be inserted in the 'suivi' page. This is experimental.
  • If students are multiple times in a table, they can edit (if allowed) each of the lines.
  • Mass mailing allows to send cell comment, author, date.
Review the plugins access rights: some were too permissives by default. If unsure, ask for help.

Stable release with many bug fixes and:

  • The semesters menu displays old semesters at the end, and 2008/Test has been renamed 'Sandbox'
  • Many small GUI enhancements for the Notation column type.
  • Average columns can now be read aloud.
  • The administrator can now hide justified leave comments to the teachers.

Stable release with many bug fixes and:

  • In column comment, the '⏎' is replaced by a line break on 'suivi' display.
  • Alert URLs can be read if there are 60 problems in the same minute. All this is parametrable in the configuration table.

This release has not been tested in production.

  • When using 'repetition' the possible number of slots is displayed on the suivi drop down menu.
  • When importing cell into a column, any column can be used in place of 'ID'.
  • Student icon status are computed from an index, so it is really fast. The index is computed by the night job.
  • The 'timeline' plugin allows to see the full student history. This functionnality is currently only usable from the URL because it is experimental.
  • A remote CLAMAV server can be defined in 'config_table'
  • stops nicely if it receives a single SIGTERM
  • The attendance sheet can now display student pictures.
IMPORTANT: when a student modify a value, the table is no more reloaded, but updated. So 'config_table:maximum_out_of_date' must be set to 1 second in order to have the updated data on 'suivi' reload.

Many changes:

  • Mass mailing can now send a the archive report to the other teachers of the table. The list is editable.
  • The URL column type is now editable via 'suivi' page. There is a preview of the entered URL.
  • When uploading a file, there is now a progress bar.
  • 'config_acls' can use 'table:YEAR/SEMESTER/TABLE' to add logins to a group.
  • Use CORS headers to fix uploading problems with secure conscious browsers/plugins.
  • No more size limitation on cell content and so for the 'Notation' column type.
  • Many enhancements to the 'Notation' column type.
  • The display framework do incremental update, this fix some random display problems on the home and 'suivi' page.



Fix 2 important bugs.

The 'min max' attribute can be defined for the 'Number of' column type.


A column may now be fully invisible to other table users, even to the table manager and TOMUSS administrator. The invisible column must not be used in formula.

Automatic selection of the '✎' tab for long values.

The cell history show colored diffs for long values.

Uploaded files names may be replaced by 'url_title' if it is defined.

The 'upload' column type can now contain URLs.

The ABJ/DA/TT page takes now into account filtered lines.

Rounding are parametrables. The default rounding for average is 3 digits.

Many many bug fixes, upgrading is recommended. Another bug in rounding was fixed: Old averages should be fixed.


The rounding of average has changed, read the commit summary to understand how to fix the old averages so there values does not change. At our university it changed less than 1/1000 averages. The rule is: TOMUSS never computes an average greater than any other software, even after rounding.


Bug fixes and a new home page option: reduce menu height.

It is a stable release. TOMUSS can now send mail using an Exchange server.

New functionalities:

  • The UE tree on the 'suivi' page is modifiable by a hook.
  • It is possible to forbid the creation of some table names.
  • An option allows the users to forget the previous search on the home page.
  • Add a plugin to count the number of cells containing a text in tables.
It is a stable release fixing many problems.

A new functionality: PDF import of one file containing multiple students sheets, there is an interactive tool to associate sheets to student.

It is a stable release fixing:
  • ZIP loading with student groups with more than one student of the group loading.
  • The INPUT × icon on Internet Explorer now works.
  • The backspace works on Chrome for column title in the signature page.

If you are in a french university, you can have access to TOMUSS-FR.

It is a stable release with many bug fixes and some new features:
  • It is possible to define an UE tree to display an indented 'suivi' page.
  • It is possible to fully share tables columns with and without authentication ("Display" tab). Attached files are loadable on public columns.
It is a stable release with many bug fixes and some new features:
  • Columns modifiable by students have red titles.
  • The table semester menu contains only semester where the table exists. Its works also with non standard semesters.
  • On mailing, it is possible to add teachers/masters who do not entered a grade.
  • Add an 'if else' column type (could replace the 'Max' and 'COW' columns type)
It is a stable release with many bug fixes and some new big features:
  • It is possible to easely define new string puttable in grade columns. They are replaced by an existing value. This is configurable in 'config_table'.
  • It is possible to send mail invitation to student so they can register themselve in a table.
  • '@' is allowed in login name
  • Is is possible to change the table title for non official tables.
  • There is an helper function on the home page to create a new empty table.
  • The student and teacher may upload their picture ID. In this case teacher face are displayed on the 'suivi' page. This is activable in 'config_table'
It is a stable release with many bug fixes.

New functionnalities:

  • CAS re-authentication without IFRAME.
  • Table: create many attendances columns easely, 'Create' in the table actions tab.
  • SCRIPTS/ allows to send mails to referents teachers about the unjustified non attendance of the last week.
  • The column content can be read aloud with 'espeak', useful to compare TOMUSS values to those written on paper.


It is a stable release with many bug fixes.

New functionnalities:

  • A column attribute 'ABI is...' it can be 0 or DEF. If DEF and if there is one ABI, then the average and the maximum result are DEF.
  • It displays more quickly the first home page and 'suivi' page after server restart.
  • Single Logout for CAS (activable or not via the configuration table).
  • Virus scanning is more resilient to pyclamd changes.
  • The dynamic import take 'empty_is' into account.
It is a stable release with many bug fixes.

New functionnalities:

  • The number of lines in a table is now clearly displayed.
  • Mass mailing can use mail addresses stored in the table.
  • Teachers on their own 'suivi' page have now a links to return to the TOMUSS home page.
  • The developpers can now display the GUI tree
  • The TOMUSS administrators can see the user ACLS on their 'suivi' page.
  • Many enhancements in the backup script.
It is a stable release with many bug fixes.

New functionnalities:

  • @[] is replaced by the current user login in the filters.
  • Students can now indicate in their preference if they can bring a PC. There is a column type to retrieve the information in the tables.
Bug fix release. Quite stable, but there is a memory leak in the ldap3 server pool.

The 'suivi' page has now a version for screen readers. So the page content is understandable when readed by any screen reader.

The 'tt' table can now fully user defined, so it is easy to customize the special examination conditions.

The members of 'grp:tt_masters' can see the 'suivi' page of all the students in the 'tt' table.

The form table editor displays buttons if the column type is Enumeration.

It is possible to display messages on the 'suivi' page only visible to an user group defined in the ACLS.

The LDAP connector has been hugely modified, and not yet tested in production environment, so this release may not be stable.


The user can now choose a global theme in its preferences. The table owner can set a table theme to display the table, and the user can override it.

The '5.0' filter will now find the '5' value.


Fix a race in the LDAP connector, it is a good idea to upgrade. Some other bug fixes.

When filling a text in an empty column of type Grade, the user may choose to change the column type to Free text.

For the developper: if 'my_template.js' or 'my_template.css' exists, they are automaticaly inserted in the table editor. If a javascript function 'template_init' is defined, it is called when the table editor if fully initialised.

Many bug fixes. It is recommended to upgrade even if they are some new things:

The behaviour of 'repetition' changed for grouped students. If the repetition indicates the number of groups and not the number of students.

For grouped students, the uploading overwrite the upload done by the first student of the group if it is possible. It is done so to not have 2 differents uploaded file for the same group of student.

A new user option allows to automaticaly freeze the columns with a filter.

Full rewrite of the backups. And normalize the dict repr in files so the backup diff is minimal.

Beware: manage_key with 'append' no more returns the full file content because it can be large.

Bug fix release.

The behaviour of 'repetition' changed for grouped students. If the repetition is allowed for the first, it is allowed for the other of the group.

The Notation column type (detailed grading) is nearly stable.

TOMUSS is now in Python3!
  • No more encode and decode everywhere.
  • Better handling of HTTP requests.
  • It detected some comparaisons and sorts of uncomparables instances.

BEWARE: the script must be run to rewrite all the DB files in order to fix the strings encoding. Do a backup.

This version is in production since 20 days.

Do not use the new Notation column type, it does not works on Chrome. If you want to use it, take the sources from the repository.

Bug fixes.

This release is stable.

Fix the table print.
Full rewrite of the filters in order to test values from other columns for example [A]<[B]. It is now possible to test the current date and the current connected user.

Full rewrite of the column fill algorithm, it works now more nicely in the corner cases.


Stable release.

Better feedback on the suivi page for the last entered grades in the student view.


Requests pending for one hour are deleted and a mail is sent to the user and the admin with the unsaved data, this case never happen. The deletion is done to allow to cleanly stop the server at any time. And now the server restart and stop is fast.

Users with many possible actions can now define their favorites actions.

The TT information is hidden to unconcerned teachers. The ACLS group 'see_tt_suivi' defines the users allowed to see the TT information.

This release fix some other small issues.


The column fill action was broken. This release fix some other small issues.


This release is stable and the new home page has been used in production since 2 weeks and so numerous problems had been fixed.

Backward incompatibilities:

  • student_line_more_links, ue_line_more_links, generate_home_page_hook_with_ues, generate_home_page_hook_without_ues are no more used. Use the display framework to extend the home page.
  • 'server.uploaded' is now a 'FieldStorage' so it is not compatible with a 'dict'
  • The bookmarked UE storage moved from 'pages' to 'bookmarked'. The database translation is done by 'SCRIPTS/convert_5_6_5_to_5_7_0' The 'SCRIPTS/install' call it automaticaly is needed.

This release contains an experimental new home page accessible via '.../homepage3' url.


This release is stable. Many bug fixes.

An experimental upload column type has been added. Use with caution.


This release is stable. Many bug fixes.

Full rewrite of the column filling interface, it is more powerful and user friendly.

LDAPS is now supported.

On the suivi page, the student can collapse the table grades.

The suivi page is nicer on mobile display.

The 'force student list update' now really do the the job even if many students are removed.

There is a rounding preference for the whole table. The default is to perform all computation by rounding down all the values so TOMUSS will never find a value bigger than any average computed by other software.

The root users can activate in their preference the debuging tip.


This release is stable.

Many bug fixes.

Extended table are loaded only once in memory, better index management for these tables.

Contextual message on column type change.

Fill column with room name and place number using a room definition table. The filling column interface will be fully rewrote for the next version.


This release is stable.

Experimental new feature: 'config_login' contains a list of major logins and their minor logins. Possible usages :

  • An user change of login and want write access to the old entered values.
    major: new_login
    minor: old_login
  • A chief want to modify values of other users.
    major: chief_login
    minor: staff_login1 staff_login2 staff_login3
  • The staff want no write protection between them.
    major: staff_login1 staff_login2 staff_login3
    minor: staff_login1 staff_login2 staff_login3
The write access is NOT transitive.
The student RSS stream has now the cell visibility date in place of the cell modification date.

This release is stable.

Clicking on the column title no more sort the column. You must click on the triangle, but there is now a menu to sort by author, date, comment and percentage of justified leave.

An overidable function defines if the update of the student list is allowed.

The dynamic column import no more erase not imported cells.

Unregistered students informations are only erasable by a table master. Not everybody.

Except for the new sorting functionalities, this release is stable.

New functionalities:
  • Student hidden columns title are now orange in the table editor.
  • It is possible to multiply columns.
  • In an average without best/worst grades, it is possible to replace Justifed Leave by the average of the grades.
For the developpers:
  • There is now a template hierarchy, the template is automaticaly reloaded on source file change.
  • It is possible to define an alternative SMTP server if the first one reject the mails.
  • The table order on the 'suivi' page can now be redefined.
  • The 'Variable' template allows to erase no more defined values from the table.
  • A JS function can be called on tip display.
  • Full rewrite of the student picture loading. It is now easely customizable and icons are automaticaly generated.

And a huge number of bug fixes and small enhancements.

This release is quite stable.

Preferences and help popup for the home page and table editor. More standard shortcut keys for the table editing. The preferences have been moved from TOMUSS table into the file with the 'suivi' preferences. Automatic ticket revalidation if the CAS allows it. Full rewrite of the key event management in tables, it is cleaner and easely extensible.


The previous release contains a show stopper bug: it only works with unix socket and not internet socket.
New functionnalities: the table masters can erase the table history. The tables containing modified values by a teacher are now displayed on the 'suivi' page of the teacher.

Many bug fixes, upgrading from 5.5.3 is really a requirement. Not quite a stable release.

Very big changes and not fully stable:
  • Filters and computed columns are now defined in Python and translated into JavaScript. In some rare case the computed value may change.
  • The rank is displayed on 'suivi' for average columns.
  • It is possible to dynamicaly extract an average column from another table.
  • There is now a column filter defining which cells are modifiable in the column. The default value does not change current behaviour: = | @
  • It is possible to hide columns to the teachers in the 'suivi' page. There is now a menu to do so, the '.' in the column title is no more mandatory.
  • Non numerical values in computed column as NaN are now modifiable by the teacher.
  • TOMUSS support OpenSearch protocol.
  • The attendance can be easely entered on phone/tablet with the facebook button.
  • Clean of the client/server communication.
And many many bug fixes.
Bug fixes release.
Many bug fixes and a big security problem. Upgrading is required.
The display of modified cells was broken on column filter change.
The display of modified cells was broken on horizontal scroll.

The logs of 'suivi' visits where broken, many students where not counted since the 'suivi' page rewrite.

Refered students with a TT have now an icon on home page (a hook is provided to add more).

And many bug fixes.

The previous version broke the display of modified cells. It is now fine.

This version highlight the column whose attributes are being edited.

New functionnalities:
  • There is now a ☆ on table editor to add the table in 'your tables' on the home page.
  • It is now possible to import line break by replacing them by ⏎ before importing.
  • Column roundings is now applied on print page and on column export.
  • It is now possible to edit multi line cell values using the ✎ tab.
And many bug fixes.

This release is stable.

For server side computed column type, the default way is to define the vectorized version of the method: get_all_values. It is possible to restart TOMUSS from the home page, the restart is done only if TOMUSS is not used. A memory leak has been fixed, 'import' is no more used to load tables data.
With this release the home page boxes in the right column are collapsable, no more scrolling is needed for the administrator. There is a new table tab to manage access rights, it is now possible to define a list of teachers allowed to edit the table.
With this release, the page with all the student grades has now many user display options because the students do not agree on the best way to display the page. The privacy toggle has been moved with the display options. It works more nicely with Internet Explorer. This version is not yet stable.
Full rewrite of the code generating the web page with the student grades. The page is cleaner, more readable, works on mobile phones and is fully customizable with plugins.


  • if you have redefined '' in LOCAL_TEMPLATES, you need to patch it.
  • if you use 'more_on_suivi', you should dispatch its contents in plugins. By default 'more_on_suivi' is inserted into the right column menu.
Bug fixes release. It will be the last stable of the 5.2.X
Freezed column state is now recorded as the other attributes. It is possible to unhide columns from Table/Action menu. If a column is colored, the same colors will be applied to the cells in the student 'suivi' page.


It is possible to copy a table in the same semester. Easier to add new columns to the standard semester table. The 'referent' teachers can now take student from their 'suivi' page. The current student 'etape' is displayed in the 'suivi'.
It is possible to hide a plugin from home page even if the user has the right to use it. The mass mailing allows to use square brackets in the message. 'more_on_suivi' can take into account that the teacher want to see the 'student_view'. It is now possible to edit the plugin links from the table containing the home links. It is now possible to edit at run time the cache time to live.
Many bug fixes. There is now a hook to compute line CSS style from the line content. On column values or comments import, the character ⏎ is replaced by a linefeed.
This release adds a Facebook authenticator and fixes serious problems with XSS attacks. The table RSS stream works on any table. After a short connection loss, the table content is synchronized. It is now possible to open many tables at once because the server connection is closed if the user is inactive for one minute. A new table attribute allows to hide empty lines with a non empty history. And the table display options are now stored dynamically in the page URL.
This release fixes some serious bugs: the current cell was not saved when scrolling with the mouse. And the table editor was broken on Internet Explorer. An experimental OpenID authenticator has been implemented.
Bug fix release. TOMUSS works again on mobile devices.
This release fixes a zoom out bug in FireFox. The student lists extraction function can now have 'year' and 'semester' as parameter. A GUI user interaction recording framework has been added, by default the recording is disabled, it will be used to provide the users with targeted tips.
Unstable. There is now a completion menu for enumeration, auto-completion and the edition of 'columns' input header.
Unstable. Many modifications to make it more simple to install. Add the step by step installation procedure. Beware: default database name no more DBtest but DB.
Unstable. The static files can now be delivered by a web server. There is now a framework to send messages to student or make them sign contract.
EXPERIMENTAL. The 'suivi' servers use far less memory. It is possible to use only one server for all the semesters to simplify administration, but in this case, there is no parrallelism. You must run SCRIPT/ at least once to initialises indexes and restart 'suivi' servers.
In templates, there is now a hook called on comment change. More accurate grades on the bilan page.
Speedup of 'suivi' servers. ABI-3 is now ABI and not -3. The 'delete table' button moved from home page to the table 'Action' tab.
Virtual tables can be used to send mails. Table templates can have a 'css' attribute.
Documentation search are diacritics unsensitive. Ctrl-F allow to enter the line filter. Fix the tip positionning.
It is possible to import cell comments. The cell text can now be colored in red or green using filters.
ABJ and DA outside the semester time span are filtered in the student 'suivi'.
New column export interface, it allows to export cell comments.
This is a bug fix release.
With this release, the students can show their 'suivi' only to the minimum number of teachers. This functionnality must be enabled in the config table with the 'suivi_student_allow_private' attribute. In ACLS, 'see_private_suivi' user group can see the 'suivi' of any student.
This is a bug fix release. The '!' behaviour in ACLS has been fixed, and special characters in filters are now escapable with \
This release, contains changes that may break your plugins: Python sources now use relative imports, the special characters in URL are escaped in a safer way and ABJ storage is now per student (ABJ storage translation is automaticaly done on the first run).

There is GUI enhancements for touch screens, and a new 'Info' tab for the tables.


Less Python error backtraces are sent by mail. There is web page to navigate into the backtraces.
Bug fixes release. There is now a 'Variables' class allowing to link a set of Python values to a TOMUSS table. So you can now edit your templates parameters using a TOMUSS table.
Bug fixes release
Bug fixes release
Fix problems with IE and Safari in the 'suivi'. Add a column type to compute the weighted percentage of filtered cells used in a formula.
Fix problems with IE.
Full rewrite of the requests handling in order to not freeze the server when a browser open a connection whithout sending the request. Allows to dynamicaly import a column from one table into another.
This major release change the way the users access rights are defined, it is far more powerful. It is fully compatible with older versions if you have not patched the source code. An utility was added to find 'strange' grades in the table.

Contact, forum, bug tracker

The TOMUSS author:

The discussion group and the bug traker are hosted by SourceForge.

Créateur de TOMUSS :

Le forum de discussion et le gestionnaire de bugs sont hébergés par SourceForge.