Skip to content

Commit

Permalink
Merge pull request #17655 from opf/merge-release/15.2-20250120033625
Browse files Browse the repository at this point in the history
Merge release/15.2 into dev
  • Loading branch information
ulferts authored Jan 20, 2025
2 parents 3491991 + 92995ad commit 1b0268f
Show file tree
Hide file tree
Showing 467 changed files with 1,016 additions and 4,255 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
Relation::TYPES.each do |relation_type, type_configuration_hash|
label_key = "#{I18N_NAMESPACE}.relations.#{type_configuration_hash[:name]}_singular"
menu.with_item(
label: t(label_key).capitalize,
label: t(label_key).upcase_first,
href: new_relation_path(relation_type:),
test_selector: new_button_test_selector(relation_type:),
content_arguments: {
Expand Down Expand Up @@ -52,7 +52,7 @@

flex.with_row(mb: 4) do
render_relation_group(
title: t("#{base_key}_plural").capitalize,
title: t("#{base_key}_plural").upcase_first,
relation_type:,
items: relations_of_type
) do |relation|
Expand All @@ -68,7 +68,7 @@

flex.with_row do
render_relation_group(
title: t("#{base_key}_plural").capitalize,
title: t("#{base_key}_plural").upcase_first,
relation_type: :children,
items: children
) do |child|
Expand Down
6 changes: 5 additions & 1 deletion app/contracts/reminders/base_contract.rb
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,13 @@ def validate_note_length
def validate_manage_reminders_permissions
return if errors.added?(:remindable, :not_found)

unless user.allowed_in_project?(:manage_own_reminders, model.remindable.project)
unless can_manage_reminders?
errors.add :base, :error_unauthorized
end
end

def can_manage_reminders?
user.logged? && user.allowed_in_project?(:view_work_packages, model.remindable.project)
end
end
end
2 changes: 1 addition & 1 deletion app/models/custom_field.rb
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ def possible_user_values_options(obj)
end

scope
.select(*User::USER_FORMATS_STRUCTURE[Setting.user_format].map(&:to_s), "id", "type")
.select(User::USER_FORMATS_STRUCTURE[Setting.user_format].map(&:to_s), "id", "type")
end
end

Expand Down
5 changes: 2 additions & 3 deletions app/views/enterprises/_info.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,8 @@ See COPYRIGHT and LICENSE files for more details.
++#%>
<% content_for :header_tags do %>
<script src="<%= OpenProject::Static::Links.links[:chargebee][:href] %>"
data-cb-site="<%= OpenProject::Configuration.enterprise_chargebee_site %>">
</script>
<%= nonced_javascript_include_tag OpenProject::Static::Links.links[:chargebee][:href],
"data-cb-site": OpenProject::Configuration.enterprise_chargebee_site %>
<% end %>

<div class="upsale--information-container">
Expand Down
2 changes: 1 addition & 1 deletion config/constants/settings/definition.rb
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,7 @@ class Definition
},
enterprise_plan: {
description: "Default EE selected plan",
default: "enterprise-on-premises---euro---1-year",
default: "enterprise-on-premises---basic---euro---1-year",
writable: false
},
feeds_enabled: {
Expand Down
11 changes: 2 additions & 9 deletions config/initializers/permissions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -232,14 +232,6 @@
{},
permissible_on: :project_query,
require: :loggedin

map.permission :manage_own_reminders,
{
"work_packages/reminders": %i[modal_body create update destroy]
},
permissible_on: :project,
contract_actions: { work_package_reminders: %i[modal_body] },
require: :member
end

map.project_module :work_package_tracking, order: 90 do |wpt|
Expand All @@ -253,7 +245,8 @@
"work_packages/activities_tab": %i[index update_streams update_sorting update_filter],
"work_packages/menus": %i[show],
"work_packages/hover_card": %i[show],
work_package_relations_tab: %i[index]
work_package_relations_tab: %i[index],
"work_packages/reminders": %i[modal_body create update destroy]
},
permissible_on: %i[work_package project],
contract_actions: { work_packages: %i[read] }
Expand Down
49 changes: 3 additions & 46 deletions config/locales/crowdin/af.yml
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,6 @@ af:
label: "Label"
short: "Short name"
parent: "Parent"
blueprint: "Pattern blueprint"
global_search:
placeholder: "Search in %{app_title}"
overwritten_tabs:
Expand Down Expand Up @@ -669,7 +668,6 @@ af:
no_results_title_text: There are currently no relations available.
blankslate_heading: "No relations"
blankslate_description: "This work package does not have any relations yet."
label_add_child_button: "Child"
label_add_x: "Add %{x}"
label_edit_x: "Edit %{x}"
label_add_description: "Add description"
Expand All @@ -678,7 +676,6 @@ af:
title: "Lag (in days)"
caption: "The minimum number of working days to keep in between the two work packages."
relations:
label_new_child_created: "New work package created and added as a child"
label_relates_singular: "related to"
label_relates_plural: "related to"
label_relates_to_singular: "related to"
Expand All @@ -693,9 +690,6 @@ af:
follows_description: "The related work package necessarily needs to finish before this one can start"
label_child_singular: "child"
label_child_plural: "children"
new_child: "New child"
new_child_text: "Creates a related work package as a sub-item of the current (parent) work package"
existing_child: "Existing child"
child_description: "Makes the related work package a sub-item of the current (parent) work package"
label_blocks_singular: "blocks"
label_blocks_plural: "blocks"
Expand Down Expand Up @@ -796,7 +790,6 @@ af:
is_required: "Verpligtend"
max_length: "Maksimum lengte"
min_length: "Minimum lengte"
content_right_to_left: "Right-to-Left content"
multi_value: "Allow multi-select"
possible_values: "Moontlike waardes"
regexp: "Standaard uitdrukking"
Expand Down Expand Up @@ -832,8 +825,6 @@ af:
attr_lastname: "Van kenmerk"
attr_login: "Username attribute"
attr_mail: "Epos kenmerk"
filter_string: "Filter string"
admin: "Administrator"
base_dn: "Basis (Onderskeidende Naam) ON"
host: "Gasheer"
onthefly: "Automatic user creation"
Expand Down Expand Up @@ -877,9 +868,6 @@ af:
project_custom_field:
is_required: "Required for all projects"
custom_field_section: Section
project/life_cycle_step_definition:
name: "Name"
color: "Color"
query:
column_names: "Kolomme"
relations_to_type_column: "Relations to %{type}"
Expand Down Expand Up @@ -1812,10 +1800,6 @@ af:
upsale:
title: "Enterprise add-on"
link_title: "More information"
automatic_subject_generation:
description: "Create automatically generated subjects using referenced attributes and text."
customize_life_cycle:
description: "Create and organize different project stages and gates than the ones provided by PM2 project cycle planning."
form_configuration:
description: "Customize the form configuration with these additional add-ons:"
add_groups: "Add new attribute groups"
Expand Down Expand Up @@ -2600,7 +2584,6 @@ af:
label_project_new: "Nuwe projek"
label_project_plural: "Projekte"
label_project_list_plural: "Project lists"
label_project_lifecycle: "Project lifecycle"
label_project_attributes_plural: "Project attributes"
label_project_custom_field_plural: "Project attributes"
label_project_settings: "Projek-instellings"
Expand Down Expand Up @@ -3043,7 +3026,6 @@ af:
notice_bad_request: "Bad Request."
notice_not_authorized: "You are not authorized to access this page."
notice_not_authorized_archived_project: "The project you're trying to access has been archived."
notice_requires_enterprise_token: "Enterprise token missing or doesn't allow access to this page."
notice_password_confirmation_failed: "Your password is not correct. Cannot continue."
notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result."
notice_principals_found_single: "There is one result. \n Tab to focus it."
Expand Down Expand Up @@ -3218,9 +3200,9 @@ af:
are_you_sure: "Are you sure you want to archive the project '%{name}'?"
archived: "Archived"
count:
zero: "0 projects"
one: "1 project"
other: "%{count} projects"
zero: "0 Projects"
one: "1 Project"
other: "%{count} Projects"
project_module_activity: "Aktiwiteit"
project_module_forums: "Forums"
project_module_work_package_tracking: "Werkspakkete"
Expand Down Expand Up @@ -3354,7 +3336,6 @@ af:
activated: "activated"
deactivated: "deactivated"
search_input_placeholder: "Search ..."
setting_apiv3_cors_title: "Cross-Origin Resource Sharing (CORS)"
setting_apiv3_cors_enabled: "Enable CORS"
setting_apiv3_cors_origins: "API V3 Cross-Origin Resource Sharing (CORS) allowed origins"
setting_apiv3_cors_origins_text_html: >
Expand Down Expand Up @@ -3580,27 +3561,6 @@ af:
new:
heading: "New attribute"
description: "Changes to this project attribute will be reflected in all projects where it is enabled. Required attributes cannot be disabled on a per-project basis."
project_life_cycle_step_definitions:
heading: "Project lifecycle"
heading_description: "The project lifecycle consists of stages and gates that structure your projects. They will appear in the overview page of a project and be available in the projects list. Individual stages and gates can be selected to customize a project but reordering is not possible on a project level."
label_add: "Add"
label_add_description: "Add lifecycle definition"
label_add_stage: "Stage"
label_add_gate: "Gate"
filter:
label: "Search project stage or gate"
section_header: "Stages and gates"
non_defined: "Neither stages nor gates are currently defined."
new:
description: "Changes to this project step will be reflected in all projects where it is enabled."
new_stage:
heading: "New stage"
new_gate:
heading: "New gate"
edit_stage:
heading: "Edit stage"
edit_gate:
heading: "Edit gate"
projects:
missing_dependencies: "Project module %{module} was checked which depends on %{dependencies}. You need to check these dependencies as well."
section_new_projects: "Settings for new projects"
Expand Down Expand Up @@ -3634,7 +3594,6 @@ af:
text_are_you_sure_continue: "Are you sure you want to continue?"
text_are_you_sure_with_children: "Delete work package and all child work packages?"
text_are_you_sure_with_project_custom_fields: "Deleting this attribute will also delete its values in all projects. Are you sure you want to do this?"
text_are_you_sure_with_project_life_cycle_step: "Deleting this step will also delete its usages in all projects. Are you sure you want to do this?"
text_assign_to_project: "Assign to the project"
text_form_configuration: >
You can customize which fields will be displayed in work package forms. You can freely group the fields to reflect the needs for your domain.
Expand Down Expand Up @@ -4082,8 +4041,6 @@ af:
builtin: Built-in instance application
confidential: Confidential
singular: "OAuth application"
scopes: "Scopes"
client_credentials: "Client credentials"
plural: "OAuth applications"
named: "OAuth application '%{name}'"
new: "New OAuth application"
Expand Down
Loading

0 comments on commit 1b0268f

Please sign in to comment.