33 Commits

Author SHA1 Message Date
Jan Sandbrink 0b87e7543f Freeze string literals in specs
Rolling out frozen string literals further by freezing all
string literals in core specs.
2025-05-05 09:29:55 +02:00
Ivan Kuchin 4911b8a149 remove years from copyrights (except for COPYRIGHT file) 2024-07-31 15:02:49 +02:00
ulferts 3b2121f733 Revert "Merge remote-tracking branch 'origin/release/13.4' into dev"
This reverts commit 40b2bbeb09, reversing
changes made to b4c6cb17cc.
2024-03-21 11:31:17 +01:00
Ivan Kuchin 7787e457a3 Revert "Merge branch 'dev' into release/13.4"
This reverts commit a901541269, reversing
changes made to e573ca00b7.
2024-03-20 20:19:08 +01:00
Ivan Kuchin 9e4934cd0a change quotes using rubocop --only Style/StringLiterals,Style/QuotedSymbols -a 2024-03-20 18:05:22 +01:00
Christophe Bliard 8fa8584538 Run rubocop --autocorrect on all files
Only the safe cops have run. rubocop version is 1.59.0.
2024-01-05 15:27:09 +01:00
Christophe Bliard c795874f7f Update copyright year for 2024
command used: `rg -l 'Copyright \(C\) 2012-202\d the OpenProject' | xargs -n 100 sed -i -r 's/Copyright \(C\) 2012-202. the OpenProject/Copyright (C) 2012-2024 the OpenProject/'`
2024-01-02 16:23:54 +01:00
Christophe Bliard 4c2a9d0aa8 Enable RSpec zero monkey patching mode
The plan for RSpec 4.0 is to disable monkey patching.

See https://github.com/rspec/rspec-core/blob/main/features/configuration/zero_monkey_patching_mode.feature for details.
2023-05-31 19:22:29 +02:00
Christophe Bliard 21a696ef9b Update copyright information for 2023 2022-12-30 15:51:26 +01:00
Christophe Bliard b50855a955 Use ServiceResult factory methods where possible
All was automatic through the use of `rubocop --autocorrect --only
OpenProject/UseServiceResultFactoryMethods app lib lib_static modules
spec`.
2022-06-16 10:01:57 +02:00
Christophe Bliard c6e44141db Remove :stubbed_work_package factory
Using build_stubbed(:work_package) works equally well.

Relates to commit e1607a6116
2022-06-08 15:24:11 +02:00
Christophe Bliard 48a4f1b6ad lint with rubocop --autocorrect (safe cops only) 2022-06-02 10:40:10 +02:00
Christophe Bliard a33524ef6d remove ruby magic comment for utf-8
ruby interprets source encoding as utf-8 since 2.0.0, making magic comment redundant and useless
2022-03-10 19:36:58 +01:00
Christophe Bliard bc8d423ec2 update copyright information for 2022 2022-03-01 17:05:59 +01:00
Oliver Günther f08bea3467 Remove FactoryBot.* prefix where applicable 2022-01-25 08:19:06 +01:00
ulferts e4bced1a5c replace deprecated access to errors 2021-11-19 14:03:30 +01:00
Oliver Günther ccfa29c728 Move license and copyright docs to root, fix names and references 2021-09-02 21:50:46 +02:00
ulferts 7ecf08e005 rework changed_by_system (#9043)
Before, it was implemented by passing the changed attribut keys over to
the contract to whitelist them.

This lead to:
  * The contract interface becoming bloated
  * Having to rely on the knowledge of the developer not to falsely
    whitelist an attribute. The developer would also have to make sure
    to not perform a mass assignment after the attribute has been
    whitelisted

The new approach it to integrate the behaviour into the model which is
first altered in the service before it is scrutinized in the contract.

The information about the changed attributes is now stored inside the
model which removes the necessity to flag the whitelisted attribute
separately. Additionally, the exact change is tracked. So if an
attribute is set to one value inside a whitelisted block there is no
risk in later on performing a mass assignment.

This comes at the cost of extending the models which is weird also it is
build into the default SetAttributesService so child classes do not have
to worry. One might include the module into every AR model but currently
we only need it for a very specific use case.
2021-03-02 16:20:19 +01:00
ulferts 1bdd2ab9ae safe automatic fixes by rubocop (#8994) 2021-02-11 16:02:18 +01:00
ulferts 6140f4c7e9 update copyright to 2021 (#8925)
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
2021-01-13 17:47:45 +01:00
ulferts 9e2287bfcc rename and inflect according to zeitwerk 2020-02-21 20:47:24 +01:00
Henriette Dinger bd7f4e4814 Update copyright notice 2020-01-15 11:31:26 +01:00
ulferts cd3ffe0cc5 adapt specs to altered interface 2019-11-01 13:14:18 +01:00
ulferts a93ecca5a8 Feature/members api show (#7308)
* basic members collection response

* complete member index end point

* document versions#index

* remove user association from members

There is already a more generic principals association. Having both causes confusion and leads to duplicate loading of models

* linting

* remove disabled test

* add members#show api end point

* add project and principal to member representer

* replace member.user reference with principal

* use principal reference in project members association

* modernize roles api

* complete member representer rendering

* replace remnants of user association

* add member schema api endpoint

* have dedicated available projects end point for versions

* linting

* limit roles to assignable ones in schema

* rename member to membership in api

* remove remnants of user in member

* spec fixes

* use available_projects endpoint in versions board

* add eager loading to memberships#index

* members create form api endpoint

* ensure role exists for default assignment

* extract switch for users/groups to work_packages representer

* document membership create form

* add l10n expected in specs

* strengthen the usage of a delete base service

* use base class for set attributes service

* fix alias in service

* add create endpoint to members api

* document members create endpoint

* linting

* adapt to altered service signature

* use default endpoint for wp#get

* use CF infused representer


[ci skip]
2019-05-29 09:31:56 +03:00
Jens Ulferts fb14d4259c restore only when new actions are an option 2018-08-21 09:34:37 +02:00
Oliver Günther 059770f533 FactoryGirl => FactoryBot
Removes the deprecation
2018-05-07 22:38:20 +02:00
Jens Ulferts 7bba51bd44 add type and project action 2018-02-08 12:07:16 +01:00
Jens Ulferts b97d79af2e additional specs 2018-02-07 07:57:54 +01:00
Jens Ulferts abbbad5c49 handle unknown keys for actions and conditions 2018-02-06 16:47:45 +01:00
Jens Ulferts 709afa4f89 don't apply actions leading to errors 2018-02-06 16:47:44 +01:00
Jens Ulferts 414212c49f handle multi select custom fields 2018-02-06 16:42:46 +01:00
Jens Ulferts 886273ee86 initial implementation of conditions - status 2018-02-06 16:42:46 +01:00
Jens Ulferts 8d14f4b420 implement editing custom actions 2018-02-06 16:42:45 +01:00