Skip to content

Commit

Permalink
Finish 12, a.k.a 15.9
Browse files Browse the repository at this point in the history
  • Loading branch information
SpaceFox committed Oct 29, 2015
2 parents 21ce321 + 4bf30f7 commit 80f08da
Show file tree
Hide file tree
Showing 32 changed files with 1,075 additions and 470 deletions.
12 changes: 9 additions & 3 deletions doc/source/back-end/contents.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
=======================================
Les tutoriels et articles v2.0 (ZEP 12)
=======================================
=========================
Les tutoriels et articles
=========================

Vocabulaire et définitions
==========================
Expand Down Expand Up @@ -154,6 +154,12 @@ stocker (détails plus bas). Dès lors, cette spécification **impose** que ce
*slug* soit unique au sein du conteneur parent, et que le *slug* du contenu
soit unique au sein de tous les contenus de ZdS.

La taille des *slugs* ne peut dépasser une certaine limite, définie dans le code par
``ZDS_APP['content']['maximum_slug_size']`` (par défaut 150). Cette limite est due à
une contrainte sur la taille maximum d'un nom de fichier sur les différents systèmes
(généralement 255 octets sur la plupart des systèmes de fichier modernes, voir à ce sujet
`l'article Wikipedia correspondant (en) <https://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits>`_).

.. note::

À noter que l'*underscore* est conservé par compatibilité avec l'ancien
Expand Down
124 changes: 68 additions & 56 deletions doc/source/back-end/contents_manifest.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,80 @@ Plus précisément :

Sauf cas exceptionnel, la numérotation de X commence à 1, la numérotation de Y commence à 0, la numérotation de Z commence à 0.

La version du manifeste est donnée par le champ éponyme situé à la racine du manifeste ( ```{ version="2.0.0"}```).
L'absence du champ version est interprétée comme ``̀{version="1.0.0"}```.
Les 0 non significatifs sont optionnels ainsi ```{version="1"}``` est strictement équivalent à ```{version:"1.0"}``` lui-même strictement équivalent à ```{version:"1.0.0"}```.
La version du manifeste est donnée par le champ éponyme situé à la racine du manifeste ( ``{ version: "2.0.0"}``).
L'absence du champ version est interprétée comme ``{version: "1.0"}``.
Les 0 non significatifs sont optionnels ainsi ``{version: "1"}`` est strictement équivalent à ``{version: "1.0"}`` lui-même strictement équivalent à ``{version: "1.0.0"}``.

Version 2.0
-----------

La version 2.0 est la version actuelement utilisée.

.. sourcecode:: json

{
"object": "container",
"slug": "un-tutoriel",
"title": "Un tutoriel",
"introduction": "introduction.md",
"conclusion": "conclusion.md",
"version": 2,
"description": "Une description",
"type": "TUTORIAL",
"licence": "Beerware",
"children": [
{
"object": "container",
"slug": "titre-de-mon-chapitre",
"title": "Titre de mon chapitre",
"introduction": "titre-de-mon-chapitre/introduction.md",
"conclusion": "titre-de-mon-chapitre/conclusion.md",
"children": [
{
"object": "extract",
"slug": "titre-de-mon-extrait",
"title": "Titre de mon extrait",
"text": "titre-de-mon-chapitre/titre-de-mon-extrait.md"
},
(...)
]
},
(...)
]
}

