diff --git a/Gulpfile.js b/Gulpfile.js index c03ec38d8d..3231b43069 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -8,10 +8,16 @@ var paths = { scripts: "assets/js/**", images: "assets/images/**", smileys: "assets/smileys/**", - copy: "assets/misc/**", - stylesheet: "assets/scss/main.scss", - scss: ["assets/scss/**", "!assets/scss/_sprite.scss"], - sass: { + errors_main: "errors/scss/main.scss", + errors_path: "errors/scss/**", + errors: { + sass: "errors/scss", + images: "errors/images", + includePaths: ["errors/scss", "assets/bower_components/modularized-normalize-scss"], + }, + styles_main: "assets/scss/main.scss", + styles_path: ["assets/scss/**", "!assets/scss/_sprite.scss"], + styles: { sass: "assets/scss", images: "assets/images", includePaths: ["assets/scss", "assets/bower_components/modularized-normalize-scss"], @@ -36,12 +42,31 @@ gulp.task("script", ["test"], function() { .pipe($.size({ title: "main.min.js" })); }); +gulp.task("clean-errors", function() { + return gulp.src(["errors/css/*"]) + .pipe($.clean()); +}); + +gulp.task("errors", ["clean-errors"], function() { + return gulp.src(paths.errors_main) + .pipe($.sass({ + sass: paths.errors.sass, + imagePath: paths.errors.images, + includePaths: paths.errors.includePaths + })) + .pipe($.autoprefixer(["last 1 version", "> 1%", "ff >= 20", "ie >= 8", "opera >= 12", "Android >= 2.2"], { cascade: true })) + .pipe(gulp.dest("errors/css")) + .pipe($.rename({ suffix: ".min" })) // génère une version minimifié + .pipe($.minifyCss()) + .pipe(gulp.dest("errors/css")); +}); + gulp.task("stylesheet", ["sprite"], function() { - return gulp.src(paths.stylesheet) + return gulp.src(paths.styles_main) .pipe($.sass({ - sass: paths.sass.sass, - imagePath: paths.sass.images, - includePaths: paths.sass.includePaths + sass: paths.styles.sass, + imagePath: paths.styles.images, + includePaths: paths.styles.includePaths })) .pipe($.autoprefixer(["last 1 version", "> 1%", "ff >= 20", "ie >= 8", "opera >= 12", "Android >= 2.2"], { cascade: true })) .pipe(gulp.dest("dist/css")) @@ -71,7 +96,7 @@ gulp.task("sprite", function() { } })); sprite.img.pipe(gulp.dest("dist/images")); - sprite.css.pipe(gulp.dest(paths.sass.sass)); + sprite.css.pipe(gulp.dest(paths.styles.sass)); return sprite.css; }); @@ -115,17 +140,23 @@ gulp.task("merge-scripts", ["script", "vendors"], function() { gulp.task("watch", function(cb) { gulp.watch(paths.scripts, ["script"]); - gulp.watch(paths.copy, ["copy"]); gulp.watch(paths.smiley, ["smileys"]); gulp.watch(paths.images, ["images"]); - gulp.watch(paths.scss, ["stylesheet"]); + gulp.watch(paths.styles_path, ["stylesheet"]); + gulp.watch(paths.errors_path, ["errors"]); gulp.watch(paths.sprite, ["sprite", "stylesheet"]); gulp.watch("dist/*/**", function(file) { - filePath = path.join("static/", path.relative(path.join(__dirname, "dist/"), file.path)); // Pour que le chemin ressemble à static/.../... + var filePath = path.join("static/", path.relative(path.join(__dirname, "dist/"), file.path)); // Pour que le chemin ressemble à static/.../... $.livereload.changed(filePath); }); + gulp.watch("errors/*/**", function(file) { + setImmediate(function(){ + $.livereload.changed(file.path); + }); + }); + $.livereload.listen(); }); @@ -135,11 +166,6 @@ gulp.task("test", function() { .pipe($.jshint.reporter("jshint-stylish")); }); -gulp.task("copy", function() { - return gulp.src(paths.copy) - .pipe(gulp.dest("dist/")); -}); - gulp.task("pack", ["build"], function() { return gulp.src(["dist/*/**", "!dist/pack.zip"]) .pipe($.zip("pack.zip")) @@ -149,6 +175,6 @@ gulp.task("pack", ["build"], function() { gulp.task("travis", ["test"]); -gulp.task("build", ["smileys", "images", "sprite", "stylesheet", "vendors", "script", "merge-scripts", "copy"]); +gulp.task("build", ["smileys", "images", "sprite", "stylesheet", "vendors", "script", "merge-scripts"]); gulp.task("default", ["build", "watch"]); diff --git a/README.md b/README.md index b8d7eb334f..31e1f0990e 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ pip install --upgrade -r requirements.txt 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 +python manage.py loaddata fixtures/users.yaml fixtures/forums.yaml fixtures/topics.yaml fixtures/mps.yaml fixtures/categories.yaml fixtures/licences.yaml ``` diff --git a/assets/images/favicon.ico b/assets/images/favicon.ico deleted file mode 100644 index 59441cc530..0000000000 Binary files a/assets/images/favicon.ico and /dev/null differ diff --git a/assets/js/mobile-menu.js b/assets/js/mobile-menu.js index 79c492b2e0..86938ffb3c 100644 --- a/assets/js/mobile-menu.js +++ b/assets/js/mobile-menu.js @@ -290,7 +290,11 @@ if(parseInt($("html").css("width")) < 960 && !disableMobileMenu){ var $newBtns = $(".sidebar .new-btn:not(.mobile-btn-imported)"); if($newBtns.length > 0){ - var $prevElem = $("#content > .content-wrapper, #content > .full-content-wrapper").find("h1, h2"); + var $prevElem = $("#content") + .find("> .content-wrapper, > .full-content-wrapper, > .content-col-2") + .first() + .find("h1, h2") + .first(); if($prevElem.next(".license").length > 0) $prevElem = $prevElem.next(".license"); if($prevElem.next(".subtitle").length > 0) diff --git a/assets/js/zen-mode.js b/assets/js/zen-mode.js index 0f358892bf..c83c564f21 100644 --- a/assets/js/zen-mode.js +++ b/assets/js/zen-mode.js @@ -8,7 +8,7 @@ "use strict"; if($(".article-content").length > 0){ - $(".content-container .taglist + .authors").before($("", { + $(".content-container .taglist ~ .authors").before($("", { "class": "btn btn-grey ico-after view open-zen-mode", "text": "Lecture zen", "click": function(e){ diff --git a/assets/misc/css/newsletter.css b/assets/misc/css/newsletter.css deleted file mode 100644 index a30245c28b..0000000000 --- a/assets/misc/css/newsletter.css +++ /dev/null @@ -1 +0,0 @@ -/*! normalize.css v1.1.2 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}html,body{color:#FFF;height:100%;width:100%;background-color:#094561;overflow:hidden}body{position:relative;font-family:"Trebuchet MS", sans-serif}#page{position:absolute;top:50%;height:640px;width:100%;margin-top:-320px;background:#19516b;-moz-box-shadow:0 0 15px rgba(0,0,0,0.15);-webkit-box-shadow:0 0 15px rgba(0,0,0,0.15);box-shadow:0 0 15px rgba(0,0,0,0.15);border-top:1px solid rgba(255,255,255,0.2);border-bottom:1px solid rgba(255,255,255,0.2);background-image:-moz-radial-gradient(top center, rgba(255,255,255,0.1),rgba(0,0,0,0) 60%);background-image:-o-radial-gradient(top center, rgba(255,255,255,0.1),rgba(0,0,0,0) 60%);background-image:-webkit-radial-gradient(top center, rgba(255,255,255,0.1),rgba(0,0,0,0) 60%);background-image:radial-gradient(top center, rgba(255,255,255,0.1),rgba(0,0,0,0) 60%)}#page:before,#page:after{content:" ";position:absolute;top:0;left:0;display:block;width:100%;height:1px;background-image:-moz-linear-gradient(left, rgba(0,0,0,0),rgba(255,255,255,0.5) 50%,rgba(0,0,0,0));background-image:-o-linear-gradient(left, rgba(0,0,0,0),rgba(255,255,255,0.5) 50%,rgba(0,0,0,0));background-image:-webkit-linear-gradient(left, rgba(0,0,0,0),rgba(255,255,255,0.5) 50%,rgba(0,0,0,0));background-image:linear-gradient(to right, rgba(0,0,0,0),rgba(255,255,255,0.5) 50%,rgba(0,0,0,0))}#page:after{top:auto;bottom:0}#page-in{position:absolute;width:700px;left:50%;margin-left:-350px}header{margin-top:60px}header h1{display:block;margin:0 auto;padding:0;height:118px;width:576px;background:url("../images/teasing/logo.png");text-indent:-9999px}main{text-align:center}main .title{margin:50px 0 30px}main .title h2,main .title h3{font-weight:normal;margin:0}main .title h2{font-size:22px}main .title h3{margin-top:5px;font-size:19px;color:#a2c5ce}main .en-savoir-plus,main .back{color:#FFF;text-decoration:none;background:#094561;padding:10px 25px;font-size:18px;-moz-transition:background 0.15s;-o-transition:background 0.15s;-webkit-transition:background 0.15s;transition:background 0.15s}main .en-savoir-plus:hover,main .en-savoir-plus:focus,main .back:hover,main .back:focus{background:#07344a}main #en-savoir-plus{display:none;position:absolute;top:50%;left:50%;height:500px;width:700px;margin:120px 0 0 -350px;text-align:justify}main #en-savoir-plus .back{display:block;position:absolute;top:18px;right:103%;font-size:16px;padding:7px 15px}main .form-section{text-align:left;width:560px;margin:50px auto 0}main .form-section .register{color:#f8ad32;margin:0;text-shadow:0 0 5px rgba(0,0,0,0.7)}main .form-section form{border:1px solid #f8ad32;height:50px;position:relative;overflow:hidden}main .form-section form input,main .form-section form button{display:block;border:none;margin:0;padding:16px 19px;height:18px;font-size:18px;-moz-transition:all 0.2s;-o-transition:all 0.2s;-webkit-transition:all 0.2s;transition:all 0.2s}main .form-section form input[type="email"],main .form-section form button[type="email"]{color:#FFF;background:#094561;width:455px;-moz-box-shadow:0 0 7px rgba(0,0,0,0.25) inset;-webkit-box-shadow:0 0 7px rgba(0,0,0,0.25) inset;box-shadow:0 0 7px rgba(0,0,0,0.25) inset}main .form-section form input[type="email"].placeholder,main .form-section form button[type="email"].placeholder{color:#EEE}main .form-section form input[type="email"]:-moz-placeholder,main .form-section form button[type="email"]:-moz-placeholder{color:#EEE}main .form-section form input[type="email"]::-moz-placeholder,main .form-section form button[type="email"]::-moz-placeholder{color:#EEE}main .form-section form input[type="email"]::-ms-input-placeholder,main .form-section form button[type="email"]::-ms-input-placeholder{color:#EEE}main .form-section form input[type="email"]::-webkit-input-placeholder,main .form-section form button[type="email"]::-webkit-input-placeholder{color:#EEE}main .form-section form input[type="email"]:focus,main .form-section form button[type="email"]:focus{background:#07344a;-moz-box-shadow:0 0 7px rgba(0,0,0,0.7) inset;-webkit-box-shadow:0 0 7px rgba(0,0,0,0.7) inset;box-shadow:0 0 7px rgba(0,0,0,0.7) inset}main .form-section form button{position:absolute;top:-10px;right:-20px;width:100px;height:100px;background:#f8ad32;color:#094561;-moz-transform:rotate(30deg);-ms-transform:rotate(30deg);-o-transform:rotate(30deg);-webkit-transform:rotate(30deg);transform:rotate(30deg)}main .form-section form button:hover,main .form-section form button:focus{background:#d68807;color:#FFF}main .form-section form button span{display:block;position:absolute;top:30px;left:25px;-moz-transform:rotate(-30deg);-ms-transform:rotate(-30deg);-o-transform:rotate(-30deg);-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}main .form-section .email-note{text-align:right;color:#588698;font-size:12px;margin:10px 0 0}main .social{margin:30px auto 0;width:200px;color:#A2C5CE}main .social ul,main .social li{list-style:none;margin:0;padding:0}main .social li{float:left}main .social a{display:block;margin:0 8px;width:50px;height:40px;text-indent:-9999px;background:url("../images/teasing/social.jpg");-moz-transition:all 0.2s;-o-transition:all 0.2s;-webkit-transition:all 0.2s;transition:all 0.2s;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=70);opacity:0.7}main .social a:hover,main .social a:focus{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);opacity:1}main .social .twitter{background-position:-50px 0}main .social .twitter:hover,main .social .twitter:focus{background-position:-50px -40px}main .social .google{background-position:-100px 0}main .social .google:hover,main .social .google:focus{background-position:-100px -40px}main .social .facebook{background-position:0 0}main .social .facebook:hover,main .social .facebook:focus{background-position:0 -40px} \ No newline at end of file diff --git a/assets/misc/js/newsletter.js b/assets/misc/js/newsletter.js deleted file mode 100644 index db3d68b2d8..0000000000 --- a/assets/misc/js/newsletter.js +++ /dev/null @@ -1,13 +0,0 @@ -$('a[href=#en-savoir-plus]').on('click', function(e){ - e.preventDefault(); - $('main section:not(#en-savoir-plus)').fadeOut(150, function(){ - $('#en-savoir-plus').fadeIn(200); - }); -}); - -$('a[href=#retour]').on('click', function(e){ - e.preventDefault(); - $('#en-savoir-plus').fadeOut(150, function(){ - $('main section:not(#en-savoir-plus)').fadeIn(200); - }); -}); \ No newline at end of file diff --git a/assets/scss/_all-supports.scss b/assets/scss/_all-supports.scss index 1410b5d4a3..0ba4d97080 100644 --- a/assets/scss/_all-supports.scss +++ b/assets/scss/_all-supports.scss @@ -138,9 +138,6 @@ background: url('../images/logo.png') no-repeat center center; background-size: 100% auto; - &.oldie { - width: 240px; - } &:hover, &:focus { opacity: .7; @@ -1048,8 +1045,6 @@ } .member-item { - margin-right: 7px; - .avatar { margin-top: -2px; height: 20px; @@ -1057,10 +1052,17 @@ border: 1px solid #CCC; } + .avatar + span { + padding-left: 3px; + } + &:hover .avatar { border-color: #999; } } + .member-item + .member-item { + margin-left: 7px; + } .authors .member-item { margin-right: 0; margin-left: 7px; @@ -1774,9 +1776,11 @@ } } + .content-wrapper.comment-author, .comment-author { background: #EEE; padding: 7px 15px; + margin-bottom: 20px; blockquote { margin: 10px 0; @@ -2007,16 +2011,26 @@ margin: 0; } + // touche kbd { - $kbd-color: #F1F1F1; + $kbd-color: #F8F6EA; background-color: $kbd-color; padding: 2px 6px; border-radius: 3px; - border-bottom: solid 2px desaturate(darken($kbd-color, 20%), 10%); + border: solid 1px desaturate(darken($kbd-color, 15%), 10%); + border-bottom-width: 3px; text-shadow: 0 1px 0 #FFF; color: darken($kbd-color, 70%); } + // Code inline + p code { + color: #A00; + background: #EEE; + border: 1px solid #CCC; + padding: 0 5px; + } + mathjax { font-size: 16px; font-size: 1.6rem; @@ -2099,6 +2113,7 @@ table { } tbody tr { + background: #FDFDFD; border-bottom: 1px solid #DDD; &:nth-child(2n+1) { @@ -2178,21 +2193,6 @@ table { width: 58px; } } - .badge { - display: block; - width: 60px; - height: 25px; - line-height: 25px; - text-align: center; - text-transform: uppercase; - color: #EEE; - text-shadow: rgba(0, 0, 0, .25) 0 0 3px; - background: #777; - - &.staff { - background: #48a200; - } - } .user-metadata { width: 60px; height: 25px; @@ -2368,10 +2368,6 @@ table { text-indent: 20px; } - .member-item { - margin: 0; - } - textarea { margin: 10px 0 10px -1px; background-color: transparent; @@ -2429,8 +2425,8 @@ table { } } } - .upvote, - .downvote { + span.upvote, + span.downvote { &:not(.has-vote) { border-bottom: none; opacity: .5; @@ -2592,6 +2588,51 @@ form.topic-message { margin-top: 50px; } +.badge { + display: block; + width: 60px; + height: 25px; + line-height: 25px; + text-align: center; + text-transform: uppercase; + color: #EEE; + text-shadow: rgba(0, 0, 0, .25) 0 0 3px; + background: #777; + + &.staff { + background: #48a200; + } +} + + + + + +/* ============== + ALL: Main / Profile + ============== */ + +.member-card { + .member-avatar { + float: left; + width: 60px; + } + .member-infos { + float: left; + list-style: none; + margin: 0; + padding-left: 15px; + } +} + +.member-social { + list-style: none; + margin: 15px 0 0; + padding: 0; +} + + + /* ============== diff --git a/assets/scss/_base.scss b/assets/scss/_base.scss index bc57bee44a..7d822b23b9 100644 --- a/assets/scss/_base.scss +++ b/assets/scss/_base.scss @@ -188,4 +188,10 @@ nav { .clearfix { *zoom: 1; +} + +hr.clearfix { + clear: both; + height: 0; + border: none; } \ No newline at end of file diff --git a/assets/scss/_wide.scss b/assets/scss/_wide.scss index 7fa0db22a9..677ba91b47 100644 --- a/assets/scss/_wide.scss +++ b/assets/scss/_wide.scss @@ -250,7 +250,7 @@ content: "Quitter la "; } - .reactions-title, + .comments-title, .pagination:not(.pagination-chapter), .topic-message { display: none; @@ -477,6 +477,10 @@ .full-content-wrapper { margin: 0 0 0 4%; + &.without-margin { + margin: 0; + } + .content-wrapper { max-width: none; margin: 0; diff --git a/doc/install-linux.md b/doc/install-linux.md index ae15819e29..4b2368f8ae 100644 --- a/doc/install-linux.md +++ b/doc/install-linux.md @@ -3,8 +3,6 @@ Pour installer une version locale de ZdS sur GNU/Linux, veuillez suivre les instructions suivantes. Si une commande ne passe pas, essayez de savoir pourquoi avant de continuer. -Les commandes suivantes sont génériques et indépendantes de la distribution que vous utilisez. - **NB** : il est impératif que la locale fr_FR.UTF-8 soit installée sur votre distribution. Assurez vous que les dépendances suivantes soient résolues : @@ -15,11 +13,35 @@ Assurez vous que les dépendances suivantes soient résolues : - pip : `easy_install pip` - libxml2-dev : `apt-get install libxml2-dev` - python-lxml : `apt-get install python-lxml` -- libxlst-dev (peut être appelée libxlst1-dev sur certains OS comme ubuntu +- libxslt-dev (peut être appelée libxslt1-dev sur certaines distributions comme Ubuntu) - libz-dev (peut être libz1g-dev sur système 64bits) -- python-sqlparse +- python-sqlparse : `apt-get install python-sqlparse` - libjpeg8 libjpeg8-dev libfreetype6 libfreetype6-dev : `apt-get install libjpeg8 libjpeg8-dev libfreetype6 libfreetype6-dev` +Ou, en une ligne, + +```console +apt-get install git python-dev python-setuptools libxml2-dev python-lxml libxslt-dev libz-dev python-sqlparse libjpeg8 libjpeg8-dev libfreetype6 libfreetype6-dev +easy_install pip +``` + +## Instalation et configuration de `virtualenv` + +(cette étape n'est pas obligatoire, mais fortement conseillée) + +```console +pip install virtualenv +virtualenv zdsenv --python=python2 +``` + +**À chaque fois** que vous souhaitez travailler dans votre environement, activez le via la commande suivante : + +```console +source zdsenv/bin/activate +``` + +Une documentation plus complète de cet outil [est disponible ici](http://docs.python-guide.org/en/latest/dev/virtualenvs/). + ## Front ou Back ? Si vous ne comptez qu'au back-end du site, téléchargez le zip des ressources ici : http://zestedesavoir.com/static/pack.zip @@ -27,9 +49,10 @@ Il faudra l'extraire dans le dossier `dist/` à la racine de votre projet. Si vous comptez contribuer au front-end, rendez-vous sur [la documentation dédiée](gulp.md). + ## Lancer ZdS -Une fois dans votre environnement python (`source ../bin/activate` si vous utilisez virtualenv, très fortement conseillé), lancez l'installation complète : +Une fois dans votre environnement python (`source zdsenv/bin/activate` si `virtualenv`), lancez l'installation complète : ```console pip install --upgrade -r requirements.txt diff --git a/doc/install-solr.md b/doc/install-solr.md new file mode 100644 index 0000000000..f93d94cc2b --- /dev/null +++ b/doc/install-solr.md @@ -0,0 +1,56 @@ +Zeste de Savoir utilise Solr, un moteur de recherche très performant développé par la fondation Apache. +Installer Solr est **nécessaire** pour faire fonctionner la recherche. + +Il existe beaucoup de manières d'installer Solr. L'une des plus simples est d'utiliser les exemples embarqués avec le paquet de release. + +# Prérequis sur linux + +Avant toute chose soyez-sûr d'avoir Java (disponible dans les dépôts de votre distribution, ou [sur le site officiel](http://www.java.com/fr/download/manual.jsp#lin)). + +Téléchargez [l'archive Solr](http://apache.crihan.fr/dist/lucene/solr/4.9.0/solr-4.9.0.zip) ou entrez la commande +`wget http://apache.crihan.fr/dist/lucene/solr/4.9.0/solr-4.9.0.zip`. + +Puis décompressez l'archive avec `unzip solr-4.9.0.zip`. + +# Prérequis sur windows + +Avant toute chose soyez-sûr d'avoir [Java](http://www.java.com/fr/download/win8.jsp). + +Ajoutez le dossier contenant java à votre PATH : dans "Ordinateur", clic droit puis "Proprétés", ouvrez les "propriétés avancées" puis cliquez sur "Variables d'environnement". + +Téléchargez [l'archive Solr](http://apache.crihan.fr/dist/lucene/solr/4.9.0/solr-4.9.0.zip). Décompressez-la. + +# Procédure commune + +Ouvrez le terminal ou powershell. + +A la racine de votre dépot ZdS, lancez la commande : + +``` +python manage.py build_solr_schema > %solr_home%/example/solr/collection1/conf/schema.xml +``` + +où `%solr_home%` est le dossier dans lequel vous avez installé Solr. + +Placez-vous dans ce dossier et exécutez : + +```bash +cd example/ +java -jar start.jar +``` + +Vérifiez que solr est fonctionnel en entrant dans votre navigateur l'url http://localhost:8983/solr/ + +Maintenant que Solr est prêt, allez à la racine de votre dépôt zeste de savoir, une fois votre virtualenv activé, indexez les les données du site : + +```bash +python manage.py rebuild_index +``` + +Une fois terminé, vous avez une recherche fonctionnelle. + +Pour mettre à jour un index existant, la commande est : + +```bash +python manage.py update_index +``` \ No newline at end of file diff --git a/errors/500.html b/errors/500.html new file mode 100644 index 0000000000..7587abbcad --- /dev/null +++ b/errors/500.html @@ -0,0 +1,30 @@ + + +
+ +
+ On dirait qu'il y a un petit problème...
+ ... retente ta chance en rechargeant la page !
+
+ Nous procédons à quelques azestements...
+ ... revenez dans quelques instants !
+
- Le site est actuellement en cours de maintenance et devrait repasser en ligne dans quelques minutes. -
-- Cet article est en attente de validation -
- {% if validation.comment_authors %} -+ Cet article est en attente d'un validateur +
+ {% else %} ++ L'article est en cours de validation par + {% include "misc/member_item.part.html" with member=validation.validator %} +
+ {% endif %} + {% if validation.comment_authors %} + + {% endif %} + {% else %} + {% if validation.validator == None %} ++ + Une autre version de cet article + est en attente d'un validateur +
+ {% else %} ++ + Une autre version de cet article + est en cours de validation par + {% include "misc/member_item.part.html" with member=validation.validator %} +
+ {% endif %} + {% endif %} {% endif %} {% endif %} {% endblock %} diff --git a/templates/article/validation/history.html b/templates/article/validation/history.html index 591b823d7d..32bbfad30b 100644 --- a/templates/article/validation/history.html +++ b/templates/article/validation/history.html @@ -65,6 +65,17 @@+ {{ validation.comment_authors }} +
+Titre | -Catégorie(s) | -Auteur(s) | -Proposé | +Auteur(s) | +Proposé | Statut |
- {% for tag in validation.article.subcategory.all %}
-
- {% endfor %}
+ |
{% for author in validation.article.authors.all %}
@@ -87,7 +91,7 @@ {% endfor %} |
- {{ validation.date_proposition|format_date|capfirst }} + {{ validation.date_proposition|format_date:True|capfirst }} |
{% captureas reservation_url %}
diff --git a/templates/base.html b/templates/base.html
index d201ef6668..5ae50ae9e7 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -55,7 +55,7 @@
{# OpenGraph #}
-
+
@@ -67,7 +67,7 @@
{# Twitter cards #}
-
+
@@ -412,13 +412,13 @@
{% if perms.tutorial.change_tutorial %}
{% block headline %}{% endblock %}@@ -571,6 +571,6 @@{{ headlin messageStyle: "none", }); - + |
---|
- Le message suivant a été laissé à destination des validateurs : -
- - -