Przeglądaj źródła

courses - Aggiunto campo discipline + visualizzazione disciplina in corsi e area utente

ferrari 1 miesiąc temu
rodzic
commit
52f18ccd0a

+ 10 - 1
app/Http/Livewire/Course.php

@@ -15,6 +15,7 @@ class Course extends Component
         $course_frequency_id,
         $course_level_id,
         // $causal_id,
+        $discipline_id,
         $category_id,
         // $sub_causal_id,
         $max_members,
@@ -28,6 +29,7 @@ class Course extends Component
         $type,
         $date_from, $date_to;
 
+    public $disciplines = array();
     public $categories = array();
 
     public $selectedYear = '';
@@ -55,6 +57,7 @@ class Course extends Component
     // public $selectedMonthList = [];
 
     protected $rules = [
+        'discipline_id' => 'required',
         'name' => 'required',
         'course_frequency_id' => 'required',
         'course_level_id' => 'required',
@@ -70,6 +73,7 @@ class Course extends Component
     ];
 
     protected $messages = [
+        'discipline_id.required' => 'Seleziona una disciplina',
         'name.required' => 'Il nome è obbligatorio',
         'subscription_price.required' => 'Deve essere maggionre di zero',
         'subscription_price.not_in' => 'Deve essere maggionre di zero',
@@ -87,6 +91,7 @@ class Course extends Component
         $this->course_duration_id = null;
         $this->course_frequency_id = null;
         $this->course_level_id = null;
+        $this->discipline_id = null;
         $this->category_id = null;
         // $this->causal_id = null;
         // $this->sub_causal_id = null;
@@ -123,8 +128,9 @@ class Course extends Component
         if(Auth::user()->level != env('LEVEL_ADMIN', 0))
             return redirect()->to('/dashboard');
 
-        $this->categories = array();
+        $this->disciplines = \App\Models\Discipline::select('id', 'name')->where('enabled', true)->orderBy('name')->get();
 
+        $this->categories = array();
         $this->getCategories(\App\Models\Category::select('id', 'name')->where('parent_id', null)->orderBy('name')->get(), 0);
 
         for($i=date("Y"); $i<=date("Y") + 1; $i++)
@@ -244,6 +250,7 @@ class Course extends Component
                 $course->course_level_id = $this->course_level_id;
                 $course->date_from = $this->date_from;
                 $course->date_to = $this->date_to;
+                $course->discipline_id = $this->discipline_id;
                 $course->category_id = $this->category_id;
                 // $course->causal_id = $this->causal_id;
                 // $course->sub_causal_id = $this->sub_causal_id;
@@ -419,6 +426,7 @@ class Course extends Component
                 $this->course_level_id = $course->course_level_id;
                 $this->date_from = $course->date_from;
                 $this->date_to = $course->date_to;
+                $this->discipline_id = $course->discipline_id;
                 $this->category_id = $course->category_id;
                 // $this->causal_id = $course->causal_id;
                 // $this->sub_causal_id = $course->sub_causal_id;
@@ -495,6 +503,7 @@ class Course extends Component
                     'course_level_id' => $this->course_level_id,
                     'date_from' => $this->date_from,
                     'date_to' => $this->date_to,
+                    'discipline_id' => $this->discipline_id,
                     'category_id' => $this->category_id,
                     // 'causal_id' => $this->causal_id,
                     // 'sub_causal_id' => $this->sub_causal_id,

+ 6 - 0
app/Models/Course.php

@@ -11,6 +11,7 @@ class Course extends Model
 
     protected $fillable = [
         'parent_id',
+        'discipline_id',
         'name',
         'course_type_id',
         'causal_id',
@@ -40,6 +41,11 @@ class Course extends Model
         return $this->belongsTo(Course::class);
     }
 
+    public function discipline()
+    {
+        return $this->belongsTo(Discipline::class, 'discipline_id');
+    }
+
     public function type()
     {
         return $this->belongsTo(CourseType::class, 'course_type_id');

+ 32 - 0
database/migrations/2026_03_13_114850_add_discipline_to_courses.php

@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+use App\Database\Migrations\TenantMigration;
+
+return new class extends TenantMigration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('courses', function (Blueprint $table) {
+            $table->unsignedBigInteger('discipline_id')->nullable();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('courses', function (Blueprint $table) {
+            $table->unsignedBigInteger('discipline_id')->nullable();
+        });
+    }
+};

+ 19 - 1
resources/views/livewire/course.blade.php

@@ -50,6 +50,7 @@
                         <th  style="text-align:center" scope="col"><input type="checkbox" class="checkAll"></th>
                         <th scope="col">Anno</th>
                         <th scope="col">Tipo</th>
+                        <th scope="col">Disciplina</th>
                         <th scope="col">Nome</th>
                         <th scope="col">Livello</th>
                         <th scope="col">Frequenza</th>
@@ -63,6 +64,7 @@
                             <td style="text-align:center"><input type="checkbox" class="chkCourse" name="{{$record->id}}"></td>
                             <td>{{$record->year}}</td>
                             <td>{{$record->type == 'standard' ? 'Singolo' : 'Personalizzato'}}</td>
+                            <td>{{$record->discipline?->name ?? '-'}}</td>
                             <td>{{$record->name}}</td>
                             <td>{{$record->level->name ?? ""}}</td>
                             <td>{{$record->frequency->name ?? ""}}</td>
@@ -103,6 +105,22 @@
                                 &nbsp;&nbsp;&nbsp;
                                 <input type="radio" name="chkType" value="custom" wire:model="type">&nbsp;Personalizzato
                             </div>
+
+                            <div class="col-6 mt-2">
+                                <div class="form--item">
+                                    <label for="inputName" class="form-label">Disciplina</label>
+                                    <select class="form-select form-select-lg me-1 @error('discipline_id') is-invalid @enderror" wire:model="discipline_id">
+                                        <option value="">
+                                        @foreach($disciplines as $discipline)
+                                            <option value="{{$discipline["id"]}}">{{$discipline["name"]}}
+                                        @endforeach
+                                    </select>
+                                    @error('discipline_id')
+                                        <div class="invalid-feedback">{{ $message }}</div>
+                                    @enderror
+                                </div>
+                            </div>
+
                             <div class="col-6 mt-2">
                                 <div class="form--item">
                                     <label for="inputName" class="form-label">Nome</label>
@@ -283,7 +301,7 @@
                                     @enderror
                                 </div>
                             </div>
-                            <div class="col-6"></div>
+
                             <div class="col-6 mt-2">
                                 @foreach($prices as $idP => $p)
                                     <div class="row mt-2 ">

+ 2 - 0
resources/views/livewire/course_member_two.blade.php

@@ -17,6 +17,7 @@
         <table class="table tablesaw tableHead tablesaw-stack" id="tablesaw-350" width="100%">
             <thead>
                 <tr>
+                    <th scope="col">Disciplina</th>
                     <th scope="col">Nome</th>
                     <th scope="col">Frequenza</th>
                     <th scope="col">Livello</th>
@@ -32,6 +33,7 @@
             <tbody id="checkall-target">
                 @foreach($records as $record)
                     <tr>
+                        <td>{{$record->discipline?->name ?? '-'}}</td>
                         <td>{{$record->name}}</td>
                         <td>{{$record->frequency->name ?? ""}}</td>
                         <td>{{$record->level->name ?? ""}}</td>

+ 2 - 2
resources/views/livewire/discipline.blade.php

@@ -46,10 +46,10 @@
         </section>
 
     @else
-
+    
+        <a class="btn--ui lightGrey" href="/disciplines"><i class="fa-solid fa-arrow-left"></i></a><br><br>
         <div class="container">
 
-            <a class="btn--ui lightGrey" href="/disciplines"><i class="fa-solid fa-arrow-left"></i></a><br><br>
 
             @if (session()->has('error'))
                 <div class="alert alert-danger" role="alert">

+ 1 - 1
resources/views/livewire/member.blade.php

@@ -1275,7 +1275,7 @@
                                                             @foreach($member_courses as $member_course)
                                                                 <tr>
                                                                     <td style="width:20%;" colspan="1">
-                                                                        <b>{{$member_course->course->name}}</b><br>
+                                                                        <b>{{$member_course->course->discipline?->name ?? ''}}{{($member_course->course->discipline?->name ? ' - ' : '') . $member_course->course->name}}</b><br>
                                                                     </td>
                                                                     <td style="width:30%;">
                                                                         {{$member_course->course->level->name ?? ""}} - {{$member_course->course->frequency->name ?? ""}}