Geotrek-admin icon indicating copy to clipboard operation
Geotrek-admin copied to clipboard

Remove default_structure

Open LePetitTim opened this issue 4 years ago • 6 comments

LePetitTim avatar Feb 16 '21 16:02 LePetitTim



Test summary

22 0 0 0


Run details

Project Geotrek-admin
Status Passed
Commit 600c6daed4
Started Jul 22, 2022 3:36 PM
Ended Jul 22, 2022 3:39 PM
Duration 03:02 💡
OS Linux Ubuntu - 20.04
Browser Electron 94

View run in Cypress Dashboard ➡️


This comment has been generated by cypress-bot as a result of this project's GitHub integration settings. You can manage this integration in this project's settings in the Cypress Dashboard

cypress[bot] avatar Feb 16 '21 16:02 cypress[bot]

Codecov Report

Merging #2550 (600c6da) into master (a58206f) will increase coverage by 0.00%. The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master    #2550   +/-   ##
=======================================
  Coverage   97.90%   97.91%           
=======================================
  Files         273      273           
  Lines       19082    19093   +11     
=======================================
+ Hits        18683    18695   +12     
+ Misses        399      398    -1     
Impacted Files Coverage Δ
geotrek/authent/admin.py 100.00% <100.00%> (ø)
geotrek/authent/apps.py 100.00% <100.00%> (ø)
geotrek/authent/backend.py 100.00% <100.00%> (ø)
geotrek/authent/models.py 100.00% <100.00%> (ø)
geotrek/common/forms.py 100.00% <100.00%> (+0.38%) :arrow_up:
geotrek/common/parsers.py 84.51% <100.00%> (ø)
...tructure/management/commands/loadinfrastructure.py 100.00% <100.00%> (ø)
geotrek/signage/management/commands/loadsignage.py 100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update a58206f...600c6da. Read the comment docs.

codecov[bot] avatar Feb 16 '21 18:02 codecov[bot]

Ok pour le .first()

D'autre part, pour améliorer la lisibilité, et gérer l'éventuel cas d'une instance déjà installée sur laquelle default_structure.pk != 1, je pense que ça serait pertinent d'ajouter un setting DEFAULT_STRUCTURE_PK = 1.

Est ce que dans ce cas, c'est pas mieux de mettre un db_index sur le name, garder le DEFAULT_STRUCTURE_NAME. L'objectif premier c'est juste d'enlever les requetes faites dans le default. Si je met dans les migrations, default=DEFAULT_STRUCTURE_NAME. Il n'y aura pas de requete. Je peux quand meme garder le post_migration pour creer une structure avec DEFAULT_STRUCTURE_NAME. Apres si l'objectif c'est juste qu'ils evitent de le changer dans le fichier de settings, le nouveau settings. Ok.

LePetitTim avatar Feb 17 '21 08:02 LePetitTim

L'objectif premier c'est juste d'enlever les requetes faites dans le default.

Je ne suis pas d'accord. On a eu des tas de problèmes avec des gens qui ont changé le setting defaut_structure sans modifier dans l'admin et ça a foutu le bazar. Il faut absolument régler aussi ce point si on change quelque chose au default structure.

gutard avatar Feb 17 '21 09:02 gutard

Ne fonctionne pas avec le get_or_create(id=1, defaults={})

LePetitTim avatar Feb 18 '21 14:02 LePetitTim

Ne fonctionne pas avec le get_or_create(id=1, defaults={})

Tu es sûr ? Je viens d'essayer :

>>> from geotrek.authent.models import Structure
>>> structure, created = Structure.objects.get_or_create(id=42, defaults={'name': 'New structure'})
>>> structure.pk, created
(42, True)
>>> structure, created = Structure.objects.get_or_create(id=42, defaults={'name': 'New structure'})
>>> structure.pk, created
(42, False)

gutard avatar Feb 19 '21 13:02 gutard

Cache available for default structure since 2.92.0

  • Need to be improved to set cache key as the name of the structure Without this, if you want to change default structure you need to clear cache. It will always keep the old default_structure pk

LePetitTim avatar Dec 01 '22 10:12 LePetitTim

https://github.com/GeotrekCE/Geotrek-admin/issues/3338

LePetitTim avatar Dec 01 '22 10:12 LePetitTim