From f3d5a0cc9f36b1965962cba3341b479e39aacd5f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=92=D0=BB=D0=B0=D0=B4=D0=B8=D1=81=D0=BB=D0=B0=D0=B2=20?=
 =?UTF-8?q?=D0=AF=D0=BA=D0=BE=D0=B2=D0=BB=D0=B5=D0=B2?=
 <vlad309523@gmail.com>
Date: Thu, 27 Oct 2016 21:22:29 +0300
Subject: [PATCH] #158 Replace gulp

---
 .gitignore                                    |   3 -
 Makefile                                      |   2 +-
 gulpfile.js                                   | 378 ++++++++----------
 .../font-awesome/css/font-awesome.min.css     |   0
 .../font-awesome/fonts/FontAwesome.otf        | Bin
 .../fonts/fontawesome-webfont.eot             | Bin
 .../fonts/fontawesome-webfont.svg             |   0
 .../fonts/fontawesome-webfont.ttf             | Bin
 .../fonts/fontawesome-webfont.woff            | Bin
 .../fonts/fontawesome-webfont.woff2           | Bin
 {~dev_rating/static => media}/img/addList.png | Bin
 {~dev_rating/static => media}/img/addUser.png | Bin
 .../static => media}/img/ajax_loader.gif      | Bin
 .../static => media}/img/arrow_left.svg       |   0
 .../img/arrow_left_double.svg                 |   0
 .../static => media}/img/arrow_right.svg      |   0
 .../img/arrow_right_double.svg                |   0
 {~dev_rating/static => media}/img/close.png   | Bin
 {~dev_rating/static => media}/img/codes.png   | Bin
 {~dev_rating/static => media}/img/error.png   | Bin
 .../static => media}/img/icons/add.png        | Bin
 .../static => media}/img/icons/add_h.png      | Bin
 .../static => media}/img/icons/del_dis.png    | Bin
 .../static => media}/img/icons/delete.png     | Bin
 .../static => media}/img/icons/delete_h.png   | Bin
 .../static => media}/img/icons/down.png       | Bin
 .../static => media}/img/icons/down_h.png     | Bin
 .../static => media}/img/icons/feedback.png   | Bin
 .../static => media}/img/icons/ok.png         | Bin
 .../img/icons/select2-spinner.gif             | Bin
 .../static => media}/img/icons/select2.png    | Bin
 .../static => media}/img/icons/select2x2.png  | Bin
 .../static => media}/img/icons/tick.png       | Bin
 .../img/icons/triangle_up.png                 | Bin
 .../static => media}/img/icons/up.png         | Bin
 .../static => media}/img/icons/up_h.png       | Bin
 .../static => media}/img/imgUpload.png        | Bin
 {~dev_rating/static => media}/img/load.gif    | Bin
 {~dev_rating/static => media}/img/loading.GIF | Bin
 .../static => media}/img/messageIcon.png      | Bin
 .../static => media}/img/nextStep.png         | Bin
 .../static => media}/img/uploadList.png       | Bin
 {~dev_rating/static => media}/img/user.png    | Bin
 .../static => media}/other/teachers.txt       |   0
 package.json                                  |  29 +-
 45 files changed, 172 insertions(+), 240 deletions(-)
 rename {~dev_rating/static => media}/font-awesome/css/font-awesome.min.css (100%)
 rename {~dev_rating/static => media}/font-awesome/fonts/FontAwesome.otf (100%)
 rename {~dev_rating/static => media}/font-awesome/fonts/fontawesome-webfont.eot (100%)
 rename {~dev_rating/static => media}/font-awesome/fonts/fontawesome-webfont.svg (100%)
 rename {~dev_rating/static => media}/font-awesome/fonts/fontawesome-webfont.ttf (100%)
 rename {~dev_rating/static => media}/font-awesome/fonts/fontawesome-webfont.woff (100%)
 rename {~dev_rating/static => media}/font-awesome/fonts/fontawesome-webfont.woff2 (100%)
 rename {~dev_rating/static => media}/img/addList.png (100%)
 rename {~dev_rating/static => media}/img/addUser.png (100%)
 rename {~dev_rating/static => media}/img/ajax_loader.gif (100%)
 rename {~dev_rating/static => media}/img/arrow_left.svg (100%)
 rename {~dev_rating/static => media}/img/arrow_left_double.svg (100%)
 rename {~dev_rating/static => media}/img/arrow_right.svg (100%)
 rename {~dev_rating/static => media}/img/arrow_right_double.svg (100%)
 rename {~dev_rating/static => media}/img/close.png (100%)
 rename {~dev_rating/static => media}/img/codes.png (100%)
 rename {~dev_rating/static => media}/img/error.png (100%)
 rename {~dev_rating/static => media}/img/icons/add.png (100%)
 rename {~dev_rating/static => media}/img/icons/add_h.png (100%)
 rename {~dev_rating/static => media}/img/icons/del_dis.png (100%)
 rename {~dev_rating/static => media}/img/icons/delete.png (100%)
 rename {~dev_rating/static => media}/img/icons/delete_h.png (100%)
 rename {~dev_rating/static => media}/img/icons/down.png (100%)
 rename {~dev_rating/static => media}/img/icons/down_h.png (100%)
 rename {~dev_rating/static => media}/img/icons/feedback.png (100%)
 rename {~dev_rating/static => media}/img/icons/ok.png (100%)
 rename {~dev_rating/static => media}/img/icons/select2-spinner.gif (100%)
 rename {~dev_rating/static => media}/img/icons/select2.png (100%)
 rename {~dev_rating/static => media}/img/icons/select2x2.png (100%)
 rename {~dev_rating/static => media}/img/icons/tick.png (100%)
 rename {~dev_rating/static => media}/img/icons/triangle_up.png (100%)
 rename {~dev_rating/static => media}/img/icons/up.png (100%)
 rename {~dev_rating/static => media}/img/icons/up_h.png (100%)
 rename {~dev_rating/static => media}/img/imgUpload.png (100%)
 rename {~dev_rating/static => media}/img/load.gif (100%)
 rename {~dev_rating/static => media}/img/loading.GIF (100%)
 rename {~dev_rating/static => media}/img/messageIcon.png (100%)
 rename {~dev_rating/static => media}/img/nextStep.png (100%)
 rename {~dev_rating/static => media}/img/uploadList.png (100%)
 rename {~dev_rating/static => media}/img/user.png (100%)
 rename {~dev_rating/static => media}/other/teachers.txt (100%)

