Merge branch 'develop' into trunk

This commit is contained in:
Vincent BRIDIER 2024-09-18 12:02:51 +02:00
commit 543d01394b
No known key found for this signature in database
GPG key ID: 8571BFA20420D512
9 changed files with 124 additions and 23 deletions

View file

@ -39,15 +39,14 @@ enum MenuNodeType: int
* Optionnal labels definition.
*/
private const ROUTENAMES = [
// FIXME: Change this when adding routes.
self::ourProducts->name => 'fo.products.index',
self::ourRecipes->name => 'fo.recipes.index',
self::ourCommitments->name => 'fo.contact.show',
self::siteLogo->name => '',
self::breedings->name => 'fo.contact.show',
self::ourBrand->name => 'fo.contact.show',
self::ourCommitments->name => 'fo.commitments.brand',
self::siteLogo->name => 'fo.home.show',
self::breedings->name => 'fo.breeding.index',
self::ourBrand->name => 'fo.brand.story',
self::recruitment->name => 'fo.recruitment.show',
self::news->name => 'fo.contact.show',
self::news->name => 'fo.news.index',
self::link->name => '',
];

View file

@ -91,7 +91,7 @@ class RecipeController extends Controller
public function create(Recipe $recipe): \Illuminate\Contracts\View\View
{
$productModels = Product::query()->where('published', true)->orderBy('label', 'ASC')->paginate(12);
$videoModels = Video::query()->where('published', true)->orderBy('title', 'ASC')->paginate(10);
$videoModels = Video::query()->where('published', true)->orderBy('order', 'ASC')->paginate(10);
$consumptionMomentModels = ConsumptionMoment::query()->orderBy('title', 'ASC')->paginate(10);
return view('bo.pages.recipes.create', [
'recipeModel' => $recipe,

View file

@ -45,7 +45,7 @@ class HomeController extends Controller
'consumptionMoment'
])->limit(9)->get();
$videoModels = Video::query()->where('published', true)->where('is_on_homepage', true)
->orderBy('order', 'ASC')->with('product')->limit(9)->get();
->orderBy('order')->with('product')->limit(9)->get();
return view('fo.pages.home', compact(
'staticPageModel',
'mainSlideModels',

View file

@ -48,12 +48,12 @@ class ProductController extends Controller
->paginate($this->productModelsPerPage);
$productDiscoverModels = Product::query()->where('published', true)->where('discover', true)->get();
$staticPageModel = StaticPage::query()->where('type', StaticPageType::products)->first();
$rangeModels = Range::query()->where('published', true)->with('subranges')->orderBy('slug')->get();
$rangeModels = Range::query()->where('published', true)->with('subranges')->orderBy('order')->get();
$subrangeModels = $subrangeModelsFiltered ?? Subrange::query()->where('published', true)
->orderBy('slug')->get();
$meatModels = Meat::query()->where('published', true)->with('submeats')->orderBy('slug')->get();
->orderBy('order')->get();
$meatModels = Meat::query()->where('published', true)->with('submeats')->orderBy('order')->get();
$submeatModels = $submeatModelsFiltered ?? Submeat::query()->where('published', true)
->orderBy('slug')->get();
->orderBy('order')->get();
return view('fo.pages.products.index', [
'viewsPaginate' => $this->getViewsFromPaginateModels($productModels),
@ -142,7 +142,7 @@ class ProductController extends Controller
});
})
->where('published', true)
->orderBy('slug', 'ASC')
->orderBy('slug')
->get();
$collectionIndex = $productModelsList->search(function ($productModelItem, $key) use ($productModel) {
@ -239,7 +239,7 @@ class ProductController extends Controller
$q->where('range_id', $rangeModel->getKey());
})
->where('published', true)
->orderBy('slug')
->orderBy('order')
->get();
$productModels = Product::query()
->with(['range', 'subrange', 'meat', 'submeat'])
@ -290,7 +290,7 @@ class ProductController extends Controller
$q->where('range_id', $rangeModel->getKey());
})
->where('published', true)
->orderBy('slug')
->orderBy('order')
->get();
$productModels = Product::query()
->with(['range', 'subrange', 'meat', 'submeat'])
@ -331,7 +331,7 @@ class ProductController extends Controller
$q->where('meat_id', $meatModel->getKey());
})
->where('published', true)
->orderBy('slug')
->orderBy('order')
->get();
$productModels = Product::query()
->with(['range', 'subrange', 'meat', 'submeat'])
@ -381,7 +381,7 @@ class ProductController extends Controller
$q->where('meat_id', $meatModel->getKey());
})
->where('published', true)
->orderBy('slug')
->orderBy('order')
->get();
$productModels = Product::query()
->with(['range', 'subrange', 'meat', 'submeat'])

View file