1. ``type`` : Le type de contenu, vaut "TUTORIAL" ou "ARTICLE". *Si ce champ est absent ou invalide, le type vaudra par défaut "TUTORIAL".*
2. ``description`` : La description du contenu. Est affichée comme sous-titre dans la page finale. **Obligatoire**
3. ``title`` : Le titre du contenu. **Obligatoire**
4. ``slug`` : slug du contenu qui permet de faire une url SEO-friendly. Pour rappel, `certaines contraintes doivent être respectées dans le choix du slug <contents.html#des-objets-en-general>`_. **Obligatoire**. ATENTION : si ce slug existe déjà dans notre base de données, il est possible qu'un nombre lui soit ajouté
5. ``introduction`` : le nom du fichier Mardown qui possède l'introduction. Il doit pointer vers le dossier courant. *Optionnel mais conseillé*
6. ``conclusion`` : le nom du fichier Mardown qui possède la conclusion. Il doit pointer vers le dossier courant. *Optionnel mais conseillé*
7. ``licence`` : nom complet de la license. *A priori* les licences "CC" et "Tous drois réservés" sont supportées. Le support de toute autre licence dépendra du site utilisant le code de ZdS (fork) que vous visez. **Obligatoire**
8. ``children`` : tableau contenant l'architecture du contenu.
1. ``object`` : type d'enfant (*container* ou *extract*, selon qu'il s'agisse d'une section ou d'un texte). **Obligatoire**
2. ``title`` : le titre de l'enfant. **Obligatoire**
3. ``slug`` : le slug de l'enfant pour créer une url SEO-friendly, doit être unique dans le contenu, le slug est utilisé pour trouver le chemin vers l'enfant dans le système de fichier si c'est une section. Attention, `certaines contraintes doivent être respectées dans le choix du slug <contents.html#des-objets-en-general>`_. **Obligatoire**
4. ``introduction`` : nom du fichier contenant l'introduction quand l'enfant est de type *container*. *Optionnel mais conseillé*
5. ``conclusion`` : nom du fichier contenant la conclusion quand l'enfant est de type *container*. *Optionnel mais conseillé*
6. ``children`` : tableau vers les enfants de niveau inférieur si l'enfant est de type *container*. **Obligatoire**
7. ``text`` : nom du fichier contenant le texte quand l'enfant est de type *extract*. Nous conseillons de garder la convention ``nom de fichier = slug.md`` mais rien n'est obligatoire à ce sujet. **Obligatoire**




Version 1.0
-----------


.. note::

La version 1.0 est dépréciée, et il est conseillé d'employer la version 2.0. Il est ceci dit toujours possible
`d'importer des contenus <contents.html#import-de-contenus>`_ dont le manifeste est toujours en version 1.0, mais à vos risques et périls.


La version 1.0 définit trois types de manifeste selon que nous faisons face à un article, un mini tutoriel ou un big tutoriel.


MINI TUTO
+++++++++

Expand Down Expand Up @@ -106,56 +171,3 @@ Article
"type": "article",
"text": "text.md"
}


Version 2.0
-----------

.. sourcecode:: json

{
"object": "container",
"slug": "un-tutoriel",
"title": "Un tutoriel",
"introduction": "introduction.md",
"conclusion": "conclusion.md",
"version": 2,
"description": "Une description",
"type": "TUTORIAL",
"licence": "Beerware",
"children": [
{
"object": "container",
"slug": "titre-de-mon-chapitre",
"title": "Titre de mon chapitre",
"introduction": "titre-de-mon-chapitre/introduction.md",
"conclusion": "titre-de-mon-chapitre/conclusion.md",
"children": [
{
"object": "extract",
"slug": "titre-de-mon-extrait",
"title": "Titre de mon extrait",
"text": "titre-de-mon-chapitre/titre-de-mon-extrait.md"
},
(...)
]
},
(...)
]
}

