Skip to content

Commit

Permalink
Envoi d'un message lors de la reservation d'un contenu
Browse files Browse the repository at this point in the history
Freeze the version of `python-slugify` to 1.1.4 (fix zestedesavoir#3383)

(and provide a command to fix broken contents)

Also deal with contents that would have been created DURING v16.

Correct commit name

Ajout de notes pour éclaircir le but du fichier

Model._meta.module_name --> Model._meta.model_name

Cf https://docs.djangoproject.com/en/1.8/releases/1.8/#features-removed-in-1-8

Suppression du module inutilisé "django.contrib.sites"

S'il doit revenir, des modifications sont nécessaires.
Cf https://docs.djangoproject.com/en/1.8/releases/1.8/#django-contrib-sites

Django 1.8: Déclarer le dossier de fixtures par défaut lance une erreur

Donc on supprime cette déclaration qui était de toutes façons inutile même avec Django 1.7.
Cf https://docs.djangoproject.com/en/1.8/releases/1.8/#management-commands

Suppression d'une relation erronée

Django 1.8 vérifie ces relations et donc lancerait une erreur.
Cf https://docs.djangoproject.com/en/1.8/releases/1.8/#select-related-now-checks-given-fields

Utilisation d'une API privée qui a changée de package
Cf https://docs.djangoproject.com/en/1.8/releases/1.8/#cleanup-of-the-django-template-namespace

Passage à Django 1.8 minimal (il reste plein de warnings mais ça marche)

Impacts directs obligatoires :
- Une relation en base change de nom pour être python-compatible (et donc sa migration en base)
- On doit maintenant préciser le paramètre --fake-initial lors d'une migration de MAJ (cf https://docs.djangoproject.com/en/1.8/ref/django-admin/#django-admin-option---fake-initial)
- Debug Toolbar en v1.3
- Fix pour que oauth fonctionne, cf jazzband/django-oauth-toolkit#204

Une relation N..M nullable n'a pas de sens

Ce qui n'a pas de sens doit disparaître, d'autant plus que ça provoque des warnings.
Cf https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.ManyToManyField.allow_unsaved_instance_assignment

RedirectView.permanent va changer de valeur --> on la fixe

Cf https://docs.djangoproject.com/en/1.8/ref/class-based-views/base/#django.views.generic.base.RedirectView.permanent

django.utils.tzinfo est obsolète, remplacé par django.utils.timezone

Cf https://docs.djangoproject.com/fr/1.8/ref/utils/#django-utils-tzinfo

refactor(url): Utilisation nouvelle syntaxe dans les URLs.

- Change le format des urlpatterns.
- Utilise les vues dans la declaration des URLs.
- Correction de tous les reverse.
- Correction de toutes les balises url dans les templates.

refactor(1.8): Changement de l'import csrf.

https://docs.djangoproject.com/fr/1.8/ref/templates/api/#django.template.RequestContext

Correction d'un import

refactor(settings): Change la gestion des templates.

corrige les erreurs de tutorialv2 et munin

règle la migration et les avertissements de template du forum

refactor(form): Retire les warnings sur les forms.

refactor(migration): Supprime les migrations des vieux modules.

chore(dep): Mise a jour de django-debug-toolbar de 1.3.0 a 1.4.

chore(dep): Mise a jour de django-rest-swagger de 0.2.9 a 0.3..0.

chore(dep): Mise a jour de django_model_utils de 2.4 a 2.4.

chore(dep): Mise a jour de django-oauth-toolkit de 0.9.0 a 0.10.0.

chore(dep): Mise a jour de django-munin de 0.2.0 a 0.2.1.

chore(dep): Mise a jour de django-crispy-forms de 1.5.2 a 1.6.0.

chore(dep): Mise a jour de django-filter de 0.9.2 a 0.12.

chore(dep): Mise a jour de pillow de 2.9 a 3.1.1.

chore(dep): Mise a jour de DRF de 3.3.1 a 3.3.2.

Mise a jour de dependances connexes :
- drf-extensions de 0.2.7 a 0.2.8.
- django-cors-middleware de 1.0.0 a 1.2.0.
- Suppression de get_cache()
- Changement de noms de parametres de configuration pour REST_FRAMEWORK

Merci particulier a @DevHugo pour sa contribution.

Regle le soucis pour Travis et MySQL (merci @DevHugo)

Ajout des informations pour la mise en prod de la v17

chore(dep): Mise a jour de django de 1.7.10 a 1.8.9.

chore(dep): Mise a jour de coverage de 4.0.1 a 4.0.3.

chore(dep): Mise a jour de cairosvg de 1.0.13 a 1.0.19.

chore(dep): Mise a jour de beautifulsoup4 de 4.3.2 a 4.4.1.

chore(dep): Mise a jour de djangorestframework-xml de 1.0.1 a 1.3.0.

chore(dep): Mise a jour de factory-boy de 2.4.1 a 2.6.1.

Fix#3366: Ajout de l'extension de l'image

Fix#3234: Lien de retour à la liste des sujets

Affiche le karma en dessous des avatars (fix zestedesavoir#1444)

Corrige un petite erreur

Met à jour la documentation d'installation du front-end (fix zestedesavoir#3294)

Mail d'inscription

TU

Envoi par le validateur
  • Loading branch information
Emeric54 committed Feb 27, 2016
1 parent 721dc7a commit 3767260
Show file tree
Hide file tree
Showing 117 changed files with 1,237 additions and 1,201 deletions.
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Tous les détails sur le workflow se trouvent [sur la page dédiée](http://zds-
| Nouvelle Fonctionnalité ? | [oui|non]
| Tickets (_issues_) concernés | [Liste de tickets séparés par des virgules]
```
* Ajoutez des notes de QA (Quality Assurance). Ces notes doivent permettent à un testeur de comprendre ce que vous avez modifié, ce qu'il faut tester en priorité et les pièges auxquels il doit s'attendre et donc sur lesquels porter une attention particulière. Précisez tout particulièrement s'il est nécessaire d'effectuer une action de gestion préalable, comme `python manage.py migrate`, `python manage.py loaddata fixture/*.yaml` ou `npm run gulp -- build`.
* Ajoutez des notes de QA (Quality Assurance). Ces notes doivent permettent à un testeur de comprendre ce que vous avez modifié, ce qu'il faut tester en priorité et les pièges auxquels il doit s'attendre et donc sur lesquels porter une attention particulière. Précisez tout particulièrement s'il est nécessaire d'effectuer une action de gestion préalable, comme `python manage.py migrate --fake-initial`, `python manage.py loaddata fixture/*.yaml` ou `npm run gulp -- build`.

## Les commits
* Pour les commits, nous suivons le même ordre d'idée des standards Git, à savoir :
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Après avoir mis à jour votre dépôt, vous devez exécuter les commandes suiva

```console
pip install --upgrade -r requirements.txt -r requirements-dev.txt
python manage.py migrate
python manage.py migrate --fake-initial
```


Expand Down
8 changes: 2 additions & 6 deletions assets/scss/components/_topic-message.scss
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,10 @@
color: #424242;
height: 25px;
line-height: 26px;
width: 28px;
width: 58px;
color: #777;
transition: all $transition-duration ease;

&:first-child {
border-right: 0;
width: 29px;
}

&:hover,
&:focus {
border-bottom-width: 1px;
Expand All @@ -96,6 +91,7 @@
}
&.negative {
color: #c0392b;
font-weight: bold;
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion doc/source/back-end-code/arborescence-back.rst
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ Cela permettra aux autres développeurs de répercuter les modifications en util

.. sourcecode:: bash

python manage.py migrate
python manage.py migrate --fake-initial


API
Expand Down
10 changes: 10 additions & 0 deletions doc/source/back-end/contents.rst
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,16 @@ une contrainte sur la taille maximum d'un nom de fichier sur les différents sys
*slug*, pour des raisons de stockage (voir plus bas). Il ne faut pas
oublier la contrainte d'unicité à l'intérieur d'un conteneur.

.. attention::

Suite à un changement majeur dans la librairie ``python-slugify``, une différence peu apparaitre dans le *slug*
généré à partir de titres contenant des espaces. Dès lors, pour des raisons de rétro-compatibilités, c'est la version
1.1.4 de cette librairie qui est utilisée par ZdS. Par ailleurs, la commande ``python manage.py adjust_slugs`` a été
créée pour réparer les éventuels dommages, en détectant les titres posant potentielement des problèmes et en tentant
de les faire correspondre à nouveau à leur contrepartie dans le système de fichier.

`Plus d'information ici <https://github.com/zestedesavoir/zds-site/issues/3383#issuecomment-187282828>`_.

Cycle de vie des contenus
=========================

Expand Down
2 changes: 1 addition & 1 deletion doc/source/front-end/elements-specifiques-au-site.rst
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ API Javascript pour manipuler les modales

Il est possible de créer des modales en Javascript. Exemple:

.. sourcecore:: javascript
.. sourcecode:: javascript

var m = new Modal({
title: "Titre de la modale",
Expand Down
2 changes: 1 addition & 1 deletion doc/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Documentation de Zeste De Savoir
================================

Zeste de Savoir est un site internet communautaire codé à l'aide du framework Django 1.7 et de Python 2.7
Zeste de Savoir est un site internet communautaire codé à l'aide du framework Django 1.8 et de Python 2.7

`Voir l'instance en ligne <https://zestedesavoir.com>`_

Expand Down
68 changes: 23 additions & 45 deletions doc/source/install/frontend-install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,16 @@ Vous voulez nous aider au développement du frontend ? Installez Node.js et npm
Installation de Node.js et npm
==============================

Zeste de Savoir utilise actuellement la v4 de Node.JS.

Windows
-------

.. Attention::

Cette partie de la documentation n'est probablement pas à jour faute de contributeur utilisant Windows. Il se peut que l'installation fonctionne correctement, partiellement ou pas du tout. Bref, en cas de problème n'hésitez pas à venir demander de l'aide sur le `forum des Devs' de Zeste de Savoir <https://zestedesavoir.com/forums/communaute/dev-zone/>`_ !

Node.js propose un installeur (*.msi*) pour Windows, disponible à `cette adresse <http://nodejs.org/download/>`_. Choisissez *Windows Installer*, avec l'architecture adéquate, et installez Node.js en ouvrant le fichier téléchargé.
Node.js propose un installeur (*.msi*) pour Windows, disponible à `cette adresse <https://nodejs.org/en/download/>`_. Choisissez *Windows Installer*, avec l'architecture adéquate, et installez Node.js en ouvrant le fichier téléchargé.

Vérifiez de posséder la version 2.5.0 de npm (et non la version 1.4.X que peut installer l'installeur), pour connaitre votre version : ``npm -v``. Pour mettre à jour npm, vous avez `trois possibilités <https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows)>`_, l'une d'elle est de faire ``npm install npm`` dans le dossier ``C:\Program Files (x86)\nodejs``.

Expand All @@ -35,86 +37,62 @@ Veillez à respecter `ces conditions <https://github.com/TooTallNate/node-gyp#in
Mac OS X
--------

Node.js propose un installeur (*.pkg*) pour Mac OS X, disponible à `cette adresse <http://nodejs.org/download/>`_. Choisissez *Mac OS X Installer*, et installez Node.js en ouvrant le fichier téléchargé.
Node.js propose un installeur (*.pkg*) pour Mac OS X, disponible à `cette adresse <https://nodejs.org/en/download/>`_. Choisissez *Mac OS X Installer*, et installez Node.js en ouvrant le fichier téléchargé.

Linux
-----

Ubuntu
~~~~~~

L'installation peut se faire simplement via ``apt-get`` :
Pour être sûr d'avoir la dernière version de Node.JS, il faut passer par les dépôts de la Fondation Node.JS. Pour cela, elle met à disposition un script (en fonction de votre *package manager*) qu'il suffit de lancer. S'il n'y a pas d'instructions pour votre distribution sur cette page, il y en a sûrement dans `la documentation officielle (en anglais) <https://nodejs.org/en/download/package-manager/>`_.

.. sourcecode:: bash
Si vous ne voulez pas utiliser cette méthode, `des fichiers binaires ainsi que le code source sont disponibles <https://nodejs.org/en/download/>`_.

sudo apt-get install nodejs npm nodejs-legacy
Debian et ses dérivés (tels que Ubuntu, Linux Mint)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Mais il est possible d'avoir une version un peu plus récente avec :
Comme indiqué `ici <https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions>`_, il faut lancer ces commandes :

.. sourcecode:: bash

sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

Certaines dépendances utilisent ``node`` au lieu de ``nodejs``, pour y remédier (pas besoin sous Fedora !) :

.. sourcecode:: bash

sudo ln -s /usr/bin/nodejs /usr/bin/node

Debian
~~~~~~

Une version récente de Node.js se trouve dans les dépôts *wheezy-backport*, *jessie* et *sid*. Sur ces versions de Debian, l'installation peut se faire de cette manière :

.. sourcecode:: bash

sudo apt-get install nodejs
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

Fedora / CentOS / RHEL
~~~~~~~~~~~~~~~~~~~~~~

Il vous faut tout simplement faire :
Comme indiqué `ici <https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora>`_, il faut lancer ces commandes :

.. sourcecode:: bash

sudo dnf install nodejs
curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
# Puis, en root
yum -y install nodejs

Arch Linux
~~~~~~~~~~

Il faut simplement lancer cette commande :
Comme indiqué `ici <https://nodejs.org/en/download/package-manager/#arch-linux>`_, il faut lancer cette commande :

.. sourcecode:: bash

pacman -S nodejs

FreeBSD / OpenBSD
-----------------
pacman -S nodejs npm

Une installation via ``pkg`` devrait suffire :

.. sourcecode:: bash

pkg install node
Il existe aussi `une documentation relative à Node.JS spécialement pour Arch Linux <https://wiki.archlinux.org/index.php/Node.js>`_.

-----

*Les instructions pour installer Node.js sur les distributions CentOS, RHEL, FreeBSD et OpenBSD sont issues du lien juste en dessous et n'ont pas été testées.*

Les **instructions détaillées** pour toutes les distributions se trouvent dans la `documentation officielle (en anglais) <https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager>`_.
Vérifier que les bonnes versions sont installées
------------------------------------------------

Pour vérifier que Node.js et npm sont installés (et que vous avez les bonnes versions) :

.. sourcecode:: bash

node -v
v0.10.26
v4.2.6
npm -v
2.1.7
2.14.12

**Vous devez avoir une version de Node.js > 0.10.x et de npm > 2.x.x.** Si votre version de npm est 1.x.x, vous devez le mettre à jour (voir juste en dessous).
**Vous devez avoir une version de Node.js v4.x et de npm 2.x.x.** Si votre version de npm est 1.x.x, vous devez le mettre à jour (voir juste en dessous).

Mise à jour de Node.js et npm
-----------------------------
Expand Down
2 changes: 1 addition & 1 deletion doc/source/utils/git-pre-hook.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ restera propre et lisible au cours du temps !

#!/bin/sh

flake8 --exclude=migrations,urls.py,settings.py --max-line-length=120 zds
flake8 --exclude=migrations,settings.py --max-line-length=120 zds

# Store tests result
RESULT=$?
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "zds-site",
"version": "0.2.0",
"description": "Site internet communautaire codé à l'aide du Framework Django 1.7",
"description": "Site internet communautaire codé à l'aide du Framework Django 1.8",
"directories": {
"doc": "doc"
},
Expand Down
7 changes: 4 additions & 3 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
coverage==4.0.3
PyYAML==3.11
django-debug-toolbar==1.3.0
django-debug-toolbar==1.4
flake8==2.4.0
autopep8==1.1.1
sphinx==1.3.1
sphinx_rtd_theme==0.1.8
sphinx==1.2.3
sphinx_rtd_theme==0.1.6
fake-factory==0.5.0
mock
32 changes: 16 additions & 16 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,34 @@ pygments==2.0.2
python-social-auth==0.2.9

# Explicit dependencies (references in code)
django==1.7.10
coverage==4.0.1
django-crispy-forms==1.4.0
Django==1.8.9
django-crispy-forms==1.6.0
django-haystack==2.4.1
django-model-utils==2.2
django-munin==0.2.0
django-model-utils==2.4
django-munin==0.2.1
python-memcached==1.54
lxml==3.4.4
factory-boy==2.4.1
factory-boy==2.6.1
pygeoip==0.3.2
pillow==2.9.0
pillow==3.1.1
gitpython==1.0.1
https://github.com/zestedesavoir/Python-ZMarkdown/archive/2.6.0-zds.7.zip
easy-thumbnails==2.2
CairoSVG==1.0.13
beautifulsoup4==4.3.2
CairoSVG==1.0.19
beautifulsoup4==4.4.1
django-recaptcha==1.0.4

# Api dependencies
djangorestframework==3.1.1
djangorestframework-xml==1.0.1
django-filter==0.9.2
django-oauth-toolkit==0.9.0
drf-extensions==0.2.7
django-rest-swagger==0.2.9
django-cors-headers==1.0.0
djangorestframework==3.3.2
djangorestframework-xml==1.3.0
django-filter==0.12
django-oauth-toolkit==0.10.0
drf-extensions==0.2.8
django-rest-swagger==0.3.4
django-cors-middleware==1.2.0
dry-rest-permissions==0.1.6

# Zep 12 dependency
django-uuslug==1.0.3
python-slugify==1.1.4 # next versions of this library break previous behavior for slug generation from string with single quotes
watchdog==0.8.3 # use last non-bc-breaking version
2 changes: 1 addition & 1 deletion scripts/deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ cd /opt/zdsenv/ZesteDeSavoir/
# Maintenance mode
sudo rm /etc/nginx/sites-enabled/zestedesavoir
sudo ln -s /etc/nginx/sites-available/zds-maintenance /etc/nginx/sites-enabled/zds-maintenance
sudo systemctl reload nginx.service
sudo service nginx reload

# Delete old branch if exists
git checkout prod
Expand Down
Loading

0 comments on commit 3767260

Please sign in to comment.