the seeder blindly saves all settings to database, setting the value to empty string when no value is defined. When the setting is read back, it can be misinterpreted. For instance a boolean setting with a nil value will have the value '' once seeded, and it is truthy which is wrong.
add a helper to restore settings after resetting them in tests
They are for now still available as separate entities but that is more due to existing references to them both. Under the hood, they now depend on the
same structure `Settings::Definition` which just as well could have been named `Configuration::Definition`, that defines:
* the name
* the default value
* the type (which might be deferred from the default value)
* the array of allowed values
Both Setting and Configuration can now be overwritten using the same mechanisms:
* Default value
* Database value
* configuration.yml (settings.yml is removed)
* ENV vars
Callbacks was resolved as ActiveRecord::Callbacks, so file setting/callbacks.rb was never required and method fire_callbacks was missing. Renaming the class fixed it.
Updates the copyright to 2021 for all files that have a copyright. Files in our source code without the copyright header still do not receive one automatically. Additionally, backlisted files are also excluded.
Previously the copyright of chiliproject which references redmine stated a copyright of redmine up to and including 2017 which is not true for the code we have in here. Because of that I changed that to 2013
* rename timestamps on time entry
* add updated_at filter/order for time entries
* rename on cost entries as well
This will make handling in the cost query easier
* adapt specs
* linting
* adapt project activity
* update references to updated_on
* remove outdated docs/code
* global memberships are just memberships
* rewire global membership creation/update/deletion
* delete no longer required code and patches
* move code to core
* move specs to core
* completely remove global roles in the form of a plugin
* adapt specs
* remove unused methods
* migrate existing data
* adapt membership representer to changed timestamps
* global memberships available via API
* implements created/update_at filters on memberships
* update member on roles being added/removed
* specify default value for created_at
* fix project permission check and validation on members
* adapt membership schema
* adapt usage of sort by on members widget
* support created/updated_on for api sort and filter
* remove outdated model file
* rename timestamps
* allow specifying timestamp column for aaj
* reload column information
* further rename of created_on
* include updated_at into journal creation
* adapt document updated_at calculation
* remove references to JournalVersion
Uses FactoryBot to keep and maintain specific records in a special transaction that does not get removed after each spec.
They automatically are created whenever first hitting them.
This makes an excellent time saver for items that are commonly used, such as an admin user account