Projet

Général

Profil

Development #8167

possibilité d'ouvrir des popups dans les pages

Ajouté par Serghei Mihai (congés, retour 15/05) il y a plus de 8 ans. Mis à jour il y a plus de 8 ans.

Statut:
Fermé
Priorité:
Normal
Version cible:
-
Début:
03 septembre 2015
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

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

0001-include-gadjo.js-and-its-dependencies-in-pages-8167.patch (1,56 ko) 0001-include-gadjo.js-and-its-dependencies-in-pages-8167.patch Serghei Mihai (congés, retour 15/05), 09 septembre 2015 12:11
0001-allow-cells-declare-pop-ups-use-8167.patch (2,51 ko) 0001-allow-cells-declare-pop-ups-use-8167.patch Serghei Mihai (congés, retour 15/05), 10 septembre 2015 18:01
0001-allow-cells-add-extra-js-and-css-8167.patch (2,34 ko) 0001-allow-cells-add-extra-js-and-css-8167.patch Serghei Mihai (congés, retour 15/05), 14 septembre 2015 17:33
0001-allow-cells-to-declare-medias-8167.patch (1,63 ko) 0001-allow-cells-to-declare-medias-8167.patch Serghei Mihai (congés, retour 15/05), 18 septembre 2015 11:33
0001-cell-allowing-pop-ups-opening-8167.patch (949 octets) 0001-cell-allowing-pop-ups-opening-8167.patch Serghei Mihai (congés, retour 15/05), 18 septembre 2015 11:37

Demandes liées

Lié à Combo - Development #8293: Ajouter MediaDefiningClass à la métaclasse de CellBaseFermé18 septembre 2015

Actions

Révisions associées

Révision 4e94b628 (diff)
Ajouté par Serghei Mihai (congés, retour 15/05) il y a plus de 8 ans

expose cells media in the page (#8167)

Historique

#1

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 8 ans

En incluant gadjo.js, jquery.ui dans le theme publik

#2

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

#3

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 8 ans

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

#4

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

#5

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 8 ans

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']

#6

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.

#7

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.

#8

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.

#9

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

  • Lié à Development #8293: Ajouter MediaDefiningClass à la métaclasse de CellBase ajouté
#11

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 8 ans

Et comme le suggere Benj, une cellule permettant d'ouvrir des popups

#12

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

#13

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

#14

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)
#15

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

Formats disponibles : Atom PDF