diff --git a/app/Datatables/Shop/ProducersDataTable.php b/app/Datatables/Shop/ProducersDataTable.php
index 3a0b4df2..dd882e14 100644
--- a/app/Datatables/Shop/ProducersDataTable.php
+++ b/app/Datatables/Shop/ProducersDataTable.php
@@ -4,16 +4,16 @@ namespace App\Datatables\Shop;
use Yajra\DataTables\Html\Column;
use App\Datatables\ParentDataTable as DataTable;
-use App\Models\Shop\Merchandise;
-use App\Repositories\Shop\Merchandises;
+use App\Models\Shop\Producer;
+use App\Repositories\Shop\Producers;
-class MerchandisesDataTable extends DataTable
+class ProducersDataTable extends DataTable
{
- public $model_name = 'merchandises';
+ public $model_name = 'producers';
- public function query(Merchandise $model)
+ public function query(Producer $model)
{
- $model = $model::with(['image', 'tags'])->withCount(['Articles', 'tags', 'images']);
+ $model = $model::with(['image', 'tags'])->withCount(['Merchandises', 'tags', 'images']);
return $this->buildQuery($model);
}
@@ -21,12 +21,12 @@ class MerchandisesDataTable extends DataTable
public function modifier($datatables)
{
$datatables
- ->editColumn('thumb', function (Merchandise $merchandise) {
- return Merchandises::getThumb($merchandise->image);
+ ->editColumn('thumb', function (Producer $producer) {
+ return $producer->image ? Producers::getThumb($producer->image) : '';
})
- ->editColumn('tags2', function (Merchandise $merchandise) {
+ ->editColumn('tags2', function (Producer $producer) {
$html = '';
- foreach ($merchandise->tags as $tag) {
+ foreach ($producer->tags as $tag) {
$html .= '' . $tag->slug . ' ';
}
return $html;
@@ -42,7 +42,7 @@ class MerchandisesDataTable extends DataTable
Column::make('thumb')->title('')->searchable(false)->orderable(false)->width(40)->class('text-center'),
Column::make('name')->title('Nom'),
Column::make('tags2')->title('Tags')->searchable(false)->orderable(false),
- Column::make('articles_count')->title('#Art')->class('text-right')->searchable(false),
+ Column::make('merchandises_count')->title('#Mar')->class('text-right')->searchable(false),
Column::make('tags_count')->title('#Tag')->class('text-right')->searchable(false),
Column::make('images_count')->title('#Pho')->class('text-right')->searchable(false),
$this->makeColumnButtons(),
diff --git a/app/Http/Controllers/Admin/Shop/MerchandiseController.php b/app/Http/Controllers/Admin/Shop/MerchandiseController.php
index 4567bcb2..da838d06 100644
--- a/app/Http/Controllers/Admin/Shop/MerchandiseController.php
+++ b/app/Http/Controllers/Admin/Shop/MerchandiseController.php
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Repositories\Shop\Merchandises;
+use App\Repositories\Shop\Producers;
use App\Repositories\Shop\TagGroups;
use App\Datatables\Shop\MerchandisesDataTable;
@@ -19,6 +20,7 @@ class MerchandiseController extends Controller
public function create()
{
+ $data['producers_list'] = Producers::getOptions();
$data['tags_list'] = TagGroups::getTreeTags();
return view('Admin.Shop.Merchandises.create', $data);
}
@@ -38,6 +40,7 @@ class MerchandiseController extends Controller
public function edit($id)
{
$data['merchandise'] = Merchandises::getFull($id);
+ $data['producers_list'] = Producers::getOptions();
$data['tags_list'] = TagGroups::getTreeTags();
return view('Admin.Shop.Merchandises.edit', $data);
}
diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php
index e8ef22af..7d6dd79a 100644
--- a/app/Http/Controllers/Auth/LoginController.php
+++ b/app/Http/Controllers/Auth/LoginController.php
@@ -20,7 +20,7 @@ class LoginController extends Controller
public function showLoginForm()
{
- return view('Shop.auth.login', $data ?? []);
+ return view('auth.login', $data ?? []);
}
public function authenticated(Request $request, $user)
diff --git a/app/Menu/Merchandises.php b/app/Menu/Merchandises.php
index 8725c6e5..8edd1ae9 100644
--- a/app/Menu/Merchandises.php
+++ b/app/Menu/Merchandises.php
@@ -14,6 +14,10 @@ class Merchandises
$menu->addTo('merchandises', __('Marchandises'), [
'route' => 'Admin.Shop.Merchandises.index',
- ])->activeIfRoute(['Admin.Shop.Merchandises.*'])->order(1);
+ ])->activeIfRoute(['Admin.Shop.Merchandises.*'])->order(1);
+
+ $menu->addTo('merchandises', __('Producteurs'), [
+ 'route' => 'Admin.Shop.Producers.index',
+ ])->activeIfRoute(['Admin.Shop.Producers.*'])->order(1);
}
}
diff --git a/app/Models/Botanic/Specie.php b/app/Models/Botanic/Specie.php
index 849ee6b1..c437e384 100644
--- a/app/Models/Botanic/Specie.php
+++ b/app/Models/Botanic/Specie.php
@@ -10,6 +10,8 @@ use Rinvex\Tags\Traits\Taggable;
use Spatie\MediaLibrary\HasMedia;
use App\Traits\Model\Imageable;
+use App\Models\Shop\Tag;
+use App\Models\Shop\Article;
class Specie extends Model implements HasMedia
{
@@ -20,7 +22,7 @@ class Specie extends Model implements HasMedia
public function tags()
{
- return $this->morphToMany('App\Models\Shop\Tag', 'taggable');
+ return $this->morphToMany(Tag::class, 'taggable');
}
public function Genre()
@@ -35,7 +37,7 @@ class Specie extends Model implements HasMedia
public function Articles()
{
- return $this->morphMany('App\Models\Shop\Article', 'product');
+ return $this->morphMany(Article::class, 'product');
}
public function scopeByName($query, $name)
diff --git a/app/Models/Botanic/Variety.php b/app/Models/Botanic/Variety.php
index 5abd92f6..beb337b0 100644
--- a/app/Models/Botanic/Variety.php
+++ b/app/Models/Botanic/Variety.php
@@ -12,6 +12,9 @@ use Wildside\Userstamps\Userstamps;
use App\Traits\Model\Imageable;
+use App\Models\Shop\Article;
+use App\Models\Shop\Tag;
+
class Variety extends Model implements HasMedia
{
use Imageable, PowerJoins, SoftDeletes, Taggable, UserStamps;
@@ -21,16 +24,16 @@ class Variety extends Model implements HasMedia
public function Specie()
{
- return $this->belongsTo('App\Models\Botanic\Specie');
+ return $this->belongsTo(Specie::class);
}
public function Articles()
{
- return $this->morphMany('App\Models\Shop\Article', 'product');
+ return $this->morphMany(Article::class, 'product');
}
public function tags()
{
- return $this->morphToMany('App\Models\Shop\Tag', 'taggable');
+ return $this->morphToMany(Tag::class, 'taggable');
}
}
diff --git a/app/Models/Shop/Producer.php b/app/Models/Shop/Producer.php
index 47833740..17790fee 100644
--- a/app/Models/Shop/Producer.php
+++ b/app/Models/Shop/Producer.php
@@ -19,9 +19,14 @@ class Producer extends Model implements HasMedia
protected $guarded = ['id'];
protected $table = 'shop_producers';
+ public function Articles()
+ {
+
+ }
+
public function Merchandises()
{
- return $this->morphMany(Article::class, 'product');
+ return $this->hasMany(Merchandise::class);
}
public function tags()
diff --git a/app/Repositories/Shop/Producers.php b/app/Repositories/Shop/Producers.php
new file mode 100644
index 00000000..2ba6fd31
--- /dev/null
+++ b/app/Repositories/Shop/Producers.php
@@ -0,0 +1,95 @@
+orderBy('name')->limit(30)->get()->pluck('name', 'id');
+ $export = [];
+ foreach ($data as $key => $name) {
+ $export[] = ['value' => $key, 'text' => $name];
+ }
+ return $export;
+ }
+
+ public static function getTags($id)
+ {
+ return self::get($id)->tags;
+ }
+
+ public static function storeTags($variety, $tags)
+ {
+ return Tag::storeTags($variety, $tags);
+ }
+
+ public static function getOptions()
+ {
+ return Producer::orderBy('name', 'asc')->get()->pluck('name', 'id')->toArray();
+ }
+
+ public static function getAll()
+ {
+ return Producer::orderBy('name', 'asc')->get();
+ }
+
+ public static function get($id)
+ {
+ return Producer::find($id);
+ }
+
+ public static function getFull($id)
+ {
+ $producer = self::get($id);
+ $data = $producer->toArray();
+ $data['tags'] = self::getTagsByProducer($producer);
+ return $data;
+ }
+
+ public static function getTagsByProducer($producer)
+ {
+ return Tag::getTagsByModel($producer);
+ }
+
+ public static function storeFull($data)
+ {
+ $images = $data['images'] ?? false;
+ $tags = $data['tags'] ?? false;
+ unset($data['images']);
+ unset($data['tags']);
+ $producer = self::store($data);
+ self::storeImages($producer, $images);
+ self::storeTags($producer, $tags);
+ return $producer;
+ }
+
+ public static function store($data)
+ {
+ return ($data['id'] ?? false) ? self::update($data) : self::create($data);
+ }
+
+ public static function create($data)
+ {
+ return Producer::create($data);
+ }
+
+ public static function update($data, $id = false)
+ {
+ $id = $id ? $id : $data['id'];
+ $item = self::get($id);
+ $item->update($data);
+ return $item;
+ }
+
+ public static function destroy($id)
+ {
+ return Producer::destroy($id);
+ }
+}
diff --git a/resources/views/Admin/Botanic/Species/form.blade.php b/resources/views/Admin/Botanic/Species/form.blade.php
index a322ef0e..4d465ca5 100644
--- a/resources/views/Admin/Botanic/Species/form.blade.php
+++ b/resources/views/Admin/Botanic/Species/form.blade.php
@@ -14,7 +14,14 @@
{{ Form::label('genre', 'Genre') }}
- @include('components.form.select', ['name' => 'genre_id', 'list' => $genres, 'value' => $specie['genre_id'] ?? null, 'class' => 'select2', 'with_empty' => '', 'required' => false])
+ @include('components.form.select', [
+ 'name' => 'genre_id',
+ 'list' => $genres,
+ 'value' => $specie['genre_id'] ?? null,
+ 'class' => 'select2',
+ 'with_empty' => '',
+ 'required' => false
+ ])
{{ Form::label('alias', 'Alias') }}
@@ -25,21 +32,49 @@
{{ Form::label('tags', 'Tags') }}
- @include('components.form.selects.select-tree', ['name' => 'tags[]', 'list' => $tags_list, 'values' => $specie['tags'] ?? null, 'class' => 'select2 form-control', 'multiple' => true])
+ @include('components.form.selects.select-tree', [
+ 'name' => 'tags[]',
+ 'list' => $tags_list,
+ 'values' => $specie['tags'] ?? null,
+ 'class' => 'select2 form-control',
+ 'multiple' => true
+ ])
{{ Form::label('description', 'Description') }}
- @include('components.form.textarea', ['name' => 'description', 'value' => $specie['description'] ?? null, 'class' => 'editor', 'required' => false])
+ @include('components.form.textarea', [
+ 'name' => 'description',
+ 'value' => $specie['description'] ?? null,
+ 'class' => 'editor',
+ 'required' => false
+ ])
+
+
+
+
+
+ {{ Form::label('description', 'Son +') }}
+ @include('components.form.textarea', [
+ 'name' => 'plus',
+ 'value' => $specie['plus'] ?? null,
+ 'class' => 'editor',
+ 'rows' => 5,
+ 'required' => false,
+ ])
- @include('components.uploader.widget', ['load_url' => ($specie['id'] ?? false) ? route('Admin.Botanic.Species.getImages', ['id' => $specie['id']]) : null, 'delete_url' => route('Admin.Botanic.Species.deleteImage'), 'name' => 'images'])
+ @include('components.uploader.widget', [
+ 'load_url' => ($specie['id'] ?? false) ? route('Admin.Botanic.Species.getImages', ['id' => $specie['id']]) : null,
+ 'delete_url' => route('Admin.Botanic.Species.deleteImage'),
+ 'name' => 'images'
+ ])
diff --git a/resources/views/Admin/Botanic/Varieties/form.blade.php b/resources/views/Admin/Botanic/Varieties/form.blade.php
index 562ec17a..9f189522 100644
--- a/resources/views/Admin/Botanic/Varieties/form.blade.php
+++ b/resources/views/Admin/Botanic/Varieties/form.blade.php
@@ -7,35 +7,77 @@
{{ Form::label('genre', 'Espèce') }}
- @include('components.form.select', ['name' => 'specie_id', 'list' => $species, 'value' => $variety['specie_id'] ?? null, 'class' => 'select2 form-control', 'with_empty' => '', 'required' => false])
+ @include('components.form.select', [
+ 'name' => 'specie_id',
+ 'list' => $species,
+ 'value' => $variety['specie_id'] ?? null,
+ 'class' => 'select2 form-control',
+ 'with_empty' => '',
+ 'required' => false
+ ])
{{ Form::label('tags', 'Tags') }}
- @include('components.form.selects.select-tree', ['name' => 'tags[]', 'list' => $tags_list, 'values' => $variety['tags'] ?? null, 'class' => 'select2 form-control', 'multiple' => true])
+ @include('components.form.selects.select-tree', [
+ 'name' => 'tags[]',
+ 'list' => $tags_list,
+ 'values' => $variety['tags'] ?? null,
+ 'class' => 'select2 form-control',
+ 'multiple' => true
+ ])
{{ Form::label('description', 'Description') }}
- @include('components.form.textarea', ['name' => 'description', 'value' => $variety['description'] ?? null, 'class' => 'editor', 'rows' => 5, 'required' => false])
+ @include('components.form.textarea', [
+ 'name' => 'description',
+ 'value' => $variety['description'] ?? null,
+ 'class' => 'editor',
+ 'rows' => 5,
+ 'required' => false
+ ])
{{ Form::label('memo', 'Descriptif sachet') }}
- @include('components.form.textarea', ['name' => 'memo', 'value' => $variety['memo'] ?? null, 'class' => 'editor', 'rows' => 5, 'required' => false])
+ @include('components.form.textarea', [
+ 'name' => 'memo',
+ 'value' => $variety['memo'] ?? null,
+ 'class' => 'editor',
+ 'rows' => 5,
+ 'required' => false
+ ])
+
+
+
+
+
+ {{ Form::label('description', 'Son +') }}
+ @include('components.form.textarea', [
+ 'name' => 'plus',
+ 'value' => $variety['plus'] ?? null,
+ 'class' => 'editor',
+ 'rows' => 5,
+ 'required' => false,
+ ])
- @include('components.uploader.widget', ['load_url' => route('Admin.Botanic.Varieties.getImages', ['id' => $variety['id'] ?? false]), 'delete_url' => route('Admin.Botanic.Varieties.deleteImage'), 'name' => 'images'])
+ @include('components.uploader.widget', [
+ 'load_url' => route('Admin.Botanic.Varieties.getImages', ['id' => $variety['id'] ?? false]),
+ 'delete_url' => route('Admin.Botanic.Varieties.deleteImage'),
+ 'name' => 'images'
+ ])
diff --git a/resources/views/Admin/Shop/Merchandises/form.blade.php b/resources/views/Admin/Shop/Merchandises/form.blade.php
index 92005db3..8f836452 100644
--- a/resources/views/Admin/Shop/Merchandises/form.blade.php
+++ b/resources/views/Admin/Shop/Merchandises/form.blade.php
@@ -5,6 +5,16 @@
{{ Form::label('name', 'Nom') }}
@include('components.form.input', ['name' => 'name', 'value' => $merchandise['name'] ?? null, 'required' => true])
+
+ {{ Form::label('producers', 'Producteur') }}
+ @include('components.form.select', [
+ 'name' => 'producer_id',
+ 'list' => $producers_list ?? [],
+ 'value' => $merchandise['provider_id'] ?? null,
+ 'class' => 'select2 form-control',
+ 'with_empty' => '',
+ ])
+
@@ -33,6 +43,19 @@
+
+
+ {{ Form::label('description', 'Son +') }}
+ @include('components.form.textarea', [
+ 'name' => 'plus',
+ 'value' => $merchandise['plus'] ?? null,
+ 'class' => 'editor',
+ 'rows' => 5,
+ 'required' => false,
+ ])
+
+
+
diff --git a/resources/views/Admin/Shop/Producers/create.blade.php b/resources/views/Admin/Shop/Producers/create.blade.php
index 15dd0396..c2fa0b4b 100644
--- a/resources/views/Admin/Shop/Producers/create.blade.php
+++ b/resources/views/Admin/Shop/Producers/create.blade.php
@@ -1,11 +1,11 @@
@extends('layout.index', [
- 'title' => __('shop.merchandises.title'),
- 'subtitle' => __('shop.merchandises.add'),
- 'breadcrumb' => [__('shop.merchandises.title'), __('shop.merchandises.add')]
+ 'title' => __('shop.producers.title'),
+ 'subtitle' => __('shop.producers.add'),
+ 'breadcrumb' => [__('shop.producers.title'), __('shop.producers.add')]
])
@section('content')
- {{ Form::open(['route' => 'Admin.Shop.Merchandises.store', 'id' => 'form', 'autocomplete' => 'off', 'files' => true]) }}
- @include('Admin.Shop.Merchandises.form')
+ {{ Form::open(['route' => 'Admin.Shop.Producers.store', 'id' => 'form', 'autocomplete' => 'off', 'files' => true]) }}
+ @include('Admin.Shop.Producers.form')
@endsection
diff --git a/resources/views/Admin/Shop/Producers/edit.blade.php b/resources/views/Admin/Shop/Producers/edit.blade.php
index f27012c1..f27b9447 100644
--- a/resources/views/Admin/Shop/Producers/edit.blade.php
+++ b/resources/views/Admin/Shop/Producers/edit.blade.php
@@ -1,12 +1,12 @@
@extends('layout.index', [
- 'title' => __('Shop.merchandises.title'),
- 'subtitle' => __('Shop.merchandises.edit'),
- 'breadcrumb' => [__('Shop.merchandises.title'), __('Shop.merchandises.edit')]
+ 'title' => __('Shop.producers.title'),
+ 'subtitle' => __('Shop.producers.edit'),
+ 'breadcrumb' => [__('Shop.producers.title'), __('Shop.producers.edit')]
])
@section('content')
- {{ Form::open(['route' => 'Admin.Shop.Merchandises.store', 'id' => 'form', 'autocomplete' => 'off', 'files' => true]) }}
-
- @include('Admin.Shop.Merchandises.form')
+ {{ Form::open(['route' => 'Admin.Shop.Producers.store', 'id' => 'form', 'autocomplete' => 'off', 'files' => true]) }}
+
+ @include('Admin.Shop.Producers.form')
@endsection
diff --git a/resources/views/Admin/Shop/Producers/form.blade.php b/resources/views/Admin/Shop/Producers/form.blade.php
index 92005db3..82bc1284 100644
--- a/resources/views/Admin/Shop/Producers/form.blade.php
+++ b/resources/views/Admin/Shop/Producers/form.blade.php
@@ -3,7 +3,11 @@
{{ Form::label('name', 'Nom') }}
- @include('components.form.input', ['name' => 'name', 'value' => $merchandise['name'] ?? null, 'required' => true])
+ @include('components.form.input', ['name' => 'name', 'value' => $producer['name'] ?? null, 'required' => true])
+
+
+ {{ Form::label('name', 'Alias') }}
+ @include('components.form.input', ['name' => 'alias', 'value' => $producer['alias'] ?? null, 'required' => true])
@@ -13,7 +17,7 @@
@include('components.form.selects.select-tree', [
'name' => 'tags[]',
'list' => $tags_list,
- 'values' => $merchandise['tags'] ?? null,
+ 'values' => $producer['tags'] ?? null,
'class' => 'select2 form-control',
'multiple' => true
])
@@ -25,7 +29,7 @@
{{ Form::label('description', 'Description') }}
@include('components.form.textarea', [
'name' => 'description',
- 'value' => $merchandise['description'] ?? null,
+ 'value' => $producer['description'] ?? null,
'class' => 'editor',
'rows' => 5,
'required' => false,
@@ -37,7 +41,7 @@
@include('components.uploader.widget', [
- 'load_url' => route('Admin.Shop.Merchandises.getImages', ['id' => $merchandise['id'] ?? false]),
+ 'load_url' => route('Admin.Shop.Merchandises.getImages', ['id' => $producer['id'] ?? false]),
'delete_url' => route('Admin.Botanic.Varieties.deleteImage'),
'name' => 'images',
])
diff --git a/resources/views/Admin/Shop/Producers/list.blade.php b/resources/views/Admin/Shop/Producers/list.blade.php
index 4be55daf..d9ad5f6b 100644
--- a/resources/views/Admin/Shop/Producers/list.blade.php
+++ b/resources/views/Admin/Shop/Producers/list.blade.php
@@ -1,12 +1,12 @@
@extends('layout.index', [
- 'title' => __('Marchandises'),
- 'subtitle' => __('Liste de marchandises'),
- 'breadcrumb' => [__('Shop.merchandises.title')]
+ 'title' => __('shop.producers.title'),
+ 'subtitle' => __('shop.producers.list'),
+ 'breadcrumb' => [__('Shop.producers.title')]
])
@section('content')
@component('components.card')
- @include('components.datatable', ['route' => route('Admin.Shop.Merchandises.index'), 'model' => 'merchandises'])
+ @include('components.datatable', ['route' => route('Admin.Shop.Producers.index'), 'model' => 'producers'])
@endcomponent
@endsection