Moins de requêtes #521

Merged
delobell merged 0 commits from aureplop/fewer_requests into master 2017-05-12 21:13:40 +02:00
delobell commented 2017-04-06 20:53:38 +02:00 (Migrated from git.eleves.ens.fr)

Fewer database requests are issued.

Misc

K-Fêt

  • Access to properties of Account and AccountNegative models doesn't issue more requests to CofProfile and User instead they select_related these models the first time only.
  • Fewer requests in kfet.views and kfet templates.
  • Fix bug on real_balance property of Account objects (happened if negative entry exists, but balance_offset isn't set).

BdA

  • Fewer requests in bda.views.
  • If a tirage is launched more than once, relatives instances of reventes system are deleted.
Fewer database requests are issued. ## Misc - Use [django-debug-panel](https://github.com/recamshak/django-debug-panel) to get debug panel even with Ajax calls (it requires Chrome and this [extension](https://github.com/recamshak/chrome-django-panel)) ## K-Fêt - Access to properties of `Account` and `AccountNegative` models doesn't issue more requests to `CofProfile` and `User` instead they `select_related` these models the first time only. - Fewer requests in `kfet.views` and kfet templates. - Fix bug on `real_balance` property of `Account` objects (happened if negative entry exists, but balance_offset isn't set). ## BdA - Fewer requests in `bda.views`. - If a tirage is launched more than once, relatives instances of reventes system are deleted.
delobell commented 2017-04-06 21:08:06 +02:00 (Migrated from git.eleves.ens.fr)

added 1 commit

Compare with previous version

added 1 commit * 0ed70eb0 - PEP8 [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/217/diffs?diff_id=395&start_sha=026fba867dd6b8862be4519e8d9e7a2c54764106)
delobell commented 2017-04-07 13:36:39 +02:00 (Migrated from git.eleves.ens.fr)

added 8 commits

  • 0ed70eb0...a0979c22 - 6 commits from branch master
  • b8aa5d8b - Merge branch 'master' into aureplop/fewer_requests
  • 3e0bd2e7 - Fewer db requests on bda views.

Compare with previous version

added 8 commits * 0ed70eb0...a0979c22 - 6 commits from branch `master` * b8aa5d8b - Merge branch 'master' into aureplop/fewer_requests * 3e0bd2e7 - Fewer db requests on bda views. [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/217/diffs?diff_id=396&start_sha=0ed70eb0a7ca5809c74eae10328d0fb328d10f54)
delobell commented 2017-04-07 16:33:56 +02:00 (Migrated from git.eleves.ens.fr)

added 1 commit

  • 9f307c1b - Fewer db requests on bda tirage.

Compare with previous version

added 1 commit * 9f307c1b - Fewer db requests on bda tirage. [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/217/diffs?diff_id=397&start_sha=3e0bd2e758a8e88fcd8fad4c794d42b0ecfa216d)
delobell commented 2017-04-07 16:40:04 +02:00 (Migrated from git.eleves.ens.fr)

@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:

  • Est-ce que je peux ajouter tranquille ChoixRevente.objects.filter(spectacle__tirage=tirage_elt).delete() (comme c'est le cas avec Attribution) quelques lignes plus haut ?
  • Est-ce que c'est bon ?
@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: - Est-ce que je peux ajouter tranquille `ChoixRevente.objects.filter(spectacle__tirage=tirage_elt).delete()` (comme c'est le cas avec `Attribution`) quelques lignes plus haut ? - Est-ce que c'est bon ?
lstephan commented 2017-04-07 16:53:56 +02:00 (Migrated from git.eleves.ens.fr)

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...

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...
delobell commented 2017-04-07 16:59:16 +02:00 (Migrated from git.eleves.ens.fr)

Tu parles de SpectacleRevente ? Vu que y'a pas de on_delete sur le OneToOne de ce modèle vers Attribution, il doit les supprimer directement, mais ça fait pas de mal de repasser un coup.

Tu parles de `SpectacleRevente` ? Vu que y'a pas de `on_delete` sur le `OneToOne` de ce modèle vers `Attribution`, il doit les supprimer directement, mais ça fait pas de mal de repasser un coup.
delobell commented 2017-04-07 17:05:29 +02:00 (Migrated from git.eleves.ens.fr)

added 1 commit

  • d31101af - Empty SpectacleRevente and ChoixRevente before do_tirage.

Compare with previous version

added 1 commit * d31101af - Empty SpectacleRevente and ChoixRevente before do_tirage. [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/217/diffs?diff_id=398&start_sha=9f307c1bd00558d5f7e7eb4350661f5b6d022fe6)
mpepin commented 2017-04-08 13:24:40 +02:00 (Migrated from git.eleves.ens.fr)

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.

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.
mpepin commented 2017-04-08 13:32:02 +02:00 (Migrated from git.eleves.ens.fr)

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.

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.
delobell commented 2017-04-08 13:44:35 +02:00 (Migrated from git.eleves.ens.fr)

added 6 commits

  • 3556e3b1 - Fewer requests on bda.views.revente
  • fdc1128b - delete useless save
  • 93a3a9af - Fewer requests with shotgunable reventes
  • 15d2faf8 - Fewer requests on spectacles and participants list views
  • 98f355ed - Fewer requests on unpaid view
  • bbe6f419 - Fewer requests on descriptions and catalogue views

Compare with previous version

added 6 commits * 3556e3b1 - Fewer requests on bda.views.revente * fdc1128b - delete useless save * 93a3a9af - Fewer requests with shotgunable reventes * 15d2faf8 - Fewer requests on spectacles and participants list views * 98f355ed - Fewer requests on unpaid view * bbe6f419 - Fewer requests on descriptions and catalogue views [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/217/diffs?diff_id=402&start_sha=d31101aff3190a4493df68dac20f8afcf8b2b466)
delobell commented 2017-04-08 13:46:56 +02:00 (Migrated from git.eleves.ens.fr)

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.

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.
mpepin commented 2017-04-08 13:48:57 +02:00 (Migrated from git.eleves.ens.fr)

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…

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…
delobell commented 2017-04-08 13:49:56 +02:00 (Migrated from git.eleves.ens.fr)

resolved all discussions

resolved all discussions
delobell commented 2017-04-08 14:02:01 +02:00 (Migrated from git.eleves.ens.fr)

@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 de prefetch_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...

@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 de `prefetch_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...
delobell commented 2017-04-08 17:21:04 +02:00 (Migrated from git.eleves.ens.fr)

added 2 commits

  • 6451f971 - AttributionForm in bda admin
  • 0750551d - Fewer requests on participant admin create and updateviews.

Compare with previous version

added 2 commits * 6451f971 - AttributionForm in bda admin * 0750551d - Fewer requests on participant admin create and updateviews. [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/217/diffs?diff_id=403&start_sha=bbe6f41962a9fc7e21f174bc3c155640f99e59a9)
delobell commented 2017-04-08 17:51:47 +02:00 (Migrated from git.eleves.ens.fr)

added 1 commit

  • ce70269e - Fewer requests on create/update spectaclerevente in bda admin.

Compare with previous version

added 1 commit * ce70269e - Fewer requests on create/update spectaclerevente in bda admin. [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/217/diffs?diff_id=404&start_sha=0750551d7c40a12fb5eb69f7fafdd77425a8506e)
delobell commented 2017-04-12 18:12:07 +02:00 (Migrated from git.eleves.ens.fr)

added 29 commits

  • ce70269e...a725f802 - 23 commits from branch master
  • 8870b5ac - Fewer queries on poll view
  • 3dc91e30 - Fewer requests on petit cours list management.
  • 6ce2f178 - Fewer requests on petit cours details management.
  • b5cc26bb - Merge branch 'master' into aureplop/fewer_requests
  • e97e0081 - Fewer queries on stats of an account balance.
  • 3f4a1adb - Fewer queries on stats/scales + Fix

Compare with previous version

added 29 commits * ce70269e...a725f802 - 23 commits from branch `master` * 8870b5ac - Fewer queries on poll view * 3dc91e30 - Fewer requests on petit cours list management. * 6ce2f178 - Fewer requests on petit cours details management. * b5cc26bb - Merge branch 'master' into aureplop/fewer_requests * e97e0081 - Fewer queries on stats of an account balance. * 3f4a1adb - Fewer queries on stats/scales + Fix [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/217/diffs?diff_id=431&start_sha=ce70269e7bd513e12b671952d6e2755ce8a47536)
delobell commented 2017-04-13 14:15:14 +02:00 (Migrated from git.eleves.ens.fr)

added 1 commit

Compare with previous version

added 1 commit * 06572f0b - Order create use Scale. [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/217/diffs?diff_id=432&start_sha=3f4a1adbb9cd083731b3ad340c47dae51c461586)
delobell commented 2017-04-13 14:15:57 +02:00 (Migrated from git.eleves.ens.fr)

unmarked as a Work In Progress

unmarked as a **Work In Progress**
mpepin commented 2017-04-15 19:00:26 +02:00 (Migrated from git.eleves.ens.fr)

Il faudra se mettre à jour avec master et répercuter les changements de settings dans settings.dev

Il faudra se mettre à jour avec master et répercuter les changements de settings dans `settings.dev`
mpepin commented 2017-04-15 19:01:27 +02:00 (Migrated from git.eleves.ens.fr)

Si je ne m'abuse, cette fonction est équivalente à return DEBUG

Si je ne m'abuse, cette fonction est équivalente à `return DEBUG`
delobell commented 2017-04-17 11:33:44 +02:00 (Migrated from git.eleves.ens.fr)

mentioned in merge request !226

mentioned in merge request !226
delobell commented 2017-04-21 18:23:16 +02:00 (Migrated from git.eleves.ens.fr)

added 10 commits

  • 06572f0b...a0fe94e2 - 7 commits from branch master
  • 8622002e - minor change
  • 2eee8f58 - Merge branch 'master' into aureplop/fewer_requests
  • 0d8a613f - improve bda inscription form/view code

Compare with previous version

added 10 commits * 06572f0b...a0fe94e2 - 7 commits from branch `master` * 8622002e - minor change * 2eee8f58 - Merge branch 'master' into aureplop/fewer_requests * 0d8a613f - improve bda inscription form/view code [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/217/diffs?diff_id=444&start_sha=06572f0bb5b7994910e7bed6be29dcc90aa7d25c)
mpepin commented 2017-04-23 20:53:36 +02:00 (Migrated from git.eleves.ens.fr)

resolved all discussions

resolved all discussions
mpepin commented 2017-04-23 21:39:43 +02:00 (Migrated from git.eleves.ens.fr)

Bon pour moi, la flemme d'écrire des tests

Bon pour moi, la flemme d'écrire des tests
delobell commented 2017-05-10 13:13:15 +02:00 (Migrated from git.eleves.ens.fr)

added 3 commits

  • 6cdb7919 - fix class name conflicts
  • b0e7ebfb - fix typo + pep8 + del future imports
  • b1e46792 - (little) cleaning of order_create view

Compare with previous version

added 3 commits * 6cdb7919 - fix class name conflicts * b0e7ebfb - fix typo + pep8 + del future imports * b1e46792 - (little) cleaning of order_create view [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/217/diffs?diff_id=462&start_sha=0d8a613f28223e756f660caa2ba8c000ba3cc596)
mpepin commented 2017-05-12 21:13:45 +02:00 (Migrated from git.eleves.ens.fr)

merged

merged
mpepin commented 2017-05-12 21:13:51 +02:00 (Migrated from git.eleves.ens.fr)

mentioned in commit 5d8427e601

mentioned in commit 5d8427e6012896845573afab331dd75a3b26ab13
delobell commented 2017-05-19 20:20:17 +02:00 (Migrated from git.eleves.ens.fr)

mentioned in issue #139

mentioned in issue #139
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: DGNum/gestioCOF#521
No description provided.