DB_PASSWORD=9xHw8nyRuphyTvqC
DB_USER_DATABASE=extranet_users
+DB_EXTRANET_DATABASE=extranet_clean
BROADCAST_DRIVER=log
CACHE_DRIVER=redis
DB_PASSWORD=9xHw8nyRuphyTvqC
DB_USER_DATABASE=extranet_users
+DB_EXTRANET_DATABASE=extranet_clean
BROADCAST_DRIVER=log
CACHE_DRIVER=redis
DB_PASSWORD=9xHw8nyRuphyTvqC
DB_USER_DATABASE=extranet_users
+DB_EXTRANET_DATABASE=extranet_clean
BROADCAST_DRIVER=log
CACHE_DRIVER=redis
--- /dev/null
+<?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;
+ }
+}
--- /dev/null
+<?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)
+ {
+
+ }
+}
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;
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;
EditOperation::class,
ChangeownerOperation::class,
ChangestatusOperation::class,
+ InvoiceOperation::class,
// Services
SocialImageOperation::class,
ExportPdfOperation::class,
$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' => [
]
);
+ $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]]);
]) : [],
],
+ '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',
@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
--- /dev/null
+{{-- __('!! 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