Moins de requêtes #521
No reviewers
Labels
No labels
devtype -- backend
devtype -- docs
devtype -- frontend
devtype -- user interface
difficulty -- easy
difficulty -- hard
difficulty -- normal
Doing
domain -- bda
domain -- bds
domain -- cof
domain -- core
domain -- kfet
Good first issue
priority -- high
priority -- low
priority -- medium
priority -- staff-wanted
status -- development
status -- discussion
status -- need review
status -- production
status -- ready to merge
status -- todo
To Do
type -- bug
type -- hygiene
type -- improvement
type -- new feature
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: DGNum/gestioCOF#521
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "aureplop/fewer_requests"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fewer database requests are issued.
Misc
K-Fêt
Account
andAccountNegative
models doesn't issue more requests toCofProfile
andUser
instead theyselect_related
these models the first time only.kfet.views
and kfet templates.real_balance
property ofAccount
objects (happened if negative entry exists, but balance_offset isn't set).BdA
bda.views
.added 1 commit
0ed70eb0
- PEP8Compare with previous version
added 8 commits
master
b8aa5d8b
- Merge branch 'master' into aureplop/fewer_requests3e0bd2e7
- Fewer db requests on bda views.Compare with previous version
added 1 commit
9f307c1b
- Fewer db requests on bda tirage.Compare with previous version
@lstephan @mpepin Ça mérite de s'y attarder deux minutes. Vous pouvez checker ?
Je dois passer par le
defaultdict
pour éviter les duplications(participant, spectacle)
.Par contre s'il y avait déjà des entrées pour ce tirage dans la BDD, ça va soulever des erreurs d'unicité.
Questions:
ChoixRevente.objects.filter(spectacle__tirage=tirage_elt).delete()
(comme c'est le cas avecAttribution
) quelques lignes plus haut ?Du coup avec les
ChoixRevente
tu les remets à zéro ; mais bon vu que je suppose que lancer 2 fois le tirage est plutôt une mesure d'exception, ça me va. Vérifie tant qu'à faire que les reventes sont bien supprimées quand tu vires les attributions, je sais plus si c'est le cas...Tu parles de
SpectacleRevente
? Vu que y'a pas deon_delete
sur leOneToOne
de ce modèle versAttribution
, il doit les supprimer directement, mais ça fait pas de mal de repasser un coup.added 1 commit
d31101af
- Empty SpectacleRevente and ChoixRevente before do_tirage.Compare with previous version
Oui ça me semble legit, on en remettra peut-être un couche dans la doc sur ce que ça représente de relancer un tirage.
J'avais un doute sur les spectacles qui sont vendus sur deux tirages mais si on continue à faire une copie du spectacle pour le passer sur le tirage suivant tout va bien.
En fait, on y repensant… Si on refait le système des reventes un jour pour permettre de s'inscrire à un spectacle et non à une attribution, il faudra repenser ça. Je ne sais pas s'il est mieux de gérer ce détail maintenant ou d'y revenir plus tard sachant que ça risque de ne pas arriver avant un bon moment.
added 6 commits
3556e3b1
- Fewer requests on bda.views.reventefdc1128b
- delete useless save93a3a9af
- Fewer requests with shotgunable reventes15d2faf8
- Fewer requests on spectacles and participants list views98f355ed
- Fewer requests on unpaid viewbbe6f419
- Fewer requests on descriptions and catalogue viewsCompare with previous version
Cette modification entraînera dans tous les cas des changements éparpillés.
Je suis pas sûr de voir comment on peut prévoir un changement pareil pour qu'il n'y ait pas tous ces changements à l'avenir.
Oui bien sûr, je parlais de ce bout de code, il ne faudra pas passer à côté. Mais effectivement ce ne sera sûrement pas possible de le rater…
resolved all discussions
@lstephan @mpepin Je crois avoir fait le tour des vues BdA. En général chaque vue passe de O(n) requêtes à O(1).
Parfois avec des modifications plus importantes que juste un ajout de
select_related
ou deprefetch_related
, j'ai "vérifié" que ça donnait la même chose mais je vous conseille de bien "vérifier" aussi (et pourquoi pas écrire des tests).Remarque Lors de la validation des formsets (inscription à un tirage par exemple), beaucoup de requêtes sont encore émises. Chaque form fait des vérifications individuelles, par exemple sur le spectacle sélectionné, ce qui génère au moins requête par inscription à un spectacle. À mon avis passer outre est possible (en passant les ModelChoiceField d'un spectacle à un ChoiceField et en faisant nous-mêmes la validation sur le formset) mais ça risque de complexifier "légèrement" le code donc j'ai un doute sur l'utilité de la chose.
@lstephan Pour l'admin, je vais voir ce qui est faisable mais je suis moins familiarisé avec son utilisation...
added 2 commits
6451f971
- AttributionForm in bda admin0750551d
- Fewer requests on participant admin create and updateviews.Compare with previous version
added 1 commit
ce70269e
- Fewer requests on create/update spectaclerevente in bda admin.Compare with previous version
added 29 commits
master
8870b5ac
- Fewer queries on poll view3dc91e30
- Fewer requests on petit cours list management.6ce2f178
- Fewer requests on petit cours details management.b5cc26bb
- Merge branch 'master' into aureplop/fewer_requestse97e0081
- Fewer queries on stats of an account balance.3f4a1adb
- Fewer queries on stats/scales + FixCompare with previous version
added 1 commit
06572f0b
- Order create use Scale.Compare with previous version
unmarked as a Work In Progress
Il faudra se mettre à jour avec master et répercuter les changements de settings dans
settings.dev
Si je ne m'abuse, cette fonction est équivalente à
return DEBUG
mentioned in merge request !226
added 10 commits
master
8622002e
- minor change2eee8f58
- Merge branch 'master' into aureplop/fewer_requests0d8a613f
- improve bda inscription form/view codeCompare with previous version
resolved all discussions
Bon pour moi, la flemme d'écrire des tests
added 3 commits
6cdb7919
- fix class name conflictsb0e7ebfb
- fix typo + pep8 + del future importsb1e46792
- (little) cleaning of order_create viewCompare with previous version
merged
mentioned in commit
5d8427e601
mentioned in issue #139