--- /dev/null
+<?php
+
+namespace App\Models\Badges;
+
+use App\Fields\BadgeIssuer;
+use Cubist\Backpack\Magic\Fields\Files;
+use Cubist\Backpack\Magic\Fields\Text;
+use Cubist\Backpack\Magic\Fields\Textarea;
+
+class BadgeClass extends Base
+{
+ protected $table = 'badges_class';
+ protected $_options = ['name' => 'badge-class',
+ 'singular' => 'badge',
+ 'plural' => 'badges'];
+
+ protected static $_permissionBase = 'badge-class';
+
+ public function setFields()
+ {
+ parent::setFields();
+ $this->addField('issuer', BadgeIssuer::class, __('Émetteur'), ['column' => true]);
+ $this->addField('name', Text::class, __('Nom du certificat'), ['column' => true]);
+ $this->addField('area', Text::class, __('Domaine de formation'));
+ $this->addField('description', Textarea::class, __('Description du certificat'), ['hint' => __('Description de la formation. Sera intégré dans les métadonnées du certificat, mais invisible dans l\'image')]);
+ $this->addField('template', Files::class, __('Template du badge'));
+ }
+}
--- /dev/null
+<?php
+
+namespace App\Models\Badges;
+
+use App\Models\Base\ToolboxModel;
+use Cubist\Backpack\Magic\Fields\HiddenVisible;
+use hollodotme\FastCGI\SocketConnections\Defaults;
+
+class Base extends ToolboxModel
+{
+ protected $_enableTrackNonDefaultValues = false;
+ protected $_enableBulk = false;
+ protected $_enableRevisions = false;
+
+ /**
+ * @throws \Exception
+ */
+ public function setFields()
+ {
+ parent::setFields();
+ $this->addField('uid', HiddenVisible::class, __('UID'), ['column' => true, 'unique' => true]);
+ $this->addOwnerField();
+ }
+
+ public function onSaving(): bool
+ {
+ if (!$this->uid) {
+ $this->uid = substr(md5(uniqid()), 0, 12);
+ }
+ return parent::onSaving();
+ }
+
+}
--- /dev/null
+<?php
+
+namespace App\Models\Badges;
+
+use Cubist\Backpack\Magic\Fields\Images;
+use Cubist\Backpack\Magic\Fields\Text;
+use Cubist\Backpack\Magic\Fields\URL;
+
+class Issuer extends Base
+{
+ protected $table = 'badges_issuer';
+ protected $_options = ['name' => 'badge-issuer',
+ 'singular' => 'issuer',
+ 'plural' => 'issuers'];
+
+ protected static $_permissionBase = 'badge-issuer';
+
+ public function setFields()
+ {
+ parent::setFields();
+
+ $this->addField('name', Text::class, __('Nom de l\'émetteur'), ['column' => true]);
+ $this->addField('url', URL::class, __('URL'));
+ $this->addField('logo', Images::class, __('Logo'));
+
+
+ }
+}
});
</script>
@endpush
-@if(config('app.env') !== 'ysl')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('dashboard') }}"><i
- class='nav-icon la la-dashboard'></i>{{ trans('backpack::base.dashboard') }}
- </a></li>
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('tasks') }}"><i
- class='nav-icon la la-bell'></i>{{ __('Notifications') }}
- </a></li>
+<li class="nav-item"><a class="nav-link" href="{{ backpack_url('dashboard') }}"><i
+ class='nav-icon la la-dashboard'></i>{{ trans('backpack::base.dashboard') }}
+ </a></li>
+<li class="nav-item"><a class="nav-link" href="{{ backpack_url('tasks') }}"><i
+ class='nav-icon la la-bell'></i>{{ __('Notifications') }}
+ </a></li>
- @can('files:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('file') }}"><i
- class='nav-icon las la-cloud'></i>{{ __('Partage de fichiers') }}
- </a></li>
- @endcan
- @canany(['quiz:read','quiztranslation:read','elearning_media:read'])
- <li {!! sidebarState('elearning',true) !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
- class='nav-icon la la-chalkboard-teacher'></i>{{__('e-Learning')}}</a>
- <ul class='nav-dropdown-items'>
- @can('quiz:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('quiz') }}"><i
- class="la la-question nav-icon"></i> {{__('Quiz')}}</a></li>
- @endcan
- @can('quiz-theme:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('quiz-theme') }}"><i
- class="la la-palette nav-icon"></i> {{__('Thèmes')}}</a></li>
- @endcan
+@can('files:read')
+ <li class="nav-item"><a class="nav-link" href="{{ backpack_url('file') }}"><i
+ class='nav-icon las la-cloud'></i>{{ __('Partage de fichiers') }}
+ </a></li>
+@endcan
+
+@canany(['quiz:read','quiztranslation:read','elearning_media:read','badge-issuer:read','badge-assertion:read','badge-class:read'])
+ <li {!! sidebarState('elearning',true) !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
+ class='nav-icon la la-chalkboard-teacher'></i>{{__('e-Learning')}}</a>
+ <ul class='nav-dropdown-items'>
+ @can('quiz:read')
+ <li class="nav-item"><a class="nav-link" href="{{ backpack_url('quiz') }}"><i
+ class="la la-question nav-icon"></i> {{__('Quiz')}}</a></li>
+ @endcan
+ @can('quiz-theme:read')
+ <li class="nav-item"><a class="nav-link" href="{{ backpack_url('quiz-theme') }}"><i
+ class="la la-palette nav-icon"></i> {{__('Thèmes')}}</a></li>
+ @endcan
+ <li class="nav-divider"></li>
+ @can('elearning-media:read')
+ <li class="nav-item"><a class="nav-link" href="{{ backpack_url('elearning-media') }}"><i
+ class="la la-photo-video nav-icon"></i> {{__('Media')}}</a></li>
+ @endcan
+ @can('elearning-package:read')
+ <li class="nav-item"><a class="nav-link" href="{{ backpack_url('elearning-package') }}"><i
+ class="la la-cubes nav-icon"></i> {{__('Package')}}</a></li>
+ @endcan
+
+ @can('quiztranslation:read')
+ <li class="nav-item"><a class="nav-link" href="{{ backpack_url('elearning-translate') }}"><i
+ class="la la-language nav-icon"></i> {{__('Traductions')}}</a></li>
+ @endcan
+ @canany(['badge-issuer:read','badge-assertion:read','badge-class:read'])
<li class="nav-divider"></li>
- @can('elearning-media:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('elearning-media') }}"><i
- class="la la-photo-video nav-icon"></i> {{__('Media')}}</a></li>
+ @can('badge-class:read')
+ <li class="nav-item"><a class="nav-link" href="{{ backpack_url('badge-class') }}"><i
+ class="las la-certificate nav-icon"></i> {{__('Badges')}}</a></li>
@endcan
- @can('elearning-package:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('elearning-package') }}"><i
- class="la la-cubes nav-icon"></i> {{__('Package')}}</a></li>
+ @can('badge-issuer:read')
+ <li class="nav-item"><a class="nav-link" href="{{ backpack_url('badge-issuer') }}"><i
+ class="las la-university nav-icon"></i> {{__('Emetteurs')}}</a></li>
@endcan
+ @endcanany
+ </ul>
+ </li>
+@endcanany
- @can('quiztranslation:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('elearning-translate') }}"><i
- class="la la-language nav-icon"></i> {{__('Traductions')}}</a></li>
- @endcan
- </ul>
- </li>
- @endcanany
-@endif
@canany(['fluidbook-quote:read','signature:read','fluidbook-theme:read','fluidbook-iconset:read','fluibook-translate:write','fluidbook-publication:read'])
<li {!! sidebarState('fluidbook',true) !!}><a class='nav-link nav-dropdown-toggle' href='#'><i