Commit Graph

156 Commits

Author SHA1 Message Date
klmp200 0d1629495b Refactor com scss and add basic unified event calendar 2025-01-04 22:51:44 +01:00
imperosol 1e29ae4171 fixes on club group attribution 2025-01-03 01:18:28 +01:00
imperosol 6400b2c2c2 replace MetaGroups by proper group management 2025-01-03 01:18:28 +01:00
imperosol bea7741d35 populate group permissions 2024-12-21 18:48:30 +01:00
imperosol 8c660e9856 Make core.User inherit from AbstractUser instead of AbstractBaseUser 2024-12-19 10:39:04 +01:00
imperosol 466fe58763 feat: make student card unique per user 2024-12-15 16:49:24 +01:00
imperosol ee9f36d883 implement the dump_accounts command 2024-11-19 00:48:35 +01:00
imperosol c2efc969d0 refactor populate.py 2024-11-10 02:59:43 +01:00
imperosol b091fee035 custom queryset method to bulk update customer balance 2024-11-10 02:59:43 +01:00
thomas girod d16a207a83 Add more Ruff rules (#891)
* ruff: apply rule F

* ruff: apply rule E

* ruff: apply rule SIM

* ruff: apply rule TCH

* ruff: apply rule ERA

* ruff: apply rule PLW

* ruff: apply rule FLY

* ruff: apply rule PERF

* ruff: apply rules FURB & RUF
2024-10-15 11:36:26 +02:00
klmp200 0b31b215f6 Remove check_front command 2024-10-14 00:55:48 +02:00
thomas girod a4fe4996aa Merge pull request #834 from ae-utbm/real-name
Restore real name
2024-10-03 10:12:23 +02:00
thomas girod 0eaa20e09d fix localdate issues 2024-10-03 00:25:22 +02:00
thomas girod 3e5d4c5fbb add fixtures for the forum 2024-09-27 11:21:33 +02:00
klmp200 9c93162741 Add missing files 2024-09-23 10:25:27 +02:00
klmp200 6068c6048a Use real name of the website once again 2024-09-23 01:37:25 +02:00
thomas girod acad74528d fix: sale creation in populate_more 2024-09-17 16:05:42 +02:00
Skia d1c88a5cef core: commands: make 'install_xapian' way faster 2024-09-09 15:17:09 +02:00
thomas girod dd07c374d7 convert uploaded images to webp 2024-09-01 19:05:54 +02:00
thomas girod b7261ec629 custom manifest static files storage that also minify scss and js files 2024-08-26 22:34:32 +02:00
thomas girod 62bb15317c T2 ruff rule 2024-08-06 11:42:10 +02:00
thomas girod 63b6b262c6 repair BASE_DIR 2024-07-26 18:21:57 +02:00
thomas girod 424639ea80 better scss 2024-07-26 15:55:15 +02:00
thomas girod 594776f3a6 better scss compilation 2024-07-26 15:55:15 +02:00
thomas girod 6c4251a91f populate more 2024-07-26 15:15:50 +02:00
thomas girod 8c69a94488 use google convention for docstrings 2024-07-21 00:57:04 +02:00
thomas girod 07b625d4aa Rewrite documentation with MkDocs 2024-07-21 00:56:58 +02:00
thomas girod 02ec3607b2 fix install_xapian.sh 2024-07-08 15:56:37 +02:00
thomas girod f941435232 ruff rule C4 2024-07-08 15:37:10 +02:00
thomas girod 171a1cb876 ruff rule FBT 2024-07-08 15:37:09 +02:00
thomas girod cfc19434d0 ruff rules UP008 and UP009 2024-07-08 15:37:09 +02:00
thomas girod aa07fa9207 faster tests 2024-07-04 14:03:19 +02:00
thomas girod 3143d3d91a reorganize imports with ruff 2024-06-26 12:35:38 +02:00
klmp200 ca27b89a8b Apply shellcheck on install_xapian.sh 2024-06-26 11:31:39 +02:00
klmp200 5416d88c97 Upgrade dependencies and install xapian from sources 2024-06-24 13:26:58 +02:00
Skia 87295ad9b7 Galaxy improvements (#628)
* galaxy: improve logging and performance reporting

* galaxy: add a full galaxy state test

* galaxy: optimize user self score computation

* galaxy: add 'generate_galaxy_test_data' command for development at scale

* galaxy: big refactor

Main changes:
  - Multiple Galaxy objects can now exist at the same time in DB. This allows for ruling a new galaxy while still
    displaying the old one.
  - The criteria to quickly know whether a user is a possible citizen is now a simple query on picture count. This
    avoids a very complicated query to database, that could often result in huge working memory load. With this change,
    it should be possible to run the galaxy even on a vanilla Postgres that didn't receive fine tuning for the Sith's
    galaxy.

* galaxy: template: make the galaxy graph work and be usable with a lot of stars

- Display focused star and its connections clearly
- Display star label faintly by default for other stars to avoid overloading the graph
- Hide non-focused lanes
- Avoid clicks on non-highlighted, too far stars
- Make the canva adapt its width to initial screen size, doesn't work dynamically

* galaxy: better docstrings

* galaxy: use bulk_create whenever possible

This is a big performance gain, especially for the tests.

Examples:

----

`./manage.py test galaxy.tests.GalaxyTest.test_full_galaxy_state`

Measurements averaged over 3 run on *my machine*™:
Before: 2min15s
After: 1m41s

----

`./manage.py generate_galaxy_test_data --user-pack-count 1`

Before: 48s
After: 25s

----

`./manage.py rule_galaxy` (for 600 citizen, corresponding to 1 user-pack)

Before: 14m4s
After: 12m34s

* core: populate: use a less ambiguous 'timezone.now()'

When running the tests around midnight, the day is changing, leading to some values being offset to the next day
depending on the timezone, and making some tests to fail. This ensure to use a less ambiguous `now` when populating
the database.

* write more extensive documentation

- add documentation to previously documented classes and functions and refactor some of the documented one, in accordance to the PEP257 and ReStructuredText standards ;
- add some type hints ;
- use a NamedTuple for the `Galaxy.compute_users_score` method instead of a raw tuple. Also change a little bit the logic in the function which call the latter ;
- add some additional parameter checks on a few functions ;
- change a little bit the logic of the log level setting for the galaxy related commands.

* galaxy: tests: split Model and View for more efficient data usage

---------

Co-authored-by: maréchal <thgirod@hotmail.com>
2023-05-10 12:47:02 +02:00
thomas girod ef968f3673 Better usage of cache for groups and clubs related operations (#634)
* Better usage of cache for group retrieval

* Cache clearing on object deletion or update

* replace signals by save and delete override

* add is_anonymous check in is_owned_by

Add in many is_owned_by(self, user) methods that user is not anonymous. Since many of those functions do db queries, this should reduce a little bit the load of the db.

* Stricter usage of User.is_in_group

Constrain the parameters that can be passed to the function to make sure only a str or an int can be used. Also force to explicitly specify if the group id or the group name is used.

* write test and correct bugs

* remove forgotten populate commands

* Correct test
2023-05-02 12:36:59 +02:00
thomas girod 96dede5077 Speed up tests (#638) 2023-05-02 11:00:23 +02:00
thomas girod b5a40cfda9 Mise à jour de Black vers la version 23.3 (#629) 2023-04-22 15:32:31 +02:00
Julien Constant 8e7c025e47 [FIX] Broken link in readme and license fix (& update) (#591) 2023-04-04 18:39:45 +02:00
Skia 585923c827 Add galaxy (#562)
* style.scss: lint

* style.scss: add 'th' padding

* core: populate: add much more data for development

* Add galaxy
2023-02-07 12:08:25 +01:00
Thomas Girod fe9e5ce861 integration of 3D secure v2 for eboutic bank payment 2022-11-30 22:52:56 +01:00
Thomas Girod 8b09ba2924 refonte de la boutique en ligne 2022-10-30 12:33:21 +01:00
lsacienne ba6599fa56 Add of tests 2022-05-05 23:24:08 +02:00
tleb be26e3df7f core: add ./manage.py check_front command and call it on runserver 2021-09-27 22:00:36 +02:00
klmp200 f34f5fe693 Upgrade black and format accordingly 2020-08-27 15:59:42 +02:00
klmp200 1256744f1b documentation: add autoreload and build for documentation server 2019-11-20 17:03:18 +01:00
klmp200 99c8d95443 django2.2: remove direct assignments to many-to-many fields 2019-10-08 22:46:37 +02:00
klmp200 2a9b89fd2a core: remove README wiki page that wasn't helpful and anyway broken with rst files 2019-10-08 11:12:22 +02:00
klmp200 5c3c14ab37 core: wrap compilemessages to avoid compiling whole env and avoid crash at sphinx messages compilation 2019-10-08 00:59:00 +02:00