All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Panier Bio page to order vegetables & fruits basket at the ESPCI
- Club Q fixes
- Bekks fixes
- Integrated What You See Is What You Get (WYSIWYG) HTML editor with quill to allow club responsible to update their contents
- Alcohol bar limit is now counted in grams
- Club Q pages visibility fix
- Club Q algorithm speed improved
- Bar stats number of clients
- Club Q brochures for the current season and old ones
- Club Q spectacle image by website upload
- Club Q images are now in a separated folder from /photos
- Club Q email template and reply-to address
- Bekk PDF download with tokens
- Permissions misconfiguration for Club Q allowing users to modify whishes
- Subscription card was causing an error if the user never subscribed before
- Bekk (ESPCI student newspaper) module. Read Bekks for user and tools for bekks administrators
- Compact version to reservation form for Club Q
- Bekk & Club Q cards for main page
- Being a rezident is no longer required to access main page
- Fixed Club Q minimum places forms bug
- Background color bug for tables
- Minor fixes for Club Q
- Managing tools for Club Q page (Attribution algorithm, e-mails sender, modules settings)
- Summary tables for better Club Q administration overview
- Interacting with the Club Q database through website
- Club Q Booking page now takes in account was wishes were made before
- ESPCI Club Q-ulture page
- Booking page
- List of spectacles
- Club Q read permission
- "Theatre ESPCI" was renamed "Club Théâtre"
- Some documentation in README.md + table of contents
- A lot of small things backported from fixes applied directly to production server (don't do that)
- Practical information about theatre piece at ESPCI
- Link for after sales service for the theatre page
- Corrected texts
- Database for the theatre page
- List of spectacles
- List of representations linked to spectacles
- Images for the theatre page are now saved locally
- License
- the /static/img/theatre directory
- Static page for the ESPCI Theatre Club 2023 season
- Informations & description for all the plays
- Access throught the navbar
- Partially translated in english
update_sub_states
script crashed for users with access to IntraRez but without devices
- Extensive photos management system:
- Create albums;
- Upload photos from app (with automatic thumbnail creation and metadata extraction);
- Edit / star / delete photos from album view.
- New "public permission" system:
- New role
_PUBLIC
that applies to all users, logged in or not; - New classmethod
PCeen.has_public_permission
checking this role.
- New role
- New annual script automating changes:
- Replace "Student" role by "Alumni" role for leaving students (sending a mail);
- Create entering promotion collection and role.
- New
showToast
JS function allowing to "create" a new toast through JS, after page loading; - Running
flask script
without argument now list all existing scripts.
- Access to the photo module are no longer restricted (but collections still are!);
- Collections are now ordered from most recent to oldest;
- Collection and albums cannot be marked visible if they are empty.
- Photo edit / star buttons in the upper ribbon of the gallery; use album view instead.
- PCéens with permission read/bar_stats are now reported in the Bar users list.
- Bar user page crashed when no quick access item was selected ;
- Global settings were not saved to base and had a weired behavior ;
- Errors when trying to upload a Bar avatar were not correctly handled.
- One-shot Bar data migration script.
Fusion of the ESPCI Bar site (https://github.com/GRI-ESPCI/espci-bar-web-app) into this project.
This project had no versioning and no changelog.
- New Bar module:
- Tables
BarItem
,BarTransaction
,BarDailyData
and enumBarTransactionType
; - Columns
PCeen.bar_nickname
,PCeen.bar_deposit
andPCeen.bar_balance
; - Blueprint
bar
with 9 new routes; - Corresponding templates;
- Main page info card;
- Nginx location
/bar_avatars
to securely serve users avatars (stored in photos directory); - New roles and permissions creation in script
update_roles.py
: - One-shot script
import_bar_data
to import current Bar data in new tables.
- Tables
- New generic API system:
- Blueprint
api
; - Sub-blueprint
api.bar
with 6 new routes; - New
js/api.js
functions.
- Blueprint
- New "global settings" system:
- Table
GlobalSetting
; app.utils.global_settings
module;- New Babel global variable
Settings
;
- Table
- Split PCéens management page into 4 different views;
- New column
PCeen.activated
denoting accounts that logged in at least once (not created automatically); - New permissions routes context manager
context.any_permission_only
.
- Moved role-granting utilities to new module
app.utils.roles
; - Moved Nginx token handling to new module
app.utils.nginx
; - Moved roles / permissions add / remove utilities to
api.gris
sub-blueprint; - Moved main navbar and footer to specific templates
main/navbar.html
/main/footer.html
; - Bumped to Bootstrap 5.0.
- SAML identity provider fallback mechanism did not worked.
- Grant automatically Rezident role when connecting from the internal network.
- Scripts did not log errors to Discord ;
update_sub_states
script crashed because of PCeens without IntraRez access.
- Index profile card: number of devices replaced by roles list.
- Fixed missing permissions restrictions:
- Rooms / devices / payments routes: restrict access to
read
/intrarez
permission; - Photos routes: restrict collection / album / photo modification to corresponding
write
permission ;
- Rooms / devices / payments routes: restrict access to
- Fix corresponding information shown:
- Profile page: only show room and device cards in
read
/intrarez
permission; - Photos pages: show edit buttons and load edit forms only if
write
/photos
permission.
- Profile page: only show room and device cards in
- Authentication with ESPCI SSO
- New :mod:
routes.auth.saml
blueprint; - Column :attr:
models.PCeen._password_hash
is now nullable; - New column :attr:
models.PCeen.espci_sso_enabled
; - Adapted login / sign-in pages;
- New config variables
SAML_IDP_METADATA_URL
,SAML_IDP_METADATA_FALLBACK_URL
,SAML_CERTIFICATE_PRIVATE_KEY_FILE
,SAML_CERTIFICATE_PUBLIC_KEY_FILE
.
- New :mod:
- Automatically grand
Rezident
role when registrating from the Rez network;
- Updated legal mentions page.
- GRI PCéens list was missing subscribtion information and modals.
Test of SAML implementation.
Fusion of IntraRez (https://github.com/GRI-ESPCI/intrarez) into this project.
Since IntraRez had its own version and was in v1.6.3, this project is directly bumped from v0.2.1 to v2.0.0.
See original IntraRez changelog in INTRAREZ_CHANGELOG.MD
.
- Permissions add/removal in GRI menu.
- Photos are now sorted by timestamp;
- Collections/albums cover photo are now in high resolution;
- Localized photos timestamp format.
- :class:
.models.Role
and :class:.models.Permission
system, with- Enums :class:
.enums.PermissionType
and :class:.enums.PermissionScope
; - Permission check method :class:
.models.PCeen.has_permission
, context functions :func:.context.has_permission
, :func:.context.check_permission
, :func:.context.check_any_permission
, :func:.context.check_all_permissions
and decorator :func:.context.permission_only
;
- Enums :class:
- GRI menu (from IntraRez) with PCeens and roles management pages.
- Photos access is now restricted to some permissions;
- Main page message.
- Added "masked collection/album" badges on photos pages.
fix_photos.py
script to re-generate thubs and gzipped versions.
- Forced IP was written in hard (now
FORCE_IP
environment variable);
- Fixed
README.md
,model.env
andnginx.conf
.
- Photos (blueprint, models, pages, script, env variables, nginx conf, metadata extraction, thumbs/gzipped versions, lightgallery, edit/report modals, featuring, defered loading, URL anchors...)
First working application, with Flask structure derived from IntraRez. No PC est magique-specific features.