@ -46,9 +46,9 @@ class RecipeController extends Controller
$recipeModel = Recipe::query()->where('published', true)->where('highlight', true)->first();
$staticPageModel = StaticPage::query()->where('type', StaticPageType::recipes)->first();
$consumptionMomentModels = ConsumptionMoment::query()->orderBy('slug')->get();
$meatModels = Meat::query()->where('published', true)->with('submeats')->orderBy('slug')->get();
$meatModels = Meat::query()->where('published', true)->with('submeats')->orderBy('order')->get();
$submeatModels = $submeatModelsFiltered ??
Submeat::query()->where('published', true)->orderBy('slug')->get();
Submeat::query()->where('published', true)->orderBy('order')->get();
return view('fo.pages.recipes.index', [
'viewsPaginate' => $this->getViewsFromPaginateModels($recipeModels),
@ -196,7 +196,7 @@ class RecipeController extends Controller
$q->where('meat_id', $meatModel->getKey());
})
->where('published', true)
->orderBy('slug')
->orderBy('order')
->get();
$recipeModels = Recipe::query()
->with(['products', 'products.meat', 'products.submeat', 'consumptionMoment'])
@ -247,7 +247,7 @@ class RecipeController extends Controller
$q->where('meat_id', $meatModel->getKey());
})
->where('published', true)
->orderBy('slug')
->orderBy('order')
->get();
$recipeModels = Recipe::query()
->with(['products', 'products.meat', 'products.submeat', 'consumptionMoment'])

View file

@ -100,9 +100,9 @@ class ViewServiceProvider extends ServiceProvider
['name' => 'customerModelsCount', 'value' => count(Customer::query()->get())],
['name' => 'firstMeat', 'value' => Meat::query()->first()],
['name' => 'firstRange', 'value' => Range::query()->first()],
['name' => 'mainMenuRangeModels', 'value' => Range::query()->orderBy('slug', 'ASC')
['name' => 'mainMenuRangeModels', 'value' => Range::query()->orderBy('order', 'ASC')
->where('published', true)->get()],
['name' => 'mainMenuMeatModels', 'value' => Meat::query()->orderBy('slug', 'ASC')
['name' => 'mainMenuMeatModels', 'value' => Meat::query()->orderBy('order', 'ASC')
->where('published', true)->get()],
['name' => 'homeStaticPageModel', 'value' => StaticPage::query()
->where('type', StaticPageType::home)->first()],

View file

@ -0,0 +1,65 @@
<?php
use App\Enums\Settings\MenuNodeType;
use App\Enums\Settings\SettingsType;
use App\Lib\Link;
use App\Models\GeneralSetting;
use Database\Seeders\Mandatory\GeneralSettingSeeder;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\Artisan;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
* @throws \Exception In general settings menu is missing.
*/
public function up(): void
{
/** @var \App\Models\GeneralSetting|null */
$generalSettingModel = GeneralSetting::query()->where('type', SettingsType::mainMenu)->first();
if (!$generalSettingModel) {
throw new \Exception('Missing generalSettings ' . SettingsType::mainMenu->label());
}
$generalSettingModel->value = collect($generalSettingModel->value)->map(function (\stdClass $item) {
if ($item->type->equals(MenuNodeType::ourCommitments)) {
$item->link = (new Link(routeName: MenuNodeType::ourCommitments->routeName()))->toArray();
} elseif ($item->type->equals(MenuNodeType::siteLogo)) {
$item->link = (new Link(routeName: MenuNodeType::siteLogo->routeName()))->toArray();
} elseif ($item->type->equals(MenuNodeType::breedings)) {
$item->link = (new Link(routeName: MenuNodeType::breedings->routeName()))->toArray();
} elseif ($item->type->equals(MenuNodeType::ourBrand)) {
$item->link = (new Link(routeName: MenuNodeType::ourBrand->routeName()))->toArray();
} elseif ($item->type->equals(MenuNodeType::news)) {
$item->link = (new Link(routeName: MenuNodeType::news->routeName()))->toArray();
}
return $item;
});
$generalSettingModel->saveQuietly();
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down(): void
{
$generalSettingModel = GeneralSetting::query()->where('type', SettingsType::mainMenu)->first();
$generalSettingModel->value = collect($generalSettingModel->value)->map(function ($item) {
if (
$item->type->equals(MenuNodeType::ourCommitments)
|| $item->type->equals(MenuNodeType::siteLogo)
|| $item->type->equals(MenuNodeType::breedings)
|| $item->type->equals(MenuNodeType::ourBrand)
|| $item->type->equals(MenuNodeType::news)
) {
$item->link = (new Link(routeName: 'fo.contact.show'))->toArray();
}
return $item;
});
$generalSettingModel->saveQuietly();
}
};

View file

@ -154,6 +154,24 @@ body {
}
}
.nav-link:hover{
overflow: visible;
&::before {
position: absolute;
bottom: -0.5rem;
left: 50%;
width: 2rem;
height: 1rem;
background-image: url('@/images/header/subline-blue.svg');
background-position: left;
background-repeat: no-repeat;
background-size: contain;
content: "";
transform: translateX(-50%);
}
}
.nav-collapse {
width: 100%;
}
@ -181,6 +199,24 @@ body {
overflow: hidden;
}
}
.nav-link:hover{
overflow: visible;
&::before {
position: absolute;
bottom: -0.5rem;
left: 50%;
width: 2rem;
height: 1rem;
background-image: url('@/images/header/subline-blue.svg');
background-position: left;
background-repeat: no-repeat;
background-size: contain;
content: "";
transform: translateX(-50%);
}
}
}
}

View file

@ -9,6 +9,7 @@
<div class="container">
<div class="row">
<div class="col">
{{-- FIXME: wait evolution (integration) --}}
<h1 class="f-intro-head-h-base text-center">{{ __('index commitments') }}</h1>
</div>
</div>