Skip to content

Commit

Permalink
Merge branch 'release-v1.1' into prod
Browse files Browse the repository at this point in the history
  • Loading branch information
SpaceFox committed Oct 7, 2014
2 parents 9dc0e98 + ba605fe commit eae6561
Show file tree
Hide file tree
Showing 210 changed files with 8,998 additions and 3,283 deletions.
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,11 @@ local.properties
#############
.idea/

#############
## Sphinx
#############

build/

#############
## OS detritus
Expand All @@ -109,3 +114,9 @@ $RECYCLE.BIN/

# Mac crap
.DS_Store

#############
## Gedit
#############

*.*~
8 changes: 8 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,18 @@ install:
- sudo apt-get update
- sudo echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
- sudo apt-get install ttf-mscorefonts-installer
- sudo apt-get install unzip
- sudo apt-get install texlive
- sudo apt-get install texlive-xetex
- sudo apt-get install texlive-lang-french
- sudo apt-get install texlive-latex-extra

# Add fonts
- sudo wget -P /usr/share/fonts/truetype https://www.dropbox.com/s/ema28tjn52960mq/Merriweather.zip
- sudo unzip /usr/share/fonts/truetype/Merriweather.zip -d /usr/share/fonts/truetype/Merriweather/
- sudo chmod a+r /usr/share/fonts/truetype/Merriweather/*.ttf
- sudo fc-cache -f -v

# Cabal + Pandoc stuff
- sudo mkdir -p ~/cabal/bin
- sudo mkdir -p ~/.pandoc
Expand Down Expand Up @@ -53,6 +60,7 @@ install:
script:
- npm run-script travis
- coverage run --source='.' manage.py test
- flake8 --exclude=migrations,urls.py,settings.py --max-line-length=120 zds

after_success:
- coveralls
17 changes: 12 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,22 @@ Les contributions externes sont les bienvenues !
2. Faites vos modifications
3. Ajoutez un test pour votre modification. Seules les modifications de documentation et les réusinages n'ont pas besoin de nouveaux tests
4. Assurez-vous que l'intégralité des tests passent : `python manage.py test`
5. Poussez votre travail et faites une _pull request_
5. Assurez-vous que le code suit la [PEP-8](http://legacy.python.org/dev/peps/pep-0008/) : `flake8 --exclude=migrations,urls.py,settings.py --max-line-length=120 zds`
6. Si vous avez fait des modifications du _front_, jouez les tests associés : `gulp test`
7. Si vous modifiez le modèle (les fichiers models.py), n'oubliez pas de créer les fichiers de migration : `python manage.py schemamigration app_name --auto`
8. Poussez votre travail et faites une _pull request_

# Quelques bonnes pratiques
* Respectez [les conventions de code de Django](https://docs.djangoproject.com/en/1.6/internals/contributing/writing-code/coding-style/), ce qui inclut la [PEP 8 de Python](http://legacy.python.org/dev/peps/pep-0008/)
* Le code et les commentaires sont en anglais
* Le _workflow_ Git utilisé est le [git flow](http://nvie.com/posts/a-successful-git-branching-model/) à quelques détails près :
* Les contributions se font uniquement sur la branche `dev` (appelée `develop` dans le git flow standard)
* Lorsqu'on décide que `dev` est prête pour la prod, la branche est mergée dans `master` (les branches `releases` dans le git flow standard). Dès lors, cette branche ne reçoit plus que des corrections, aucune nouvelle fonctionnalité.
* Le _workflow_ Git utilisé est le [Git flow](http://nvie.com/posts/a-successful-git-branching-model/). En détail :
* Les arrivées fonctionnalités et corrections de gros bugs hors release se font via des PR.
* Ces PR sont unitaires. Aucune PR qui corrige plusieurs problèmes ou apporte plusieurs fonctionnalité ne sera accepté ; la règle est : une fonctionnalité ou une correction = une PR.
* Ces PR sont mergées dans la branche `dev` (appelée `develop` dans le git flow standard), après une QA légère.
* Pensez à préfixer vos branches selon l'objet de votre PR : `hotfix-XXX`, `feature-XXX`, etc.
* La branche `prod` (appelée `master` dans le git flow standard) contient exclusivement le code en production, pas la peine d'essayer de faire le moindre _commit_ dessus !

Tous les détails sur le workflow se trouvent [sur la page dédiée](doc/workflow.md).

* Votre test doit échouer sans votre modification, et réussir avec
* Faites des messages de _commit_ clairs et en français
Expand All @@ -41,9 +47,10 @@ Les contributions externes sont les bienvenues !
| Nouvelle Fonctionnalité ? | [oui|non]
| Tickets 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écéssaire d'effectuer une action de gestion préalable, comme `python manage.py migrate`, `python manage.py loaddata fixture/*.yaml` ou `gulp build`.

## Les commits
* Pour les commits, nous suivons le même ordre d'idée des standards git, à savoir :
* Pour les commits, nous suivons le même ordre d'idée des standards Git, à savoir :
* La première ligne du commit ne doit pas faire plus de 50 caractères
* Si besoin, complétez votre commit via des commentaires, en respectant une limite de 70 caractères par ligne
* Bien que le code soit en anglais, le commit doit être de préférence en français
Expand Down
28 changes: 17 additions & 11 deletions Gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ var gulp = require("gulp"),
mainBowerFiles = require('main-bower-files');

var paths = {
scripts: "assets/js/**",
scripts: ["assets/js/**", "!assets/js/_**"],
images: "assets/images/**",
smileys: "assets/smileys/**",
errors_main: "errors/scss/main.scss",
Expand All @@ -25,9 +25,11 @@ var paths = {
sprite: "assets/images/sprite@2x/*.png"
};



gulp.task("clean", function() {
return gulp.src(["dist/*"])
.pipe($.clean());
return gulp.src(["dist/*"], { read: false })
.pipe($.rimraf());
});

gulp.task("script", ["test"], function() {
Expand All @@ -43,8 +45,8 @@ gulp.task("script", ["test"], function() {
});

gulp.task("clean-errors", function() {
return gulp.src(["errors/css/*"])
.pipe($.clean());
return gulp.src(["errors/css/*"], { read: false })
.pipe($.rimraf());
});

gulp.task("errors", ["clean-errors"], function() {
Expand Down Expand Up @@ -95,7 +97,9 @@ gulp.task("sprite", function() {
return output;
}
}));
sprite.img.pipe(gulp.dest("dist/images"));
sprite.img
.pipe($.imagemin({ optimisationLevel: 3, progressive: true, interlaced: true }))
.pipe(gulp.dest("dist/images"));
sprite.css.pipe(gulp.dest(paths.styles.sass));
return sprite.css;
});
Expand All @@ -117,11 +121,13 @@ gulp.task("smileys", function() {
});

gulp.task("vendors", function() {
return gulp.src(mainBowerFiles())
var vendors = mainBowerFiles();
vendors.push("assets/js/_**");

return gulp.src(vendors)
.pipe($.newer("dist/js/vendors.js"))
.pipe($.flatten()) // remove folder structure
.pipe($.size({ title: "vendors", showFiles: true }))
.pipe(gulp.dest("dist/js/vendors"))
.pipe($.concat("vendors.js"))
.pipe($.size({ title: "vendors.js" }))
.pipe(gulp.dest("dist/js"))
Expand All @@ -144,7 +150,7 @@ gulp.task("watch", function(cb) {
gulp.watch(paths.images, ["images"]);
gulp.watch(paths.styles_path, ["stylesheet"]);
gulp.watch(paths.errors_path, ["errors"]);
gulp.watch(paths.sprite, ["sprite", "stylesheet"]);
gulp.watch(paths.sprite, ["stylesheet"]); // stylesheet task already lauch sprite

gulp.watch("dist/*/**", function(file) {
var filePath = path.join("static/", path.relative(path.join(__dirname, "dist/"), file.path)); // Pour que le chemin ressemble à static/.../...
Expand Down Expand Up @@ -172,9 +178,9 @@ gulp.task("pack", ["build"], function() {
.pipe(gulp.dest("dist/"));
});

