mirror of
https://github.com/grocy/grocy.git
synced 2025-08-20 12:20:22 +00:00
Implement custom entities / objects (closes #242)
This commit is contained in:
@@ -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;
|
||||
|
@@ -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);
|
||||
";
|
||||
|
||||
|
@@ -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());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user