* Add an automatic job every day at 4 AM to recompute the progrank of
every program. Currently everyone gets progrank 0.
[MIGRATION] This commit contains a new version of the schema.
[SETUP]
* Install flask-crontab (with pip)
* Run `flask crontab add` to register the jobs
* Add a TagListField which automatically validates its input against the
TagInformation database, and has a richer .selected_tags() method
* Add a dynamic tag input widget, available through a macro (*import
with context*), that supports both JS and non-JS input
* Add a TagInformation.all_tags() function
* Add colored tag display to all themes
* Fix a bug causing programs to have no names
* Add tags: games.action, games.narrative, courses.informatics
[MASTER] Run the 'update-tags' command of master.py.
Adds the tagging system, with 3 types of tags:
* Calculator models grouped by compatibility classes
* Programming languages
* Game, tools, and course categories
[MIGRATION] This commit contains a new version of the schema.
[BREAKS] This commit breaks existing tag assignments.
[MASTER] Run the 'update-tags' command of master.py.
* Rename Config → FlaskApplicationSettings so we know exactly what we're
talking about
* Clarify that LocalConfig overrides both V5Config and Flask settings
* Only give defaults that are needed in LocalConfig and remove old
settings that are no longer used
Also added is_default_accessible() to Thread class as its owner may be a
Topic with forum access restrictions or public main content (like
Program)
[MIGRATION] This commit contains a new version of the schema. /!\ This
migration breaks all attachments
This is useful to quickly browse a list of polymorphic Posts for topics,
programs, etc. The main application is from Member.posts, since
polymorphic collection seems both difficult and edgy.
[MIGRATION] This commit contains a new version of the schema.
Same options as for images, except for [pixelated]. Supported sources
are standard videos and YouTube, and there is basic auto-detection which
avoids the need to set the [video] attribute.
New attributes
* left, center, right: Exactly what you expect
* float-left, float-right: Also just what you expect
Currently there is no way to force a clear.