imperosol
722ef67450
deps: update JS dependencies
2025-11-07 16:32:42 +01:00
imperosol
f027464d0e
apply new ruff rules
2025-11-07 16:24:28 +01:00
imperosol
d940e32dac
deps: update python dependencies
2025-11-07 16:22:07 +01:00
imperosol
e26851beb3
feat: scroll to news moderation section when clicking notification
...
closes #1202
2025-11-07 15:39:58 +01:00
imperosol
9c22e061f5
fix: missing sales csv header row
...
fix #1205
2025-11-07 14:56:34 +01:00
imperosol
9a311d8cee
fix: pictures download button
...
fix #1225
2025-11-07 14:30:11 +01:00
imperosol
7209801511
fix: product image not saved
...
fix #1219
2025-11-07 13:14:13 +01:00
imperosol
742ac504dc
optimize db requests on club sales view
2025-11-07 13:08:01 +01:00
imperosol
3b56d2c22b
add index on Selling.date
...
L'index prend ~20% de la taille de la table (la table fait un peu plus de 100%Mo, et l'index un peu plus de 20Mo), mais permet de diviser par 10 les requêtes qui filtrent sur la date des ventes.
Ca concerne notamment les requêtes db faites sur les pages suivantes :
- les appels à facture (~75ms → ~3ms)
- les ventes d'un club (entre 300ms et 450ms → entre 10ms et 15ms)
- le top conso des comptoirs (sur le Foyer, ~90ms → ~9ms)
- les dernières opérations d'un comptoir (sur le Foyer, ~130ms → ~1.5ms
J'aurais bien aimé mettre également un index sur la troncature au mois de la date, mais c'est compliqué à mettre en place étant donné que postgres ne prend des index que sur des expressions immuables et que, comme elle dépend de la timezone (qui peut changer), la fonction date_trunc n'est pas immuable.
2025-11-07 13:08:01 +01:00
imperosol
118a08372f
simplify poster moderation
2025-10-31 17:16:52 +01:00
imperosol
49a9149a90
Revert "pinktober 2025"
...
This reverts commit 35443c9721cf84a94a89bd082029523dad354824.
2025-10-19 11:31:15 +02:00
imperosol
ed12da222f
pinktober 2025
2025-10-18 20:57:13 +02:00
imperosol
fc615e90b2
fix: notification on invoice call update
2025-10-18 14:35:19 +02:00
imperosol
8bd82c9d7c
Complete invoice call validation feature
2025-10-17 13:44:03 +02:00
imperosol
d815f7da97
fix: permission in ClubAddMemberForm
2025-10-10 21:20:04 +02:00
imperosol
dac52db434
forbid past dates for product actions
2025-10-10 20:50:50 +02:00
imperosol
f398c9901c
fix: 500 on product create view
2025-10-10 20:42:36 +02:00
imperosol
5b91fe2145
use ModelFormSet instead of FormSet for scheduled actions
2025-10-10 20:40:44 +02:00
imperosol
abd905c24d
write tests
2025-10-10 20:40:44 +02:00
imperosol
42b53a39f3
feat: automatic product counters edition
2025-10-10 20:40:44 +02:00
imperosol
5306001f6f
ScheduledProductAction model to store tasks related to products
2025-10-10 20:40:44 +02:00
imperosol
83a4ac2a7e
feat: automatic product archiving
2025-10-10 20:40:44 +02:00
imperosol
40c3276c3c
remove spaces from autocomplete selects
2025-09-29 17:43:50 +02:00
imperosol
543a424258
fix: N+1 on news list for admins
2025-09-29 16:10:50 +02:00
imperosol
8ff25e6034
optimize main page notifications
2025-09-29 08:45:56 +02:00
imperosol
56f09fd739
fix: wrong text on member form submit button
2025-09-27 17:40:18 +02:00
imperosol
24e1ad6dc8
apply review comments
2025-09-27 17:06:43 +02:00
imperosol
2a30f30a31
feat: cache user pictures
2025-09-26 22:44:26 +02:00
imperosol
80545e682b
add hour indicator
2025-09-26 22:32:51 +02:00
imperosol
a7adb4bba3
add translations
2025-09-26 22:32:49 +02:00
imperosol
e75e7e697a
display course type on top left of slots
2025-09-26 22:32:35 +02:00
imperosol
9d99976bee
add timetable to common links
2025-09-26 22:32:35 +02:00
imperosol
4103dce1bb
simplify timetable generator url
2025-09-26 22:32:35 +02:00
imperosol
e82f3649e5
allow export to Png
2025-09-26 22:32:35 +02:00
imperosol
d3444f6bea
timetable base
2025-09-26 22:32:35 +02:00
imperosol
eadf74604c
Split ClubMemberForm into JoinClubForm and ClubAddMemberForm
2025-09-26 18:23:49 +02:00
imperosol
cc58479a19
use new notifications system
2025-09-26 16:00:31 +02:00
imperosol
c03b6e5d9d
add tests
2025-09-26 15:49:36 +02:00
imperosol
66cf2bd957
Better management of roles in ClubMemberForm
2025-09-26 15:49:33 +02:00
imperosol
3e8f3b9275
feat: success message on membership creation
2025-09-26 15:49:24 +02:00
imperosol
c7363de44f
improve new member form style
2025-09-26 15:49:24 +02:00
imperosol
966fe0ec0e
fix: N+1 queries on old club members view
2025-09-26 15:49:24 +02:00
imperosol
fd0af3a804
HTMXify club members page
2025-09-26 15:49:24 +02:00
imperosol
7db66bb8f6
feat: MembershipQuerySet.editable_by method
2025-09-26 15:49:24 +02:00
imperosol
ec80b72a25
clear tom select text when identifying users in SAS
2025-09-25 07:38:44 +02:00
imperosol
acb6c6ce9c
fix: N+1 query on PageListView
2025-09-22 18:14:14 +02:00
imperosol
854dd2d9e7
add disclaimer for subscription purchase with AE account
2025-09-22 13:28:42 +02:00
imperosol
a7c96425c8
fix: ClubSellingView N+1 queries
2025-09-22 13:28:42 +02:00
imperosol
ce2ef78a6d
fix: 500 on page properties edit
2025-09-21 16:01:17 +02:00
imperosol
08b16d6e74
feat: make poster views available to club board members
2025-09-19 17:22:44 +02:00
imperosol
b58da0ea30
fix: dependabot.yml
2025-09-15 12:04:18 +02:00
imperosol
25cd877160
fix: Counter.edit_groups
2025-09-13 11:39:53 +02:00
imperosol
37961e437b
fix: N+1 queries on PageListView
2025-09-04 17:39:17 +02:00
imperosol
b97a1a2e56
improve User.can_view and User.can_edit
2025-09-04 17:38:58 +02:00
imperosol
3ad40b7383
change birthdate only if user didn't have it previously
2025-09-04 11:03:02 +02:00
imperosol
3709b5c221
require birthday when creating subscriptions for users that didn't give it previously
2025-09-04 11:02:59 +02:00
imperosol
171a3f4d92
make some users not having birthday in populate_more.py
2025-09-04 11:02:48 +02:00
imperosol
84e2f1b45a
fix: subscription form alignment
2025-09-04 11:02:48 +02:00
imperosol
cb454935ad
fix: N+1 queries on ICS generation
2025-09-03 14:00:09 +02:00
imperosol
17c50934bb
fix: news notifications
...
Résout trois problèmes :
- la création des notifications faisait un N+1 queries
- le décompte du nombre de nouvelles à modérer était mauvais
- modérer une nouvelle ne modifiait pas les notifications des autres admins
2025-09-03 13:55:07 +02:00
imperosol
5646f22968
feat: add sitemap
2025-09-02 16:00:03 +02:00
imperosol
03759fd83e
fix translations
2025-09-01 18:21:55 +02:00
imperosol
83c96884d8
add missing meta description tags
2025-09-01 18:20:27 +02:00
imperosol
8524996f06
simplify Subscription.save()
2025-09-01 15:30:39 +02:00
imperosol
2086d23b50
fix old subscribers group attribution
...
Si un utilisateur faisait sa première cotisation alors qu'il avait déjà un compte AE (par exemple, en effectuant un achat sur l'eboutic avant sa cotisation), alors il pouvait se retrouver hors du groupe Anciens cotisants.
2025-08-31 20:49:56 +02:00
imperosol
d8f907fc70
Optimize galaxy generation
...
En réorganisant les requêtes à la db, on diminue par 100 le temps d'exécution de la commande `rule_galaxy` (~6h => ~2min)
2025-08-30 19:05:41 +02:00
imperosol
e864e82573
replace deprecated CheckConstraint.check by CheckConstraint.condition
2025-08-28 16:31:54 +02:00
imperosol
a3ac04fc9e
fix TS types
2025-06-30 18:35:53 +02:00
imperosol
6e724a9c74
extract AlertMessage to its own file
2025-06-30 18:17:29 +02:00
imperosol
6cf8910626
fix: xapian compilation flags
2025-06-30 13:09:24 +02:00
imperosol
abf7bf6bfa
rename location_admin to campus_admin
2025-06-25 17:13:24 +02:00
imperosol
02ef8fdb88
fix: enumeration attack vector on login form
2025-06-25 17:03:53 +02:00
imperosol
f38926c4a3
fix: user pictures ordering
2025-06-25 16:25:51 +02:00
imperosol
67884017f8
fix old permanences having end replaced by activity
2025-06-25 01:22:13 +02:00
imperosol
9049d8779c
improve counter admin pages
2025-06-21 15:06:08 +02:00
imperosol
cdfa76ad57
add missing "Respo site" group
2025-06-18 18:01:37 +02:00
imperosol
88b70bf51f
rename main groups to their real production version
2025-06-18 18:01:37 +02:00
imperosol
8cc0b01e9c
fix: api title typo (again)
2025-06-17 21:01:51 +02:00
imperosol
88755358a6
fix: add missing sas permission
2025-06-17 21:00:38 +02:00
imperosol
0c442a8f03
fix: select only active club members on GET /club/{club_id}
2025-06-17 15:35:49 +02:00
imperosol
f1b69dd47d
fix: typo in API name
2025-06-17 15:35:49 +02:00
imperosol
a87460fa3e
fix: documentation CI/CD
2025-06-17 14:45:51 +02:00
imperosol
6fec250658
display album name on picture identification notif
2025-06-16 18:36:08 +02:00
imperosol
75b37cd6e3
fix album grouping on user pictures page
2025-06-16 18:36:08 +02:00
imperosol
efbbfcda76
update js deps
2025-06-16 15:51:11 +02:00
imperosol
9e1fe7a296
update python deps
2025-06-16 15:51:04 +02:00
imperosol
50d7b7e731
Move api urls to api app
2025-06-16 15:00:30 +02:00
imperosol
ae7784a973
rename apikey to api
2025-06-16 14:54:42 +02:00
imperosol
a23604383b
doc: incompatibility between api keys and csrf
2025-06-16 13:44:43 +02:00
imperosol
80866086a8
Forbid authentication with revoked keys
2025-06-16 13:44:43 +02:00
imperosol
2c7eb99f31
use 54 bytes keys and sha512 hashing
2025-06-16 13:44:43 +02:00
imperosol
189081f5a8
api key doc for developers
2025-06-16 13:44:43 +02:00
imperosol
52e53da9ef
adapt CanAccessLookup to api key auth
2025-06-16 13:44:43 +02:00
imperosol
b5d65133f3
add doc for external API consumers
2025-06-16 13:44:43 +02:00
imperosol
44e1902693
Add GET /api/club/{club_id} to fetch details about a club
2025-06-16 13:44:43 +02:00
imperosol
1d55a5c2da
Make HasPerm work with ApiKeyAuth
2025-06-16 13:44:43 +02:00
imperosol
853aa34c18
adapt pedagogy api to api key auth
2025-06-16 13:44:43 +02:00
imperosol
dc72789c14
feat: basic api key management
2025-06-16 13:44:41 +02:00
imperosol
c7e4de7df2
fix: datetime format in main page news list
2025-06-14 11:54:58 +02:00
imperosol
dcc84894e5
fix: bad role title alignment in election.scss
2025-06-14 10:43:02 +02:00