Commit Graph

556 Commits

Author SHA1 Message Date
Lephe 417fc05d29
program: add metadata and a basic model for events (#114)
This commit adds most of the optional metadata for programs. The event
related to the program's publication is an actual relationship to an
Event model. The idea is to expand on that model in the future to

- A link to the event's main topic
- List of programs published in the event
- Possibly, a list of all related topics (announcement, start, results,
  etc) all sharing a common 1-line header so they are linked together
- This would be used for event-related trophies
- And possibly for an event calendar
2022-06-16 17:00:59 +01:00
Lephe 8ff21c615d
program: add infrastructure for the progrank job (#114)
* 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.

* Install flask-crontab (with pip)
* Run `flask crontab add` to register the jobs
2022-06-15 11:27:29 +01:00
Lephe db0e42d285
programs: add tag input and display (#114)
* 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
2022-06-14 23:19:41 +01:00
Lephe c74abf3fcc
post: add a tagging system, with a common base set of tags
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
2022-06-12 18:26:47 +01:00
Lephe f4b9110ce2
master: fix group update 2022-05-26 23:01:02 +01:00
Lephe 85323e896d
forum: fix edit timestamp recording + display
On the preproduction server there are messages that have an edit
timestamp some 20 ns after their creation, for some reason.
2022-05-26 21:24:50 +01:00
Lephe c26861527b
admin: remove trophy edition interface (#82)
It was decided to keep using the master script to update them.
2022-05-26 20:16:29 +01:00
Lephe 6756838882
forum: factor attachment creation code 2022-05-26 20:08:16 +01:00
Lephe 84066eaca3
css: fix antibot field being visible 2022-05-26 20:07:50 +01:00
Lephe b047ed97af
programs: program creation + view + comments
This is very much a work in progress, but the main ideas are here.

[MIGRATION] This commit contains a new version of the schema.
2022-05-19 20:34:46 +01:00
Lephe 0e1b434f7d
program: fix tag assignment 2022-05-19 19:12:09 +01:00
Lephe 011ea3d2a6
programs: add the model for tags
[MIGRATION] This commit contains a new version of the schema.
2022-05-19 18:51:05 +01:00
Lephe 13ce27b682
perf: avoid N+1 query in recent topics and news 2022-05-12 21:53:26 +01:00
Lephe 8393cf1933
perf: eagerly load auxiliary data 2022-05-12 20:45:31 +01:00
Darks b7dc2ebbf2
hook: add reminder to build css before commiting when needed 2022-05-12 21:39:10 +02:00
Lephe 38c4f274a0
perf: optimize away more privilege requests
[MIGRATION] This commit contains a new version of the schema.
2022-05-12 20:00:24 +01:00
Lephe 7d9e897ae9
perf: optimize away special privilege requests by lazy loading 2022-05-12 19:24:17 +01:00
Lephe 1040d57506
css: fully recompile LESS files 2022-05-12 19:24:17 +01:00
Darks f64e3a2c39
debugger: add some style to enhance it 2022-05-12 20:07:28 +02:00
Lephe 8f620c6150
meta: add optional setting for flask-debug-toolbar
It provides profiling information and an overview of SQL requests while
in development.
2022-05-05 20:33:46 +01:00
Lephe 5a87d29c7f
account: make default avatar selection less hacky 2022-05-05 20:33:45 +01:00
Lephe a3ed633791
config: update and slight improvements
* 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
2022-05-05 20:33:45 +01:00
Darks eb5ce1bd5c
attachement: switch to uuid + check permission in dl widget (#109)
Also added is_default_accessible() to Thread class as its owner may be a 
Topic with forum access restrictions or public main content (like 

[MIGRATION] This commit contains a new version of the schema. /!\ This 
migration breaks all attachments
2022-04-26 23:29:11 +02:00
Darks faf5bd184d
navbar: properly generate links to recent topics 2022-04-26 20:40:56 +02:00
Lephe 262c5f22c8
navbar: fix links to news forums under "Actualités" 2022-04-26 15:15:30 +01:00
Darks 3e399fb4c4
gallery: second prototype, evolving into a beta 2022-04-26 01:38:33 +02:00
Darks 7b66e1ec20
gallery: rebase from dev 2022-04-26 00:29:07 +02:00
Darks fe8e2f0265
gallery: second prototype
Don't look for the first one, it's trapped in a parallel universe.
2022-04-26 00:27:43 +02:00
Lephe db5e613f7e
model: use methods to access a user's typed posts (#104) 2022-04-25 17:05:17 +01:00
Lephe 8098642d4b
model: add an index on Post.type
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.
2022-04-25 17:04:08 +01:00
Darks 8eee0ad236
pclinks: fixed a typo 2022-04-24 23:33:18 +02:00
Darks 13b1d29e42
theme: add support for download widget to FK's dark theme 2022-04-24 22:55:11 +02:00
Darks 17f5e82a2a
pclinks: switched to <> as delimiters (#108)
And some other enhancements
2022-04-24 17:50:46 +02:00
Darks 2119329997
widgets: add '[[f: 123]]' pclink widget 2022-04-24 17:24:47 +02:00
Darks 09c7f63b55
menu.js: fixed bad design 2022-04-24 14:06:44 +02:00
Lephe f53032fc88
markdown: add an extension for image/video galleries
This will be used on program pages. Currently there is no check that
list elements are images and videos.
2022-04-21 22:07:49 +01:00
Lephe 610fe6f1fd
markdown: allow videos with size and positioning
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.
2022-04-21 20:43:50 +01:00
Lephe 48d6c1c03c
markdown: allow positioning attributes on images
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.
2022-04-21 20:03:22 +01:00
Lephe e9c1f04f42
markdown: add a MediaExtension that allows attributes on images
Supported attributes:
  * size=<WIDTH>x<HEIGHT>, both being optional
  * pixelated

In the near future it will also support audio files and videos.
2022-04-21 19:31:18 +01:00
Lephe 39748667ee
model: add a number of missing indexes
See #107.

[MIGRATION] This commit contains a new version of the schema.
2022-04-21 17:58:59 +01:00
Lephe 19d90c6845
meta: actually useful diagram 2022-04-14 21:07:21 +01:00
Lephe df07c905ab
meta: update model diagram 2022-04-14 20:12:04 +01:00
Darks dda7cce5d5
Updated WTForms imports 2022-04-14 20:01:45 +02:00
Eragon 2b2a5cc0d1
Small typo fix 2021-12-16 10:24:06 +01:00
Lephe d964641e1f
forum: fix antibot field being visible (#51) 2021-10-03 17:34:30 +02:00
Lephe 9c78aca5ad
(minor improvement on threads' 2021-10-03 17:34:30 +02:00
Lephe 19586f9087
fix incorrect date display omitting years 2021-10-03 17:34:30 +02:00
Eragon 875524ccb6
#98 New readme with pictures and better description 2021-10-02 11:57:20 +02:00
Louis Gatin bf03862439 requirements: updated requirements 2021-07-23 23:05:24 +02:00
Louis Gatin 48d2b3333b added help command 2021-07-23 23:05:24 +02:00