Development #8167
possibilité d'ouvrir des popups dans les pages
0%
Description
De la même façon que dans /manage
, on devrait pouvoir ouvrir des dialogs dans les pages à coup de <a href="..." rel="popup">lien</a>
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 8 ans
- Fichier 0001-include-gadjo.js-and-its-dependencies-in-pages-8167.patch 0001-include-gadjo.js-and-its-dependencies-in-pages-8167.patch ajouté
- Statut changé de Nouveau à En cours
- Assigné à mis à Serghei Mihai (congés, retour 15/05)
- Patch proposed changé de Non à Oui
En incluant gadjo.js
, jquery.ui
dans le theme publik
Mis à jour par Frédéric Péters il y a plus de 8 ans
Ça m'ennuie un petit peu d'ajouter le chargement de jqueryui pour l'éventualité d'une cellule demandant une popup, idéalement je préférerais un système de dépendances, que la cellule "factures" déclare qu'elle a besoin de gadjo.js et que celui-ci soit alors ajouté.
Un autre aspect est qu'avec la modification ici on va charger gadjo.js systématiquement et il va se trouver chargé aussi dans le thème partagé avec wcs, qui a son propre handler pour les a[rel=popup], c'est quelque chose qu'on veut éviter.
Un détail pour finir, il faudrait modifier gadjo.js pour que le code gérant le panneau latéral ne soit pas exécuté si les éléments ne sont pas présents (histoire de ne pas ajouter des choses à window.localStorage).
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 8 ans
- Fichier 0001-allow-cells-declare-pop-ups-use-8167.patch 0001-allow-cells-declare-pop-ups-use-8167.patch ajouté
Les cellules pourraient déclarer qu'elles ouvrent des pop-ups et dans ce cas, le template de la page chargerait gadjo.js
et le reste.
il faudrait modifier gadjo.js pour que le code gérant le panneau latéral ne soit pas exécuté si les éléments ne sont pas présents
je fais un autre ticket
Mis à jour par Frédéric Péters il y a plus de 8 ans
J'imaginais un truc un peu plus générique, genre extra_css_includes, extra_js_scripts (un peu à l'image des add_javascript() et add_css_include() dans wcs).
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 8 ans
- Fichier 0001-allow-cells-add-extra-js-and-css-8167.patch 0001-allow-cells-add-extra-js-and-css-8167.patch ajouté
Un peu de cette façon, j'imagine?
Ça m'embete un peu de devoir declarer dans les cellules nécessitant le popup les scripts jquery et la css:
extra_css = ['xstatic/themes/smoothness/jquery-ui.min.css'] ... extra_js = ['xstatic/jquery-ui.min.js', 'xstatic/jquery.min.js', 'js/gadjo.js']
Mis à jour par Frédéric Péters il y a plus de 8 ans
Alors tu peux aussi imaginer un système identique au renderblock d'authentic, si tu préfères déclarer ces dépendances dans un template et non dans un fichier python.
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
À noter qu'il y a déjà tout ce qu'il faut pour faire cela dans django.forms.widgets.Media
, ce n'est pas lié à l'implémentation de Form
et parfaitement réutilisable. Il faudrait aussi importer l'implémentation de media_property
pour un champ media
et la metaclasse MediaDefiningClass
.
Ça devrait permettre un truc du genre:
ctx['media'] = sum(cell.media for cell in cells)
dans la vue des pages.
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
Ensuite plutôt que de déclarer dans chaque cellule faisant des popups ces scripts on peut faire une classe de base CellWithPopup
qui le déclare.
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Lié à Development #8293: Ajouter MediaDefiningClass à la métaclasse de CellBase ajouté
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 8 ans
- Fichier 0001-allow-cells-to-declare-medias-8167.patch 0001-allow-cells-to-declare-medias-8167.patch ajouté
Suite au #8293
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 8 ans
- Fichier 0001-cell-allowing-pop-ups-opening-8167.patch 0001-cell-allowing-pop-ups-opening-8167.patch ajouté
Et comme le suggere Benj, une cellule permettant d'ouvrir des popups
Mis à jour par Frédéric Péters il y a plus de 8 ans
Je ne suis pas fan, je préfère commencer en gardant les trois lignes dans la classe qui les utilise, et éviter pour le moment le coût de compréhension amené par une classe supplémentaire. (mais je ne vais pas discuter de ça longtemps) (par contre le sujet du commit est à revoir, ce n'est pas une cellule qui est ajoutée mais une classe, je préférerais un truc genre "factor media declaration for popups in a different class").
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 8 ans
Pas de problème. On peut très bien se debrouiller en ajoutant le class Media
dans les classes qui en besoin
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 8 ans
- Statut changé de En cours à Résolu (à déployer)
commit 4e94b62894e5cf8fab7094e9c1897008152ecfab Author: Serghei Mihai <smihai@entrouvert.com> Date: Thu Sep 10 17:59:25 2015 +0200 expose cells media in the page (#8167)
Mis à jour par Frédéric Péters il y a plus de 8 ans
- Statut changé de Résolu (à déployer) à Solution déployée
expose cells media in the page (#8167)