Skip to content

Commit

Permalink
Merge branch 'dev' into flag_feature
Browse files Browse the repository at this point in the history
  • Loading branch information
Situphen authored Mar 7, 2022
2 parents d5f6ac8 + 203e069 commit e5d669c
Show file tree
Hide file tree
Showing 138 changed files with 5,585 additions and 6,148 deletions.
5 changes: 4 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ env:
PYTHON_VERSION: "3.7"
MARIADB_VERSION: "10.4.10"
COVERALLS_VERSION: "2.2.0"
BLACK_VERSION: "21.8b0" # needs to be also updated in requirements-dev.txt and .pre-commit-config.yaml
BLACK_VERSION: "21.12b0" # needs to be also updated in requirements-dev.txt and .pre-commit-config.yaml

# As GitHub Action does not allow environment variables
# to be used in services definitions, these are only for
Expand Down Expand Up @@ -223,6 +223,9 @@ jobs:
- name: Install Python dependencies
run: pip install -r requirements-ci.txt

- name: Check that no migration is missing
run: python manage.py makemigrations --check --dry-run

- name: Build and start zmarkdown
run: |
make zmd-install
Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
12
16
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ repos:
- id: pyupgrade
args: [--py36-plus]
- repo: https://github.com/psf/black
rev: 21.8b0 # needs to be also updated in requirements-dev.txt and .github/workflows/ci.yml
rev: 21.12b0 # needs to be also updated in requirements-dev.txt and .github/workflows/ci.yml
hooks:
- id: black
language_version: python3
2 changes: 1 addition & 1 deletion Gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ function spriteImages() {

// Prepares files for zmarkdown
function prepareZmd() {
return gulp.src(['node_modules/katex/dist/{katex.min.css,fonts/*}'])
return gulp.src(['zmd/node_modules/katex/dist/{katex.min.css,fonts/*}'])
.pipe(gulp.dest('dist/css/'))
}

Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@ install-back-with-prod:
pip install --upgrade -r requirements-dev.txt -r requirements-prod.txt

run-back: zmd-check ## Run the backend server
python manage.py runserver --nostatic
python manage.py runserver --nostatic 0.0.0.0:8000

run-back-fast: zmd-check ## Run the backend server in fast mode (no debug toolbar & full browser cache)
python manage.py runserver --settings zds.settings.dev_fast
python manage.py runserver --settings zds.settings.dev_fast 0.0.0.0:8000

lint-back: ## Lint Python code
black . --check
Expand Down
2 changes: 1 addition & 1 deletion assets/js/mobile-menu.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
* Manage mobile sidebar on resize
*/
$(window).on('resize', function() {
if (parseInt($('html').css('width')) < 960 && !disableMobileMenu) {
if (parseInt($('html').css('width')) < 1024 && !disableMobileMenu) {
$('.page-container').css('width', $('html').css('width'))

if (!$('#mobile-menu').hasClass('initialized')) {
Expand Down
5 changes: 5 additions & 0 deletions assets/scss/layout/_content.scss
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,11 @@
margin-right: $length-10;
}

ul,
ol {
margin-right: $length-10;
}

figure {
p,
blockquote {
Expand Down
12 changes: 6 additions & 6 deletions doc/source/back-end/gallery.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Il est ensuite possible d'uploader des images via le menu de gauche :

Liens permettant d'uploader des images

Via celui-ci, on peut importer des archives contenant des images (au format ZIP) ou des images seules. Dans ce dernier cas, le formulaire d'*upload* est le suivant :
Via celui-ci, on peut importer des archives (au format ZIP) contenant des images ou des images seules. Dans ce dernier cas, le formulaire d'*upload* est le suivant :

.. figure:: ../images/gallery/nouvelle-image.png
:align: center
Expand All @@ -33,21 +33,21 @@ Via celui-ci, on peut importer des archives contenant des images (au format ZIP)

Comme on peut le voir, chaque image doit posséder au minimum un titre et peut posséder une légende, qui sera employée par la suite. Il est donc conseillé de remplir également ce second champ, bien que ce ne soit pas obligatoire. Quant à l'image elle-même, sa taille ne peut pas excéder 1024 Kio.

.. attention::
Le titre de l'image n'entre pas en compte dans le nommage de l'image une fois cette dernière téléchargée. Afin de réduire le risque de rencontrer des conflits de noms de fichiers, ces derniers sont hashés.

Une fois l'image uploadée, il est possible d'y effectuer différentes actions sur la page qui lui est spécifique :

.. figure:: ../images/gallery/gestion-image.png
:align: center

Gestion d'une image

Autrement dit,
Autrement dit :

+ En modifier le titre, la légende ou encore l'image en elle-même. À noter que le titre et la légende peuvent être modifiés **sans qu'il ne soit nécessaire** d'uploader une nouvelle image.
+ En modifier le titre, la légende ou encore l'image en elle-même. À noter que le titre et la légende peuvent être modifiés **sans qu'il ne soit nécessaire** d'uploader une nouvelle image. Si une nouvelle version de l'image est uploadée, l'ancienne version de l'image n'est pas supprimée du serveur et reste accessible depuis son URL ; un nouvel identifiant (et donc une nouvelle URL) sera attribué à la nouvelle version de l'image. Cela signifie notamment que mettre à jour une image ne changera pas l'image là où elle a déjà été utilisée (tutoriel, article, message, ...). Ce comportement permet d'éviter que les images utilisées dans des contenus validés soient changées sans repasser par une validation.
+ Obtenir le code à insérer dans un champ de texte acceptant le Markdown pour l'image en elle-même, sa miniature ou encore la miniature accompagnée du lien vers l'image en taille réelle.

.. attention::
Le titre de l'image n'entre pas en compte dans le nommage de l'image une fois cette dernière téléchargée. Afin de réduire le risque de rencontrer des conflits de noms de fichiers, ces derniers sont hashés.

Les utilisateurs et leurs droits
--------------------------------

Expand Down
9 changes: 4 additions & 5 deletions doc/source/contributing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,10 @@ Contribuer à Zeste De Savoir
1. Créez une branche pour contenir votre travail.
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 vos tests passent en utilisant la commande ``python manage.py test`` (`voir la documentation <https://docs.djangoproject.com/fr/1.10/topics/testing/overview/#running-tests>`_). Lancer la commande sur tous les tests du site risque de prendre un certain temps et n'est pas nécessaire : les tests seront de toute manière lancés de manière automatisée sur votre *pull request*.
5. Si vous avez fait des modifications du _frontend_, jouez les tests associés : ``yarn test``.
6. Si vous modifiez les modèles (les fichiers ``models.py``), n'oubliez pas de créer les fichiers de migration : ``python manage.py makemigrations``.
7. Poussez votre travail et faites une *pull request*.
8. Si votre travail nécessite des actions spécifiques lors du déploiement, précisez-les dans le corps de votre *pull request*. Elles seront ajoutées au *changelog* par le mainteneur qui effectuera le *merge*.
4. Assurez-vous que vos tests passent en utilisant la commande ``make test-back`` (voyez la `page dédiée <./guides/backend-tests.html>`_ pour plus de détails). Lancer la commande sur tous les tests du site risque de prendre un certain temps et n'est pas nécessaire : les tests seront de toute manière lancés de manière automatisée sur votre *pull request*.
5. Si vous avez modifié les modèles (les fichiers ``models.py``), n'oubliez pas de créer les fichiers de migration : ``python manage.py makemigrations``.
6. Poussez votre travail et faites une *pull request*.
7. Si votre travail nécessite des actions spécifiques lors du déploiement, précisez-les dans le corps de votre *pull request*. Elles seront ajoutées au *changelog* par le mainteneur qui effectuera le *merge*.

Quelques bonnes pratiques
-------------------------
Expand Down
2 changes: 1 addition & 1 deletion doc/source/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Si vous souhaitez terminer d'installer puis démarrer une instance locale de ZdS

install/install-*

Les détails concernant la contribution au code du site peuvent être trouvé `ici <./contributing.html>`_.
Les détails concernant la contribution au code du site peuvent être trouvés `ici <./contributing.html>`_.

Quelques informations supplémentaires:

Expand Down
51 changes: 51 additions & 0 deletions doc/source/install/install-docker.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
========================
Installation dans Docker
========================


.. note::

Par manque de développeurs utilisant Docker au sein de l'équipe de
développement de ZdS, cette section n'est guère fournie. Les instructions
données ici ne le sont qu'à titre indicatif. N'hésitez pas à signaler tout
problème ou proposer des améliorations !

L'installation de l'environnement de développement dans Docker se base sur `l'installation sous Linux <install-linux.html>`_.

Lancez un shell interactif dans un conteneur basé sur Debian :

.. sourcecode:: bash

docker run -it -p 8000:8000 debian:bullseye


Une fois dans le conteneur, saisissez les commandes suivantes :

.. sourcecode:: bash

# On se place dans le $HOME
cd

# Permet d'utiliser correctement apt
DEBIAN_FRONTEND=noninteractive

# Installez les paquets minimaux requis
apt update
apt install sudo make vim git

# Clonez le dépôt de ZdS
git clone https://github.com/<votre login>/zds-site.git
cd zds-site/

# Installez ZdS
make install-linux

# Nécessaire pour avoir nvm dans le PATH
source ../.bashrc

# À partir de maintenant, les commandes ne sont plus spécifiques à l'utilisation de Docker.

# Lancement de ZdS
source zdsenv/bin/activate
make zmd-start
make run-back
19 changes: 17 additions & 2 deletions doc/source/install/install-linux.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,10 @@ Pour installer une version locale de ZdS sur GNU/Linux, veuillez suivre les inst
- Si malgré tout vous ne parvenez pas à installer ZdS, n'hésitez pas à ouvrir `un sujet sur le forum <https://zestedesavoir.com/forums/sujet/nouveau/?forum=2>`_


Après avoir cloné, installer ZdS sous Linux est relativement simple. En effet, il suffit de lancer la commande suivante (qui se chargera d'installer ce qui est nécessaire, plus d'infos ci-dessous):
Pour installer ZdS, vous aurez besoin d'abord des programmes ``make`` et ``sudo``. S'ils ne sont pas déjà installés sur votre système, ils sont généralement disponibles dans les gestionnaires de paquets sous le même nom.


Après avoir cloné le dépôt du code source, installer ZdS sous Linux est relativement simple. En effet, il suffit de lancer la commande suivante (qui se chargera d'installer ce qui est nécessaire, plus d'infos ci-dessous):

.. sourcecode:: bash

Expand All @@ -35,11 +38,23 @@ Une fois que c'est fait, vous pouvez directement lancer votre instance à l'aide
make zmd-start # démarrer zmarkdown
make run-back # démarer le serveur django


Stoppez le serveur à l'aide de ctrl+c. Pour sortir de votre environnement, tapez ``deactivate``.

Vous pouvez également `indiquer à Git de ne pas effectuer de commit s'il y a des erreurs de formatage dans le code <../utils/git-pre-hook.html>`__.

Si vous utilisez un shell autre que bash, et que vous avez l’erreur suivante quand vous activez ``zdsenv`` :

.. sourcecode:: bash

…/zds-site/zdsenv/bin/activate:67: command not found: nvm

Alors c’est très probablement dû au script d’installation de nvm qui ne gère que Bash. Pour corriger ce problème, ouvrez votre fichier ``.bashrc`` et copiez les lignes concernant nvm dans le fichier de configuration de votre shell. Ces fichiers se trouvent dans votre répertoire utilisateur, par exemple :

.. sourcecode:: bash

~/.bashrc
~/.zshrc

Plus d'informations
-------------------

Expand Down
10 changes: 5 additions & 5 deletions fixtures/advanced/aide_tuto_media.yaml
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
- factory: zds.utils.factories.HelpWritingFactory
- factory: zds.utils.tests.factories.HelpWritingFactory
fields:
title: "Rédacteur"
tablelabel: "Besoin d'aide pour la rédaction"
slug: "redacteur"
fixture_image_path: "aide_redacteur.png"

- factory: zds.utils.factories.HelpWritingFactory
- factory: zds.utils.tests.factories.HelpWritingFactory
fields:
title: "Correcteur"
tablelabel: "Besoin d'aide pour la correction"
slug: "correcteur"
fixture_image_path: "aide_correcteur.png"

- factory: zds.utils.factories.HelpWritingFactory
- factory: zds.utils.tests.factories.HelpWritingFactory
fields:
title: "Illustrateur"
tablelabel: "Besoin d'aide pour l'illustration"
slug: "illustrateur"
fixture_image_path: "aide_illustrateur.png"

- factory: zds.utils.factories.HelpWritingFactory
- factory: zds.utils.tests.factories.HelpWritingFactory
fields:
title: "Repreneur"
tablelabel: "Cherche un repreneur"
slug: "repreneur"
fixture_image_path: "aide_repreneur.png"
fixture_image_path: "aide_repreneur.png"
8 changes: 8 additions & 0 deletions fixtures/forums.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,11 @@
subtitle: Discutez de tout !
category: 4
slug: discussions-generales
- model: forum.Forum
pk: 13
fields:
title: Staff only
subtitle: Réservé à l'équipe !
category: 4
slug: staff-only
groups: [1]
13 changes: 6 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,26 +25,25 @@
},
"homepage": "https://github.com/zestedesavoir/zds-site",
"dependencies": {
"autoprefixer": "10.2.5",
"chart.js": "3.5.1",
"autoprefixer": "10.4.2",
"chart.js": "3.7.0",
"chartjs-adapter-moment": "1.0.0",
"cssnano": "5.0.4",
"cssnano": "5.0.15",
"del": "6.0.0",
"easymde": "2.10.2-360.0",
"easymde": "2.16.1",
"gulp": "4.0.2",
"gulp-concat": "2.6.1",
"gulp-dart-sass": "1.0.2",
"gulp-if": "3.0.0",
"gulp-imagemin": "7.1.0",
"gulp-options": "1.1.1",
"gulp-postcss": "9.0.0",
"gulp-postcss": "9.0.1",
"gulp-terser-js": "5.1.2",
"gulp.spritesmith": "6.12.1",
"jquery": "3.6.0",
"katex": "0.11.1",
"moment": "2.29.1",
"normalize.css": "8.0.1",
"postcss": "8.3.0"
"postcss": "8.4.5"
},
"devDependencies": {
"eslint-config-standard": "14.1.1",
Expand Down
16 changes: 8 additions & 8 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
-r requirements.txt

black==21.8b0 # needs to be also updated in .github/workflows/ci.yml and .pre-commit-config.yaml
colorlog==6.4.1
django-debug-toolbar==3.2.2
django-extensions==3.1.3
Faker==8.12.1
pre-commit==2.15.0
PyYAML==5.4.1
black==21.12b0 # needs to be also updated in .github/workflows/ci.yml and .pre-commit-config.yaml
colorlog==6.6.0
django-debug-toolbar==3.2.4
django-extensions==3.1.5
Faker==10.0.0
pre-commit==2.16.0
PyYAML==6.0
selenium==3.141.0
Sphinx==4.2.0
Sphinx==4.3.2
sphinx_rtd_theme==1.0.0
6 changes: 3 additions & 3 deletions requirements-prod.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
-r requirements.txt

gunicorn==20.1.0
mysqlclient==2.0.3
sentry-sdk==1.3.1
ujson==4.1.0
mysqlclient==2.1.0
sentry-sdk==1.5.1
ujson==5.1.0
26 changes: 13 additions & 13 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,28 @@ social-auth-app-django==5.0.0

# Explicit dependencies (references in code)
beautifulsoup4==4.10.0
django-crispy-forms==1.12.0
django-model-utils==4.1.1
django-crispy-forms==1.13.0
django-model-utils==4.2.0
django-munin==0.2.1
django-recaptcha==2.0.6
Django==2.2.24
easy-thumbnails==2.8rc0
factory-boy==3.2.0
geoip2==4.2.0
GitPython==3.1.14
Django==3.2.12
easy-thumbnails==2.8.0
factory-boy==3.2.1
geoip2==4.5.0
GitPython==3.1.24
homoglyphs==2.0.4
lxml==4.6.3
Pillow==8.3.2
python-memcached==1.59
lxml==4.7.1
Pillow==9.0.1
pymemcache==3.5.0
requests==2.26.0
toml==0.10.2

# Api dependencies
django-cors-headers==3.8.0
django-filter==2.4.0
django-cors-headers==3.10.1
django-filter==21.1
django-oauth-toolkit==1.5.0
djangorestframework-xml==2.0.0
djangorestframework==3.12.4
djangorestframework==3.13.1
drf-extensions==0.7.1
dry-rest-permissions==0.1.10
drf_yasg==1.20.0
Expand Down
2 changes: 1 addition & 1 deletion scripts/dependencies/debian.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#title=Debian
#desc=Utilisation de apt-get / Testé sur Debian Stretch (9), Buster (10)
#desc=Utilisation de apt-get / Testé sur Debian Stretch (9), Buster (10), Bullseye (11)
#updatecmd=apt-get -y update
#installcmd=apt-get -y install
git
Expand Down
2 changes: 1 addition & 1 deletion scripts/dependencies/ubuntu.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#title=Ubuntu
#desc=Utilisation de apt-get / Testé sur : Ubuntu 16.04 LTS, 18.04 LTS, 19.04 & Linux Mint 19
#desc=Utilisation de apt-get / Testé sur : 18.04 LTS, 19.04, 20.04 LTS & Linux Mint 19
#updatecmd=apt-get -y update
#installcmd=apt-get -y install
git
Expand Down
Loading

0 comments on commit e5d669c

Please sign in to comment.