Commit Graph

51 Commits

Author SHA1 Message Date
Darks 3f8f8ab225
templates: added tabtitles to all relevant templates 2023-06-06 22:43:35 +02:00
Darks 3c671da85c
moderation: added locking capability to topics and programs 2023-06-06 21:35:29 +02: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 3551103c88
forum: allow users to move topics to wherever they can write 2021-07-12 21:33:03 +02:00
Lephe 9f0cbc810b
forum: enable topic modification
This works only after a top comment has been selected (but topics
without top comments are an anomaly of databases initialized before it
was added, so we don't care).
2021-07-12 19:08:31 +02:00
Lephe b8ed0bba99 forum: enable topic deletion
Topic modification does not work in this snapshot, this is normal.
2021-07-12 18:37:06 +02:00
Lephe 9727c2a986 forum: add an action to change the top comment of a topic
This also prepares the thread_leader macro for top comments of
topics, programs, etc. which have extra stuff to render and more
specific actions.
2021-07-12 18:37:06 +02:00
Lephe 1837f8f9a6
forum: anti-bot fields for guest topics and comments (#51) 2021-07-10 12:30:12 +02:00
Lephe 05f56a1cf4
forum: improve attachment inputs and allow edition (#49) 2021-07-08 16:50:28 +02:00
Lephe c8c030081b
forum: preview formatting when editing messages (#49) 2021-07-08 16:50:28 +02:00
Lephe c59e844852
forum: count comments for all presented topics in a single request (#63)
It appears as though performing a lot of requests is the most costly
aspect of listing comment counts per topic; this change aims to address
that by reading all the counts in a single request.

On my computer, this changes loading times from an absolute 100-200 ms to
50-100 ms most of the time. The request impact is not easy to measure as a
couple ms is small enough to fall in the range of disk access and other
semi-random events.
2021-07-07 17:26:22 +02:00
Lephe 6f98cba65e
review of privileges and forum permissions
* Sorted privileges into categories, similar to the v4.3 style

Added privilege check utilities:
* Forum: is_news(), is_default_accessible() and is_default_postable()
* Member: can_access_forum(), can_post_in_forum(), can_edit_post(),
  and can_delete_post()

Unfortunately current_user is not a Guest when logged out, so one
cannot usually write current_user.can_*() without checking for
authentication first, so the checks are still somewhat verbose.

Reviewed forum permissions; the following permission issues have been
fixed (I have tested most but not all of them prior to fixing):

* app/routes/forum/index.py: Users that were not meant to access a
  forum could still obtain a listing of the topics
* app/routes/forum/topic.py: Users that were not meant to see topics
  could still read them by browsing the URL
* app/routes/forum/topic.py: Authenticated users could post in any
  topic, including ones that they should not have access to
* app/routes/posts/edit.py: Users with edit.posts (eg. mods) could edit
  and delete messages in forums they can't access (eg. creativecalc)

* app/templates/account/user.html: Users with admin panel access would
  see account editing links they can't use (affects developers)
* app/templates/base/navbar/forum.html: The "Forum" tab would list all
  forums including ones the user doesn't have access to
* app/templates/forum/index.html: Users would see every single forum,
  including ones they can't access
* app/template/widgets/thread.html: Anyone would see Edit/Delete links
  on every message, even though most were unusable

Miscellaneous changes:
* app/routes/forum/topic.py: Ordered comments by date as intended,
  which I assume worked by chance until now
* Removed the old assets/privs.txt files which is now superseded by the
  list implemented in app/data/groups.yaml

This commit changes group and forum information, run master.py with:
@> forums update
@> groups update
2021-02-26 18:32:45 +01:00
Lephe d50b58cd24
(random improvements on texts) 2021-02-26 18:31:10 +01:00
Eldeberen 5958605d2b
forum: fix message for necropost warning 2021-02-21 20:29:55 +01:00
Eldeberen f10d5404c2
forum: fix #84 2021-02-21 20:17:48 +01:00
Eragon 4ddf60353c
#84 Passage du dernier post en cas de nécropost 2021-01-12 17:30:54 +01:00
Eragon c0ae3cc8ab
#84 Confirmation anti-nécropost 2021-01-12 16:40:52 +01:00
Lephe bb6450bda2
editor: don't autofocus by default
Autofocus prompts the browser to scroll to the editor when the page
loads, which makes little to no sense on topic pages where the important
information is at the top.
2020-10-31 22:15:03 +01:00
Lephe 36ccb16536
thread: use the thread widget for top comments
This allows the top comment to be permalinked and edited as any comment,
following the intent of pinning normal comments to the top.
2020-10-31 15:35:00 +01:00
Darks e308fca0ba
templates: added a widget for threads
It will be used for program comments, etc.
2020-09-26 11:56:07 +02:00
Darks 5253f8ec8f
post edition: added redirection to topic (#49)
Beware that the urlparse method may return unsafe results… IDK
2020-09-24 23:25:25 +02:00
Darks ed5367d46d
editor: added previews 2020-09-23 23:58:25 +02:00
Darks e9948f9675
forum: fix index 2020-09-18 20:05:12 +02:00
Darks 9409113167
markdown: add markdown rendering 2020-09-18 19:43:10 +02:00
Darks 3a35c26bd7
forum: add pagination to topic list (#64) 2020-08-02 17:28:43 +02:00
Darks 554898db87
attachments: merged attachments system into dev 2020-08-01 21:47:25 +02:00
Darks 56a584c535
attachments: added attachments system
Still need some work on it…
2020-08-01 21:26:06 +02:00
Lephe 7e11469183
forum: add basic comment edition with preview
Limitations:
* Works only for registered users
* Does not redirect to the proper MainPost page
* Does not check permissions
2020-08-01 17:30:44 +02:00
Lephe 79600e8598
templates: add a dynamic date format
More reader-friendly (in French at least).
2020-08-01 15:44:47 +02:00
Lephe ea39b5d787
templates: fix indent and tags of forum index 2020-08-01 15:09:07 +02:00
Darks 48dd2b982b
widget-user: ajout de la polymorphie au widget 2020-07-21 18:45:06 +02:00
Darks 34bc74b8e5
feat(forum): ajout du post invité sur les topics (#36)
- Encore une fois, penser à faire ces ACL… (#40)
2020-07-18 07:52:29 +02:00
Darks e6c1545031
feature: ajout du post en tant qu'invité
- Pour les commentaires seulement
- Ajout d'une option pour désactiver (antispam)
- Penser à faire les ACL rapidement…
- Un poil de CSS pour l'intégration du bouzin
2020-07-17 23:49:04 +02:00
Lephe 17c78204a6
update the route model for the forum to <id>/<page>/<slug>
This works by bundling the topic object and page number in a pair during
conversion to/from URL, so that the slug can be computed effortlessly
and put in all links.
2020-07-16 23:58:21 +02:00
Darks 04fb3225c1
refactor: passage aux variables CSS4 2020-07-13 22:54:34 +02:00
Darks 98878bda7d
Meilleur gestion des avatars (#42) 2019-12-22 14:58:19 +01:00
Darks 1e618fafd1
Ajout des permaliens sur les commentaires de topic 2019-12-17 13:16:06 +01:00
Darks 19d09a71df
Passage des routes en français (#41) 2019-12-16 23:57:50 +01:00
Darks 255ce8ad60
Corrige un bug remonté par Lephe (#40) 2019-12-11 13:13:01 +01:00
Darks 415cfd8d8f
Ajout des conditions de création de topics
– L'utilisateur a le droit 'write-everywhere'
– C'est un topic de news et l'utilisateur a le droit 'write-news'
— Ce n'est pas un topic de news et le topic est une feuille de l'arbre 
du forum

Je me rends compte que c'est foireux pour la gestion des permissions. 
Faudra reprendre ça pour faire quelque chose de plus modulable…
2019-12-10 23:01:40 +01:00
Darks b4341ed0f8
Ajout de la pagination pour les topics de forum 2019-12-07 16:34:39 +01:00
Darks bdf23d8a67
Corrige un bug apporté par le commit a2e408da
Retire les utilitaires du scope global du rendu (inutile pour le moment)
2019-12-07 16:12:23 +01:00
Darks a2e408daf9
Ajout du load dynmaique des messages (#39) 2019-12-07 16:06:00 +01:00
Eragon 90ac259177
Ajout de la date de publication et de modification d'un post 2019-12-05 17:14:40 +01:00
Eragon 134eaa4d58
Ajout du style et d'un peut d'affichage pour les topics
J'ai fait mon possible pour que ça rende bien et que le css ne soit pas
trop moche. Il faudra peut-être modifier légèrement l'afichage du
profil, ce dernier est pas assez bien en place à mon goût.
2019-12-03 23:13:22 +01:00
Darks 662882cc15
Ajout des commentaires de topics
On ne peut pas encore modifier le top comment ni commencer un topic à 
partir d'un thread externe, mais les bases sont là :)
2019-12-03 20:32:01 +01:00
Eragon 7884ca8bec
Pas de message d'optin de post en invité si connecté
Ajout d'un if dans le template de l'index du forum pour ne pas afficher l'option
de post en invité si l'utilisateur est connecté.

Remplacement des caractères d'espaces insécables pour html par des
espaces insécables en utf-8.
2019-12-02 00:00:04 +01:00
Lephe 3ad3eca470
forum: list subforum topics
Also introduces a 'date' filter that displays date in a readable format.
2019-09-09 08:11:39 +02:00
Lephe 8a0ba309e0
forum: restructure models and add topic creation
This changes fixes #25 by restructuring the forum models in a way
compatible with the polymorphic behavior of SQLAlchemy. Incidentally,
the new form turns out to be more appropriate for our use than the
polymorphic one originally used.

The migration for this task is non-trivial because the Thread class was
created with a foreign-key id which thus had no auto-increment or
associated sequence. The most reliable way of getting it back was to
recreate the table because SQLAlchemy ony performs automated sequence
introduction at table creation time. Four separate migration files
perform the whole change.

This commit also adds views and forms to create topics, and the
boilerplate for an advanced markup editor that can be used as a widget.
2019-09-09 08:11:38 +02:00
Lephe d1a8333cae
forum: add forum listing routes
With this change, URLs for forum listings are now available. This
includes URLs like /news or /projects/games. Each of them show a
(currently empty) forum index.

Note that URLs that are not linked to in the forum index, namely URLs
for forums that have children (eg. /forum/news), are still accessible. We
could ban this by raising ValidationError if the forum has a non-empty
[sub_forums] attribute but displaying all subjects feels better.

URLs that point to /forum, but do not name a sub-forum and are not of
the form of a topic URL produce 404 errors.
2019-09-09 08:11:38 +02:00