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 est une application web interactive permettant à plusieurs utilisateurs de modifier ensemble des tableaux de données partagées comme avec google spreadsheet.


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
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


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) :
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 :

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, Internet Explorer. Le serveur TOMUSS nécessite seulement un environnement Python/Unix pour fonctionner. Les utilisateurs peuvent utiliser une version récente de Firefox, Opera, Chrome, Internet Explorer.


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.


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.

6.0.32.tar.bz2 2017-02-25 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'
6.0.28.tar.bz2 2017-02-11 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.
6.0.24.tar.bz2 2016-12-18 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.
6.0.22.tar.bz2 2016-12-03 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.
6.0.18.tar.bz2 2016-09-29 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.
6.0.14.tar.bz2 2016-07-01 Bug fix release. Quite stable, but there is a memory leak in the ldap3 server pool.
6.0.13.tar.bz2 2016-06-16

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.

6.0.9.tar.bz2 2016-05-08

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.

6.0.8.tar.bz2 2016-04-27

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.

6.0.7.tar.bz2 2016-04-06 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.

6.0.4.tar.bz2 2016-03-27 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.

6.0.2.tar.bz2 2016-03-15 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.

5.8.3.tar.bz2 2016-02-26 Bug fixes.

This release is stable.

5.8.2.tar.bz2 2016-02-10 Fix the table print.
5.8.1.tar.bz2 2016-02-07 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.

5.7.6.tar.bz2 2015-12-21 Stable release.

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

5.7.5.tar.bz2 2015-12-13

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.

5.7.3.tar.bz2 2015-10-20

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

5.7.2.tar.bz2 2015-10-18

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.
5.6.2.tar.bz2 2015-08-13

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

5.6.1.tar.bz2 2015-08-01

This release is stable. Many bug fixes.

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

5.5.28.tar.bz2 2015-07-11

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.

5.5.20.tar.bz2 2015-05-04

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.

5.5.16.tar.bz2 2015-03-16

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.
5.5.15.tar.bz2 2015-03-15 The student RSS stream has now the cell visibility date in place of the cell modification date.

This release is stable.

5.5.14.tar.bz2 2015-03-08 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.

5.5.13.tar.bz2 2015-02-19 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.

5.5.8.tar.bz2 2015-01-02 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.
5.5.6.tar.bz2 2014-12-18 The previous release contains a show stopper bug: it only works with unix socket and not internet socket.
5.5.5.tar.bz2 2014-12-17 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.

5.5.3.tar.bz2 2014-12-09 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.
5.3.19.tar.bz2 2014-11-08 Bug fixes release.
5.3.18.tar.bz2 2014-09-29 Many bug fixes and a big security problem. Upgrading is required.
5.3.17.tar.bz2 2014-07-28 The display of modified cells was broken on column filter change.
5.3.15.tar.bz2 2014-07-16 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.

5.3.14.tar.bz2 2014-06-30 The previous version broke the display of modified cells. It is now fine.

This version highlight the column whose attributes are being edited.

5.3.13.tar.bz2 2014-06-28 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.

5.3.9.tar.bz2 2014-06-01 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.
5.3.8.tar.bz2 2014-05-17 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.
5.3.3.tar.bz2 2014-04-14 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.
5.3.1.tar.bz2 2014-03-22 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.
5.2.26.tar.bz2 2014-03-04 Bug fixes release. It will be the last stable of the 5.2.X
5.2.25.tar.bz2 2014-02-05 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.
5.2.19.tar.bz2 2013-12-24 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'.
5.2.17.tar.bz2 2013-12-08 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.
5.2.16.tar.bz2 2013-11-19 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.
5.2.14.tar.bz2 2013-10-13 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.
5.2.11.tar.bz2 2013-09-22 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.
5.2.9.tar.bz2 2013-09-15 Bug fix release. TOMUSS works again on mobile devices.
5.2.8.tar.bz2 2013-09-08 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.
5.2.5.tar.bz2 2013-08-21 Unstable. There is now a completion menu for enumeration, auto-completion and the edition of 'columns' input header.
5.2.3.tar.bz2 2013-08-17 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.
5.2.2.tar.bz2 2013-08-16 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.
5.2.0.tar.bz2 2013-08-11 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.
5.1.16.tar.bz2 2013-07-25 In templates, there is now a hook called on comment change. More accurate grades on the bilan page.
5.1.15.tar.bz2 2013-06-27 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.
5.1.14.tar.bz2 2013-05-27 Virtual tables can be used to send mails. Table templates can have a 'css' attribute.
5.1.13.tar.bz2 2013-05-13 Documentation search are diacritics unsensitive. Ctrl-F allow to enter the line filter. Fix the tip positionning.
5.1.12.tar.bz2 2013-04-23 It is possible to import cell comments. The cell text can now be colored in red or green using filters.
5.1.11.tar.bz2 2013-04-07 ABJ and DA outside the semester time span are filtered in the student 'suivi'.
5.1.10.tar.bz2 2013-04-04 New column export interface, it allows to export cell comments.
5.1.9.tar.bz2 2013-03-26 This is a bug fix release.
5.1.8.tar.bz2 2013-03-14 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.
5.1.7.tar.bz2 2013-02-26 This is a bug fix release. The '!' behaviour in ACLS has been fixed, and special characters in filters are now escapable with \
5.1.6.tar.bz2 2013-02-10 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.

5.0.15.tar.bz2 2012-12-23 Less Python error backtraces are sent by mail. There is web page to navigate into the backtraces.
5.0.13.tar.bz2 2012-11-30 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.
5.0.11.tar.bz2 2012-10-29 Bug fixes release
5.0.10.tar.bz2 2012-10-17 Bug fixes release
5.0.6.tar.bz2 2012-09-27 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.
5.0.4.tar.bz2 2012-09-19 Fix problems with IE.
5.0.2.tar.bz2 2012-09-15 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.
5.0.1.tar.bz2 2012-09-01 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.