fixes
This commit is contained in:
@@ -16,13 +16,24 @@ class GenresDataTable extends DataTable
|
|||||||
return self::buildQuery($model);
|
return self::buildQuery($model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function modifier($datatables)
|
||||||
|
{
|
||||||
|
$datatables
|
||||||
|
->editColumn('family_name', function(Genre $genre) {
|
||||||
|
return $genre->family ? $genre->family->name : '';
|
||||||
|
})
|
||||||
|
->rawColumns(['genre_name', 'action'])
|
||||||
|
;
|
||||||
|
return Parent::modifier($datatables);
|
||||||
|
}
|
||||||
|
|
||||||
protected function getColumns()
|
protected function getColumns()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
Column::make('name')->title('Nom'),
|
Column::make('name')->title('Nom'),
|
||||||
Column::make('alias'),
|
Column::make('alias'),
|
||||||
Column::make('latin'),
|
Column::make('latin'),
|
||||||
Column::make('family.name')->title('Famille'),
|
Column::make('family.name')->data('family_name')->title('Famille'),
|
||||||
Column::make('species_count')->title('Nb Espèces')->searchable(false)->addClass('text-right'),
|
Column::make('species_count')->title('Nb Espèces')->searchable(false)->addClass('text-right'),
|
||||||
Column::make('varieties_count')->title('Nb Variétés')->searchable(false)->addClass('text-right'),
|
Column::make('varieties_count')->title('Nb Variétés')->searchable(false)->addClass('text-right'),
|
||||||
self::makeColumnButtons(),
|
self::makeColumnButtons(),
|
||||||
|
|||||||
@@ -8,24 +8,36 @@ use App\Models\Botanic\Specie;
|
|||||||
|
|
||||||
class SpeciesDataTable extends DataTable
|
class SpeciesDataTable extends DataTable
|
||||||
{
|
{
|
||||||
public $model_name = 'species';
|
public $model_name = 'species';
|
||||||
|
|
||||||
public function query(Specie $model)
|
public function query(Specie $model)
|
||||||
{
|
{
|
||||||
$model = $model::withCount('varieties')->with('genre');
|
$model = $model::withCount('varieties')->with('genre');
|
||||||
return self::buildQuery($model);
|
return self::buildQuery($model);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getColumns()
|
public function modifier($datatables)
|
||||||
{
|
{
|
||||||
return [
|
$datatables
|
||||||
Column::make('name')->title('Nom'),
|
->editColumn('genre_name', function(Specie $specie) {
|
||||||
Column::make('alias'),
|
return $specie->genre ? $specie->genre->name : '';
|
||||||
Column::make('genre.name')->title('Genre'),
|
})
|
||||||
Column::make('latin'),
|
->rawColumns(['genre_name', 'action'])
|
||||||
Column::make('varieties_count')->title('Nb variétés')->searchable(false)->addClass('text-right'),
|
;
|
||||||
self::makeColumnButtons(),
|
return Parent::modifier($datatables);
|
||||||
];
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
protected function getColumns()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
Column::make('name')->title('Nom'),
|
||||||
|
Column::make('alias'),
|
||||||
|
Column::make('genre.name')->data('genre_name')->title('Genre'),
|
||||||
|
Column::make('latin'),
|
||||||
|
Column::make('varieties_count')->title('Nb variétés')->searchable(false)->addClass('text-right'),
|
||||||
|
self::makeColumnButtons(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,9 +13,16 @@ class PackagesDataTable extends DataTable
|
|||||||
public function query(Package $model)
|
public function query(Package $model)
|
||||||
{
|
{
|
||||||
$model = $model::with(['article_family'])->select('shop_packages.*');
|
$model = $model::with(['article_family'])->select('shop_packages.*');
|
||||||
|
$model = self::filterByFamily($model);
|
||||||
return self::buildQuery($model);
|
return self::buildQuery($model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function filterByFamily($model, $family_id = false)
|
||||||
|
{
|
||||||
|
$family_id = $family_id ? $family_id : self::isFilteredByField('family_id');
|
||||||
|
return $family_id ? $model->byArticleFamily($family_id) : $model;
|
||||||
|
}
|
||||||
|
|
||||||
protected function getColumns()
|
protected function getColumns()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
|||||||
@@ -14,68 +14,65 @@ use App\Models\Shop\Variety;
|
|||||||
|
|
||||||
class VarietyController extends Controller
|
class VarietyController extends Controller
|
||||||
{
|
{
|
||||||
public function index(VarietiesDataTable $dataTable)
|
public function index(VarietiesDataTable $dataTable)
|
||||||
{
|
{
|
||||||
return $dataTable->render('Botanic.Admin.Varieties.list');
|
return $dataTable->render('Botanic.Admin.Varieties.list');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getDatatable(Request $request)
|
public function getOptionsWithSpecie()
|
||||||
{
|
{
|
||||||
return Varieties::getDatatable($request->all());
|
return response()->json(Varieties::getOptionsWithSpecie());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOptionsWithSpecie()
|
public function create()
|
||||||
{
|
{
|
||||||
return response()->json(Varieties::getOptionsWithSpecie());
|
$data['tags_list'] = TagGroups::getTreeTags();
|
||||||
}
|
return view('Botanic.Admin.Varieties.create', $data);
|
||||||
|
}
|
||||||
|
|
||||||
public function create()
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$data['tags_list'] = TagGroups::getTreeTags();
|
$data = $request->all();
|
||||||
return view('Botanic.Admin.Varieties.create', $data);
|
Varieties::storeFull($data);
|
||||||
}
|
return redirect()->route('Botanic.Admin.Varieties.index');
|
||||||
|
}
|
||||||
|
|
||||||
public function store(Request $request)
|
public function show($id)
|
||||||
{
|
{
|
||||||
$data = $request->all();
|
return view('Botanic.Admin.Varieties.view', Varieties::get($id));
|
||||||
Varieties::storeFull($data);
|
}
|
||||||
return redirect()->route('Botanic.Admin.Varieties.index');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function show($id)
|
public function edit($id)
|
||||||
{
|
{
|
||||||
return view('Botanic.Admin.Varieties.view', Varieties::get($id));
|
$data = Varieties::getFull($id);
|
||||||
}
|
$data['species'] = Species::getOptions();
|
||||||
|
$data['tags_list'] = TagGroups::getTreeTags();
|
||||||
|
return view('Botanic.Admin.Varieties.edit', $data);
|
||||||
|
}
|
||||||
|
|
||||||
public function edit($id)
|
public function destroy($id)
|
||||||
{
|
{
|
||||||
$data = Varieties::getFull($id);
|
return Varieties::destroy($id);
|
||||||
$data['species'] = Species::getOptions();
|
}
|
||||||
$data['tags_list'] = TagGroups::getTreeTags();
|
|
||||||
return view('Botanic.Admin.Varieties.edit', $data);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function destroy($id)
|
public function getImages(Request $request, $id = false)
|
||||||
{
|
{
|
||||||
return Varieties::destroy($id);
|
$id = $id ? $id : $request->input('id');
|
||||||
}
|
$data['images'] = Varieties::getImages($id);
|
||||||
|
return view('components.uploader.mini-gallery-items', $data);
|
||||||
|
}
|
||||||
|
|
||||||
public function getImages(Request $request, $id = false)
|
public function deleteImage(Request $request)
|
||||||
{
|
{
|
||||||
$id = $id ? $id : $request->input('id');
|
$id = $request->input('id');
|
||||||
$data['images'] = Varieties::getImages($id);
|
$index = $request->input('index');
|
||||||
return view('components.uploader.mini-gallery-items', $data);
|
return Varieties::deleteImage($id, $index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function exportExcel()
|
||||||
|
{
|
||||||
|
return Varieties::exportExcel();
|
||||||
|
}
|
||||||
|
|
||||||
public function deleteImage(Request $request)
|
|
||||||
{
|
|
||||||
$id = $request->input('id');
|
|
||||||
$index = $request->input('index');
|
|
||||||
return Varieties::deleteImage($id, $index);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function exportExcel()
|
|
||||||
{
|
|
||||||
return Varieties::exportExcel();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ class ArticleController extends Controller
|
|||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$data = $request->all();
|
$data = $request->all();
|
||||||
dump($data);
|
// dump($data);
|
||||||
exit;
|
// exit;
|
||||||
Articles::storeFull($data);
|
Articles::storeFull($data);
|
||||||
return redirect()->route('Shop.Admin.Articles.index');
|
return redirect()->route('Shop.Admin.Articles.index');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ use Illuminate\Http\Request;
|
|||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
|
||||||
use App\Repositories\Shop\TagGroups;
|
use App\Repositories\Shop\TagGroups;
|
||||||
|
use App\Repositories\Shop\ArticleFamilies;
|
||||||
use App\DataTables\Shop\TagGroupsDataTable;
|
use App\DataTables\Shop\TagGroupsDataTable;
|
||||||
|
|
||||||
class TagGroupController extends Controller
|
class TagGroupController extends Controller
|
||||||
@@ -40,6 +41,7 @@ class TagGroupController extends Controller
|
|||||||
public function edit($id)
|
public function edit($id)
|
||||||
{
|
{
|
||||||
$data = TagGroups::get($id);
|
$data = TagGroups::get($id);
|
||||||
|
$data['article_families'] = ArticleFamilies::getOptions();
|
||||||
return view('Shop.Admin.TagGroups.edit', $data);
|
return view('Shop.Admin.TagGroups.edit', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,20 +10,18 @@ use Fico7489\Laravel\EloquentJoin\Traits\EloquentJoin;
|
|||||||
|
|
||||||
class Variety extends Model implements HasMedia
|
class Variety extends Model implements HasMedia
|
||||||
{
|
{
|
||||||
use HasMediaTrait;
|
use EloquentJoin, HasMediaTrait, Taggable;
|
||||||
use EloquentJoin;
|
|
||||||
use Taggable;
|
|
||||||
|
|
||||||
protected $guarded = ['id'];
|
protected $guarded = ['id'];
|
||||||
protected $table = 'botanic_varieties';
|
protected $table = 'botanic_varieties';
|
||||||
|
|
||||||
public function Specie()
|
public function Specie()
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\Models\Botanic\Specie');
|
return $this->belongsTo('App\Models\Botanic\Specie');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function Articles()
|
public function Articles()
|
||||||
{
|
{
|
||||||
return $this->morphMany('App\Models\Shop\Article','product');
|
return $this->morphMany('App\Models\Shop\Article','product');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -11,65 +11,60 @@ use Fico7489\Laravel\EloquentJoin\Traits\EloquentJoin;
|
|||||||
|
|
||||||
class Article extends Model implements HasMedia
|
class Article extends Model implements HasMedia
|
||||||
{
|
{
|
||||||
use Categorizable, Taggable, HasMediaTrait, EloquentJoin;
|
use Categorizable, EloquentJoin, HasMediaTrait, Taggable;
|
||||||
|
|
||||||
protected $guarded = ['id'];
|
protected $guarded = ['id'];
|
||||||
protected $table = 'shop_articles';
|
protected $table = 'shop_articles';
|
||||||
|
|
||||||
public function article_family()
|
public function article_family()
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\Models\Shop\ArticleFamily');
|
return $this->belongsTo('App\Models\Shop\ArticleFamily');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function attributes()
|
public function images()
|
||||||
{
|
{
|
||||||
return $this->hasMany('App\Models\Shop\ArticleAttribute');
|
return $this->hasMany('App\Models\Core\Media','model_id')->where('model_type','App\Models\Shop\Article');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function images()
|
public function image()
|
||||||
{
|
{
|
||||||
return $this->hasMany('App\Models\Core\Media','model_id')->where('model_type','App\Models\Shop\Article');
|
return $this->hasOne('App\Models\Core\Media','model_id')->where('model_type','App\Models\Shop\Article');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function image()
|
public function inventories()
|
||||||
{
|
{
|
||||||
return $this->hasOne('App\Models\Core\Media','model_id')->where('model_type','App\Models\Shop\Article');
|
return $this->hasMany('App\Models\Shop\Inventory');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function inventories()
|
public function invoiceItems()
|
||||||
{
|
{
|
||||||
return $this->hasMany('App\Models\Shop\Inventory');
|
return $this->hasMany('App\Models\Shop\InvoiceItem');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function invoiceItems()
|
public function prices()
|
||||||
{
|
{
|
||||||
return $this->hasMany('App\Models\Shop\InvoiceItem');
|
return $this->hasMany('App\Models\Shop\Price');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function prices()
|
public function product()
|
||||||
{
|
{
|
||||||
return $this->hasMany('App\Models\Shop\Price');
|
return $this->morphTo();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function product()
|
public function scopeByArticle($query, $id)
|
||||||
{
|
{
|
||||||
return $this->morphTo();
|
return $query->where('shop_articles.id',$id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function scopeByArticle($query, $id)
|
public function scopeByCategory($query, $category_id)
|
||||||
{
|
{
|
||||||
return $query->where('shop_articles.id',$id);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function scopeByCategory($query, $category_id)
|
}
|
||||||
{
|
|
||||||
|
|
||||||
}
|
public function scopeByFamily($query, $id)
|
||||||
|
{
|
||||||
public function scopeByFamily($query, $id)
|
return $query->where('shop_articles.article_family_id',$id);
|
||||||
{
|
}
|
||||||
return $query->where('shop_articles.article_family_id',$id);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -58,7 +58,8 @@ class Varieties
|
|||||||
|
|
||||||
public static function getTagsByVariety($variety)
|
public static function getTagsByVariety($variety)
|
||||||
{
|
{
|
||||||
return $variety->tags->pluck('id')->toArray();
|
$tags = $variety->tags;
|
||||||
|
return $tags ? $tags->pluck('id')->toArray() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class Articles
|
|||||||
|
|
||||||
public static function getFull($id)
|
public static function getFull($id)
|
||||||
{
|
{
|
||||||
$article = self::get($id);
|
$article = Article::with('product')->findOrFail($id);
|
||||||
$data = $article->toArray();
|
$data = $article->toArray();
|
||||||
$data['categories'] = self::getCategoriesByArticle($article);
|
$data['categories'] = self::getCategoriesByArticle($article);
|
||||||
$data['tags'] = self::getTagsByArticle($article);
|
$data['tags'] = self::getTagsByArticle($article);
|
||||||
@@ -177,6 +177,9 @@ class Articles
|
|||||||
|
|
||||||
public static function getThumbSrc($image)
|
public static function getThumbSrc($image)
|
||||||
{
|
{
|
||||||
|
if (!$image) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
$id = $image['id'];
|
$id = $image['id'];
|
||||||
$images = json_decode($image['responsive_images'], true);
|
$images = json_decode($image['responsive_images'], true);
|
||||||
$urls = $images['medialibrary_original']['urls'];
|
$urls = $images['medialibrary_original']['urls'];
|
||||||
|
|||||||
@@ -5,8 +5,9 @@
|
|||||||
])
|
])
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
@component('components.card')
|
@component('components.card')
|
||||||
@include('components.datatable', ['route' => route('Shop.Admin.Packages.index'), 'model' => 'packages'])
|
@include('components.datatable', ['route' => route('Shop.Admin.Packages.index'), 'model' => 'packages', 'with_filters' => true])
|
||||||
@endcomponent
|
@endcomponent
|
||||||
|
|
||||||
@component('components.layout.modal', ['title' => 'Filtres', 'id' => 'modal-packages-filters'])
|
@component('components.layout.modal', ['title' => 'Filtres', 'id' => 'modal-packages-filters'])
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-8">
|
<div class="col-md-6">
|
||||||
|
{{ Form::label('name', 'Famille d\'articles') }}
|
||||||
|
@include('components.select', ['name' => 'article_family_id', 'value' => $article_family_id ?? null, 'list' => $article_families ?? [], 'required' => true, 'with_empty' => ''])
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
{{ Form::label('name', 'Nom') }}
|
{{ Form::label('name', 'Nom') }}
|
||||||
@include('components.input', ['name' => 'name', 'value' => isset($name) ? $name : null, 'required' => true])
|
@include('components.input', ['name' => 'name', 'value' => isset($name) ? $name : null, 'required' => true])
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user