Commit Graph

23 Commits

Author SHA1 Message Date
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
Julien Constant
faccc1367f
Fix le panier de l'Eboutic pour Safari (#518)
Co-authored-by: Théo DURR <git@theodurr.fr>
Co-authored-by: thomas girod <56346771+imperosol@users.noreply.github.com>
2022-12-14 08:38:41 +01:00
Thomas Girod
fe9e5ce861 integration of 3D secure v2 for eboutic bank payment 2022-11-30 22:52:56 +01:00
Sli
98bfc308a7 Minimal working version
* Upgrade dependencies
* Fix ugettext
* Fix bad urls
2022-08-04 00:28:09 +02:00
Sli
85623f48a9 Using poetry as a dependency system for development 2021-10-15 16:12:56 +00:00
05e5008305
documentation: base structure for new documentation 2019-10-07 23:51:35 +02:00
Skia
65e0b15b31 Update Haystack indexer to use Xapian 2018-11-26 21:25:02 +01:00
Soldat
66957750ba Ajout de black dans contributing 2018-10-05 23:03:45 +02:00
Skia
7ec9d7f8c6 gitignore: ignore coverage artifacts
Signed-off-by: Skia <skia@libskia.so>
2017-08-29 16:45:18 +02:00
Skia
729659e358 Don't ignore */static 2016-12-26 01:59:54 +01:00
Skia
5b95299bde Add Whoosh index 2016-12-20 14:46:08 +01:00
Skia
cfbd610305 Revert "Merge branch 'fond-gala' into 'master'"
This reverts merge request !25
2016-11-21 14:10:29 +01:00
d418da679b Add background for gala 2016 2016-11-13 22:55:32 +01:00
Skia
321dead0de Translation updates, and make the binary compiled translation file ignored 2016-11-08 18:56:57 +01:00
Skia
3d9dfbc43a Fix gitignore 2016-09-14 13:46:43 +02:00
Skia
b63923d956 Refactor settings 2016-09-12 14:04:50 +02:00
Skia
325da79e45 Add support for subscription typed products in eboutic 2016-08-29 03:02:13 +02:00
Skia
e29e94711a Move settings to settings_sample 2016-07-14 16:15:38 +02:00
Skia
8da149c979 Some refactoring between accounting and counter 2016-05-31 13:00:52 +02:00
Skia
21f1393097 Add basic counter model 2016-03-28 14:54:35 +02:00
Skia
7f163ffc9e Add Doxyfile for generating doc 2016-01-29 16:23:41 +01:00
e750b5a12f Edited gitignore and README to make everything work proprely with virtualenv 2015-12-03 20:29:07 +01:00
Skia
5bd40b2ec4 First commit: basic users 2015-11-18 09:44:06 +01:00