Project

General

Profile

Bug #5181

Do not copy jQuery

Added by Benjamin Dauvergne over 5 years ago. Updated over 3 years ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Target version:
Start date:
21 Jul 2014
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

Use jQuery CDN and link to non-minified version when debug is True.

0001-template-use-jQuery-from-CDN.patch View (1.9 KB) Benjamin Dauvergne, 13 Aug 2014 02:56 PM

0001-Use-xstatic-packages-instead-of-shipping-common-libr.patch View (1.45 MB) Frédéric Péters, 20 Aug 2014 12:04 PM

History

#1 Updated by Thomas Noël over 5 years ago

  • Target version set to 0.3

#2 Updated by Benjamin Dauvergne over 5 years ago

#3 Updated by Frédéric Péters over 5 years ago

Je me suis encore retrouvé à devoir travailler sans connexion internet récemment (avions, trains…) du coup je préférerais conserver une copie locale.

#4 Updated by Benjamin Dauvergne over 5 years ago

Ce que je te propose c'est que la version non minifiée de debug soit locale, ce serait bon ?

#5 Updated by Frédéric Péters over 5 years ago

Ça me va qu'en mode debug le js ne soit pas minifié, mais j'aimerais quand même garder la possibilité de ne pas utiliser de CDN, debug ou pas; ça t'irait d'ajouter un paramètre settings.USE_JQUERY_CDN, plutôt que de se baser sur DEBUG ?

#6 Updated by Benjamin Dauvergne over 5 years ago

Ce n'est pas évident, les settings ne sont pas exportés dans les templates et donc pour réagir à ce nouveau setting il faudra soit un context_processor soit un template tag. En attendant je laisse ce patch de coté je vais commiter les autres.

#7 Updated by Frédéric Péters over 5 years ago

À revenir là-dessus, ce qui est à utiliser, c'est xstatic, qui est le truc d'openstack, en utilisant django-xstatic pour faire le pont, ça donne un truc comme ça :

Ça met les fichiers directement sous /static/, perso je les préférerais dans un sous-répertoire, mais c'est un détail.

Ensuite, dans les métadonnées des paquets xstatic, il y a aussi les infos de CDN, et ça pourrait être utilisé mais je n'ai pas regardé cette partie.

#8 Updated by Frédéric Péters over 5 years ago

Benjamin, tu penses quoi de partir sur xstatic ? Si ça te va, je peux m'occuper d'un patch.

#9 Updated by Benjamin Dauvergne over 5 years ago

Ça me va bien.

#10 Updated by Frédéric Péters over 5 years ago

Voilà le patch pour utiliser les modules xstatic; j'ai préféré ne pas ajouter de dépendance à django-xstatic et de plutôt recopier et adapter son code de recherche des fichiers statiques (que je voulais modifier pour préfixer en /xstatic/).

Pour reprendre le README.txt :

Configuration
=============

You should add gadjo.finders.XStaticFinder to STATICFILES_FINDERS,

  STATICFILES_FINDERS = (
    "django.contrib.staticfiles.finders.FileSystemFinder",
    "django.contrib.staticfiles.finders.AppDirectoriesFinder",
    "gadjo.finders.XStaticFinder",
  )

There is a CDNS settings, that can contain a list of (cdn name, protocol)
tuples; for example:

  CDNS = [('google', 'https')]

Usage
=====

Make your application base template {% extends "gadjo/base.html" %}.

Additional static files libraries can be added via INSTALLED_APPS,
for example 'xstatic.pkg.jquery_tablesorter'; its static files can
then be referred in a template using the xstatic template tag:

  {% xstatic 'jquery_tablesorter' 'jquery.tablesorter.js' %}

#11 Updated by Benjamin Dauvergne over 5 years ago

Ça me semble ok par contre si je comprends bien ce n'est pas rétro-compatible, il va falloir ajouter xstatic.*.jquery{-ui} aux INSTALLED_APPS des applications qui utilisent gadjo avant de déployer la nouvelle version des templates gadjo partout.

#12 Updated by Frédéric Péters over 5 years ago

Il va falloir ajouter le static finder; pour les xstatic*jquery, ceux utilisés par gadjo sont hardcodés dans le finder, justement pour ne pas devoir être ajoutés.

#13 Updated by Benjamin Dauvergne over 5 years ago

Ok, mais dans ce cas il va quand même falloir ajouter les xstatic.pkg.{jquery,jquery_ui,font_awesome} aux dépendances dans le setup.py de gadjo et demander à Jérôme de les packager aussi pour que tout s'installe sans dépendances manquantes.

#14 Updated by Frédéric Péters over 5 years ago

Oui pour le setup.py; pour les paquets, pour info ils sont en création dans Debian (ex: https://bugs.debian.org/756734), et il y a moyen d'en tirer depuis les dépôts openstack (ex: http://archive.gplhost.com/debian/pool/juno/main/p/python-xstatic-jquery/).

Pour le setup.py, tu vois autre chose que ça : ?

+    install_requires=[
+        'XStatic',
+        'XStatic_Font_Awesome',
+        'XStatic_jQuery',
+        'XStatic_jquery_ui',
+        ],

#15 Updated by Benjamin Dauvergne over 5 years ago

Frédéric Péters a écrit :

Oui pour le setup.py; pour les paquets, pour info ils sont en création dans Debian (ex: https://bugs.debian.org/756734), et il y a moyen d'en tirer depuis les dépôts openstack (ex: http://archive.gplhost.com/debian/pool/juno/main/p/python-xstatic-jquery/).

Ok ticket ouvert #5301.

Pour le setup.py, tu vois autre chose que ça : ?

[...]

Non c'est bon.

#16 Updated by Frédéric Péters over 5 years ago

  • Status changed from En cours to Résolu (à déployer)

Je viens de pousser le tout.

Il y a un paquet python-gadjo sur passerelle-test, je l'ai mis "on hold" pour le moment, en attendant qu'une mise à jour de passerelle y soit possible.

#17 Updated by Jérôme Schneider over 5 years ago

  • Status changed from Résolu (à déployer) to Solution déployée
  • % Done changed from 0 to 100

J'ai corrigé le soucis dont on a parlé ce matin. : C'était pour le ticket #5301

#18 Updated by Jérôme Schneider over 5 years ago

  • % Done changed from 100 to 0
  • Status changed from Solution déployée to Résolu (à déployer)

#19 Updated by Frédéric Péters over 3 years ago

  • Status changed from Résolu (à déployer) to Fermé

Also available in: Atom PDF