1. ``type`` : Le type de contenu, vaut "TUTORIAL" ou "ARTICLE". **Obligatoire**
2. ``description`` : La description du contenu. Est affichée comme sous-titre dans la page finale. **Obligatoire**
3. ``title`` : Le titre du contenu. **Obligatoire**
4. ``slug`` : slug du contenu qui permet de faire une url SEO-friendly. **Obligatoire**. ATENTION : si ce slug existe déjà dans notre base de données, il est possible qu'un nombre lui soit ajouté
5. ``introduction`` : le nom du fichier Mardown qui possède l'introduction. Il doit pointer vers le dossier courant. *Optionnel mais conseillé*
6. ``conclusion`` : le nom du fichier Mardown qui possède la conclusion. Il doit pointer vers le dossier courant. *Optionnel mais conseillé*
7. ``licence`` : nom complet de la license. *A priori* les licences "CC" et "Tous drois réservés" sont supportées. Le support de toute autre licence dépendra du site utilisant le code de ZdS (fork) que vous visez. **Obligatoire**
8. ``children`` : tableau contenant l'architecture du contenu. **Obligatoire**
1. ``object`` : type d'enfant (*container* ou *extract*, selon qu'il s'agisse d'une section ou d'un texte). **Obligatoire**
2. ``title`` : le titre de l'enfant. **Obligatoire**
3. ``slug`` : le slug de l'enfant pour créer une url SEO-friendly, doit être unique dans le contenu, le slug est utilisé pour trouver le chemin vers l'enfant dans le système de fichier si c'est une section. **obligatoire**
4. ``introduction`` : nom du fichier contenant l'introduction quand l'enfant est de type *container*. *Optionnel mais conseillé*
5. ``conclusion`` : nom du fichier contenant la conclusion quand l'enfant est de type *container*. *Optionnel mais conseillé*
6. ``children`` : tableau vers les enfants de niveau inférieur si l'enfant est de type *container*. **Obligatoire**
7. ``text`` : nom du fichier contenant le texte quand l'enfant est de type *extract*. Nous conseillons de garder la convention ``nom de fichier = slug.md`` mais rien n'est obligatoire à ce sujet. **Obligatoire**
4 changes: 2 additions & 2 deletions doc/source/install/backend-linux-install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ Assurez vous que les dépendances suivantes soient résolues :
- libz-dev (peut être libz1g-dev sur système 64bits)
- python-sqlparse
- libffi : ``apt-get install libffi-dev``
- libjpeg8 libjpeg8-dev libfreetype6 libfreetype6-dev : ``apt-get install libjpeg8 libjpeg8-dev libfreetype6 libfreetype6-dev``
- libjpeg62-turbo libjpeg62-turbo-dev libfreetype6 libfreetype6-dev : ``apt-get install libjpeg62-turbo libjpeg62-turbo-dev libfreetype6 libfreetype6-dev``

Ou, en une ligne,

.. sourcecode:: bash

apt-get install git python-dev python-setuptools '^geoip(-bin)?$' libgeoip-dev libxml2-dev python-lxml libxslt-dev libz-dev python-sqlparse libjpeg8 libjpeg8-dev libfreetype6 libfreetype6-dev libffi-dev
apt-get install git python-dev python-setuptools '^geoip(-bin)?$' libgeoip-dev libxml2-dev python-lxml libxslt-dev libz-dev python-sqlparse libjpeg62-turbo libjpeg62-turbo-dev libfreetype6 libfreetype6-dev libffi-dev
easy_install pip tox

Installation et configuration de `virtualenv`
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ python-memcached==1.54
lxml==3.4.4
factory-boy==2.4.1
pygeoip==0.3.2
pillow==2.8.1
pillow==2.9.0
gitpython==1.0.1
https://github.com/zestedesavoir/Python-ZMarkdown/archive/2.6.0-zds.7.zip
easy-thumbnails==2.2
Expand Down
2 changes: 1 addition & 1 deletion scripts/deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ git checkout -b $1

# Update application data
source ../bin/activate
pip install --upgrade --use-mirrors -r requirements.txt
pip install --upgrade -r requirements.txt
python manage.py migrate
python manage.py compilemessages
# Collect all staticfiles from dist/ and python packages to static/
Expand Down
26 changes: 21 additions & 5 deletions templates/tutorialv2/includes/content_item_type_article.part.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,22 @@
{% endif %}
{% endcaptureas %}

{% captureas content_title %}
{% if public_article and online %}
{{ public_article.title }}
{% else %}
{{ article.title }}
{% endif %}
{% endcaptureas %}

