mirror of
https://github.com/Karaka-Management/oms-Surveys.git
synced 2026-01-11 07:58:41 +00:00
new datamapper mostly implemented
This commit is contained in:
parent
50e9f611e7
commit
a46f0d69d7
|
|
@ -70,7 +70,10 @@ final class BackendController extends Controller
|
|||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000801001, $request, $response));
|
||||
|
||||
$path = \str_replace('+', ' ', (string) ($request->getData('path') ?? '/'));
|
||||
$surveys = SurveyTemplateMapper::with('language', $response->getLanguage())::getByVirtualPath($path);
|
||||
$surveys = SurveyTemplateMapper::getByVirtualPath($path)
|
||||
->where('tags/title/language', $response->getLanguage())
|
||||
->where('l11n/language', $response->getLanguage())
|
||||
->execute();
|
||||
|
||||
list($collection, $parent) = CollectionMapper::getCollectionsByPath($path);
|
||||
|
||||
|
|
@ -122,7 +125,21 @@ final class BackendController extends Controller
|
|||
$view->setTemplate('/Modules/Surveys/Theme/Backend/surveys-create');
|
||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000801001, $request, $response));
|
||||
|
||||
$survey = SurveyTemplateMapper::get($request->getData('id'));
|
||||
$survey = SurveyTemplateMapper::get()
|
||||
->with('createdBy')
|
||||
->with('elements')
|
||||
->with('elements/l11n')
|
||||
->with('elements/labels')
|
||||
->with('media')
|
||||
->with('l11n')
|
||||
->with('tags')
|
||||
->with('tags/title')
|
||||
->where('id', $request->getData('id'))
|
||||
->where('tags/title/language', $response->getLanguage())
|
||||
->where('l11n/language', $response->getLanguage())
|
||||
->where('elements/l11n/language', $response->getLanguage())
|
||||
->where('elements/labels/language', $response->getLanguage())
|
||||
->execute();
|
||||
$view->addData('survey', $survey);
|
||||
|
||||
return $view;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace Modules\Surveys\Models;
|
||||
|
||||
use phpOMS\DataStorage\Database\DataMapperAbstract;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
|
||||
/**
|
||||
* Tag mapper class.
|
||||
|
|
@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
|
|||
* @link https://orange-management.org
|
||||
* @since 1.0.0
|
||||
*/
|
||||
final class SurveyTemplateElementL11nMapper extends DataMapperAbstract
|
||||
final class SurveyTemplateElementL11nMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
|
|
@ -32,7 +32,7 @@ final class SurveyTemplateElementL11nMapper extends DataMapperAbstract
|
|||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static array $columns = [
|
||||
public const COLUMNS = [
|
||||
'survey_template_element_l11n_id' => ['name' => 'survey_template_element_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'survey_template_element_l11n_text' => ['name' => 'survey_template_element_l11n_text', 'type' => 'string', 'internal' => 'text', 'autocomplete' => true],
|
||||
'survey_template_element_l11n_description' => ['name' => 'survey_template_element_l11n_description', 'type' => 'string', 'internal' => 'description'],
|
||||
|
|
@ -47,7 +47,7 @@ final class SurveyTemplateElementL11nMapper extends DataMapperAbstract
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static string $table = 'survey_template_element_l11n';
|
||||
public const TABLE = 'survey_template_element_l11n';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
|
|
@ -55,5 +55,5 @@ final class SurveyTemplateElementL11nMapper extends DataMapperAbstract
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static string $primaryField = 'survey_template_element_l11n_id';
|
||||
public const PRIMARYFIELD ='survey_template_element_l11n_id';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace Modules\Surveys\Models;
|
||||
|
||||
use phpOMS\DataStorage\Database\DataMapperAbstract;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
|
||||
/**
|
||||
* Mapper class.
|
||||
|
|
@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
|
|||
* @link https://orange-management.org
|
||||
* @since 1.0.0
|
||||
*/
|
||||
final class SurveyTemplateElementMapper extends DataMapperAbstract
|
||||
final class SurveyTemplateElementMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
|
|
@ -32,7 +32,7 @@ final class SurveyTemplateElementMapper extends DataMapperAbstract
|
|||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static array $columns = [
|
||||
public const COLUMNS = [
|
||||
'survey_template_element_id' => ['name' => 'survey_template_element_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'survey_template_element_type' => ['name' => 'survey_template_element_type', 'type' => 'int', 'internal' => 'type'],
|
||||
'survey_template_element_order' => ['name' => 'survey_template_element_order', 'type' => 'int', 'internal' => 'order'],
|
||||
|
|
@ -47,19 +47,17 @@ final class SurveyTemplateElementMapper extends DataMapperAbstract
|
|||
* @var array<string, array{mapper:string, table:string, self?:?string, external?:?string, column?:string}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static array $hasMany = [
|
||||
public const HAS_MANY = [
|
||||
'l11n' => [
|
||||
'mapper' => SurveyTemplateElementL11nMapper::class,
|
||||
'table' => 'survey_template_element_l11n',
|
||||
'self' => 'survey_template_element_l11n_element',
|
||||
'conditional' => true,
|
||||
'external' => null,
|
||||
],
|
||||
'labels' => [
|
||||
'mapper' => SurveyTemplateLabelL11nMapper::class,
|
||||
'table' => 'survey_template_element_label_l11n',
|
||||
'self' => 'survey_template_element_label_l11n_element',
|
||||
'conditional' => true,
|
||||
'external' => null,
|
||||
],
|
||||
];
|
||||
|
|
@ -70,7 +68,7 @@ final class SurveyTemplateElementMapper extends DataMapperAbstract
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static string $table = 'survey_template_element';
|
||||
public const TABLE = 'survey_template_element';
|
||||
|
||||
/**
|
||||
* Created at.
|
||||
|
|
@ -78,7 +76,7 @@ final class SurveyTemplateElementMapper extends DataMapperAbstract
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static string $createdAt = 'survey_template_element_created_at';
|
||||
public const CREATED_AT = 'survey_template_element_created_at';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
|
|
@ -86,5 +84,5 @@ final class SurveyTemplateElementMapper extends DataMapperAbstract
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static string $primaryField = 'survey_template_element_id';
|
||||
public const PRIMARYFIELD ='survey_template_element_id';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace Modules\Surveys\Models;
|
||||
|
||||
use phpOMS\DataStorage\Database\DataMapperAbstract;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
|
||||
/**
|
||||
* Tag mapper class.
|
||||
|
|
@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
|
|||
* @link https://orange-management.org
|
||||
* @since 1.0.0
|
||||
*/
|
||||
final class SurveyTemplateL11nMapper extends DataMapperAbstract
|
||||
final class SurveyTemplateL11nMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
|
|
@ -32,7 +32,7 @@ final class SurveyTemplateL11nMapper extends DataMapperAbstract
|
|||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static array $columns = [
|
||||
public const COLUMNS = [
|
||||
'survey_template_l11n_id' => ['name' => 'survey_template_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'survey_template_l11n_title' => ['name' => 'survey_template_l11n_title', 'type' => 'string', 'internal' => 'title', 'autocomplete' => true],
|
||||
'survey_template_l11n_description' => ['name' => 'survey_template_l11n_description', 'type' => 'string', 'internal' => 'description'],
|
||||
|
|
@ -47,7 +47,7 @@ final class SurveyTemplateL11nMapper extends DataMapperAbstract
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static string $table = 'survey_template_l11n';
|
||||
public const TABLE = 'survey_template_l11n';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
|
|
@ -55,5 +55,5 @@ final class SurveyTemplateL11nMapper extends DataMapperAbstract
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static string $primaryField = 'survey_template_l11n_id';
|
||||
public const PRIMARYFIELD ='survey_template_l11n_id';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace Modules\Surveys\Models;
|
||||
|
||||
use phpOMS\DataStorage\Database\DataMapperAbstract;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
|
||||
/**
|
||||
* Tag mapper class.
|
||||
|
|
@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
|
|||
* @link https://orange-management.org
|
||||
* @since 1.0.0
|
||||
*/
|
||||
final class SurveyTemplateLabelL11nMapper extends DataMapperAbstract
|
||||
final class SurveyTemplateLabelL11nMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
|
|
@ -32,7 +32,7 @@ final class SurveyTemplateLabelL11nMapper extends DataMapperAbstract
|
|||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static array $columns = [
|
||||
public const COLUMNS = [
|
||||
'survey_template_element_label_l11n_id' => ['name' => 'survey_template_element_label_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'survey_template_element_label_l11n_title' => ['name' => 'survey_template_element_label_l11n_title', 'type' => 'string', 'internal' => 'title', 'autocomplete' => true],
|
||||
'survey_template_element_label_l11n_element' => ['name' => 'survey_template_element_label_l11n_element', 'type' => 'int', 'internal' => 'element'],
|
||||
|
|
@ -46,7 +46,7 @@ final class SurveyTemplateLabelL11nMapper extends DataMapperAbstract
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static string $table = 'survey_template_element_label_l11n';
|
||||
public const TABLE = 'survey_template_element_label_l11n';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
|
|
@ -54,5 +54,5 @@ final class SurveyTemplateLabelL11nMapper extends DataMapperAbstract
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static string $primaryField = 'survey_template_element_label_l11n_id';
|
||||
public const PRIMARYFIELD ='survey_template_element_label_l11n_id';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ namespace Modules\Surveys\Models;
|
|||
use Modules\Admin\Models\AccountMapper;
|
||||
use Modules\Media\Models\MediaMapper;
|
||||
use Modules\Tag\Models\TagMapper;
|
||||
use phpOMS\DataStorage\Database\DataMapperAbstract;
|
||||
use phpOMS\DataStorage\Database\RelationType;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\DataStorage\Database\Mapper\ReadMapper;
|
||||
|
||||
/**
|
||||
* Mapper class.
|
||||
|
|
@ -28,7 +28,7 @@ use phpOMS\DataStorage\Database\RelationType;
|
|||
* @link https://orange-management.org
|
||||
* @since 1.0.0
|
||||
*/
|
||||
final class SurveyTemplateMapper extends DataMapperAbstract
|
||||
final class SurveyTemplateMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
|
|
@ -36,7 +36,7 @@ final class SurveyTemplateMapper extends DataMapperAbstract
|
|||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static array $columns = [
|
||||
public const COLUMNS = [
|
||||
'survey_template_id' => ['name' => 'survey_template_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'survey_template_status' => ['name' => 'survey_template_status', 'type' => 'int', 'internal' => 'status'],
|
||||
'survey_template_public_result' => ['name' => 'survey_template_public_result', 'type' => 'bool', 'internal' => 'hasPublicResult'],
|
||||
|
|
@ -53,7 +53,7 @@ final class SurveyTemplateMapper extends DataMapperAbstract
|
|||
* @var array<string, array{mapper:string, table:string, self?:?string, external?:?string, column?:string}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static array $hasMany = [
|
||||
public const HAS_MANY = [
|
||||
'elements' => [
|
||||
'mapper' => SurveyTemplateElementMapper::class,
|
||||
'table' => 'survey_template_element',
|
||||
|
|
@ -64,7 +64,6 @@ final class SurveyTemplateMapper extends DataMapperAbstract
|
|||
'mapper' => SurveyTemplateL11nMapper::class,
|
||||
'table' => 'survey_template_l11n',
|
||||
'self' => 'survey_template_l11n_template',
|
||||
'conditional' => true,
|
||||
'external' => null,
|
||||
],
|
||||
'tags' => [
|
||||
|
|
@ -87,7 +86,7 @@ final class SurveyTemplateMapper extends DataMapperAbstract
|
|||
* @var array<string, array{mapper:string, external:string}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static array $belongsTo = [
|
||||
public const BELONGS_TO = [
|
||||
'createdBy' => [
|
||||
'mapper' => AccountMapper::class,
|
||||
'external' => 'survey_template_created_by',
|
||||
|
|
@ -100,7 +99,7 @@ final class SurveyTemplateMapper extends DataMapperAbstract
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static string $table = 'survey_template';
|
||||
public const TABLE = 'survey_template';
|
||||
|
||||
/**
|
||||
* Created at.
|
||||
|
|
@ -108,7 +107,7 @@ final class SurveyTemplateMapper extends DataMapperAbstract
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static string $createdAt = 'survey_template_created_at';
|
||||
public const CREATED_AT = 'survey_template_created_at';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
|
|
@ -116,23 +115,24 @@ final class SurveyTemplateMapper extends DataMapperAbstract
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static string $primaryField = 'survey_template_id';
|
||||
public const PRIMARYFIELD ='survey_template_id';
|
||||
|
||||
/**
|
||||
* Get editor doc based on virtual path.
|
||||
*
|
||||
* @param string $virtualPath Virtual path
|
||||
*
|
||||
* @return array
|
||||
* @return ReadMapper
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public static function getByVirtualPath(string $virtualPath = '/') : array
|
||||
public static function getByVirtualPath(string $virtualPath = '/') : ReadMapper
|
||||
{
|
||||
$depth = 2;
|
||||
$query = self::getQuery(depth: $depth);
|
||||
$query->where(self::$table . '_d' . $depth . '.survey_template_virtual', '=', $virtualPath);
|
||||
|
||||
return self::getAllByQuery($query, RelationType::ALL, $depth);
|
||||
return self::getAll()
|
||||
->with('createdBy')
|
||||
->with('l11n')
|
||||
->with('tags')
|
||||
->with('tags/title')
|
||||
->where('virtualPath', $virtualPath);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user