9 Commits

Author SHA1 Message Date
Ivan Kuchin ccbd707846 use group_by in project custom field load service to not repeatedly filter values 2026-03-05 15:57:40 +01:00
Ivan Kuchin cb19d99d32 improve fetching in project custom field load service
Match customized not only by id (should not be problematic, as cf ids
are also used).
Use custom fields without plucking, so no need for getting ids first,
build one sql instead.
2026-03-05 15:57:39 +01:00
Ivan Kuchin 17679fd0e4 no need to call super in initialize of class inheriting (implicitly) from Object 2026-03-05 15:57:39 +01:00
Ivan Kuchin fa69a60a44 bring order to custom values both in the relation and project custom fields load service 2026-03-05 15:57:33 +01:00
Henriette Darge caa609d34c [61445] Configure project attribute sections to be shown as widgets on the project overview page (#20899)
* Show project attributes as sections in project overview

* Introduce a column "shown_in" for CustomFieldSection which defines whether the section shall be shown in the sidebar or the main section of the project overview

* Show only those attributes in main section that are configured to be shown there. Same for the sidebar.

* Update project attribute sections after editing them

* Write a test for the new positioning behavior of project attribute sections

* Rename "shown_in" with "display_representation" and make it a hash

* Provide proper default when creating a new section

* Enforce project attribute widgets to be in a new line and wrap properly

* Hide logic for moivng sections to the main area behind the feature flag

* Rename "main section" to "main area"

* Extract custom margins into normal sass

* Rename "side-panel" to "side panel"

* Update test to changed wording
2025-11-19 08:01:42 +01:00
Alexander Brandon Coles 5e9f3827f5 Freeze string literals in app/services
rubocop -A --only Style/FrozenStringLiteralComment,Layout/EmptyLineAfterMagicComment,Style/RedundantFreeze app/services
2025-07-18 17:45:24 +01:00
Jan Sandbrink 40aff02f11 Remove params argument from BaseCallable#perform
This is making the interface of BaseCallable more consistent.
Previously it was unclear, whether the params passed to perform
should be used to reference parameters or whether the attribute accessor
should be used. Different code used different approaches.

To apply this change more consistently, BaseContracted also removed
params from the methods called inside its own perform method, e.g.
before_perform or after_validate.

At a later point we might consider removing this argument from other large
inheritors as well, for example `BaseServices::SetAttributes#set_attributes`.
2025-06-30 11:47:03 +02:00
Ivan Kuchin 4911b8a149 remove years from copyrights (except for COPYRIGHT file) 2024-07-31 15:02:49 +02:00
Jonas Jabari 7693bd25bc Refactored prototypical implementation as suggested by @dombesz 2024-03-13 16:56:12 +07:00