{% captureas content_subtitle %}
{% if public_article and online %}
{{ public_article.description}}
{% else %}
{{ article.description }}
{% endif %}
{% endcaptureas %}

{# Authors (by X, Y and Z) ; can't have multiple whitespaces because of the title ! #}
{% captureas authors_text %}
{% for author in article.authors.all %}{% if forloop.first %}{% trans "par" %}{% elif forloop.last %} {% trans "et" %}{% else %},{% endif %} {% if author == user %}{% trans "vous" %}{% else %}{{ author.username }}{% endif %}{% endfor %}
Expand All @@ -32,14 +48,14 @@
</a>

<div class="content-info">
<a href="{{ link }}" title="{{ article.title }}{% if article.description and show_description %} − {{ article.description }}{% endif %}">
<a href="{{ link }}" title="{{ content_title }}{% if content_subtitle and show_description %} − {{ content_subtitle }}{% endif %}">
<h3 class="content-title" itemprop="itemListElement">
{{ article.title }}
{{ content_title }}
</h3>

<p class="content-description">
{% if article.description and show_description %}
{{ article.description }}
{% if content_subtitle and show_description %}
{{ content_subtitle }}
{% endif %}
</p>

Expand Down Expand Up @@ -72,7 +88,7 @@ <h3 class="content-title" itemprop="itemListElement">
{% if article.last_note %}
{{ article.last_read_note.get_absolute_url }}
{% else %}
{{ link }}#reactions
{{ link }}#comments
{% endif %}"
title="{% if note_count == 0 %}{% trans "Aucune réaction" %}{% else %}{{ note_count }} {% trans "réaction" %}{{ note_count|pluralize }}{% endif %}"
>
Expand Down
24 changes: 20 additions & 4 deletions templates/tutorialv2/includes/content_item_type_tutoriel.part.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,22 @@
{% endif %}
{% endcaptureas %}

{% captureas content_title %}
{% if public_tutorial and online %}
{{ public_tutorial.title }}
{% else %}
{{ tutorial.title }}
{% endif %}
{% endcaptureas %}

{% captureas content_subtitle %}
{% if public_tutorial and online %}
{{ public_tutorial.description }}
{% else %}
{{ tutorial.description }}
{% endif %}
{% endcaptureas %}

{# Authors (by X, Y and Z) ; can't have multiple whitespaces because of the title ! #}
{% captureas authors_text %}
{% for author in tutorial.authors.all %}{% if forloop.first %}{% trans "par" %}{% elif forloop.last %} {% trans "et" %}{% else %},{% endif %} {% if author == user %}{% trans "vous" %}{% else %}{{ author.username }}{% endif %}{% endfor %}
Expand All @@ -30,7 +46,7 @@
{% endcaptureas %}

<article class="content-item expand-description tutorial-item{{ item_class }}">
<a href="{{ link }}" title="{{ tutorial.title }}{% if tutorial.description and show_description %} − {{ tutorial.description }}{% endif %}">
<a href="{{ link }}" title="{{ content_title }}{% if content_subtitle and show_description %} − {{ content_subtitle }}{% endif %}">
<div class="content-illu">
{% if tutorial.image %}
<img src="{{ tutorial.image.physical.content_thumb.url }}" alt="">
Expand All @@ -39,12 +55,12 @@

<div class="content-info">
<h3 class="content-title" itemprop="itemListElement">
{{ tutorial.title }}
{{ content_title }}
</h3>

<p class="content-description">
{% if tutorial.description and show_description %}
{{ tutorial.description }}
{% if content_subtitle and show_description %}
{{ content_subtitle }}
{% endif %}
</p>

Expand Down
20 changes: 12 additions & 8 deletions templates/tutorialv2/includes/tags_authors.part.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{% load date %}
{% load i18n %}
{% load category_url %}

{% load set %}

{% if content.subcategory.all|length > 0 %}
<ul class="taglist" itemprop="keywords">
Expand All @@ -11,19 +11,23 @@
</ul>
{% endif %}

{% if online %}
{% set public_object.get_last_action_date as update_date %}
{% else %}
{% set content.update_date as update_date %}
{% endif %}


{% if content.update_date %}
{% if update_date %}
<span class="pubdate">
{% if online and content.update_date == content.pubdate %}
{% if online and update_date == public_object.publication_date %}
{% trans "Publié" %} :
<time datetime="{{ content.pubdate|date:"c" }}" pubdate="pubdate" itemprop="dateModified">
{{ content.pubdate|format_date }}
<time datetime="{{ update_date|date:"c" }}" pubdate="pubdate" itemprop="dateModified">
{{ update_date|format_date }}
</time>
{% else %}
{% trans "Dernière mise à jour" %} :
<time datetime="{{ content.update_date|date:"c" }}" pubdate="pubdate" itemprop="dateModified">
{{ content.update_date|format_date }}
<time datetime="{{ update_date|date:"c" }}" pubdate="pubdate" itemprop="dateModified">
{{ update_date|format_date }}
</time>
{% endif %}
</span>
Expand Down
10 changes: 8 additions & 2 deletions templates/tutorialv2/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ <h2 class="ico-after ico-tutorials">
{% include "misc/paginator.html" with position="top" %}

{% if tutorials != None %}
<div class="tutorial-list clearfix">
<div class="content-item-list clearfix">
{% for tutorial in tutorials %}
{% if filter == 'public' %}
{% include "tutorialv2/includes/content_item_type_tutoriel.part.html" with show_description=True public_tutorial=tutorial.public_version %}
Expand All @@ -65,9 +65,12 @@ <h2 class="ico-after ico-tutorials">
{% include "tutorialv2/includes/content_item_type_tutoriel.part.html" with show_description=True type=type %}
{% endif %}
{% endfor %}
<div class="fill"></div>
<div class="fill"></div>
<div class="fill"></div>
</div>
{% elif articles != None %}
<div class="tutorial-list clearfix">
<div class="content-item-list clearfix">
{% for article in articles %}
{% if filter == 'public' %}
{% include "tutorialv2/includes/content_item_type_article.part.html" with show_description=True public_article=article.public_version %}
Expand All @@ -76,6 +79,9 @@ <h2 class="ico-after ico-tutorials">
{% include "tutorialv2/includes/content_item_type_article.part.html" with show_description=True type=type %}
{% endif %}
{% endfor %}
<div class="fill"></div>
<div class="fill"></div>
<div class="fill"></div>
</div>
{% endif %}

Expand Down
5 changes: 4 additions & 1 deletion templates/tutorialv2/index_online.html
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,17 @@ <h1 class="ico-after ico-{% if current_content_type == "TUTORIAL" %}tutorials{%
{% include "misc/paginator.html" with position="top" %}

{% if public_contents %}
<div class="tutorial-list">
<div class="content-item-list">
{% for public_content in public_contents %}
{% if public_content.content_type == "TUTORIAL" %}
{% include "tutorialv2/includes/content_item_type_tutoriel.part.html" with public_tutorial=public_content online=True show_description=True %}
{% elif public_content.content_type == "ARTICLE" %}
{% include "tutorialv2/includes/content_item_type_article.part.html" with public_article=public_content show_description=True %}
{% endif %}
{% endfor %}
<div class="fill"></div>
<div class="fill"></div>
<div class="fill"></div>
</div>
{% else %}
<p>
Expand Down
2 changes: 1 addition & 1 deletion templates/tutorialv2/view/content.html
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ <h2 class="subtitle">


<li>
<a href="{% url "content:history" content.pk content.slug %}" class="ico-after history blue">
<a href="{% url "content:history" content.pk content.slug_repository %}" class="ico-after history blue">
{% trans "Historique des versions" %}
</a>
</li>
Expand Down
Loading

0 comments on commit 80f08da

Please sign in to comment.