preprod to master #88

Closed
Darks wants to merge 0 commits from preprod into master
Owner
No description provided.
Darks added 113 commits 2021-02-23 00:10:37 +01:00
4117ec4b15
user: FIX problème de perf à l'affichage
Le serveur aime pas devoir recalculer à chaque fois le nombre de 
commentaires de chaque topic
0896a6b163
passwords: enhances passwords rules
- based on entropy (min 60 bits)
- adds a coloured progress bar if Js is enabled
e35910ee76
config: refactor configuration values
- System/host config values stay in `config.py`
- Application config values moves in corresponding models
- BREAK: AVATAR_FOLDER becomes DATA_FOLDER. Edit your local config if 
needed
b108ce4cfe
titles: add displayed title (#65)
- with forms for user and admins
d3f137b92d
programs: add models for programs and topic promotions (#20)
Not tested yet since there is a lack of tools to manipulate comments,
topics and programs. The /programmes routes is used to display a list of
all programs, temporarily.
8a95d43eb0
templates: represent actual level in XP bar in user widget
This is much more useful in determining a user's activity than the
current level progression. Since the XP bar is the second most visible
item apart from the avatar, it's more relevant.
79600e8598
templates: add a dynamic date format
More reader-friendly (in French at least).
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
56a584c535
attachments: added attachments system
Still need some work on it…
801bd188ae
feat: add .env and .flaskenv to gitignore
Because there is no reason to track them
3fb3ee40d2
fix: better PEP8
Flake8 returns less errors. I ignored lots of them though
80bbcac8db
themes: added Flammingkite theme
Still need to implement custom theme selection
cbdffc1224
Ajout de la possibilité d'activer un compte par la cli.
Une fonction permet de modifier le status de vérification de l'adresse mail de
l'utilisateur spécifié en paramètre.
On peut exploiter la fonction via le script `master.py`
c419716806
Utilisation de https://github.com/sparksuite/simplemde-markdown-editor comme éditeur
Ajout des fichiers dans les fichiers statiques. (min.css & min.js).
Supression des scripts custom d'édition.
Remplacement par les bon appels de fonctions dans app/templates/widgets/editor.html
b5f1ea1d1d
Un seul chargement du script même avec plusieurs textarea
Le script est chargé de manière standard, comme les autres scripts.
L'init du script est lancé seulement après le chargement complet
de toute les dépendances de la page.
ed0f3b47f6
Meilleur gestion avec plusieurs forms dans une page
L'éditeur markdown est lié à l'id du textarea qui l'invoque (Acte Vaudou)
5253f8ec8f
post edition: added redirection to topic (#49)
Beware that the urlparse method may return unsafe results… IDK
e308fca0ba
templates: added a widget for threads
It will be used for program comments, etc.
0d8dd70956
security: add CSRF protection globally
The decorator @check_csrf can be used to check CSRF protection when 
using GET links (like delete a post or logout)
227087ebbc
Issue #76 Refactoriser les messages flash
Javascript :
Supression du javascript inutile, l'entièreté du bloc du flash.

CSS :
Alignement plus correct des notifications flash, fini le fixed, 15%
place au margin auto.
Ajout d'une marge pour éviter l'effet «bloc».
Héritage des propriétés de couleur du texte et du fond de la classe supèrieure.

Modification des templates :
Les messages sont désormais chargés avant le contenu et après le header.
e06363715e
forum: match topic title length in creation form with model
Model has titles of up to 128 characters, but the form limits that input
to 32 characters. Bump that to 128 too.
a95a88f3b1
app: send cookies with Secure and SameSite=Lax (#60)
Sending cookies without Secure and without SameSite causes Firefox to
ignore or invalidate them, which disconnects accounts seemingly randomly.
ee01a4c768
master.py: split generation of trophies and generation of icons
May be used in development environment when database is populated and 
deleting/recreating trophies throws an error because it will broke 
non-null relationships.
c7846c4f8b
threads: improve layout and flow of messages
* When there is enough space, put links and date on the right
* On small screens, compact profile information
* On small screens, leave links and date on the right to maximize
  message width
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.
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.
cf9cb8a8c6
forum: add true, recursive deletion methods
Each object has a .delete() which removes it and its owned subcontents.
This delete() unfortunately has to commit the database session because
circularly-dependent objects (such as a thread and its top comment)
cannot be deleted together; two commits are needed.
75f3a90f20
master.py: update forums with stateful logic
The create-forums function has been replaced with an [update] subcommand
of [forums]. This new function tries its best to keep existing forum
objects, which is especially important once content has been created.

Forums are identified by their URL. Changing the URL means the forum
needs to be recreated. If the URL doesn't changed, metadata is updated
without removing topics and subforums in that forum.

* Improve the update model for forums in master.py
* Fix a typo in the prefix for the tool projects subforum
* Add the admin and assoc boards for permission testing
13b2bd2671
admin/members: add a full member list
... which can someday be filtered for names, shared IPs, registration
dates, and other useful tools.
1d38f906ee
admin/members: add a dynamic regex/logic filter for the member list
This commit introduces a client-side table filter that supports regexes
and propositional logic to filter table rows.

A table can be filtered if it has the [filter-target] class and its
first row has <th> tags with a [data-filter] attribute specifying column
names.

The filter itself is a div with the [form] and [filter] classes, and a
[data-target] attribute pointing to the table to filter. The filter
contains a text <input> which is passed to filter_update() when the
filter expression is validated.

The client-side filter code runs the expression through a basic lexer
and parser, then matches the result for every row in the target table.
The [textContent] of each cell is used for string and regex matching.
473448ab5b
poll: add ability to vote
Fixed some bugs too
0c7474d8ba
pclink: add handle for topics
rewrite some handles in french
Darks closed this pull request 2021-02-23 00:12:06 +01:00

Pull request closed

Sign in to join this conversation.
No description provided.