Implement custom entities / objects (closes #242)

This commit is contained in:
Bernd Bestel
2019-09-18 16:18:15 +02:00
parent 918f84f568
commit 096fb7a116
20 changed files with 666 additions and 18 deletions

View File

@@ -9,7 +9,20 @@ class ApplicationService extends BaseService
{
if ($this->InstalledVersion == null)
{
$this->InstalledVersion = json_decode(file_get_contents(__DIR__ . '/../version.json'));
if (GROCY_MODE === 'prerelease')
{
$commitHash = trim(exec('git log --pretty="%h" -n1 HEAD'));
$commitDate = trim(exec('git log --date=iso --pretty="%cd" -n1 HEAD'));
$this->InstalledVersion = array(
'Version' => "pre-release-$commitHash",
'ReleaseDate' => substr($commitDate, 0, 19)
);
}
else
{
$this->InstalledVersion = json_decode(file_get_contents(__DIR__ . '/../version.json'));
}
}
return $this->InstalledVersion;

View File

@@ -150,6 +150,19 @@ class DemoDataGeneratorService extends BaseService
INSERT INTO equipment (name, description, instruction_manual_file_name) VALUES ('{$this->__t_sql('Coffee machine')}', '{$loremIpsumWithHtmlFormattings}', 'loremipsum.pdf'); --1
INSERT INTO equipment (name, description) VALUES ('{$this->__t_sql('Dishwasher')}', '{$loremIpsumWithHtmlFormattings}'); --2
INSERT INTO userentities (name, caption, description, show_in_sidebar_menu, icon_css_class) VALUES ('exampleuserentity', '{$this->__t_sql('Example userentity')}', '{$this->__t_sql('This is an example user entity...')}', 1, 'fas fa-smile'); --1
INSERT INTO userfields (entity, name, caption, type, show_as_column_in_tables) VALUES ('userentity-exampleuserentity', 'customfield1', '{$this->__t_sql('Custom field')} 1', 'text-single-line', 1); --1
INSERT INTO userfields (entity, name, caption, type, show_as_column_in_tables) VALUES ('userentity-exampleuserentity', 'customfield2', '{$this->__t_sql('Custom field')} 2', 'text-single-line', 1); --2
INSERT INTO userobjects (userentity_id) VALUES (1); --1
INSERT INTO userobjects (userentity_id) VALUES (1); --2
INSERT INTO userfield_values (field_id, object_id, value) VALUES (1, 1, '{$this->__t_sql('Example field value...')}');
INSERT INTO userfield_values (field_id, object_id, value) VALUES (2, 1, '{$this->__t_sql('Example field value...')}');
INSERT INTO userfield_values (field_id, object_id, value) VALUES (1, 2, '{$this->__t_sql('Example field value...')}');
INSERT INTO userfield_values (field_id, object_id, value) VALUES (2, 2, '{$this->__t_sql('Example field value...')}');
INSERT INTO migrations (migration) VALUES (-1);
";

View File

@@ -109,7 +109,15 @@ class UserfieldsService extends BaseService
public function GetEntities()
{
return $this->OpenApiSpec->components->internalSchemas->ExposedEntity->enum;
$exposedDefaultEntities = $this->OpenApiSpec->components->internalSchemas->ExposedEntity->enum;
$userentities = array();
foreach ($this->Database->userentities()->orderBy('name') as $userentity)
{
$userentities[] = 'userentity-' . $userentity->name;
}
return array_merge($exposedDefaultEntities, $userentities);
}
public function GetFieldTypes()
@@ -119,6 +127,6 @@ class UserfieldsService extends BaseService
private function IsValidEntity($entity)
{
return in_array($entity, $this->OpenApiSpec->components->internalSchemas->ExposedEntity->enum);
return in_array($entity, $this->GetEntities());
}
}