]> _ Git - fluidbook-toolbox.git/commitdiff
wip #6571 @2
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 14 Dec 2023 14:54:25 +0000 (15:54 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 14 Dec 2023 14:54:25 +0000 (15:54 +0100)
.env.alpha
.env.dev
.env.prod
app/Fields/FluidbookExtranetTask.php [new file with mode: 0644]
app/Http/Controllers/Admin/Operations/FluidbookPublication/InvoiceOperation.php [new file with mode: 0644]
app/Models/FluidbookPublication.php
config/database.php
resources/views/vendor/backpack/crud/buttons/fluidbook_publication/create_us.blade.php
resources/views/vendor/backpack/crud/buttons/fluidbook_publication/invoice.blade.php [new file with mode: 0644]

index 34cb41bccddcfb179902382256ccdcfb02edb20f..f6c4d4506a0d34cce2a2d86f5bb88553c12f5955 100644 (file)
@@ -25,6 +25,7 @@ DB_USERNAME=root
 DB_PASSWORD=9xHw8nyRuphyTvqC
 
 DB_USER_DATABASE=extranet_users
+DB_EXTRANET_DATABASE=extranet_clean
 
 BROADCAST_DRIVER=log
 CACHE_DRIVER=redis
index c863c4a268355c6a8cf89989b78f3bf8589e8572..317e1cf0cbd1c77cbd4536f30fb1f9cbe1d8378c 100644 (file)
--- a/.env.dev
+++ b/.env.dev
@@ -25,6 +25,7 @@ DB_USERNAME=root
 DB_PASSWORD=9xHw8nyRuphyTvqC
 
 DB_USER_DATABASE=extranet_users
+DB_EXTRANET_DATABASE=extranet_clean
 
 BROADCAST_DRIVER=log
 CACHE_DRIVER=redis
index 0257c08d39dfd7d0822b1608a77963c5d8e8ac94..8d0ca4017174e9e94191c5ec4a43d24ada08da4d 100644 (file)
--- a/.env.prod
+++ b/.env.prod
@@ -25,6 +25,7 @@ DB_USERNAME=root
 DB_PASSWORD=9xHw8nyRuphyTvqC
 
 DB_USER_DATABASE=extranet_users
+DB_EXTRANET_DATABASE=extranet_clean
 
 BROADCAST_DRIVER=log
 CACHE_DRIVER=redis
diff --git a/app/Fields/FluidbookExtranetTask.php b/app/Fields/FluidbookExtranetTask.php
new file mode 100644 (file)
index 0000000..4ab046e
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+
+namespace App\Fields;
+
+use Cubist\Backpack\Magic\Fields\SelectFromArray;
+use Illuminate\Support\Facades\DB;
+
+class FluidbookExtranetTask extends SelectFromArray
+{
+    public function getOptions()
+    {
+        $res = [];
+        $projects = static::_getProjects();
+        $projectTasks = static::_getTasks();
+
+        foreach ($projectTasks as $project => $tasks) {
+            if(!isset($projects[$project])){
+                continue;
+            }
+            $t = [];
+            foreach ($tasks as $id => $task) {
+                $t[$id] = $task->nom;
+            }
+         //   $res['project_' . $project] = ["text" => $projects[$project]->nom, 'children' => $t];
+        }
+
+        return $res;
+    }
+
+    protected static function _getProjects()
+    {
+        $projects = [];
+        foreach (DB::connection('extranet')->table('projets')->orderBy('projet_id', 'DESC')->get()->all() as $project) {
+            $projects[$project->projet_id] = $project;
+        }
+
+        return $projects;
+    }
+
+    protected static function _getTasks()
+    {
+        $tasks = [];
+        foreach (DB::connection('extranet')->table('taches')->orderBy('tache_id', 'ASC')->get()->all() as $task) {
+            if (!isset($tasks[$task->projet])) {
+                $tasks[$task->projet] = [];
+            }
+            $tasks[$task->projet][$task->tache_id] = $task;
+        }
+        return $tasks;
+    }
+}
diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/InvoiceOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/InvoiceOperation.php
new file mode 100644 (file)
index 0000000..658a830
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Http\Controllers\Admin\Operations\FluidbookPublication;
+
+use Illuminate\Support\Facades\Route;
+
+trait InvoiceOperation
+{
+    protected function setupInvoiceRoutes($segment, $routeName, $controller)
+    {
+        Route::match(['get'], $segment . '/{id}/invoice', $controller . '@invoiceItem');
+    }
+
+    protected function setupInvoiceDefaults()
+    {
+        $this->crud->addButtonFromView('line', 'invoice', 'fluidbook_publication.invoice', 'end');
+    }
+
+    protected function invoiceItem($id)
+    {
+
+    }
+}
index d1a48db2347e57fe774b6583310870f67b0e3637..ebee1962baaeeec77123e71c44cf0d4438077e9d 100644 (file)
@@ -6,6 +6,7 @@ namespace App\Models;
 use App\Console\Commands\WorkshopMigration;
 use App\Fields\FluidbookChapters;
 use App\Fields\FluidbookComposition;
+use App\Fields\FluidbookExtranetTask;
 use App\Fields\FluidbookLocale;
 use App\Fields\FluidbookProjectManager;
 use App\Fields\FluidbookStatus;
@@ -24,6 +25,7 @@ use App\Http\Controllers\Admin\Operations\FluidbookPublication\CreateOperation;
 use App\Http\Controllers\Admin\Operations\FluidbookPublication\DeletefbOperation;
 use App\Http\Controllers\Admin\Operations\FluidbookPublication\DownloadOperation;
 use App\Http\Controllers\Admin\Operations\FluidbookPublication\EditOperation;
+use App\Http\Controllers\Admin\Operations\FluidbookPublication\InvoiceOperation;
 use App\Http\Controllers\Admin\Operations\FluidbookPublication\LinksOperation;
 use App\Http\Controllers\Admin\Operations\FluidbookPublication\PreviewOperation;
 use App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\BastideOperation;
@@ -100,6 +102,7 @@ class FluidbookPublication extends ToolboxStatusModel
         EditOperation::class,
         ChangeownerOperation::class,
         ChangestatusOperation::class,
+        InvoiceOperation::class,
         // Services
         SocialImageOperation::class,
         ExportPdfOperation::class,
@@ -131,9 +134,9 @@ class FluidbookPublication extends ToolboxStatusModel
         $this->addField('hash', Hidden::class);
         $this->addField('cid', Hidden::class);
 
-
-        $this->addField('extranet_task', Hidden::class, __('Tâche de l\'extranet'));
         $this->addField('export_data', Hidden::class, __('Paramètres d\'export'));
+
+
         // Composed fields
         $composed = [
             'c_title' => [
@@ -196,13 +199,18 @@ class FluidbookPublication extends ToolboxStatusModel
             ]
         );
 
+        $this->addField('extranet_task', FluidbookExtranetTask::class, __('Tâche de l\'extranet'), [
+            'can' => 'fluidbook-publication:admin',
+            'when' => ['status' => 3]
+        ]);
+
         $this->addField('project_manager', FluidbookProjectManager::class, __('Chef de projet'), [
             'column' => true,
             'filter' => true,
             'searchLogic' => false,
             'can' => 'fluidbook-publication:admin',
         ]);
-
+        
         $this->addField('section_composition', FormBigSection::class, __('Composition'));
         $this->addField('composition_fluidbook', Checkbox::class, __('Utiliser la composition d\'un autre fluidbook'), ['default' => false]);
         $this->addField('composition_fluidbook_id', FluidbookV3ID::class, __('Utiliser la composition d\'un autre fluidbook'), ['excluded_options' => $this->id, 'when' => ['composition_fluidbook' => 1]]);
index 39b0e39529b0430fabb6ecfe1b95291979ef380e..6a337a16e2da0e01033d227cbd5c8722671c9d98 100644 (file)
@@ -103,6 +103,26 @@ return [
             ]) : [],
         ],
 