diff --git a/.gitignore b/.gitignore
index 9d6773812..615bc5797 100755
--- a/.gitignore
+++ b/.gitignore
@@ -7,9 +7,6 @@ db/disciplines activity.sql
 ~dev_rating/application/logs/*/
 ~dev_rating/application/config/
 ~dev_rating/static/*
-!~dev_rating/static/img/
-!~dev_rating/static/other/
-!~dev_rating/static/font-awesome/
 node_modules/
 /config
 
diff --git a/Makefile b/Makefile
index 0f5de56e3..c9a56099a 100644
--- a/Makefile
+++ b/Makefile
@@ -19,7 +19,7 @@ fw_deploy: fw_migrate Tasker_deploy
 
 # copy server files
 copy_files: Tasker_deploy
-	$(GULP) --release --force
+	$(GULP) release
 	rsync -ru --info=PROGRESS2  --exclude="application/config" --exclude="news.md" --exclude="updates.md"  \
 \~dev_rating/ $(DST_PATH)
 
diff --git a/gulpfile.js b/gulpfile.js
index b2ceb39dc..d2a82451d 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -1,219 +1,181 @@
 'use strict';
-var minimist = require('minimist');
-var fs = require('fs');
-var lazypipe = require('lazypipe');
-var babel = require('gulp-babel');
-var apidoc = require('gulp-apidoc');
-
-// command line arguments
-var varg = minimist(process.argv.slice(2), {
-    string: 'env',
-    default: {env: process.env.NODE_ENV || 'debug'}
-});
 
 
-var options = {
-    opt: varg.env !== 'debug' || varg.release, // optimize
-    inc: !varg.force, // incremental build
-    beauty: varg.beauty || varg.rainbow,
-    dst: varg.dst
-};
-
+//=========================
+//  Модули
+//=========================
 
-// gulp
-// common
+// Основные модули
 var gulp = require('gulp');
-var changed = require('gulp-changed');
-var through = require('through');
+var fs = require('fs');
+var del = require('del');
+var console = require('console');
+var lazypipe = require('lazypipe');
 var empty = function () {
-    return through(function (data) {
+    return require('through')(function (data) {
         this.emit('data', data);
     }, function () {
         this.emit('end');
     });
 };
 
-// var plumber = require('gulp-plumber');
-// var gulpif = require('gulp-if');
-// var rename = require('gulp-rename'); //переименовывание
-// var watch = require('gulp-watch');
-// var filter = require('gulp-filter');
-
-
-// css/less
-var less = require('gulp-less');
-var prefix = require('gulp-autoprefixer'); //префиксы
-var minifyCss = require('gulp-minify-css'); //минификация
-// var concatCss = require('gulp-concat-css'); //конкатенация
-
-// js
-var uglify = require('gulp-uglify');
-var prettify = options.beauty ? require('gulp-jsbeautifier') : empty;
-
-
-var paths = new (function () {
-    var self = this;
-    self.root = '.';
-
-    var src = '.';
-    var dst = options.dst || self.root + '/~dev_rating';
-
-    var app = self.root + '/~dev_rating';
-    var media = src + '/media';
-    var stat = dst + '/static';
 
-    self.src = {
-        css: media + '/css/**/*.css',
-        less: media + '/less/**/*.less',
-        js: media + '/js/**/*.js',
-        config: src + '/deploy/phpConfig/**/*',
-        css_components: media + '/components/**/*.css',
-        js_components: media + '/components/**/*.js',
-        twig_components: media + '/components/**/*.twig'
-    };
-
-
-    self.dst = {
-        css: stat + '/css/',
-        less: stat + '/css/',
-        js: stat + '/js/',
-        config: dst + '/application/config/',
-        css_components: stat + '/components/',
-        js_components: stat + '/components/',
-        twig_components: stat + '/components/'
-    };
-})();
-
-
-// =============================
-//          pipes
-// =============================
-
-var pipes = (function () {
-    var cssPipe = lazypipe()
-        .pipe(prefix, 'last 2 versions', '> 1%', 'ie9')
-        //.pipe(rename, {suffix: '.min'})
-        .pipe(options.opt ? minifyCss : prettify);
-
-    var lessPipe = lazypipe()
-        .pipe(less)
-        .pipe(cssPipe);
-
-    var jsPipe = lazypipe()
-        .pipe(babel, { presets: ['es2015-without-strict'], ignore: /js\/lib/ })
-        .pipe(options.opt ? uglify : prettify);
-
-    var twigPipe = empty;
-
-    return {
-        css: cssPipe,
-        less: lessPipe,
-        js: jsPipe,
-        css_components: cssPipe,
-        js_components: jsPipe,
-        twig_components: twigPipe
+//=========================
+//  Настройки
+//=========================
+
+var DIR_ROOT = '.';
+var DIR_SRC = DIR_ROOT + '/media';
+var DIR_DST = DIR_ROOT + '/~dev_rating/static';
+
+// Настройки для типов файлов
+var types = {};
+types.css = {
+    path: {
+        src: DIR_SRC + '/css/**/*.css',
+        dst: DIR_DST + '/css/'
+    },
+    pipe: lazypipe()
+        .pipe(require('gulp-autoprefixer'), 'last 2 versions', '> 1%', 'ie9'),
+    minify: require('gulp-cssnano')
+};
+types.less = {
+    path: {
+        src: DIR_SRC + '/less/**/*.less',
+        dst: DIR_DST + '/css/'
+    },
+    pipe: lazypipe()
+        .pipe(require('gulp-less'))
+        .pipe(types.css.pipe),
+    minify: types.css.minify
+};
+types.js = {
+    path: {
+        src: DIR_SRC + '/js/**/*.js',
+        dst: DIR_DST + '/js/'
+    },
+    pipe: lazypipe()
+        .pipe(require('gulp-babel'), { presets: [ 'es2015-without-strict' ], ignore: /js\/lib/ }),
+    minify: require('gulp-uglify')
+};
+types.css_components = {
+    path: {
+        src: DIR_SRC + '/components/**/*.css',
+        dst: DIR_DST + '/components/'
+    },
+    pipe: types.css.pipe,
+    minify: types.css.minify
+};
+types.js_components = {
+    path: {
+        src: DIR_SRC + '/components/**/*.js',
+        dst: DIR_DST + '/components/'
+    },
+    pipe: types.js.pipe,
+    minify: types.js.minify
+};
+types.twig_components = {
+    path: {
+        src: DIR_SRC + '/components/**/*.twig',
+        dst: DIR_DST + '/components/'
     }
-})();
-
-var ext = {
-    css: '.css',
-    less: '.less',
-    js: '.js',
-    'css_components': '.css',
-    'js_components': '.js',
-    'twig_components': '.twig'
 };
-
-
-// =============================
-//          helpers
-// =============================
-
-var constructHandler = function (msg) {
-    return function () {
-        process.stdout.write('>>> ' + msg + '\n');
-    };
+types.config = {
+    path: {
+        src: DIR_ROOT + '/deploy/phpConfig/**/*',
+        dst: DIR_ROOT + '/~dev_rating/application/config/'
+    }
 };
-
-
-var getConfig = function (type, src, dst, pipe) {
-    var _src = src || paths.src[type];
-    var _dst = dst || paths.dst[type];
-    var _pipe = pipe || pipes[type];
-
-    return {
-        src: _src,
-        dst: _dst,
-        pipe: _pipe,
-        changed: options.inc,
-        ext: ext[type],
-        error: constructHandler(type + ' error')
-    };
+types.etc = {
+    path: {
+        src: (function () {
+            var list = [ DIR_SRC + '/**/*' ];
+            Object.keys(types).forEach(function (type) {
+                list.push('!' + types[type].path.src);
+            });
+            return list;
+        })(),
+        dst: DIR_DST
+    }
 };
 
-var constructTask = function (config) {
-    var dump = function (e) {
-        throw e;
-    };
-    var errorHandler = config.error || dump;
-
-    var midPipe = config.pipe || empty;
 
-    var ext = config.ext ? {extension: config.ext} : {};
-    var chgPipe = config.changed ?
-        lazypipe().pipe(changed, config.dst, ext) :
-        empty;
+//=========================
+//  Опции командной строки
+//=========================
 
-    return gulp.src(config.src)
-        .pipe(chgPipe())
-        .pipe(midPipe())
-        .on('error', errorHandler)
-        .pipe(gulp.dest(config.dst));
+var opts = {
+    minify: process.argv.indexOf('release') !== -1
 };
 
 
-var constructWatch = function (config) {
-    gulp.watch(config.src, function (event) {
-        constructTask(config);
-    });
-};
+//=========================
+//  Обработчик ошибок
+//=========================
 
+var errorHandler = function (error) {
+    console.error(error.message);
+};
 
-// =============================
-//          rules
-// =============================
 
+//=========================
+//  Работа с потоками
+//=========================
 
-gulp.task('less:compile', function () {
-    return constructTask(getConfig('less'));
+// Добавление задач для каждого из типа файлов
+Object.keys(types).forEach(function (type) {
+    gulp.task(type, function () {
+        executePipe(type);
+    });
 });
 
-gulp.task('css:copy', function () {
-    return constructTask(getConfig('css'));
-});
+// Выполнить поток
+var executePipe = function (type) {
+    gulp.src(types[type].path.src)
+        .pipe(types[type].pipe ? types[type].pipe() : empty()).on('error', errorHandler)
+        .pipe(opts.minify && types[type].minify ? types[type].minify() : empty())
+        .pipe(gulp.dest(types[type].path.dst));
+};
 
-gulp.task('js:copy', function () {
-    return constructTask(getConfig('js'));
-});
 
-gulp.task('config:copy', function () {
-    return constructTask({
-        src: paths.src.config,
-        dst: paths.dst.config
+//=========================
+//  Задачи
+//=========================
+
+// Задачи, выполняемые по-умолчанию
+var defTasks = [
+    'css',
+    'less',
+    'js',
+    'css_components',
+    'js_components',
+    'twig_components',
+    'etc'
+];
+
+// РЎР±РѕСЂРєР°
+// По-умолчанию
+gulp.task('default', defTasks);
+
+// Сборка релиза
+// Заглушка, чтобы не выдавалась ошибка, детект флага находится выше
+gulp.task('release', defTasks);
+
+// Отслеживание изменений
+//TODO: исправить отслеживание новых файлов
+gulp.task('watch', function () {
+    defTasks.forEach(function (type) {
+        gulp.watch(types[type].path.src, [ type ]);
     });
 });
 
-gulp.task('components:copy', function () {
-    constructTask(getConfig('css_components'));
-    constructTask(getConfig('twig_components'));
-    return constructTask(getConfig('js_components'));
+// Очистка папки сборки
+gulp.task('clean', function () {
+    del(DIR_DST);
 });
 
-
-// todo:
-gulp.task('folders:create', function () {
-    var app = paths.root + '/~dev_rating/application';
-
+gulp.task('folders', function () {
+    var app = DIR_ROOT + '/~dev_rating/application';
 
     var dirs = [
         app + '/logs/',
@@ -224,54 +186,30 @@ gulp.task('folders:create', function () {
     dirs.forEach(function (dir) {
         try {
             fs.mkdirSync(dir);
-        } catch (err) {
-            if (err.code !== 'EEXIST') {
-                throw err;
+        } catch (error) {
+            if (error.code !== 'EEXIST') {
+                errorHandler(error);
             }
         }
     });
 });
 
+// Копирование конфигурации
+// Визуальная заглушка, задача генерируется в конфигурации
+// gulp.task('config', ['config']);
 
-// =============================
-//          watch
-// =============================
-
-gulp.task('watch', function (event) {
-    constructWatch(getConfig('less', event.path));
-    constructWatch(getConfig('css', event.path));
-    constructWatch(getConfig('js', event.path));
-    constructWatch(getConfig('css_components', event.path));
-    constructWatch(getConfig('js_components', event.path));
-    constructWatch(getConfig('twig_components', event.path));
-});
-
-
-// =============================
-//          common tasks
-// =============================
-
-gulp.task('config', [
-    'config:copy'
-]);
-
-gulp.task('default', [
-    'less:compile',
-    'css:copy',
-    'js:copy',
-    'components:copy'
-]);
-
+// Установка и сборка
 gulp.task('install', [
-    'folders:create',
+    'folders',
     'config',
     'default'
 ]);
 
-gulp.task('apidoc', function(done){
-    apidoc({
-        src: "~dev_rating/application/classes",
-        dest: "apidoc/",
-        config: "./"
-    },done);
-});
+// Генерациа документации
+gulp.task('apidoc', function (done) {
+    require('gulp-apidoc')({
+        src: DIR_ROOT + '/~dev_rating/application/classes',
+        dest: DIR_ROOT + '/apidoc/',
+        config: DIR_ROOT
+    }, done);
+});
\ No newline at end of file
diff --git a/~dev_rating/static/font-awesome/css/font-awesome.min.css b/media/font-awesome/css/font-awesome.min.css
similarity index 100%
rename from ~dev_rating/static/font-awesome/css/font-awesome.min.css
rename to media/font-awesome/css/font-awesome.min.css
diff --git a/~dev_rating/static/font-awesome/fonts/FontAwesome.otf b/media/font-awesome/fonts/FontAwesome.otf
similarity index 100%
rename from ~dev_rating/static/font-awesome/fonts/FontAwesome.otf
rename to media/font-awesome/fonts/FontAwesome.otf
diff --git a/~dev_rating/static/font-awesome/fonts/fontawesome-webfont.eot b/media/font-awesome/fonts/fontawesome-webfont.eot
similarity index 100%
rename from ~dev_rating/static/font-awesome/fonts/fontawesome-webfont.eot
rename to media/font-awesome/fonts/fontawesome-webfont.eot
diff --git a/~dev_rating/static/font-awesome/fonts/fontawesome-webfont.svg b/media/font-awesome/fonts/fontawesome-webfont.svg
similarity index 100%
rename from ~dev_rating/static/font-awesome/fonts/fontawesome-webfont.svg
rename to media/font-awesome/fonts/fontawesome-webfont.svg
diff --git a/~dev_rating/static/font-awesome/fonts/fontawesome-webfont.ttf b/media/font-awesome/fonts/fontawesome-webfont.ttf
similarity index 100%
rename from ~dev_rating/static/font-awesome/fonts/fontawesome-webfont.ttf
rename to media/font-awesome/fonts/fontawesome-webfont.ttf
diff --git a/~dev_rating/static/font-awesome/fonts/fontawesome-webfont.woff b/media/font-awesome/fonts/fontawesome-webfont.woff
similarity index 100%
rename from ~dev_rating/static/font-awesome/fonts/fontawesome-webfont.woff
rename to media/font-awesome/fonts/fontawesome-webfont.woff
diff --git a/~dev_rating/static/font-awesome/fonts/fontawesome-webfont.woff2 b/media/font-awesome/fonts/fontawesome-webfont.woff2
similarity index 100%
rename from ~dev_rating/static/font-awesome/fonts/fontawesome-webfont.woff2
rename to media/font-awesome/fonts/fontawesome-webfont.woff2
diff --git a/~dev_rating/static/img/addList.png b/media/img/addList.png
similarity index 100%
rename from ~dev_rating/static/img/addList.png
rename to media/img/addList.png
diff --git a/~dev_rating/static/img/addUser.png b/media/img/addUser.png
similarity index 100%
rename from ~dev_rating/static/img/addUser.png
rename to media/img/addUser.png
diff --git a/~dev_rating/static/img/ajax_loader.gif b/media/img/ajax_loader.gif
similarity index 100%
rename from ~dev_rating/static/img/ajax_loader.gif
rename to media/img/ajax_loader.gif
diff --git a/~dev_rating/static/img/arrow_left.svg b/media/img/arrow_left.svg
similarity index 100%
rename from ~dev_rating/static/img/arrow_left.svg
rename to media/img/arrow_left.svg
diff --git a/~dev_rating/static/img/arrow_left_double.svg b/media/img/arrow_left_double.svg
similarity index 100%
rename from ~dev_rating/static/img/arrow_left_double.svg
rename to media/img/arrow_left_double.svg
diff --git a/~dev_rating/static/img/arrow_right.svg b/media/img/arrow_right.svg
similarity index 100%
rename from ~dev_rating/static/img/arrow_right.svg
rename to media/img/arrow_right.svg
diff --git a/~dev_rating/static/img/arrow_right_double.svg b/media/img/arrow_right_double.svg
similarity index 100%
rename from ~dev_rating/static/img/arrow_right_double.svg
rename to media/img/arrow_right_double.svg
diff --git a/~dev_rating/static/img/close.png b/media/img/close.png
similarity index 100%
rename from ~dev_rating/static/img/close.png
rename to media/img/close.png
diff --git a/~dev_rating/static/img/codes.png b/media/img/codes.png
similarity index 100%
rename from ~dev_rating/static/img/codes.png
rename to media/img/codes.png
diff --git a/~dev_rating/static/img/error.png b/media/img/error.png
similarity index 100%
rename from ~dev_rating/static/img/error.png
rename to media/img/error.png
diff --git a/~dev_rating/static/img/icons/add.png b/media/img/icons/add.png
similarity index 100%
rename from ~dev_rating/static/img/icons/add.png
rename to media/img/icons/add.png
diff --git a/~dev_rating/static/img/icons/add_h.png b/media/img/icons/add_h.png
similarity index 100%
rename from ~dev_rating/static/img/icons/add_h.png
rename to media/img/icons/add_h.png
diff --git a/~dev_rating/static/img/icons/del_dis.png b/media/img/icons/del_dis.png
similarity index 100%
rename from ~dev_rating/static/img/icons/del_dis.png
rename to media/img/icons/del_dis.png
diff --git a/~dev_rating/static/img/icons/delete.png b/media/img/icons/delete.png
similarity index 100%
rename from ~dev_rating/static/img/icons/delete.png
rename to media/img/icons/delete.png
diff --git a/~dev_rating/static/img/icons/delete_h.png b/media/img/icons/delete_h.png
similarity index 100%
rename from ~dev_rating/static/img/icons/delete_h.png
rename to media/img/icons/delete_h.png
diff --git a/~dev_rating/static/img/icons/down.png b/media/img/icons/down.png
similarity index 100%
rename from ~dev_rating/static/img/icons/down.png
rename to media/img/icons/down.png
diff --git a/~dev_rating/static/img/icons/down_h.png b/media/img/icons/down_h.png
similarity index 100%
rename from ~dev_rating/static/img/icons/down_h.png
rename to media/img/icons/down_h.png
diff --git a/~dev_rating/static/img/icons/feedback.png b/media/img/icons/feedback.png
similarity index 100%
rename from ~dev_rating/static/img/icons/feedback.png
rename to media/img/icons/feedback.png
diff --git a/~dev_rating/static/img/icons/ok.png b/media/img/icons/ok.png
similarity index 100%
rename from ~dev_rating/static/img/icons/ok.png
rename to media/img/icons/ok.png
diff --git a/~dev_rating/static/img/icons/select2-spinner.gif b/media/img/icons/select2-spinner.gif
similarity index 100%
rename from ~dev_rating/static/img/icons/select2-spinner.gif
rename to media/img/icons/select2-spinner.gif
diff --git a/~dev_rating/static/img/icons/select2.png b/media/img/icons/select2.png
similarity index 100%
rename from ~dev_rating/static/img/icons/select2.png
rename to media/img/icons/select2.png
diff --git a/~dev_rating/static/img/icons/select2x2.png b/media/img/icons/select2x2.png
similarity index 100%
rename from ~dev_rating/static/img/icons/select2x2.png
rename to media/img/icons/select2x2.png
diff --git a/~dev_rating/static/img/icons/tick.png b/media/img/icons/tick.png
similarity index 100%
rename from ~dev_rating/static/img/icons/tick.png
rename to media/img/icons/tick.png
diff --git a/~dev_rating/static/img/icons/triangle_up.png b/media/img/icons/triangle_up.png
similarity index 100%
rename from ~dev_rating/static/img/icons/triangle_up.png
rename to media/img/icons/triangle_up.png
diff --git a/~dev_rating/static/img/icons/up.png b/media/img/icons/up.png
similarity index 100%
rename from ~dev_rating/static/img/icons/up.png
rename to media/img/icons/up.png
diff --git a/~dev_rating/static/img/icons/up_h.png b/media/img/icons/up_h.png
similarity index 100%
rename from ~dev_rating/static/img/icons/up_h.png
rename to media/img/icons/up_h.png
diff --git a/~dev_rating/static/img/imgUpload.png b/media/img/imgUpload.png
similarity index 100%
rename from ~dev_rating/static/img/imgUpload.png
rename to media/img/imgUpload.png
diff --git a/~dev_rating/static/img/load.gif b/media/img/load.gif
similarity index 100%
rename from ~dev_rating/static/img/load.gif
rename to media/img/load.gif
diff --git a/~dev_rating/static/img/loading.GIF b/media/img/loading.GIF
similarity index 100%
rename from ~dev_rating/static/img/loading.GIF
rename to media/img/loading.GIF
diff --git a/~dev_rating/static/img/messageIcon.png b/media/img/messageIcon.png
similarity index 100%
rename from ~dev_rating/static/img/messageIcon.png
rename to media/img/messageIcon.png
diff --git a/~dev_rating/static/img/nextStep.png b/media/img/nextStep.png
similarity index 100%
rename from ~dev_rating/static/img/nextStep.png
rename to media/img/nextStep.png
diff --git a/~dev_rating/static/img/uploadList.png b/media/img/uploadList.png
similarity index 100%
rename from ~dev_rating/static/img/uploadList.png
rename to media/img/uploadList.png
diff --git a/~dev_rating/static/img/user.png b/media/img/user.png
similarity index 100%
rename from ~dev_rating/static/img/user.png
rename to media/img/user.png
diff --git a/~dev_rating/static/other/teachers.txt b/media/other/teachers.txt
similarity index 100%
rename from ~dev_rating/static/other/teachers.txt
rename to media/other/teachers.txt
diff --git a/package.json b/package.json
index 074fb2b4a..7947c9279 100644
--- a/package.json
+++ b/package.json
@@ -1,21 +1,18 @@
 {
   "name": "GradeRatingSystem",
-  "version": "1.2.0",
+  "version": "2.0.1",
   "devDependencies": {
-    "babel-preset-es2015": "^6.9.0", 
-    "babel-preset-es2015-without-strict": "0.0.2",
-    "gulp": "^3.9.1",
-    "gulp-autoprefixer": "^3.1.0",
-    "gulp-babel": "^6.1.2",
-    "gulp-changed": "^1.3.0",
-    "gulp-filter": "^4.0.0",
-    "gulp-jsbeautifier": "^2.0.3",
-    "gulp-less": "^3.1.0",
-    "gulp-minify-css": "^1.2.4",
-    "gulp-uglify": "^1.5.3",
-    "gulp-apidoc": "^0.2.4",
-    "lazypipe": "^1.0.1",
-    "minimist": "^1.2.0",
-    "through": "^2.3.8"
+    "babel-preset-es2015": "6", 
+    "babel-preset-es2015-without-strict": "0",
+    "del": "2",
+    "gulp": "3",
+    "gulp-apidoc": "0",
+    "gulp-autoprefixer": "3",
+    "gulp-babel": "6",
+    "gulp-cssnano": "2",
+    "gulp-less": "3",
+    "gulp-uglify": "2",
+    "lazypipe": "1",
+    "through": "2"
   }
 }
-- 
GitLab