diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index 67c9bc7256..b066cd3c0c 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -1,15 +1,11 @@
| Q | R
| ----------------------------------- | -------------------------------------------
| Type de modification | correction de bug / nouvelle fonctionnalité / évolution
-| Ticket(s) (_issue(s)_) concerné(s) | (ex #1337)
+| Ticket(s) (_issue(s)_) concerné(s) | (ex : #1337)
### QA
-- Instruction 1 (ex : lancez `python manage.py migrate` et `npm run gulp build`)
+- Instruction 1 (exemple : lancez `python manage.py migrate` et `npm run gulp build`)
- Instruction 2
-- etc
-
-
-
-- [ ] Ça fonctionne !
-- [ ] Code relu et approuvé !
\ No newline at end of file
+- ...
+- Code review
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 98c553aa2c..dac185a0a2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -27,10 +27,12 @@ env:
- TEST_APP="-e front"
notifications:
- irc:
- channels:
- - irc.smoothirc.net#zds-dev
- skip_join: true
+ webhooks:
+ urls:
+ - "https://scalar.vector.im/api/neb/services/hooks/dHJhdmlzLWNpLyU0MHNhbmRob3NlJTNBc2FuZGhvc2UuZnIvJTIxd2dlbkt2dHpNY3NYREtiZEhZJTNBbWF0cml4Lm9yZw"
+ on_success: change
+ on_failure: always
+ on_start: never
services:
- memcached
@@ -107,7 +109,7 @@ after_success:
if [[ "$TEST_APP" == *"front"* ]] && [[ "$TRAVIS_PULL_REQUEST" == false ]] && [[ ! -z "$TRAVIS_TAG" ]] && [[ ! "$TRAVIS_TAG" == *"-build" ]]
then
# Adding GitHub OAuth token to login
- echo "machine github.com login $GITHUB_TOKEN password x-oauth-basic" > $HOME/.netrc
+ echo -e "machine github.com login $BOT_LOGIN\n password $BOT_PASSWORD" > $HOME/.netrc
git config --global url."https://".insteadOf git://
git config --global user.name "Build bot"
git config --global user.email "zestedesavoir@gmail.com"
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b885d99618..f8bc535be5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,44 +1,47 @@
Les contributions externes sont les bienvenues !
# Avant de réaliser...
-1. Vérifiez que vous avez [un compte Github](https://github.com/signup/free)
-2. Créez votre _issue_ si elle n'existe pas
- * Vérifiez que vous avez la dernière version du code
- * Décrivez clairement votre problème, avec toutes les étapes pour le reproduire
+1. Vérifiez que vous avez [un compte Github](https://github.com/signup/free).
+2. Créez votre _issue_ si elle n'existe pas.
+ * Vérifiez que vous avez la dernière version du code.
+ * Décrivez clairement votre problème, avec toutes les étapes pour le reproduire.
3. **Attribuez-vous** votre _issue_. C'est important pour éviter de se marcher dessus. Si vous n'êtes pas dans l'organisation et donc que vous ne pouvez pas vous attribuer directement l'_issue_, il vous suffit d'ajouter un commentaire clair dans celle-ci (comme _"Je prends"_), et elle sera marquée comme "en cours").
-4. _Forkez_ le dépôt
-5. Installez l'environnement. Tout est dans le fichier README.md
+4. _Forkez_ le dépôt.
+5. Installez l'environnement. Tout est dans le fichier [README.md](README.md).
# 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 l'intégralité des tests passent : `python manage.py test`
-5. Assurez-vous que le code suit la [PEP-8](http://legacy.python.org/dev/peps/pep-0008/) : `tox -e flake8`
-6. Si vous avez fait des modifications du _front_, jouez les tests associés : `npm 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 makemigrations`
+
+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 l'intégralité des tests passent : `python manage.py test`.
+5. Assurez-vous que le code suit la [PEP-8](http://legacy.python.org/dev/peps/pep-0008/) : `tox -e flake8`.
+6. Si vous avez fait des modifications du _front_, jouez les tests associés : `npm 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 makemigrations`.
8. Si votre travail nécessite des actions spécifiques lors du déploiement, précisez-les dans le fichier [update.md](update.md).
-9. Poussez votre travail et faites une _pull request_
+9. Poussez votre travail et faites une _pull request_.
# Quelques bonnes pratiques
-* Respectez [les conventions de code de Django](https://docs.djangoproject.com/en/1.7/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
+
+* Respectez [les conventions de code de Django](https://docs.djangoproject.com/en/1.10/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/). 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](http://zds-site.readthedocs.org/fr/latest/workflow.html).
-* Votre test doit échouer sans votre modification, et réussir avec
-* Faites des messages de _commit_ clairs et en français
-* Il n'y a aucune chance que votre _pull request_ soit acceptée sans son test associé
+* Votre test doit échouer sans votre modification, et réussir avec.
+* Faites des messages de _commit_ clairs et en français.
+* Il n'y a aucune chance que votre _pull request_ soit acceptée sans son test associé.
# Les bonnes pratiques pour les PR et les commits
## Les Pull-Requests
+
* Lors de l'ouverture d'une PR, respectez le template suivant :
```markdown
@@ -51,12 +54,13 @@ Tous les détails sur le workflow se trouvent [sur la page dédiée](http://zds-
* 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 :
- * 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
- * Vous pouvez également (c'est d'ailleurs conseillé) de référencer l'_issue_ que vous fixez
- * Un commit doit être atomique ; il fixe / implémente **une** chose et le fait **bien**
+ * 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.
+ * Vous pouvez également (c'est d'ailleurs conseillé) de référencer l'_issue_ que vous fixez.
+ * Un commit doit être atomique ; il fixe / implémente **une** chose et le fait **bien**.
* Essayez d'éviter les commits dits inutiles (`fix previous commit`, ...). Si vous en avez dans votre pull-request,
on vous demandera probablement de faire un `squash` de vos commits.
diff --git a/Gulpfile.js b/Gulpfile.js
index c9473a9c53..9bfc2bedfa 100644
--- a/Gulpfile.js
+++ b/Gulpfile.js
@@ -75,6 +75,7 @@ gulp.task('js', () =>
'assets/js/spoiler.js',
'assets/js/submit-dbclick.js',
'assets/js/tab-modalize.js',
+ 'assets/js/topic-suggest.js',
'assets/js/tribune-pick.js',
'assets/js/zen-mode.js',
], { base: '.' })
diff --git a/README.md b/README.md
index 59de7a7d49..2023afb467 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@
# Zeste de Savoir
-Site internet communautaire codé à l'aide du framework [Django](https://www.djangoproject.com/) 1.8 et de [Python](https://www.python.org/) 2.7.
+Site internet communautaire codé à l'aide du framework [Django](https://www.djangoproject.com/) 1.10 et de [Python](https://www.python.org/) 2.7.
[Voir l'instance en ligne](https://zestedesavoir.com).
@@ -72,22 +72,21 @@ python .\manage.py load_factory_data .\fixtures\advanced\aide_tuto_media.yaml
Cela va créer plusieurs entitées :
* 8 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
- * decal/decal : le compte qui possède un identifiant ``Profile`` différent de l'identifiant ``user`` pour permettre de tester des cas ou ces id sont différents
- * dev/dev : Utilisateur dans le groupe des développeurs.
-
-* 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
-* 4 aides pour l'écriture des tutoriels
-* 5 unes mises en avant sur la page d'accueil
+ * 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 ;
+ * decal/decal : le compte qui possède un identifiant ``Profile`` différent de l'identifiant ``user`` pour permettre de tester des cas ou ces id sont différents ;
+ * dev/dev : Utilisateur dans le groupe des développeurs ;
+* 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 ;
+* 4 aides pour l'écriture des tutoriels ;
+* 5 unes mises en avant sur la page d'accueil.
Pour en savoir plus sur cette commande, [consulter la documentation](http://zds-site.readthedocs.org/fr/latest/utils/fixture_loaders.html).
diff --git a/assets/js/markdown-help.js b/assets/js/markdown-help.js
index ea39044ec4..6535b5ddfd 100644
--- a/assets/js/markdown-help.js
+++ b/assets/js/markdown-help.js
@@ -24,7 +24,7 @@
"Pour écrire un bout de code au milieu d’une phrase, utilisez la syntaxe `un bout de code`
.",
"Le langage d’un bloc de code peut être spécifié après les ```
ouvrants. La liste des langages supportés est disponible ici.",
"Vous pouvez écrire des formules mathématiques en encadrant ces dernières du signe dollar $
."
- ];
+ ];
function addDocMD($elem){
$elem.each(function(){
@@ -38,12 +38,14 @@
$(document).ready(function(){
- addDocMD($(".md-editor"));
- $("#content").on("DOMNodeInserted", ".md-editor", function(e){
- var $editor = $(e.target);
- if($editor.next().hasClass("markdown-help") === false) {
- addDocMD($editor);
- }
- });
+ if ($("body").data("show-markdown-help")) {
+ addDocMD($(".md-editor"));
+ $("#content").on("DOMNodeInserted", ".md-editor", function(e){
+ var $editor = $(e.target);
+ if($editor.next().hasClass("markdown-help") === false) {
+ addDocMD($editor);
+ }
+ });
+ }
});
})(document, jQuery);
diff --git a/assets/js/topic-suggest.js b/assets/js/topic-suggest.js
new file mode 100644
index 0000000000..af2a909e3e
--- /dev/null
+++ b/assets/js/topic-suggest.js
@@ -0,0 +1,69 @@
+/* ===== Zeste de Savoir ====================================================
+ Suggest Topic when user makes topic
+ ---------------------------------
+ Author: A-312, AmarOk
+ ========================================================================== */
+
+(function($, undefined) {
+ "use strict";
+
+ if (!$("#topic-suggest")[0])
+ return;
+
+ var timeoutCall = 0;
+ var timeoutHidden = 0;
+
+ var myHandler = function() {
+ var titleURI = encodeURIComponent($(this).val());
+ if (titleURI.length < 3) return;
+ var $container = $("#topic-result-container");
+ var suggestTopicsUrl = $("#topic-suggest").attr("url");
+
+ if ($container.data("ajax-load") !== true) {
+ $.getJSON(suggestTopicsUrl + "?q=" + titleURI, function(json) {
+ var $ul = $("
");
+ var $title = null;
+ var count = 0;
+
+ // clearTimeout
+ clearTimeout(timeoutHidden);
+ clearTimeout(timeoutCall);
+
+ $.each(json.results, function(index, topic) {
+ $title = $("").attr("target", "_blank");
+ $title.text(topic.title).attr("href", topic.url).attr("title", topic.subtitle);
+ var $topicDate = new Date(topic.pubdate).toLocaleDateString();
+ var $forumLink = $("").text(topic.forumTitle).attr("href", topic.forumUrl);
+ $("").text(" dans le forum ").append($forumLink).append(" le " + $topicDate).prepend($title).appendTo($ul);
+ count++;
+ if (count === 5) return;
+ });
+
+ if (!count) {
+ $("").addClass("neither").text($container.data("neither")).appendTo($ul);
+ timeoutHidden = setTimeout(function () {
+ $("#topic-suggest").hide(800);
+ }, 6000);
+ }
+ $container.html("").append($ul);
+
+ $container.data("ajax-load", false);
+ $("#topic-suggest").show(800);
+ });
+
+ $container.data("ajax-load", true);
+ }
+ };
+
+ $("#id_title").on("blur", myHandler);
+
+ $("#id_title").on("keypress", function() {
+ var that = this;
+ var length = $(this).val().length;
+
+ clearTimeout(timeoutCall);
+ timeoutCall = setTimeout(function () {
+ myHandler.call(that);
+ }, (length < 5) ? (12 - length * 2) * 200 : 2000); // ANTI-FLOOD
+ });
+})(jQuery);
diff --git a/assets/js/tribune-pick.js b/assets/js/tribune-pick.js
index f3eea02988..bc0ba268dd 100644
--- a/assets/js/tribune-pick.js
+++ b/assets/js/tribune-pick.js
@@ -1,5 +1,6 @@
(function ($, undefined) {
var $opinions = $(".opinion");
+ var $opinionCount = $("#opinion-count");
$opinions.on("click", ".unpick-action", function () {
var $button = $(this);
var $row = $button.parent().parent();
@@ -19,6 +20,7 @@
var $stateCol = $row.find(".state");
$stateCol.text($stateCol.data("toggle"));
}
+ $opinionCount.text(parseInt($opinionCount.text(), 10)-1);
});
});
})(jQuery);
diff --git a/assets/scss/components/_header-dropdown.scss b/assets/scss/components/_header-dropdown.scss
index 34af611ede..0036d49b99 100644
--- a/assets/scss/components/_header-dropdown.scss
+++ b/assets/scss/components/_header-dropdown.scss
@@ -107,7 +107,7 @@
padding: 0;
.dropdown-list {
- max-height: 330px;
+ max-height: 360px;
overflow-x: hidden;
overflow-y: auto;
diff --git a/assets/scss/components/_mobile-menu.scss b/assets/scss/components/_mobile-menu.scss
index c69152e54f..2ea3716aae 100644
--- a/assets/scss/components/_mobile-menu.scss
+++ b/assets/scss/components/_mobile-menu.scss
@@ -229,6 +229,7 @@
float: left;
height: 50px;
width: 50px;
+ cursor: pointer;
&:after {
display: block;
diff --git a/assets/scss/components/_topic-message.scss b/assets/scss/components/_topic-message.scss
index 07846bab1c..b0a0874c13 100644
--- a/assets/scss/components/_topic-message.scss
+++ b/assets/scss/components/_topic-message.scss
@@ -223,6 +223,10 @@
font-style: italic;
color: #999;
+ & > a {
+ color: #999;
+ }
+
&:after {
opacity: .5;
}
diff --git a/assets/scss/components/_topic-new.scss b/assets/scss/components/_topic-new.scss
new file mode 100644
index 0000000000..5f480396e9
--- /dev/null
+++ b/assets/scss/components/_topic-new.scss
@@ -0,0 +1,28 @@
+#topic-result-container {
+ background-color: white;
+ border: 1px solid #d2d5d6;
+
+ ul {
+ list-style: none;
+ font-size: 12px;
+ padding: 0;
+ margin: 0;
+
+ li {
+ padding: 1px 10px;
+ border-bottom: solid 1px #CCC;
+
+ &.active, &:hover {
+ background-color: #d7d7d7;
+
+ &.neither {
+ background-color: transparent;
+ }
+ }
+
+ &:last-child {
+ border-bottom: none;
+ }
+ }
+ }
+}
diff --git a/assets/scss/layout/_header.scss b/assets/scss/layout/_header.scss
index be5fa99c98..61566361c4 100644
--- a/assets/scss/layout/_header.scss
+++ b/assets/scss/layout/_header.scss
@@ -467,6 +467,9 @@
.logbox .dropdown.my-account-dropdown ul li {
height: 30px;
line-height: 30px;
+ button {
+ cursor: pointer;
+ }
}
.lt-ie9 .dropdown {
diff --git a/assets/scss/main.scss b/assets/scss/main.scss
index b2ba88321a..179f96777e 100644
--- a/assets/scss/main.scss
+++ b/assets/scss/main.scss
@@ -73,6 +73,7 @@
@import "components/topic-list";
@import "components/notification-list";
@import "components/topic-message";
+@import "components/topic-new";
@import "components/user-profile";
/*------------------------
diff --git a/doc/source/front-end.rst b/doc/source/front-end.rst
index 60b9e208f0..af84a94cf5 100644
--- a/doc/source/front-end.rst
+++ b/doc/source/front-end.rst
@@ -6,7 +6,7 @@ Le terme *front-end* désigne la partie du code associée à l'affichage des don
Il s'agit donc de la partie du code définissant le design et l'affichage, mais aussi de l'ergonomie, la réactivité et l'expérience utilisateur. Sa mise en place est basée sur trois langages :
-+ Le HTML, aidé du `langage de gabarit de Django `__ ;
++ Le HTML, aidé du `langage de gabarit de Django `__ ;
+ `SASS (en) `__ pour les feuilles de style ;
+ JavaScript pour les interactions.
diff --git a/doc/source/index.rst b/doc/source/index.rst
index 605f455cf7..6fbc0b3389 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -2,7 +2,7 @@
Documentation de Zeste De Savoir
================================
-Zeste de Savoir est un site internet communautaire codé à l'aide du framework Django 1.8 et de Python 2.7
+Zeste de Savoir est un site internet communautaire codé à l'aide du framework Django 1.10 et de Python 2.7
`Voir l'instance en ligne `_
diff --git a/doc/source/install/configs/munin/zds.conf b/doc/source/install/configs/munin/zds.conf
index 4cb29c9e79..2a8502a370 100755
--- a/doc/source/install/configs/munin/zds.conf
+++ b/doc/source/install/configs/munin/zds.conf
@@ -1,40 +1,44 @@
[zds_db_performance]
-env.url http://gandi.zestedesavoir.com/munin/db_performance/
+env.url https://zestedesavoir.com/munin/db_performance/
env.graph_category zds
[zds_total_users]
-env.url http://gandi.zestedesavoir.com/munin/total_users/
+env.url https://zestedesavoir.com/munin/total_users/
env.graph_category zds
[zds_active_users]
-env.url http://gandi.zestedesavoir.com/munin/active_users/
+env.url https://zestedesavoir.com/munin/active_users/
env.graph_category zds
[zds_total_sessions]
-env.url http://gandi.zestedesavoir.com/munin/total_sessions/
+env.url https://zestedesavoir.com/munin/total_sessions/
env.graph_category zds
[zds_active_sessions]
-env.url http://gandi.zestedesavoir.com/munin/active_sessions/
+env.url https://zestedesavoir.com/munin/active_sessions/
env.graph_category zds
[zds_total_topics]
-env.url http://gandi.zestedesavoir.com/munin/total_topics/
+env.url https://zestedesavoir.com/munin/total_topics/
env.graph_category zds
[zds_total_posts]
-env.url http://gandi.zestedesavoir.com/munin/total_posts/
+env.url https://zestedesavoir.com/munin/total_posts/
env.graph_category zds
[zds_total_mps]
-env.url http://gandi.zestedesavoir.com/munin/total_mps/
+env.url https://zestedesavoir.com/munin/total_mps/
env.graph_category zds
[zds_total_tutorials]
-env.url http://gandi.zestedesavoir.com/munin/total_tutorials/
+env.url https://zestedesavoir.com/munin/total_tutorials/
env.graph_category zds
[zds_total_articles]
-env.url http://gandi.zestedesavoir.com/munin/total_articles/
+env.url https://zestedesavoir.com/munin/total_articles/
+env.graph_category zds
+
+[zds_total_tribunes]
+env.url https://zestedesavoir.com/munin/total_opinions/
env.graph_category zds
diff --git a/doc/source/install/configs/settings_prod.py b/doc/source/install/configs/settings_prod.py
index 031b70a274..a908761c12 100644
--- a/doc/source/install/configs/settings_prod.py
+++ b/doc/source/install/configs/settings_prod.py
@@ -5,10 +5,13 @@
import os
+from raven import Client
+from zds.utils.context_processor import get_git_version
+
from settings import ABSOLUTE_URL_OVERRIDES, AUTHENTICATION_BACKENDS, BASE_DIR
from settings import CORS_ALLOW_HEADERS, CORS_ALLOW_METHODS, CORS_EXPOSE_HEADERS
from settings import CORS_ORIGIN_ALLOW_ALL, CRISPY_TEMPLATE_PACK, FILE_UPLOAD_HANDLERS
-from settings import GEOIP_PATH, HAYSTACK_CONNECTIONS, HAYSTACK_CUSTOM_HIGHLIGHTER
+from settings import GEOIP_PATH
from settings import INSTALLED_APPS, LANGUAGES, LANGUAGE_CODE, LOCALE_PATHS
from settings import LOGIN_REDIRECT_URL, LOGIN_URL, MEDIA_URL, MESSAGE_TAGS
from settings import MIDDLEWARE_CLASSES, OAUTH2_PROVIDER, REST_FRAMEWORK
@@ -16,6 +19,7 @@
from settings import STATICFILES_DIRS, STATICFILES_FINDERS, STATIC_URL, SWAGGER_SETTINGS
from settings import THUMBNAIL_ALIASES, THUMBNAIL_PRESERVE_EXTENSIONS, THUMBNAIL_QUALITY
from settings import TIME_ZONE, USE_I18N, USE_TZ, WSGI_APPLICATION, ZDS_APP
+from settings import ES_ENABLED, ES_CONNECTIONS, ES_SEARCH_INDEX
##### Django settings #####
@@ -102,9 +106,7 @@
'django.contrib.messages.context_processors.messages',
'social.apps.django_app.context_processors.backends',
'social.apps.django_app.context_processors.login_redirect',
-
# ZDS context processors
- 'zds.member.utils.ZDSCustomizeSocialAuthExceptionMiddleware',
'zds.utils.context_processor.app_settings',
'zds.utils.context_processor.git_version',
],
@@ -117,6 +119,7 @@
# https://docs.getsentry.com/hosted/clients/python/integrations/django/
RAVEN_CONFIG = {
'dsn': 'to-fill'
+ 'release': get_git_version()['name'],
}
LOGGING = {
@@ -248,7 +251,7 @@
ZDS_APP['site']['secure_url'] = 'https://zestedesavoir.com'
# added in v21
-ZDS_APP['display_search_bar'] = False
+ZDS_APP['display_search_bar'] = True
# forum
ZDS_APP['forum']['beta_forum_id'] = 23
@@ -272,6 +275,9 @@
ZDS_APP['content']['repo_public_path'] = '/opt/zds/data/contents-public'
ZDS_APP['content']['extra_content_generation_policy'] = 'WATCHDOG'
+# enable ping!
+ZDS_APP['comment']['enable_pings'] = False
+
# Vote anonymisation - cf v18 : https://goo.gl/L6X4hw
VOTES_ID_LIMIT = 131319
@@ -285,10 +291,8 @@
FORCE_HTTPS_FOR_MEMBERS = True
ENABLE_HTTPS_DECORATOR = True
-# for social auth exception to be properly handled
-SOCIAL_AUTH_RAISE_EXCEPTIONS = False
-
# visual changes
#ZDS_APP['visual_changes'] = ['snow', 'clem-christmas']
#ZDS_APP['visual_changes'] = ['clem-halloween']
+ES_SEARCH_INDEX['shards'] = 3
diff --git a/doc/source/install/install-es.rst b/doc/source/install/install-es.rst
index ae1c44e7fd..39eb08aa99 100644
--- a/doc/source/install/install-es.rst
+++ b/doc/source/install/install-es.rst
@@ -152,7 +152,7 @@ Pour réindexer les nouvelles données, utilisez la commande suivante :
.. sourcecode:: bash
- python manage.py es_manager index-flagged
+ python manage.py es_manager index_flagged
Plus d'informations sur la commande ``es_manager`` sont disponibles sur la page `concernant la recherche sur ZdS <../back-end/searchv2.html#indexer-les-donnees-de-zds>`_.
diff --git a/forbidden_email_providers.txt b/forbidden_email_providers.txt
deleted file mode 100644
index b6dc92aa8e..0000000000
--- a/forbidden_email_providers.txt
+++ /dev/null
@@ -1,812 +0,0 @@
-@0-mail.com
-@0815.ru
-@0clickemail.com
-@0wnd.net
-@0wnd.org
-@10mail.org
-@10minutemail.
-@123-m.com
-@123.com
-@126.com
-@139.com
-@163.com
-@1pad.de
-@20mail.
-@20minutemail.com
-@20mm.in
-@21cn.com
-@2prong.com
-@33mail.com
-@3d-painting.com
-@4warding.
-@60minutemail.com
-@6paq.com
-@75hosting.
-@7days-printing.com
-@7tags.com
-@99experts.com
-@9ox.net
-@a-bc.net
-@abc.bg
-@abusemail.de
-@abv.bg
-@abyssmail.com
-@ac20mail.in
-@acentri.com
-@adamsnet.info
-@adm1.me
-@advantimo.com
-@advertfast.com
-@agedmail.com
-@agendosa.com
-@aichyna.com
-@ajaxapp.net
-@ak.mintemail.com
-@amilegit.com
-@amiri.net
-@amiriindustries.com
-@anappfor.com
-@anappthat.com
-@ano-mail.net
-@anonbox.net
-@anonymbox.com
-@antichef.
-@antifork.org
-@antispam.de
-@appixie.com
-@armyspy.com
-@atvclub.msk.ru
-@baxomale.ht.cx
-@beefmilk.com
-@beefmilk.com
-@berahe.info
-@bi-dating.info
-@bigmir.net
-@bigstring.com
-@binkmail.com
-@bio-muesli.net
-@bitmessage.ch
-@bk.ru
-@blackbox.trillianpro.com
-@bladesmail.net
-@bloatbox.com
-@bob.ubx.se
-@bobmail.info
-@bodhi.lawlita.com
-@bofthew.com
-@bookee.com
-@boxformail.in
-@boximail.com
-@boxtemp.com.br
-@brefmail.com
-@brennendesreich.de
-@broadbandninja.com
-@bsnow.net
-@bspamfree.org
-@buffemail.com
-@bugmenot.com
-@bumpymail.com
-@bund.us
-@burnthespam.info
-@buyusedlibrarybooks.org
-@byom.de
-@c2.hu
-@camcecil.com
-@cash.com
-@cashette.
-@casualdx.com
-@ccxt.info
-@ce.mintemail.com
-@cellurl.com
-@centermail.
-@chammy.info
-@charklasers.com
-@chcb.info
-@cheatmail.de
-@chogmail.com
-@chong-mail.
-@claeys.qc.to
-@clixser.com
-@clrmail.com
-@cmail.
-@cock.li
-@coloccini.com.ar
-@computerquip.com
-@consumerriot.com
-@cool.fr.nf
-@correo.blogos.net
-@corsa-tuning.
-@cosmorph.com
-@courriel.fr.nf
-@courrieltemporaire.com
-@crapmail.org
-@crazespaces.pw
-@curryworld.de
-@cust.in
-@cuvox.de
-@cvs.in.th
-@cx.de-a.org
-@dacoolest.com
-@dadasoft.com.mx
-@daintly.com
-@dandikmail.com
-@dani.ml
-@dataleak.info.tm
-@dauer.info
-@dayrep.com
-@dbunker.com
-@dcemail.com
-@deadaddress.com
-@deagot.com
-@dealja.com
-@deo-vindice
-@despam.it
-@devnullmail.com
-@dfgh.net
-@digit-labs.web.id
-@digitalsanctuary.com
-@dingbone.com
-@dingbone.com
-@dinkys.ws
-@discardmail.
-@discardmail.com
-@disposableaddress.com
-@disposableinbox.com
-@dispose.it
-@disposeamail.com
-@disposemail.
-@dispostable.com
-@divermail.com
-@dlemail.ru
-@dm.w3internet.co.uk
-@doc.biz.tm
-@dodgeit.
-@dodgeit.com
-@dodgemail.de
-@dodgit.
-@domain141.com
-@domforfb4.tk
-@domozmail.com
-@dontreg.com
-@dontsendmespam.de
-@dota.epicgamer.org
-@dotmsg.com
-@drdrb.
-@droplar.com
-@dropmail.me
-@dudmail.com
-@dump-email.info
-@dumpyemail.com
-@dunflimblag.mailexpire.com
-@duskmail.com
-@dw.now.im
-@dx.ez.lv
-@dx.sly.io
-@e-mail.
-@e-mail.com
-@e4ward.com
-@easy-trash-mail.com
-@easytrashmail.com
-@eco.wretch.twbbs.org
-@eelmail.com
-@einrot.com
-@einrot.de
-@email-jetable.
-@email.cbes.net
-@email.com
-@email.net
-@email60.com
-@emailgo.de
-@emailias.com
-@emailinfive.com
-@emailjetable.
-@emaillime.com
-@emailmiser.com
-@emailsensei.com
-@emailtemporar.
-@emailtemporario.
-@emailtemporario.com.br
-@emailthe.net
-@emailtmp.
-@emailto.de
-@emailwarden.com
-@enraged-bl.tk
-@envenve1e.com
-@ephemail.
-@epicgamer.org
-@esa.thc.lv
-@est.une.victime.ninja
-@etranquil.
-@europe.com
-@evilninjapirates.com
-@example.com
-@explodemail.com
-@eyepaste.com
-@faic.tk
-@fakeinbox.com
-@fakeinformation.com
-@fakemail.com
-@fakemail.fr
-@fanaticars.info
-@fantasymail.de
-@fastacura.com
-@fatflap.com
-@faza.ru
-@fdfdsfds.com
-@fightallspam.com
-@filzmail.com
-@find-love.info
-@fizmail.com
-@fleckens.hu
-@flemail.ru
-@flurred.com
-@flyspam.com
-@for-fun.info
-@foteret.info
-@fr33mail.info
-@fractum.hol.es
-@frapmail.com
-@freefreemail.info
-@freenet.de
-@freestuffo1.
-@freestuffo2.
-@freestuffo3.
-@freestuffo4.
-@friendlymail.
-@fromru.com
-@front14.org
-@fuckingduh.com
-@fudgerub.com
-@fudgerub.com
-@gametheorylabs.com
-@garliclife.com
-@gawab.com
-@geer4.mooo.com
-@get1mail.com
-@get2mail.fr
-@getairmail.com
-@getmails.eu
-@getonemail.
-@ghosttexter.de
-@girlsundertheinfluence.com
-@gishpuppy.com
-@gnoia.org
-@go.irc.so
-@goemailgo.com
-@gold2world.biz
-@gotmail.
-@gotti.otherinbox.com
-@gowikibooks.com
-@gowikicampus.com
-@gowikicars.com
-@gowikifilms.com
-@gowikigames.com
-@gowikimusic.com
-@gowikinetwork.com
-@gowikitravel.com
-@gowikitv.com
-@grandmamail.com
-@grandmasmail.com
-@great-host.in
-@grifon.info
-@grr.la
-@gsrv.co.uk
-@guerillamail.
-@guerrillamail.
-@guerrillamailblock.
-@gustr.com
-@h1ch3r.net
-@hacccc.com
-@hacker1.com.br
-@haltospam.com
-@haqed.com
-@haqued.com
-@harakirimail.com
-@herp.in
-@hidzz.com
-@hintz.org
-@hochsitze.com
-@hotpop.com
-@hulapla.de
-@humn.ws.gy
-@hushmail.com
-@idan.be
-@ieatspam.eu
-@ieatspam.info
-@iespana.es
-@ignorelist.com
-@ihateyoualot.info
-@iiserk.net
-@imails.info
-@imgof.com
-@inbox.ru
-@inboxclean.
-@incognitomail.
-@instant-mail.de
-@ipoo.org
-@irish2me.com
-@isaichkin.ru
-@isuisse.com
-@it.sackler.net
-@iwi.net
-@jetable.
-@jnxjn.com
-@jourrapide.com
-@jsrsolutions.com
-@junk.trillianpro.com
-@junk1e.com
-@kasmail.com
-@kaspop.com
-@kkll.cu.cc
-@klassmaster.com
-@kloap.com
-@klzlk.com
-@korsun.pp.ru
-@kulturbetrieb.info
-@kurzepost.de
-@landmail.co
-@lastmail.
-@lavabit.com
-@lekovic.ca
-@letthemeatspam.com
-@lhsdv.com
-@lichtisten.com
-@lifebyfood.com
-@link2mail.
-@link2mail.net
-@linuxx.org
-@linxlunx.info
-@list.ru
-@litedrop.com
-@lookugly.com
-@lopl.co.cc
-@lovemeleaveme.com
-@lr78.com
-@lroid.com
-@m4ilweb.info
-@ma1l.bij.pl
-@maboard.com
-@mail-filter.com
-@mail-gratuit.com
-@mail-temporaire.
-@mail.by
-@mail.mezimages.net
-@mail.ru
-@mail114.net
-@mail15.com
-@mail15.fr
-@mail333.com
-@mail4trash.com
-@mailbidon.com
-@mailbucket.org
-@mailcatch.com
-@maildx.com
-@maileater.com
-@mailed.ro
-@mailexpire.com
-@mailfs.com
-@mailguard.me
-@mailhazard.com
-@mailin8r.com
-@mailinater.com
-@mailinator.
-@mailinator2.
-@mailincubator.com
-@mailismagic.com
-@mailme.crabdance.com
-@mailme.lv
-@mailmetrash.com
-@mailmoat.com
-@mailnator.
-@mailnesia.com
-@mailnull.com
-@mailquack.com
-@mailscrap.com
-@mailtemporaire.com
-@mailtemporaire.fr
-@mailtothis.com
-@mailzi.ru
-@mailzilla.
-@makemetheking.com
-@manybrain.com
-@masterhost.ru
-@mbx.cc
-@mega.zik.dj
-@meltmail.com
-@messagebeamer.de
-@mierdamail.com
-@migmail.pl
-@migumail.com
-@mintemail.com
-@misena.edu.co
-@mobileninja.co.uk
-@moburl.com
-@mohmal.com
-@moncourrier.fr.nf
-@monemail.fr.nf
-@monmail.fr.nf
-@monumentmail.com
-@mor19.uu.gl
-@mouly.com.ar
-@moyareklama.ru
-@mrbox.root.sx
-@msk.su
-@mt2009.com
-@mt2014.com
-@muell.email
-@muuh.info
-@mx0.wwwnew.eu
-@my.efxs.ca
-@my10minutemail.com
-@mybox.root.sx
-@mycleaninbox.net
-@myemailboxy.com
-@mymail-in.net
-@mypacks.net
-@mypartyclip.de
-@myspaceinc.
-@myspacepimpedup.com
-@mytemp.email
-@mytempemail.com
-@mytrashmail.com
-@myxost.com
-@national.shitposting.agency
-@naver.com
-@ne-quid-nimis.info
-@nepwk.com
-@nervmich.net
-@nervtmich.net
-@netmails.net
-@netzidiot.de
-@neverbox.com
-@nice-4u.com
-@nikvdp.com
-@nil-admirari.info
-@no-spam.
-@no-spam.hu
-@nobulk.com
-@noclickemail.com
-@nogmailspam.info
-@nomail.xl.cx
-@nomail2me.com
-@nospam.
-@nospam.ze.tc
-@nospam4.
-@nospamfor.
-@nospamthanks.info
-@notmailinator.com
-@novoemail.homenet.org
-@nowhere.org
-@nowmymail.com
-@nowonder.homenet.org
-@nowwhat.linuxd.org
-@nurfuerspam.de
-@nwldx.com
-@objectmail.com
-@obobbo.com
-@octivian.com
-@one.it
-@oneoffemail.com
-@onetime.email
-@onewaymail.com
-@oopi.org
-@oos.tw
-@ordinaryamerican.net
-@otherinbox.com
-@ourklips.com
-@ove.ali.com.pk
-@owlpic.com
-@p0ns.org
-@paplease.com
-@paschke.org
-@paukner.org
-@pcusers.otherinbox.com
-@pecdo.com
-@pedco.com
-@pepbot.com
-@perlpowered.com
-@pimpedupmyspace.com
-@pisem.net
-@plsmail.us.to
-@po.bot.nu
-@pochta.ru
-@poczta.onet.pl
-@politikerclub.de
-@pookmail.com
-@porn.com
-@pornoroxx.net
-@portsaid.cc
-@prescrip.pl
-@privacy.net
-@privy-mail.com
-@protocultura.net
-@proxymail.eu
-@prtnx.com
-@puk.us.to
-@punkass.com
-@putthisinyourspamdatabase.com
-@pwn.linuxx.org
-@pwrby.com
-@qarea.com
-@qasti.com
-@qia.bep.co.id
-@qisdo.com
-@qisoa.com
-@qlfg.com
-@qq.com
-@quasti.com
-@quickinbox.com
-@radiku.ye.vc
-@rambler.ru
-@ranftl.org
-@rcpt.at
-@reallymymail.com
-@recode.me
-@recursor.net
-@reddementes.net
-@redthumb.info.tm
-@regbypass.
-@rev.vci.si
-@rhyta.com
-@rklips.com
-@rmqkr.net
-@roshankarki.com.np
-@royal.net
-@rppkn.com
-@rr.ccs.pl
-@rtrtr.com
-@s0ny.net
-@safe-mail.net
-@safetymail.info
-@safetypost.de
-@sales.trillianpro.com
-@samo.ohi.tw
-@sandelf.de
-@saynotospams.com
-@schafmail.de
-@seco.sne.jp
-@secret.shop.tm
-@selfdestructingmail.com
-@sempaktools.us.to
-@sendspamhere.com
-@sharklasers.com
-@shiftmail.com
-@shit.trillianpro.com
-@shitmail.
-@shitware.
-@shokri.net
-@shop.tm
-@shop.tn
-@shortmail.net
-@shotmail.ru
-@sibmail.com
-@sify.com
-@sija.pl
-@sinnlos-mail.de
-@siteposter.net
-@sixohquad.com
-@skeefmail.com
-@skim.com
-@slopsbox.com
-@smeh.info
-@smellfear.com
-@smellfear.com
-@snakemail.com
-@sneakemail.com
-@snkmail.com
-@sofasurfer.ch
-@sofort-mail.de
-@sogetthis.com
-@somany.ignorelist.com
-@soodonims.com
-@space-elephant.com
-@spam.
-@spam.la
-@spam4.
-@spam4.me
-@spamarrest.
-@spamavert.
-@spambob.
-@spambooger.com
-@spambox.
-@spambox.us
-@spamcannon.
-@spamcero.com
-@spamcorptastic.com
-@spamday.com
-@spameater.org
-@spamex.com
-@spamfree.
-@spamfree24.
-@spamfree24.com
-@spamfree24.net
-@spamfree24.org
-@spamgoes.in
-@spamgourmet.
-@spamgourmet.com
-@spamh0le.com
-@spamherelots.com
-@spamhereplease.com
-@spamhole.com
-@spamify.com
-@spaminator.de
-@spamkill.
-@spaml.
-@spammotel.com
-@spamobox.com
-@spamsalad.in
-@spamspot.com
-@spamthis.co.uk
-@spamthisplease.com
-@spamtrail.com
-@spamtroll.net
-@speed.1s.fr
-@spikio.com
-@spoofmail.de
-@squizzy.de
-@sr.ro.lt
-@startkeys.com
-@stinkefinger.net
-@streetwisemail.com
-@stuffmail.de
-@supergreatmail.com
-@superrito.com
-@superstachel.de
-@suremail.info
-@sysnet.org.pk
-@tafmail.com
-@tagyourself.com
-@talkinator.com
-@tapchicuoihoi.com
-@techie.com
-@teewars.org
-@tele-vision.info
-@teleworm.com
-@teleworm.us
-@temp-mail.org
-@temp.emeraldwebmail.com
-@tempalias.com
-@tempe-mail.com
-@tempemail.
-@tempemail.net
-@tempemail.net
-@tempinbox.co.uk
-@tempinbox.com
-@tempmail.it
-@tempmaildemo.com
-@tempmailer.com
-@tempomail.
-@temporarily.de
-@temporaryemail.
-@temporaryinbox.
-@temporaryinbox.com
-@tempthe.net
-@test5566.strangled.net
-@thailaaa.org.ua
-@thanksnospam.info
-@thankyou2010.com
-@thecannabishunter.com
-@thedens.org
-@theins4ne.net
-@thisisnotmyrealemail.com
-@thrma.com
-@throam.com
-@throwawayemailaddress.com
-@throwawaymail.com
-@tilien.com
-@tittbit.in
-@tmail.com
-@tmailinator.com
-@tokenmail.de
-@tormail.org
-@torry.multiservice.ru
-@tradedoubling.co.uk
-@tradermail.info
-@trash-amil.
-@trash-mail.
-@trash-mail.com
-@trash-mail.de
-@trash2009.
-@trash2010.
-@trash2011.
-@trashdevil.com
-@trashdevil.de
-@trashmail.
-@trashmailer.
-@trashymail.
-@travelwith.spacetechnology.net
-@trbvm.com
-@trickmail.net
-@trickmail.net6
-@trillianpro.com
-@trollope.za.net
-@turual.com
-@tut.by
-@twilightparadox.com
-@tyldd.com
-@ubismail.net
-@uggsrock.com
-@ukr.net
-@umail.net
-@upal.se
-@upliftnow.com
-@uplipht.com
-@uroid.com
-@usa.com
-@users.1go.dk
-@valemail.net
-@veryrealemail.com
-@vidchart.com
-@viditag.com
-@viewcastmedia.com
-@viewcastmedia.net
-@viewcastmedia.org
-@viona.ml
-@vkcode.ru
-@vomoto.com
-@vp.ycare.de
-@vubby.com
-@vxaz.com
-@walala.org
-@walkmail.ru
-@want.javafaq.nu
-@webemail.me
-@webm4il.info
-@weg-werf-email.de
-@wegwerf-email-addressen.de
-@wegwerf-emails.de
-@wegwerfadresse.de
-@wegwerfemail.de
-@wegwerfmail.
-@weibo.10086.cn
-@welcome.twilightparadox.com
-@wetrainbayarea.com
-@wetrainbayarea.org
-@wezel.ch
-@wezel.info
-@wh4f.com
-@wh4f.org
-@whatiaas.com
-@whyspam.me
-@wickmail.net
-@willhackforfood.biz
-@willselfdestruct.com
-@winemaven.info
-@winter.org
-@wollan.info
-@wollmann.org
-@wovz.cu.cc
-@wronghead.com
-@wuzup.net
-@wuzupmail.net
-@x.trillianpro.com
-@xagloo.com
-@xardas.eu
-@xing886.uu.gl
-@xmail.com
-@xoxy.net
-@xww.ro
-@xyzfree.net
-@yahoo.com.ph
-@yahoo.com.vn
-@yandex.ru
-@yeah.net
-@yert.ye.vc
-@yet.eva.hk
-@yeuthuong.org
-@yhg.biz
-@yis.vr.lt
-@yogamaven.com
-@yomail.info
-@yopmail.
-@yopmail.netmailnesia.com
-@you.loc.im
-@ypmail.
-@yufz.com
-@yuurok.com
-@za.com
-@ze.gally.jp
-@zetmail.com
-@zippymail.info
-@zoemail.net
-@zomg.info
\ No newline at end of file
diff --git a/manage.py b/manage.py
index 758d307eec..04d713b569 100644
--- a/manage.py
+++ b/manage.py
@@ -2,56 +2,34 @@
import sys
-def patch_mysql_sql_create_model(original):
+def patch_create_suffix(original):
"""
- Inspired by github.com/miyagi389/zipcode-django-python - The MIT License - Copyright (c) 2014 miyagi389
-
- :param :class:`django.db.backends.creation.BaseDatabaseCreation` original: BaseDatabaseCreation
- :return: BaseDatabaseCreation
- :rtype: :class:`django.db.backends.creation.BaseDatabaseCreation`
+ Patch mysql creation policy to handle the "utf8mb4" facility. This appears tricky but it's necessary
+ due to the conception of "extended utf-8" in mysql. If we do not patch, the mysql backend cannot index
+ ``VARCHAR(255)`` fields !
+ see
+ for explanations
+
+ :param original: the original function we are patching
+ :return: the patched function
"""
-
- def revised(self, model, style, known_models=set()):
- """
- :class:`django.db.backends.creation.BaseDatabaseCreation`
- """
-
- fullname = self.__module__ + '.' + self.__class__.__name__
- if fullname == 'django.db.backends.mysql.creation.DatabaseCreation':
- # the migration will run MySQL
- sql_statements, pending_references = original(self, model, style, known_models)
-
- final_output = []
- for statement in sql_statements:
- if not statement.startswith('CREATE TABLE'):
- continue
-
- end = ''
- if statement.endswith(';'):
- end = ';'
- statement = statement[:-1]
-
- statement += 'ROW_FORMAT=DYNAMIC{}'.format(end)
-
- final_output.append(statement)
-
- return final_output, pending_references
- else:
- return original(self, model, style, known_models)
-
- return revised
+ def patch(self):
+ return original(self) + ' ROW_FORMAT=DYNAMIC'
+ return patch
if __name__ == '__main__':
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'zds.settings')
if len(sys.argv) > 1 and sys.argv[1] in ['migrate', 'test']:
- from django.db.backends.base.creation import BaseDatabaseCreation
- BaseDatabaseCreation.sql_create_model = patch_mysql_sql_create_model(BaseDatabaseCreation.sql_create_model)
+ from django.db.backends.mysql.creation import BaseDatabaseCreation
+
+ BaseDatabaseCreation.sql_table_creation_suffix = \
+ patch_create_suffix(BaseDatabaseCreation.sql_table_creation_suffix)
from django.db.backends.mysql.schema import DatabaseSchemaEditor
- DatabaseSchemaEditor.sql_create_table += ' ROW_FORMAT=DYNAMIC'
+ DatabaseSchemaEditor.sql_create_table += ' ROW_FORMAT=DYNAMIC'
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
diff --git a/package.json b/package.json
index 6d9ca18e5f..c965c8320e 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "zds-site",
"version": "0.2.0",
- "description": "Site internet communautaire codé à l'aide du Framework Django 1.8",
+ "description": "Site internet communautaire codé à l'aide du Framework Django 1.10",
"directories": {
"doc": "doc"
},
diff --git a/requirements.txt b/requirements.txt
index ce4931b63a..cc4a8a6905 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,17 +5,17 @@ elasticsearch==5.3.0
elasticsearch-dsl==5.2.0
# Explicit dependencies (references in code)
-Django==1.8.18
+Django==1.10.7
django-crispy-forms==1.6.1
django-model-utils==2.6.1
django-munin==0.2.2
python-memcached==1.58
lxml==3.7.3
-factory-boy==2.7.0
+factory-boy==2.8.1
pygeoip==0.3.2
pillow==4.1.0
gitpython==1.0.1
-https://github.com/zestedesavoir/Python-ZMarkdown/archive/2.6.0-zds.17.zip
+git+https://github.com/zestedesavoir/Python-ZMarkdown.git@a1481fb4764aafc6051da859ee9280fa16868f65
easy-thumbnails==2.4.1
CairoSVG==1.0.20
beautifulsoup4==4.5.3
@@ -27,7 +27,7 @@ djangorestframework-xml==1.3.0
django-filter==1.0.2
django-oauth-toolkit==0.12.0
drf-extensions==0.3.1
-django-rest-swagger==0.3.6
+django-rest-swagger==2.0.7
django-cors-middleware==1.3.1
dry-rest-permissions==0.1.9
diff --git a/scripts/deploy.sh b/scripts/deploy.sh
index 35d5515e15..7e9b5d4389 100755
--- a/scripts/deploy.sh
+++ b/scripts/deploy.sh
@@ -43,6 +43,15 @@ rm -rf ./dist/
git fetch --tags
# Server has git < 1.9, git fetch --tags doesn't retrieve commits...
git fetch
+
+if git rev-parse $1 >/dev/null 2>&1
+then
+ echo "Tag $1 found!"
+else
+ echo "Tag $1 doesn't exist."
+ exit 1;
+fi
+
# Checkout the tag
git checkout $1-build
# Create a branch with the same name - required to have version data in footer
diff --git a/scripts/install_texlive.sh b/scripts/install_texlive.sh
index c1626874d6..60a3eb6d4f 100755
--- a/scripts/install_texlive.sh
+++ b/scripts/install_texlive.sh
@@ -1,5 +1,7 @@
#!/bin/bash
+EXTRA_PACKAGES="wallpaper titlesec"
+
if [[ -f $HOME/.texlive/bin/x86_64-linux/tlmgr ]]; then
echo "Using cached texlive install"
else
@@ -24,7 +26,8 @@ else
./install-tl*/install-tl -profile texlive.profile
# Install extra latex packages
- ./bin/x86_64-linux/tlmgr install wallpaper titlesec
+ $HOME/.texlive/bin/x86_64-linux/tlmgr install $EXTRA_PACKAGES
+ $HOME/.texlive/bin/x86_64-linux/tlmgr update --self
echo "Installation complete !"
fi
diff --git a/scripts/texlive.profile b/scripts/texlive.profile
index c534b8c380..498429c955 100644
--- a/scripts/texlive.profile
+++ b/scripts/texlive.profile
@@ -1,6 +1,4 @@
-# texlive.profile written on Tue May 12 14:54:48 2015 UTC
-# It will NOT be updated and reflects only the
-# installation profile at installation time.
+# texlive.profile to select small version and set environement variables
selected_scheme scheme-small
TEXMFCONFIG $TEXMFSYSCONFIG
TEXDIR $HOME/.texlive
@@ -14,22 +12,19 @@ collection-basic 1
collection-latex 1
collection-latexrecommended 1
collection-xetex 1
-in_place 0
option_adjustrepo 1
-option_autobackup 1
-option_backupdir tlpkg/backups
-option_desktop_integration
+tlpdbopt_autobackup 1
+tlpdbopt_backupdir tlpkg/backups
+tlpdbopt_desktop_integration
option_doc 1
-option_file_assocs
+tlpdbopt_file_assocs
option_fmt 1
option_letter 0
-option_menu_integration
option_path
-option_post_code 1
+tlpdbopt_post_code 1
option_src 1
option_sys_bin /usr/local/bin
option_sys_info /usr/local/share/info
option_sys_man /usr/local/share/man
-option_w32_multi_user 1
-option_write18_restricted 1
+tlpdbopt_w32_multi_user 1
portable 1
diff --git a/templates/base.html b/templates/base.html
index 6478d36b6f..bf3dc1022e 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -122,8 +122,13 @@
{% endif %}