namespace App\Models;
use App\Fields\FluidbookExportVersion;
+ use App\Fields\FluidbookStatus;
use App\Http\Controllers\Admin\Operations\ChangeownerOperation;
+ use App\Http\Controllers\Admin\Operations\ChangestatusOperation;
use App\Http\Controllers\Admin\Operations\FluidbookCollection\DownloadOperation;
use App\Http\Controllers\Admin\Operations\FluidbookCollection\PreviewOperation;
+use App\Models\Base\ToolboxDownloadable;
use App\Models\Base\ToolboxModel;
+ use App\Models\Base\ToolboxStatusModel;
use App\Models\Traits\CheckHash;
use App\Slack\Slack;
use App\SubForms\CollectionPublication;
use Cubist\Backpack\Magic\Fields\SelectFromArray;
use Cubist\Backpack\Magic\Fields\Text;
use Cubist\Util\Files\Files;
+ use Illuminate\Database\Eloquent\Builder;
+ use Illuminate\Support\Facades\Auth;
// __('!! Collections de fluidbooks')
- class FluidbookCollection extends ToolboxModel
+ class FluidbookCollection extends ToolboxStatusModel
{
- use CheckHash;
+ use ToolboxDownloadable;
protected $table = 'fluidbook_collection';
protected $_options = ['name' => 'fluidbook-collection',
$this->addField('title', Text::class, __('Titre de la collection'), ['column' => true]);
+ $this->addField('status', FluidbookStatus::class, __('Status'), [
+ 'column' => true,
+ 'filter' => true,
+ 'non_default_tracking' => false,
+ 'allows_null' => false,
+ 'default' => 0,
+ 'searchLogic' => false,
+ ]
+ );
$this->addOwnerField();
- $this->addField('hash', Hidden::class);
+ $this->addHashField();
$this->addField('type', SelectFromArray::class, __('Type'), ['can' => 'fluidbook-collection:write', 'column' => true, 'options' => ['export' => __('Export'), 'export_multilang' => __('Export multilingue'), 'scorm_multilang' => __('SCORM multilingue')]]);
$this->addField('locale_switch', Checkbox::class, __('Permettre le changement de langue'), ['when' => ['type' => ['scorm_multilang', 'export_multilang']], 'default' => true]);
$this->addField('redirection_algorithm', SelectFromArray::class, __('Algorithme de choix de la version'),
use App\Jobs\FluidbookImagesPreprocess;
use App\Jobs\FluidbookSocialImage;
use App\Jobs\GenerateDeliveryThumbnailsPreview;
+use App\Models\Base\ToolboxDownloadable;
use App\Models\Base\ToolboxSettingsModel;
+ use App\Models\Base\ToolboxStatusModel;
use App\Models\Traits\CheckHash;
use App\Models\Traits\PublicationSettings;
use App\Models\Traits\PublicationTags;
use PublicationSettings;
use PublicationTags;
use SCORMVersionTrait;
- use CheckHash;
+ use ToolboxDownloadable;
- public static function addOwnerClause(Builder $builder)
- {
- if (null === backpack_user() || null === Auth::id()) {
- return;
- }
- if (Auth::user()->hasPermissionTo(static::$_permissionBase . ':admin')) {
- return;
- }
- if (null === static::$_ownerAttribute) {
- return;
- }
- $builder->whereIn(static::$_ownerAttribute, backpack_user()->getManagedUsers());
- if (!Auth::user()->hasPermissionTo(static::$_permissionBase . ':write')) {
- $builder->where('status', '>', 0);
- }
- }
-
public function setFields()
{
parent::setFields();