diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 17150b56..fd67162b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -53,6 +53,38 @@ deploy_736: only: - master +deploy_227: + stage: deploy + script: + - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' + - eval $(ssh-agent -s) + - ssh-add <(echo "$SSH_PRIVATE_KEY") + - mkdir -p ~/.ssh + - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' + + - ~/.composer/vendor/bin/envoy run deploy_227 --commit="$CI_COMMIT_SHA" + environment: + name: CCMRC227 + url: http://227.exvps.ca + only: + - master + +deploy_117: + stage: deploy + script: + - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' + - eval $(ssh-agent -s) + - ssh-add <(echo "$SSH_PRIVATE_KEY") + - mkdir -p ~/.ssh + - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' + + - ~/.composer/vendor/bin/envoy run deploy_117 --commit="$CI_COMMIT_SHA" + environment: + name: CCMRC117 + url: http://117.exvps.ca + only: + - master + deploy_dev: stage: deploy script: diff --git a/Envoy.blade.php b/Envoy.blade.php index 11f02981..68e1a5ec 100644 --- a/Envoy.blade.php +++ b/Envoy.blade.php @@ -15,6 +15,14 @@ $releases_dir_dev = '/var/www/c-cms/dev/releases'; $app_dir_dev = '/var/www/c-cms/dev'; $new_release_dir_dev = $releases_dir_dev .'/'. $release; + + $releases_dir_227 = '/var/www/c-cms/ccmrc227/releases'; + $app_dir_227 = '/var/www/c-cms/ccmrc227'; + $new_release_dir_227 = $releases_dir_227 .'/'. $release; + + $releases_dir_117 = '/var/www/c-cms/ccmrc117/releases'; + $app_dir_117 = '/var/www/c-cms/ccmrc117'; + $new_release_dir_117 = $releases_dir_117 .'/'. $release; @endsetup @story('deploy_697') @@ -35,6 +43,18 @@ update_symlinks_dev @endstory +@story('deploy_227') + clone_repository_227 + run_composer_227 + update_symlinks_227 +@endstory + +@story('deploy_177') + clone_repository_117 + run_composer_117 + update_symlinks_117 +@endstory + @task('clone_repository_697') echo 'Cloning repository' [ -d {{ $releases_dir_697 }} ] || mkdir {{ $releases_dir_697 }} @@ -138,4 +158,74 @@ php artisan migrate php artisan db:seed --class=ConfigsTableSeeder +@endtask + +@task('clone_repository_227') +echo 'Cloning repository' +[ -d {{ $releases_dir_227 }} ] || mkdir {{ $releases_dir_227 }} +git clone --depth 1 --single-branch -b dev {{ $repository }} {{ $new_release_dir_227 }} +cd {{ $new_release_dir_227 }} +git reset --hard {{ $commit }} +@endtask + +@task('run_composer_227') +echo "Starting deployment ({{ $release }})" +cd {{ $new_release_dir_227 }} +composer install --prefer-dist --no-scripts -q -o +@endtask + +@task('update_symlinks_227') +echo "Linking storage directory" +rm -rf {{ $new_release_dir_227 }}/storage +ln -nfs {{ $app_dir_227 }}/storage {{ $new_release_dir_227 }}/storage + +echo 'Linking .env file' +ln -nfs {{ $app_dir_227 }}/.env {{ $new_release_dir_227 }}/.env + +echo 'Linking current release' +ln -nfs {{ $new_release_dir_227 }} {{ $app_dir_227 }}/current + +echo 'Setting permission' +chmod -R 777 {{ $app_dir_227 }}/current/bootstrap/ + +echo 'Migrate DB' +cd {{ $app_dir_227 }}/current/ +php artisan migrate +php artisan db:seed --class=ConfigsTableSeeder + +@endtask + +@task('clone_repository_117') +echo 'Cloning repository' +[ -d {{ $releases_dir_117 }} ] || mkdir {{ $releases_dir_117 }} +git clone --depth 1 --single-branch -b dev {{ $repository }} {{ $new_release_dir_117 }} +cd {{ $new_release_dir_117 }} +git reset --hard {{ $commit }} +@endtask + +@task('run_composer_117') +echo "Starting deployment ({{ $release }})" +cd {{ $new_release_dir_117 }} +composer install --prefer-dist --no-scripts -q -o +@endtask + +@task('update_symlinks_117') +echo "Linking storage directory" +rm -rf {{ $new_release_dir_117 }}/storage +ln -nfs {{ $app_dir_117 }}/storage {{ $new_release_dir_117 }}/storage + +echo 'Linking .env file' +ln -nfs {{ $app_dir_117 }}/.env {{ $new_release_dir_117 }}/.env + +echo 'Linking current release' +ln -nfs {{ $new_release_dir_117 }} {{ $app_dir_117 }}/current + +echo 'Setting permission' +chmod -R 777 {{ $app_dir_117 }}/current/bootstrap/ + +echo 'Migrate DB' +cd {{ $app_dir_117 }}/current/ +php artisan migrate +php artisan db:seed --class=ConfigsTableSeeder + @endtask \ No newline at end of file diff --git a/app/Http/Controllers/ConfigController.php b/app/Http/Controllers/ConfigController.php index f94e20be..ecd0453e 100644 --- a/app/Http/Controllers/ConfigController.php +++ b/app/Http/Controllers/ConfigController.php @@ -17,6 +17,28 @@ class ConfigController extends Controller return view ('admin.configs.general',['configs' => Config::all()]); } + public function customisation() + { + return view ('admin.configs.perso',['configs' => Config::all()]); + } + + public function customisationUpdate() + { + $configs = [ + 'public_index_img_url' + ]; + + foreach ($configs as $config) { + $c = \App\Config::all()->where('name',$config)->first(); + $c->data = [request($config)]; + $c->save(); + } + + \App\Log::saveLog('Modification de la configuration du site'); + + return redirect('/admin/config/customisation')->with('success','Modification sauvegarder avec succès !'); + } + /** * Show the form for creating a new resource. * diff --git a/app/Http/Controllers/EventController.php b/app/Http/Controllers/EventController.php index 2a91f4fd..24cb1df2 100644 --- a/app/Http/Controllers/EventController.php +++ b/app/Http/Controllers/EventController.php @@ -139,6 +139,17 @@ class EventController extends Controller $course = new \App\Course(); + foreach ($event->courses as $c) + { + if ($c->periode == $p) + { + if ($c->level == $l) + { + $course = $c; + } + } + } + $users = \App\User::all(); $instructor = 1; diff --git a/app/Http/Controllers/ItemCategoryController.php b/app/Http/Controllers/ItemCategoryController.php new file mode 100644 index 00000000..72cd6ae8 --- /dev/null +++ b/app/Http/Controllers/ItemCategoryController.php @@ -0,0 +1,85 @@ + \App\ItemCategory::all()]); } /** @@ -33,17 +33,20 @@ class ItemController extends Controller * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ - public function store(Request $request) + public function store() { $item = new Item; $item->name = request('name'); $item->desc = request('desc'); - $item->quantiy = request('qt'); + $item->quantity = request('quantity'); + $item->official_number = request('official_number'); + $item->metadata = ['size' => request('metadata-size')]; + $item->category_id = request('category_id'); $item->save(); - return redirect('/admin/inventory'); + return redirect('/admin/inventory')->with('success','Item sauvegardé avec succès'); } /** @@ -67,7 +70,7 @@ class ItemController extends Controller { $item = Item::find($id); - return view('admin.item.edit',['item' => $item]); + return view('admin.item.edit',['item' => $item,'categories' => \App\ItemCategory::all()]); } /** @@ -83,11 +86,14 @@ class ItemController extends Controller $item->name = request('name'); $item->desc = request('desc'); - $item->quantity = request('qt'); + $item->quantity = request('quantity'); + $item->official_number = request('official_number'); + $item->metadata = ['size' => request('metadata-size')]; + $item->category_id = request('category_id'); $item->save(); - return redirect('/admin/inventory'); + return redirect('/admin/inventory')->with('success','Item sauvegardé avec succès'); } /** diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index c43c5185..8c5512fd 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -113,9 +113,9 @@ class UserController extends Controller * @param int $id * @return \Illuminate\Http\Response */ - public function update(Request $request) + public function update($id) { - $user = User::where('email', request('email'))->first(); + $user = User::find($id); $user->firstname = request('firstname'); $user->lastname = request('lastname'); diff --git a/app/Item.php b/app/Item.php index de83e594..8637119e 100644 --- a/app/Item.php +++ b/app/Item.php @@ -18,8 +18,17 @@ class Item extends Model return $col_items; } + protected $casts = [ + 'metadata' => 'array', + ]; + public function bookings() { return $this->hasMany('App\Booking'); } + + public function category() + { + return \App\ItemCategory::find($this->category_id); + } } diff --git a/app/ItemCategory.php b/app/ItemCategory.php new file mode 100644 index 00000000..b656ea4d --- /dev/null +++ b/app/ItemCategory.php @@ -0,0 +1,13 @@ +hasMany('App\Item','category_id'); + } +} diff --git a/database/migrations/2018_09_07_104706_create_items_table.php b/database/migrations/2018_09_07_104706_create_items_table.php index 1e5c5ef3..e76f42cf 100644 --- a/database/migrations/2018_09_07_104706_create_items_table.php +++ b/database/migrations/2018_09_07_104706_create_items_table.php @@ -15,9 +15,12 @@ class CreateItemsTable extends Migration { Schema::create('items', function (Blueprint $table) { $table->increments('id'); + $table->integer('category_id'); $table->integer('quantity'); $table->string('name'); + $table->string('official_number'); $table->string('desc'); + $table->text('metadata'); $table->timestamps(); }); } diff --git a/database/migrations/2019_07_20_095729_create_pictures_table.php b/database/migrations/2019_07_20_095729_create_pictures_table.php index 7fc25b13..afe60fdb 100644 --- a/database/migrations/2019_07_20_095729_create_pictures_table.php +++ b/database/migrations/2019_07_20_095729_create_pictures_table.php @@ -15,7 +15,7 @@ class CreatePicturesTable extends Migration { Schema::create('pictures', function (Blueprint $table) { $table->increments('id'); - $table->string('url'); + $table->text('url'); $table->string('title'); $table->text('desc'); $table->integer('pictureable_id'); diff --git a/database/migrations/2019_08_27_074255_create_item_categories_table.php b/database/migrations/2019_08_27_074255_create_item_categories_table.php new file mode 100644 index 00000000..9d516b36 --- /dev/null +++ b/database/migrations/2019_08_27_074255_create_item_categories_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->string('name'); + $table->text('desc'); + $table->boolean('is_training'); + $table->boolean('is_op_appro'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('item_categories'); + } +} diff --git a/resources/views/admin/configs/general.blade.php b/resources/views/admin/configs/general.blade.php index a62efe58..8dde4395 100644 --- a/resources/views/admin/configs/general.blade.php +++ b/resources/views/admin/configs/general.blade.php @@ -100,6 +100,8 @@ Email du CC. Laisser vide si aucun + +