Commit Graph
100 Commits
Author SHA1 Message Date
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
imperosol c62c09f603 fix: counter selection queryset performance on SellingForm 2025-06-12 14:35:39 +02:00