diff --git a/README.md b/README.md index ef1fea44..d4842245 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ If you don't use certain feature sets of Grocy (for example if you don't need "C ### Demo mode -When the `MODE` setting is set to `dev`, `demo` or `prerelease`, the application will work in a demo mode which means authentication is disabled and some demo data will be generated during the database schema migration. +When the `MODE` setting is set to `dev`, `demo` or `prerelease`, the application will work in a demo mode which means authentication is disabled and some demo data will be generated during the database schema migration (pass the query parameter `nodemodata`, e.g. `https://grocy.example.com/?nodemodata` to skip that). ### Embedded mode diff --git a/config-dist.php b/config-dist.php index c7258f24..a1795624 100644 --- a/config-dist.php +++ b/config-dist.php @@ -14,8 +14,9 @@ // The settings defined here below // Either "production", "dev", "demo" or "prerelease" -// When not "production", authentication will be disabled and -// demo data will be populated during database migrations +// When not "production", the application will work in a demo mode which means +// authentication is disabled and some demo data will be generated during the database schema migration +// (pass the query parameter "nodemodata", e.g. https://grocy.example.com/?nodemodata to skip that) Setting('MODE', 'production'); // The directory name of one of the available localization folders diff --git a/controllers/SystemController.php b/controllers/SystemController.php index a609a688..3365b05e 100644 --- a/controllers/SystemController.php +++ b/controllers/SystemController.php @@ -32,7 +32,7 @@ class SystemController extends BaseController if (GROCY_MODE === 'dev' || GROCY_MODE === 'demo' || GROCY_MODE === 'prerelease') { $demoDataGeneratorService = DemoDataGeneratorService::getInstance(); - $demoDataGeneratorService->PopulateDemoData(); + $demoDataGeneratorService->PopulateDemoData(isset($request->getQueryParams()['nodemodata'])); } return $response->withRedirect($this->AppContainer->get('UrlManager')->ConstructUrl($this->GetEntryPageRelative())); diff --git a/services/DemoDataGeneratorService.php b/services/DemoDataGeneratorService.php index 129c0fbb..55dc546e 100644 --- a/services/DemoDataGeneratorService.php +++ b/services/DemoDataGeneratorService.php @@ -12,11 +12,17 @@ class DemoDataGeneratorService extends BaseService protected $LocalizationService; private $LastSupermarketId = 1; - public function PopulateDemoData() + public function PopulateDemoData($skip = false) { $rowCount = $this->getDatabaseService()->ExecuteDbQuery('SELECT COUNT(*) FROM migrations WHERE migration = -1')->fetchColumn(); if ($rowCount == 0) { + if ($skip) + { + $this->getDatabaseService()->ExecuteDbStatement('INSERT INTO migrations (migration) VALUES (-1);'); + return; + } + $loremIpsum = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.'; $loremIpsumWithHtmlFormattings = "
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
Lorem ipsum dolor sit amet, consetetur \r\nsadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et \r\ndolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et\r\n justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea \r\ntakimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit \r\namet, consetetur sadipscing elitr,\r\n sed diam nonumy eirmod tempor invidunt ut labore et dolore magna \r\naliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo \r\ndolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus \r\nest Lorem ipsum dolor sit amet.
";