Compare commits
6 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3ef0b3c144 | ||
|
|
22f5e907d0 | ||
|
|
faa9f2ce33 | ||
|
|
cf8057d351 | ||
|
|
67d7e54c1c | ||
|
|
c51bf890b6 |
6 changed files with 2378 additions and 12583 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -25,7 +25,7 @@ public/uploads/*
|
|||
|
||||
/storage/*.key
|
||||
/vendor
|
||||
.env
|
||||
.env*
|
||||
.phpunit.result.cache
|
||||
Homestead.json
|
||||
Homestead.yaml
|
||||
|
|
@ -34,4 +34,4 @@ yarn-error.log
|
|||
/.idea
|
||||
/.vscode
|
||||
*.sqlite*
|
||||
auth.json
|
||||
auth.json
|
||||
|
|
|
|||
4
.gitmodules
vendored
4
.gitmodules
vendored
|
|
@ -1,3 +1,3 @@
|
|||
[submodule "clients/Api"]
|
||||
path = clients/Api
|
||||
url = git@gitlab.com:service-web-lab/dam-client.git
|
||||
path = clients/Api
|
||||
url = ../dam-client.git
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ use App\Models\Marque;
|
|||
use App\Models\Media;
|
||||
use App\Models\Variante;
|
||||
use App\Models\Format;
|
||||
use Illuminate\Contracts\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
|
@ -38,37 +39,42 @@ class DossierController extends Controller
|
|||
$select = ['id', 'libelle', 'system'];
|
||||
|
||||
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Dossier> Dossiers publiques */
|
||||
$publicFolders = Dossier::whereHas('sujet', function ($q) use ($request) {
|
||||
$q->where('codeSujet', $request->sujet_id);
|
||||
})->whereIsPrivate(false)->whereNull('parent_id')->select($select)->get();
|
||||
$publicFolders = Dossier::query()
|
||||
->whereHas('sujet', fn (Builder $q) => $q->where('codeSujet', $request->input('sujet_id')))
|
||||
->where('is_private', false)
|
||||
->whereDoesntHave('dossierParent')
|
||||
->select($select)->get();
|
||||
|
||||
|
||||
// On récupère les dossiers privés.
|
||||
// * On récupère les dossiers privés.
|
||||
/** @var \Illuminate\Database\Eloquent\Builder */
|
||||
$privateQuery = Dossier::whereHas('sujet', function ($q) use ($request) {
|
||||
$q->where('codeSujet', $request->sujet_id);
|
||||
})->select($select)->whereIsPrivate(true);
|
||||
$privateQuery = Dossier::query()
|
||||
->whereHas('sujet', fn (Builder $q) => $q->where('codeSujet', $request->input('sujet_id')))
|
||||
->where('is_private', true)
|
||||
->select($select);
|
||||
|
||||
// If not admin, get using brands.
|
||||
// ? Is admin ?
|
||||
if (!$user->hasRole(config('roles.const.ADMIN'))) {
|
||||
// * If not admin, get using brands.
|
||||
/** @var \Illuminate\Database\Eloquent\Collection<integer> Codes marques */
|
||||
$marques = $user->marques()->pluck('codMarq');
|
||||
$privateQuery->whereHas('marques', function ($q) use ($marques) {
|
||||
$q->whereIn('codMarq', $marques);
|
||||
});
|
||||
$privateQuery->whereHas('marques', fn (Builder $q) => $q->whereIn('codMarq', $marques));
|
||||
}
|
||||
|
||||
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Dossier> Dossiers privés */
|
||||
$privateFolders = $privateQuery->get();
|
||||
|
||||
$foldersCollection = $publicFolders->merge($privateFolders);
|
||||
$foldersCollection = $foldersCollection->sortBy('libelle', SORT_NATURAL | SORT_FLAG_CASE)
|
||||
$foldersCollection = $foldersCollection
|
||||
->sortBy('libelle', SORT_NATURAL | SORT_FLAG_CASE)
|
||||
->sortBy('favoris')->values();
|
||||
|
||||
// Ajout du dépôt de fichier pour les admin.
|
||||
// ? Is admin ?
|
||||
if ($user->hasRole(config('roles.const.ADMIN'))) {
|
||||
// * Ajout du dépôt de fichier pour les admin.
|
||||
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Dossier> Dossiers depots */
|
||||
$depotQuery = Dossier::whereNull('parent_id')
|
||||
$depotQuery = Dossier::query()
|
||||
->whereDoesntHave('dossierParent')
|
||||
->where('system', true)
|
||||
->orderBy('libelle', 'ASC')
|
||||
->get();
|
||||
|
|
@ -76,13 +82,15 @@ class DossierController extends Controller
|
|||
}
|
||||
|
||||
$folders['data'] = new NestedDossiersListResource($foldersCollection);
|
||||
$folders['racineCount'] = Media::whereSujetId($request->sujet_id)
|
||||
->whereNull('dossier_id')
|
||||
->where(function ($query) use ($user) {
|
||||
$query->where('statut', MediaStatut::public_etendu)
|
||||
$folders['racineCount'] = Media::query()
|
||||
->whereHas('sujet', fn (Builder $q) => $q->where('id', $request->input('sujet_id')))
|
||||
->whereDoesntHave('dossier')
|
||||
->where(
|
||||
fn (Builder $q) =>
|
||||
$q->where('statut', MediaStatut::public_etendu)
|
||||
->orWhere('statut', MediaStatut::public)
|
||||
->orWhere('created_by', $user->id);
|
||||
})->count();
|
||||
->orWhere('created_by', $user->id)
|
||||
)->count();
|
||||
|
||||
return response()->json($folders);
|
||||
}
|
||||
|
|
@ -99,13 +107,16 @@ class DossierController extends Controller
|
|||
$user = auth()->user();
|
||||
|
||||
$response = [];
|
||||
$response['variantes'] = Variante::where('sujet_id', $request->sujetId)->get();
|
||||
$response['variantes'] = Variante::query()
|
||||
->whereHas('sujet', fn (Builder $q) => $q->where('id', $request->input('sujetId')))
|
||||
->get();
|
||||
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Format> */
|
||||
$FormatsSujet = Format::whereHas('sujets', function ($query) use ($request) {
|
||||
$query->where('sujet_id', $request->sujetId);
|
||||
})->get();
|
||||
$FormatsSujet = Format::query()
|
||||
->whereHas('sujets', fn (Builder $q) => $q->where('sujet_id', $request->input('sujetId')))
|
||||
->get();
|
||||
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Format> */
|
||||
$FormatsSystem = Format::withoutGlobalScope('App\Scopes\SystemScope')
|
||||
$FormatsSystem = Format::query()
|
||||
->withoutGlobalScope('App\Scopes\SystemScope')
|
||||
->where('system', true)->get();
|
||||
$response['formats'] = $FormatsSujet->merge($FormatsSystem);
|
||||
|
||||
|
|
@ -131,14 +142,15 @@ class DossierController extends Controller
|
|||
$user->authorizeRoles(config('roles.const.ADMIN'));
|
||||
|
||||
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Dossier> */
|
||||
$dossiers = Dossier::whereNull('parent_id')
|
||||
->where('system', false)
|
||||
$dossiers = Dossier::query()
|
||||
->whereDoesntHave('dossierParent')
|
||||
->where('system', false)
|
||||
->orderBy('libelle', 'asc')
|
||||
->get();
|
||||
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Sujet> */
|
||||
$sujets = Sujet::where('sujet_dam', true)->get();
|
||||
$sujets = Sujet::query()->where('sujet_dam', true)->get();
|
||||
|
||||
return view('dossiers.index')->with([
|
||||
return view('dossiers.index', [
|
||||
'dossiers' => $dossiers,
|
||||
'sujets' => $sujets,
|
||||
]);
|
||||
|
|
@ -154,9 +166,13 @@ class DossierController extends Controller
|
|||
{
|
||||
if ($request->sub) {
|
||||
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Dossier> */
|
||||
$dossiers = Dossier::whereNull('parent_id')->where('system', false)
|
||||
$dossiers = Dossier::query()
|
||||
->whereDoesntHave('dossierParent')
|
||||
->where('system', false)
|
||||
->orderBy('libelle', 'asc')->get();
|
||||
return view('dossiers.create-sub')->with(['dossiers' => $dossiers]);
|
||||
return view('dossiers.create-sub', [
|
||||
'dossiers' => $dossiers
|
||||
]);
|
||||
}
|
||||
|
||||
/** @var \App\Models\User */
|
||||
|
|
@ -166,10 +182,11 @@ class DossierController extends Controller
|
|||
$marques = Marque::all();
|
||||
|
||||
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Sujet> */
|
||||
$sujets = Sujet::where('sujet_dam', true)->get();
|
||||
$sujets = Sujet::query()->where('sujet_dam', true)->get();
|
||||
|
||||
return view('dossiers.create')->with([
|
||||
'marques' => $marques, 'sujets' => $sujets
|
||||
'marques' => $marques,
|
||||
'sujets' => $sujets
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -192,19 +209,19 @@ class DossierController extends Controller
|
|||
|
||||
if ($request->sub) {
|
||||
/** @var \App\Models\Dossier */
|
||||
$parent_dossier = Dossier::findOrFail($request->parent_id);
|
||||
$parent_dossier = Dossier::query()->findOrFail($request->input('parent_id'));
|
||||
$dossier->sujet()->associate($parent_dossier->sujet);
|
||||
} else {
|
||||
$dossier->sujet()->associate($request->sujet);
|
||||
$dossier->sujet()->associate($request->input('sujet'));
|
||||
}
|
||||
|
||||
if ($dossier->saveOrFail()) {
|
||||
// ---- Les marques
|
||||
if ($request->marques) {
|
||||
$dossier->marques()->sync($request->marques);
|
||||
if ($request->input('marques')) {
|
||||
$dossier->marques()->sync($request->input('marques'));
|
||||
}
|
||||
return redirect()->route('dossier.edit', ['dossier' => $dossier])
|
||||
->with('success', 'Le dossier a été enregistré');
|
||||
->with('success', 'Le dossier a été enregistré');
|
||||
}
|
||||
});
|
||||
return back();
|
||||
|
|
@ -228,9 +245,9 @@ class DossierController extends Controller
|
|||
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Sujet> */
|
||||
$dossierSujets = $dossier->sujets;
|
||||
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Sujet> */
|
||||
$sujets = Sujet::where('sujet_dam', true)->get();
|
||||
$sujets = Sujet::query()->where('sujet_dam', true)->get();
|
||||
|
||||
return view('dossiers.edit')->with([
|
||||
return view('dossiers.edit', [
|
||||
'dossier' => $dossier,
|
||||
'dossierMarques' => $dossierMarques,
|
||||
'marques' => $marques,
|
||||
|
|
@ -261,7 +278,7 @@ class DossierController extends Controller
|
|||
$dossier->marques()->sync($request->marques);
|
||||
}
|
||||
return redirect()->route('dossier.edit', ['dossier' => $dossier])
|
||||
->with('success', 'Le dossier a été mis à jour');
|
||||
->with('success', trans('Le dossier a été mis à jour'));
|
||||
}
|
||||
});
|
||||
return back();
|
||||
|
|
@ -280,7 +297,7 @@ class DossierController extends Controller
|
|||
$user->authorizeRoles(config('roles.const.ADMIN'));
|
||||
if ($dossier->deleteOrFail()) {
|
||||
return \response()->redirectToRoute('dossier.index')
|
||||
->with('warning', trans('Le dossier à été supprimé'));
|
||||
->with('warning', trans('Le dossier à été supprimé'));
|
||||
}
|
||||
return back();
|
||||
}
|
||||
|
|
|
|||
819
composer.lock
generated
819
composer.lock
generated
File diff suppressed because it is too large
Load diff
14032
package-lock.json
generated
14032
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
"name": "srcs",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "npm run development",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue