Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pouvoir afficher des pages spécifiques de façon générique #131

Closed
Splendens opened this issue Dec 14, 2017 · 12 comments
Closed

Pouvoir afficher des pages spécifiques de façon générique #131

Splendens opened this issue Dec 14, 2017 · 12 comments

Comments

@Splendens
Copy link
Contributor

Bonjour,

Pour mon atlas, j'ai besoin d'avoir des pages d'informations dédiées : "partenaires", collectivitée", etc. Suite au mail d'hier de @camillemonchicourt , j'ai développé un système de génération de pages spécifiques (dont présentation) de façon générique.

Il faut une table en BD pour les pages qu'on souhaite rajouté au site, et la sidebar est générée grâce à cette table. Il faut aussi rajouter le modèle / repository de t_pages + récupérer la variables "pages" dans toutes les routes.

J'ai également mis un paramètre AFFICHAGE_PAGES dans le config.py pour choisir d'afficher ces pages ou non. Mais je me demande si ce paramètre est vraiment utile ? Sachant que si, par défaut, la table ne contient que la page de présentation, il n'y aura pas d'autres pages tant qu'elles ne seront pas renseignées en bd...

TABLE :

atlas.t_pages
( id_page integer PRIMARY KEY,
route text, --utilisé pour généré l'url d'accès à la page
picto text, --pour le picto dans la sidebar
ordre integer, --pour l'ordre d'affichage des page dans la sidebar
titre text --pour le data-original-title
)

EXEMPLE POUR PRESENTATION :

1, 'presentation', 'question-sign', 1, 'Présentation de l'atlas'

SIDEBAR :

{% if configuration.AFFICHAGE_PAGES %}
{% for page in pages %}
<a href="{{ page.route }}" data-toggle="tooltip" data-original-title="{{page.titre}}" data-placement="right">
<li class="sidebar-brand"><span class="glyphicon glyphicon-{{page.picto}}"></span></li>
</a>
{% endfor %}
{% endif %}

@camillemonchicourt
Copy link
Member

Excellent ! Ça va apporter pas mal de possibilités à l'application. On pourra même modifier, renommer ou supprimer la page PRESENTATION, ce qui n'était pas possible actuellement.
En effet le paramètre AFFICHAGE_PAGES n'est pas utile. Si on ne veut aucune page, il suffit alors de vider la table t_pages.

Je me pose une question sur le CSS. Actuellement dans la page PRESENTATION.HTML on chargeait un fichier CSS spécifique : https://github.com/PnEcrins/GeoNature-atlas/blob/master/static/css/presentation.css
On aurait du coup intérêt à le renommer page.css pour clarifier et qu'il serve de bases réutilisable aux autres pages que chacun se créerait.

@Splendens
Copy link
Contributor Author

Ah oui, ce serait plus cohérent !

@camillemonchicourt
Copy link
Member

Voir le commit - Splendens/atlas_biodiv_pdl@40aff2a

@amandine-sahl
Copy link
Contributor

Les pages statiques sont maintenant configurables via le fichier de configuration.

Je n'ai pas conservé l'idée d'avoir une table en base car je trouve qu'il faut dans la mesure du possible minimiser le stockage des paramètres d'affichages en base. Même si le débat reste ouvert

@camillemonchicourt
Copy link
Member

OK oui c'est une bonne approche aussi.
Par contre sur ajoutes /static_page/ dans la route avant le nom de la page ?

Merci aussi pour le travail sur le fichier des routes et la definition d'une base_config commune à toutes les routes.

amandine-sahl added a commit that referenced this issue Dec 19, 2017
@camillemonchicourt
Copy link
Member

OK donc le /static_page/ a été supprimé dans l'URL.
Les routes aussi sont générées automatiquement en fonction des paramètres des pages.
Excellent, on va pouvoir intégrer ça dans la RELEASE en cours.

@Splendens, ça te va ?
Du coup Amandine a préféré gérer ça en conf plutôt qu'en base. Ça se discute mais les 2 solutions ont leurs avantages.

@Splendens
Copy link
Contributor Author

Oui, ça marche aussi en conf. Par contre, ne gérer aucun paramétrage en BD ferme la porte à une interface d'administration web pour l'atlas. Mais c'est peut-être un point qui a déjà été discuté et écarté ?

@camillemonchicourt
Copy link
Member

Oui j'avais pensé à cela.
En effet, le choix a été fait d'utiliser TaxHub pour la gestion des infos relatives aux taxons (medias, description...).
Du coup on n'a pas prévu d'admin de GN-atlas.
Pas sur que pour les pages WEB cela soit pertinent.

Mais ça se discute, à terme, ça peut être utile.

@camillemonchicourt
Copy link
Member

Un autre avantage de ce qui a été fait est que les routes sont générées dynamiquement et qui'Amandine en a profité pour faire un bon ménage sur les appels de la configuration avec une conf de base de base pour toutes les routes et ce qui leir est spécifique à chacune.

@Splendens
Copy link
Contributor Author

Oui, je viens d'éplucher ça ! C'est super ce petit nettoyage, merci @amandine-sahl ! 👍

Pour l'administration, j'imaginais un truc un peu comme webobs, ou tous les paramètres sont stockés en BD, et l'utilisateur n'a pas besoin de "mettre les mains dans le code", avec des formulaires pour les choix de config, CMS pour les pages, ...

@camillemonchicourt
Copy link
Member

Oui ça peut.
Vu le profil des administrateurs et la quantité limitée de pages et de paramètres à manipuler, cela ne a pas paru essentiel, mais si quelqu'un est motivé pour mettre ça en place, avec plaisir !

@amandine-sahl
Copy link
Contributor

A mon avis c'est plus difficile d'écrire une page statique que de modifier une config. D'où le choix qui a été fait.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants