Un Electron Libre...

Aller au contenu | Aller au menu | Aller à la recherche

Tag - documentation

Fil des billets - Fil des commentaires

dimanche 29 juin 2008

Déplacement des tutoriels de wiki.unelectronlibre.info vers www.unelectronlibre.info/tutoriels/

Je pourrais me limiter à un "tout est dans le titre" mais ce serait pas bien...

J'initialise (enfin) la première phase de ce qui devrait être un grand chamboulement à la fin :-)

Les tutoriels se déplacent donc d'un vieillissant dokuwki vers l'espace "Tutoriels" basé sur le jeune projet de documentation Sphinx (NDLR, il sert notamment pour la future documentation de Python et Django).

Sphinx est basé sur la syntaxe ReStructured Text, incorpore la coloration syntaxique, gère des niveaux d'arborescence et est en mesure de sortir votre documentation sous plusieurs formats (HTML, LaTeX, PDF). Il est fait pour gérer de la documentation et il le fait plutôt bien.

Certains pourraient dire qu'un wiki est plus sympa car plus ouvert mais bon vu le nombre d'apports externes que j'ai eu depuis son lancement, je risque pas grand chose. Merci quand même aux quelques contributeurs :-)

Il me reste encore à :

  • Mettre les sources sur un dépot mercurial accessible de tous FAIT
  • Annoncer la licence CC qui va bien : NC-BY-SA FAIT
  • Rediriger wiki.unelectronlibre.info vers ce nouvel espace FAIT

J'ai profité de l'occasion pour faire le ménage, certains tutoriels ne seront donc plus disponibles une fois la migration des urls effectives. J'en ai également profité pour mettre à jour certains (remplacement de apt-get par aptitude, php4 par php5, corrections de fautes/typo, etc).

Je peux donc oublier la syntaxe Dokuwiki maintenant (me reste encore celle de SPIP, Dotclear, Textile (Redmine) et reStructured Text (Doc Django, Projets Django, Tutoriels)). Elle me génait énormément quand je jouais simultanément avec Trac (car elles sont quasiment opposées dans leur principe, notamment pour les titres).

Edit du 30/06 : Redirection OK, Licence OK, Source OK - J'ai même crée un projet tutoriels sur mon Chaudron pour toute remarque sur les tutoriels ;-)

jeudi 27 mars 2008

En vrac (très teinté django quand même)

  • Le changset 7370 permet de générer une doc au format HTML notamment via Sphinx et le rendu est assez sympatique. C'est assez simple à faire :
cd django/django-svn/docs
make html

Le résultat est dans un sous répertoire _build et la jolie table des matières est disponible /_build/html/index.html

Pour le reste, c'est dans mon flux del.icio.us ;-)

Edit du 31 : Le programme de Pycon FR est disponible.

vendredi 1 décembre 2006

Django et les vues génériques - utilisation de extra_context

Django met à disposition les vues génériques pour faciliter la vie du programmeur pour les questions courantes (lister un ensemble d'objets, montrer le détail d'un objet, que ce soit sous la forme d'une simple liste, ou bien par des tris de date).

Cette fonctionnalité est très pratique et permet de créer rapidement des pages. Dans ces vues génériques, on a parfois besoin d'afficher d'autres éléments et il faut bien caser les opérations nécessaires quelque part. C'est là qu'interviennent les "extra_context".

Reprenons une vue générique simple : si j'arrive sur http://www.domaine.tld/ je veux lister tous les billets d'un blog.

Je vais avoir dans urls.py :

from django.conf.urls.defaults import *
from blog.models import Post, Tag, Category

urlpatterns = patterns('django.views.generic.list_detail',
   (r'^$', 'object_list', dict(queryset= Post.objects.all(),)),
)

et dans mon template :

{% block centralcontent %}
	<h3>Derniers billets...</h3>
	{% for object in object_list %}
	<div class="post">
		<h4>
			<a href="{{ object.get_absolute_url }}" title="{{ object.title }}">{{ object.title }}</a>
		</h4>
		<p class="post-info">Rédigé le {{ object.pub_date|date:"d F Y à H:i" }}, dans
		{% for post_category in object.category.all %}
		 <a href="{{ post_category.get_blog_absolute_url }}" title="{{ post_category.name }}">{{ post_category.name }}</a>
		{% endfor %}
		</p>
		<div class="post-tag">Tags :
			{% for post_tag in object.tag.all %}
			 <a href="{{ post_tag.get_blog_absolute_url }}" title="{{ post_tag.name }}">{{ post_tag.name }}</a>
			{% endfor %}
		</div>
		<div class="post-content">{{ object.summary }}</div>
	</div>
	{% endfor %}
{% endblock %}

Imaginons un instant que je veuille ajouter sur ma page d'accueil la liste des tags et des catégories de mon blog. Je vais donc ajouter des éléments dans mon motif d'urls :

from django.conf.urls.defaults import *
from blog.models import Post, Tag, Category


urlpatterns = patterns('django.views.generic.list_detail',
   (r'^$', 'object_list', dict(queryset= Post.objects.all(),extra_context={'all_tags': Tag.objects.all(), 'all_categories': Category.objects.all(), })),
)

et dans mon template, j'aurais juste à ajouter :

{% block rightcolumn %}
	{% if all_tags %}
	<h3>Tags</h3>
	<ul>
	{% for tag in all_tags %}
		<li><a href="">{{ tag.name }}</a></li>
	{% endfor %}
	</ul>
	{% endif %}

	{% if all_categories %}
   	<h3>Categories</h3>
   	<ul>
	{% for categories in all_categories %}
		<li><a href="" title="{{ categories.description }}">{{ categories.name }}</a></li>
	{% endfor %}
	</dl>
	{% endif %}
{% endblock %}

Et voilà, ma page d'accueil liste mes billets, et dans la colonne de droite la liste des tags et des catégories (s'il y en a).

lundi 27 novembre 2006

Django : fichiers des tutoriels

Ayant un petit souci avec les vues génériques, David m'a rappelé que cela était abordé dans la partie 4 du tutoriel de django.

Toutefois, n"ayant plus les fichiers réalisés lorsque j'avais suivi le tutoriel, je me suis rendu compte qu'il était difficile de connaitre la réponse à ma question vu que le tutoriel indique seulement ce qu'il fallait modifier mais ne redonnait pas tout le contenu du fichier.

J'ai donc refait les 4 parties du tutoriel et désormais chacun peut voir le résultat qu'il doit obtenir ou bien partir des fichiers de la fin d'une partie pour ne refaire que la partie qui l'intéresse ;-)

Tout est là :