This should fix the last known unit test failures occuring due to the usage of
frozen string literal comments. Those were tested in a separate
commit. Broadly enabling frozen string literals will happen in multiple
separate commits after this one and only after feature tests have been fixed
as well.
`Activities::DaysComponent` factorizes the code to generate the HTML for
the activities per days.
By moving `journal` into `Activities::Event`, `journals_by_id` does not
need to be passed around anymore. Eager loading of journals is moved to
`Activities::Fetcher` instead of being handled by the controller. It
also means that the atom feed will be slower as it does not need the
journals information.
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
* Fix argument alignment since f08bea3467
The FactoryBot.* prefix has been removed in f08bea3467. Since then
rubocop complains about Layout/ArgumentAlignment. This commit fixes it.
* do not fix alignments for modules/*/spec yet
hoping to be under the limit of 65535 characters for reviewdog to report on rubocop errors
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
* use cte for aggregated journal
* Revert "use cte for aggregated journal"
This reverts commit 5fedefefdd.
* add another subselect that could later on be provided from the outside
* allow passing a nukleous sql to aggregated journals
* wip - using aggregated journal for activity
* new sql for aggregated journals
* start implementing new aggregated query
* additional documentation
* consolidate activity functionality
* simplify by turing into instance methods
* move activity fetcher out of redmine
* remove verb verification made obsolete
Without catchall routes, the dispatching handles it
* remove duplicate authorize check
* refactor activities controller
* refactory activity fetcher
* cache avatar file
* sort choosable events
* remove legacy spec covered by contemporary
* speed up aggregated journals via CTE
* instance var might never have been set
* ensure the event_types are always transmitted
* correctly reset the avatar cache
* fix avatar fetcher expectation regarding wiki pages
* adapt spec
[ci skip]
Provide some test data for UTF-8 encoded paths with Subversion.
This confirms the tests of PR #4324.
Side note:
OS X will decompose some unicode characters into two characters.
For example, the LATIN SMALL LETTER O WITH DIAERESIS (U+00F6 `ö`) will be
decomposed into o and COMBINING DIAERESIS (U+0308).
This obviously breaks SVN path mapping and while you will be able to
commit files with decomposed paths, it will wreak havoc when using these
characters on repositories manipulated by OSX and other systems.
It apepars that Windows, Linux silently ignore these changes.
We can't really account for this server side, but unicode-path patches exists for Subversion on OSX.
For git, a config setting exists that does just that (`core.precomposeunicode`).
When passing configuration settings through ENV (e.g., packager), we
can't pass arrays as configuration settings.
This PR allows `Repository.disabled_types` to be set as a String in ENV,
e.g., through
`OPENPROJECT_SCM_SUBVERSION_DISABLED__TYPES='existing,foobar'`.
To avoid exposed types from misconfiguration (or installations where
string-based configuration is a requirement), we convert the input from
`disabled_types` to be symbols.
ENV-based configuration for various configs can only provide
case-insensitive values for SCM configuration and thus is
unable to properly configure, e.g., managed repositories.
This refactoring relies on lowercase configuration and symbols
to define SCM vendors, and camelizes them to the old notation
(e.g., :git => 'Git') when using `Setting.enabled_scms` to remain
compatible with previous installations.