gulp.task("travis", ["test"]);

gulp.task("travis", ["pack"]);

gulp.task("build", ["smileys", "images", "sprite", "stylesheet", "vendors", "script", "merge-scripts"]);
gulp.task("build", ["smileys", "images", "sprite", "stylesheet", "merge-scripts"]);

gulp.task("default", ["build", "watch"]);
82 changes: 22 additions & 60 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,55 +1,35 @@
[![Build Status](https://travis-ci.org/zestedesavoir/zds-site.svg?branch=dev)](https://travis-ci.org/zestedesavoir/zds-site)
[![Coverage Status](https://coveralls.io/repos/zestedesavoir/zds-site/badge.png?branch=dev)](https://coveralls.io/r/zestedesavoir/zds-site?branch=dev)
[![Licnce GPL](http://img.shields.io/badge/license-GPL-yellow.svg)](http://www.gnu.org/licenses/quick-guide-gplv3.fr.html)
[![Licence GPL](http://img.shields.io/badge/license-GPL-yellow.svg)](http://www.gnu.org/licenses/quick-guide-gplv3.fr.html)
[![Documentation Status](https://readthedocs.org/projects/zds-site/badge/?version=latest)](https://readthedocs.org/projects/zds-site/?badge=latest)





Zeste de Savoir
===============
# Zeste de Savoir

Site internet communautaire codé à l'aide du framework [Django](https://www.djangoproject.com/) 1.6 et de [Python](https://www.djangoproject.com/) 2.7.

* Lien du site : [zestedesavoir](http://www.zestedesavoir.com)

## Fonctionnalités implementées




Fonctionnalités implementées
----------------------------

- Membres
- Tutoriels
- Articles
- Membres
- Forums
- Messages privés
- Galeries d'images
- Recherche





Fonctionnalités à venir
-----------------------
## Fonctionnalités à venir

Elles sont reportées essentiellement dans le [bugtraker](https://github.com/zestedesavoir/zds-site/issues).





Comment démarrer une instance de ZdS ?
--------------------------------------

## Comment démarrer une instance de ZdS ?

### Installation d'une version locale de ZdS
- [Intallation sur Windows](doc/install-windows.md)
- [Intallation sur Linux](doc/install-linux.md)
- [Intallation sur OS X](doc/install-os-x.md)

- [Installation de Solr](doc/install-solr.md) pour gérer la recherche

### Mettre à jour votre version locale de ZdS
Après avoir mis à jour votre dépot, vous devez executer les commandes suivantes (depuis la racine de votre projet) pour mettre à jour les dépendances.
Expand All @@ -59,66 +39,48 @@ python manage.py migrate
pip install --upgrade -r requirements.txt
```


### Données de test
Pour bénéficier de données de test, exécutez les commandes suivantes, dans l'ordre, à la fin des précédentes :

```console
python manage.py loaddata fixtures/users.yaml fixtures/forums.yaml fixtures/topics.yaml fixtures/mps.yaml fixtures/categories.yaml fixtures/licences.yaml
python manage.py loaddata fixtures/*.yaml

```

Cela va créer plusieurs entitées :

* 3 utilisateurs (utilisateur/mot de passe) :
* 6 utilisateurs (utilisateur/mot de passe) :
* user/user : Utilisateur normal
* staff/staff : Utilisateur avec les droits d'un staff
* admin/admin : Utilisateur avec les droits d'un staff et d'un admin
* anonymous/anonymous : Utilisateur qui permet l'anonymisation des messages sur les forums
* Auteur externe/external : Utilisateur qui permet de récupérer les tutoriels d'anciens membres et/ou de publier des tutoriels externes.
* ïtrema/ïtrema : Utilisateur de test supplémentaire sans droit
* 3 catégories
* 11 forums
* 3 sujets avec une réponse
* 1 message privé (MP) avec 3 participants
* 3 catégories et 2 sous-catégories


### Conseils de developpement

Avant de faire une Pull Request (PR), vérifiez que votre code passe tous les tests unitaires et qu'il est compatible [PEP-8](http://legacy.python.org/dev/peps/pep-0008/) en exécutant les commandes suivantes, pour le back :

```console
python manage.py test
flake8 --exclude=migrations,urls.py --max-line-length=120 --ignore=F403,E126,E127,E128 zds
```
### La documentation complète

Pour le front :
En ligne : http://zds-site.readthedocs.org/

```console
gulp test
```
La documentation de ZdS est générée par Sphinx, et elle doit être mise à jour à chaque modification ou ajout d'une fonctionnalité du site. Les sources se trouvent [ici](doc/sphinx/source/)

Si vous modifiez le modèle (les fichiers models.py), n'oubliez pas de créer les fichiers de migration :

```console
python manage.py schemamigration app_name --auto
```

Si vous avez une connexion lente et que vous ne voulez travailler que sur une branche précise, vous pouvez toujours ne récupérer que celle-ci :

```console
git clone https://github.com/zestedesavoir/zds-site.git -b LA_BRANCHE --depth 1
```
Pour générer la documentation en local, rendez vous dans le répertoire `zds-site/doc/sphinx` depuis votre terminal, et lancez la commande `make html`. Vous pourrez ensuite la consulter en ouvrant le fichier `zds-site/doc/sphinx/build/html/index.html`

### Conseils de developpement

Vous trouverez tout sur [la page dédiée de la documentation](CONTRIBUTING.md)

En savoir plus
--------------
## En savoir plus

- [Comment déployer ZDS sur un serveur de production ?](doc/deploy.md)
- [Contribuer](CONTRIBUTING.md)
- [Comment contribuer et conseils de développement](CONTRIBUTING.md)
- [Comment contribuer : comprendre comment suivre le workflow (sur zds)](http://zestedesavoir.com/forums/sujet/324/comment-contribuer-comprendre-comment-suivre-le-workflow/)



- [Les détails du workflow utilisé sur Zeste de Savoir](doc/workflow.md)


Zeste de Savoir est basé sur un fork de [Progdupeu.pl](http://progdupeu.pl) ([Dépôt Bitbucket](https://bitbucket.org/MicroJoe/progdupeupl/)).
Binary file modified assets/images/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/email-blue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/email-light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/email.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/facebook-blue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/facebook-light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/facebook.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/foursquare-blue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/foursquare-light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/foursquare.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/github-blue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/github-light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/github.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/google-plus-blue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/google-plus-light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/google-plus.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/help-blue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/help-light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/help.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/hide-blue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/hide-light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/hide.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/twitter-blue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/twitter-light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sprite@2x/twitter.png
Binary file removed assets/images/teasing/logo.png
Diff not rendered.
Binary file removed assets/images/teasing/social.jpg
Diff not rendered.
4 changes: 4 additions & 0 deletions assets/js/_custom.modernizr.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion assets/js/accessibility-links.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Author: Alex-D / Alexandre Demode
========================================================================== */

(function($){
(function($, undefined){
"use strict";

$("#accessibility a").on("focus", function(){
Expand Down
Loading

0 comments on commit eae6561

Please sign in to comment.