From 4a1fe822550a126b7d10058f51f60734eed6c784 Mon Sep 17 00:00:00 2001 From: carolyncole <1599081+carolyncole@users.noreply.github.com> Date: Tue, 24 Sep 2024 16:10:23 -0400 Subject: [PATCH] Adding a presenter for the project show page (#951) This is a step to allow us to display only part of the path to the user refs #941 --- app/controllers/projects_controller.rb | 4 +- app/presenters/project_show_presenter.rb | 10 ++++ app/views/projects/show.html.erb | 10 ++-- spec/models/project_show_presenter_spec.rb | 55 ++++++++++++++++++++++ 4 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 app/presenters/project_show_presenter.rb create mode 100644 spec/models/project_show_presenter_spec.rb diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 2f369d6d3..f71881bdb 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -109,7 +109,9 @@ def show @project_purpose = @project_metadata[:project_purpose] respond_to do |format| - format.html + format.html do + @project = ProjectShowPresenter.new(project) + end format.json do render json: project.to_json end diff --git a/app/presenters/project_show_presenter.rb b/app/presenters/project_show_presenter.rb new file mode 100644 index 000000000..dc08ebefe --- /dev/null +++ b/app/presenters/project_show_presenter.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true +class ProjectShowPresenter + delegate "id", "in_mediaflux?", "mediaflux_id", "metadata", "metadata_model", "pending?", "project_directory", "status", "title", to: :project + + attr_reader :project + + def initialize(project) + @project = project + end +end diff --git a/app/views/projects/show.html.erb b/app/views/projects/show.html.erb index 4e26b78b3..a1fb0236f 100644 --- a/app/views/projects/show.html.erb +++ b/app/views/projects/show.html.erb @@ -25,7 +25,7 @@ Project Details: