From d5e2acdbb6cd6e19225e7d11911b1d600708f8ed Mon Sep 17 00:00:00 2001 From: Martin Artnik Date: Thu, 3 Jul 2025 16:17:46 +0200 Subject: [PATCH] Amend step labeling for step-result links [SCI-12093] --- app/controllers/step_results_controller.rb | 2 +- app/javascript/vue/results/modals/link_steps.vue | 4 ---- app/models/step.rb | 4 ++++ app/serializers/result_serializer.rb | 2 +- app/services/reports/docx/draw_results.rb | 2 +- app/views/reports/elements/_my_module_element.html.erb | 2 +- .../my_modules/results/_result.html.erb | 2 +- app/views/steps/list.json.jbuilder | 10 ++-------- config/locales/en.yml | 1 + 9 files changed, 12 insertions(+), 17 deletions(-) diff --git a/app/controllers/step_results_controller.rb b/app/controllers/step_results_controller.rb index 35afce7ff..f7f743c24 100644 --- a/app/controllers/step_results_controller.rb +++ b/app/controllers/step_results_controller.rb @@ -34,7 +34,7 @@ class StepResultsController < ApplicationController StepResult.create!(step: step, result: @results.first, created_by: current_user) log_activity(:step_and_result_linked, @results.first.my_module, step, @results.first) end - render json: { steps: @results.first.steps.map { |s| { id: s.id, name: s.name } } }, status: :created + render json: { steps: @results.first.steps.map { |s| { id: s.id, name: s.label } } }, status: :created rescue ActiveRecord::RecordInvalid => e Rails.logger.error e.message render json: { message: :error }, status: :unprocessable_entity diff --git a/app/javascript/vue/results/modals/link_steps.vue b/app/javascript/vue/results/modals/link_steps.vue index 122282f20..9232b7429 100644 --- a/app/javascript/vue/results/modals/link_steps.vue +++ b/app/javascript/vue/results/modals/link_steps.vue @@ -25,7 +25,6 @@ :value="selectedSteps" :searchable="true" @change="changeSteps" - :option-renderer="stepRenderer" :multiple="true" :withCheckboxes="true" :placeholder="i18n.t('my_modules.results.modals.link_steps.placeholder')" /> @@ -147,9 +146,6 @@ export default { this.loading = false; }); }, - stepRenderer(option) { - return `${option[2].position + 1}. ${option[1]}`; - } } }; diff --git a/app/models/step.rb b/app/models/step.rb index b632a3fc1..16fbcff72 100644 --- a/app/models/step.rb +++ b/app/models/step.rb @@ -179,6 +179,10 @@ class Step < ApplicationRecord end end + def label + I18n.t('protocols.steps.label', name: name, position: position + 1) + end + private def duplicate_table(new_step, user, table) diff --git a/app/serializers/result_serializer.rb b/app/serializers/result_serializer.rb index 643643b44..72b946779 100644 --- a/app/serializers/result_serializer.rb +++ b/app/serializers/result_serializer.rb @@ -19,7 +19,7 @@ class ResultSerializer < ActiveModel::Serializer def steps object.steps.map do |step| - { id: step.id, name: step.name } + { id: step.id, name: step.label } end end diff --git a/app/services/reports/docx/draw_results.rb b/app/services/reports/docx/draw_results.rb index 0a6ccabf8..bd5492839 100644 --- a/app/services/reports/docx/draw_results.rb +++ b/app/services/reports/docx/draw_results.rb @@ -30,7 +30,7 @@ module Reports::Docx::DrawResults text ' | ' text I18n.t('projects.reports.elements.result.linked_steps'), color: color[:gray] text ' ' - text result.steps.pluck(:name).join('; '), color: color[:gray] + text result.steps.map(&:label).join('; '), color: color[:gray] end end draw_result_asset(result, @settings) if @settings.dig('task', 'file_results') diff --git a/app/views/reports/elements/_my_module_element.html.erb b/app/views/reports/elements/_my_module_element.html.erb index 5a0cafd8e..304b83e1a 100644 --- a/app/views/reports/elements/_my_module_element.html.erb +++ b/app/views/reports/elements/_my_module_element.html.erb @@ -91,7 +91,7 @@ <%= t('projects.reports.elements.result.user_time', user: result.user.full_name, timestamp: l(result.created_at, format: :full)) %> <% end %> <% if !@settings['exclude_task_metadata'] && result.steps.size.positive? %> - | <%= t("projects.reports.elements.result.linked_steps") %> <%= result.steps.pluck(:name).join('; ') %> + | <%= t("projects.reports.elements.result.linked_steps") %> <%= result.steps.map(&:label).join('; ') %> <% end %> diff --git a/app/views/shareable_links/my_modules/results/_result.html.erb b/app/views/shareable_links/my_modules/results/_result.html.erb index 8f35c3aa0..448022caf 100644 --- a/app/views/shareable_links/my_modules/results/_result.html.erb +++ b/app/views/shareable_links/my_modules/results/_result.html.erb @@ -22,7 +22,7 @@ diff --git a/app/views/steps/list.json.jbuilder b/app/views/steps/list.json.jbuilder index 19a1b4e70..9c6e9e761 100644 --- a/app/views/steps/list.json.jbuilder +++ b/app/views/steps/list.json.jbuilder @@ -1,11 +1,5 @@ # frozen_string_literal: true -json.array! @steps do |r| - json.array! [ - r.id, - r.name, - { - position: r.position - } - ] +json.array! @steps do |s| + json.array! [s.id, s.label] end diff --git a/config/locales/en.yml b/config/locales/en.yml index 11148cc35..ec604fd75 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -4027,6 +4027,7 @@ en: ztoa_html: "  Name Z to A" steps: + label: "Step %{position} - %{name}" placeholder: 'Step name' default_name: 'Untitled step' completed: 'Completed'