+        'extranet' => [
+            'driver' => 'mysql',
+            'url' => env('DATABASE_URL'),
+            'host' => env('DB_HOST', '127.0.0.1'),
+            'port' => env('DB_PORT', '3306'),
+            'database' => env('DB_EXTRANET_DATABASE', 'extranet_clean'),
+            'username' => env('DB_USERNAME', 'forge'),
+            'password' => env('DB_PASSWORD', ''),
+            'unix_socket' => env('DB_SOCKET', ''),
+            'charset' => 'utf8mb4',
+            'collation' => 'utf8mb4_unicode_ci',
+            'prefix' => '',
+            'prefix_indexes' => true,
+            'strict' => true,
+            'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',
+            'options' => extension_loaded('pdo_mysql') ? array_filter([
+                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
+            ]) : [],
+        ],
+
 
         'pgsql' => [
             'driver' => 'pgsql',
index e7968f767a7168f53c1460ad16818f000799550b..8545f011bd4d7dc337f48f22392e235f3b93cffa 100644 (file)
@@ -1,3 +1,4 @@
 @if ($crud->hasAccess('create'))
-       <a href="{{ url($crud->route.'/create/US') }}" class="btn btn-primary" data-style="zoom-in"><span class="ladda-label"><i class="las la-flag-usa"></i> {{__('Créer une publication hébergée aux USA')}}</span></a>
+    <a href="{{ url($crud->route.'/create/US') }}" class="btn btn-primary" data-style="zoom-in"><span
+            class="ladda-label"><i class="las la-flag-usa"></i> {{__('Créer une publication hébergée aux USA')}}</span></a>
 @endif
diff --git a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/invoice.blade.php b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/invoice.blade.php
new file mode 100644 (file)
index 0000000..c33e5af
--- /dev/null
@@ -0,0 +1,8 @@
+{{-- __('!! Paramètres des fluidbooks') --}}
+@if($entry->status<3 && $entry->status>0 && $entry->canAdmin(backpack_user()))
+
+    <a class="btn btn-sm btn-link" href="{{ route('stats', ['fluidbook_id' => $entry->id, 'hash' => $entry->hash]) }}"
+       data-toggle="tooltip"
+       title="{{__('Facturer')}}"><i class="las la-money-check-alt"></i> {{__('Facturer')}}
+    </a>
+@endif