From bccfc0a9ec49377a162180ac095fd1e3b466a31b Mon Sep 17 00:00:00 2001 From: B_Rass Date: Wed, 19 Aug 2026 18:04:48 +0200 Subject: [PATCH 1/2] Show PDU visualization on frame visualization --- app/models/frame.rb | 5 +- .../frames/_show_complete_frame.html.erb | 55 +++++++++++++++---- app/views/visualization/frames/show.html.erb | 2 +- spec/models/frame_spec.rb | 5 +- 4 files changed, 53 insertions(+), 14 deletions(-) diff --git a/app/models/frame.rb b/app/models/frame.rb index 72dac7304..5133b48f8 100644 --- a/app/models/frame.rb +++ b/app/models/frame.rb @@ -12,9 +12,12 @@ class Frame < ApplicationRecord # rubocop:disable Metrics/ClassLength belongs_to :bay has_many :materials, -> { order("servers.position desc") }, class_name: "Server", dependent: :restrict_with_error - has_many :pdus, -> { only_pdus }, class_name: "Server", dependent: :restrict_with_error has_many :servers, -> { no_pdus.order("servers.position desc") }, class_name: "Server", dependent: :restrict_with_error + has_many :power_distribution_units, dependent: :restrict_with_error + has_many :left_power_distribution_units, -> { left }, class_name: "PowerDistributionUnit" + has_many :right_power_distribution_units, -> { right }, class_name: "PowerDistributionUnit" + has_one :islet, through: :bay has_one :room, through: :islet delegate :name, to: :room, prefix: true, allow_nil: true diff --git a/app/views/visualization/frames/_show_complete_frame.html.erb b/app/views/visualization/frames/_show_complete_frame.html.erb index 8649d7e50..c6da08b6c 100644 --- a/app/views/visualization/frames/_show_complete_frame.html.erb +++ b/app/views/visualization/frames/_show_complete_frame.html.erb @@ -1,8 +1,6 @@ <%# locals: (room:, frame:, should_show_heading: true) -%> -<% - settings = { min_height: params[:view] == "back" ? 20 : 27 } -%> +<% settings = { min_height: params[:view] == "back" ? 20 : 27 } %>
@@ -20,24 +18,59 @@
- -
+
<%= render partial: "visualization/frames/show_frame", locals: { frame:, servers: frame.servers, settings:, view_type: "front", } %>
-
+ +
<%= render partial: "visualization/frames/show_frame", locals: { frame:, servers: frame.servers, settings:, view_type: "back", } %>
- + + <% if frame.left_power_distribution_units.any? %> +
+ <% frame.left_power_distribution_units.each do |power_distribution_unit| %> + <%= render CardComponent.new(extra_classes: "bg-body-tertiary rounded-bottom") do |card| %> + <% card.with_header do %> +
+ <%= link_to power_distribution_unit_path(power_distribution_unit) do %> + <%= render power_distribution_unit.decorated.power_line_badge_component %> + <% end %> +
+ <% end %> + + <%= render partial: "power_distribution_units/visualization", + locals: { power_distribution_unit: } %> + <% end %> + <% end %> +
+ <% end %> + + <% if frame.right_power_distribution_units.any? %> +
+ <% frame.right_power_distribution_units.each do |power_distribution_unit| %> + <%= render CardComponent.new(extra_classes: "bg-body-tertiary rounded-bottom") do |card| %> + <% card.with_header do %> +
+ <%= link_to power_distribution_unit_path(power_distribution_unit) do %> + <%= render power_distribution_unit.decorated.power_line_badge_component %> + <% end %> +
+ <% end %> + + <%= render partial: "power_distribution_units/visualization", + locals: { power_distribution_unit: } %> + <% end %> + <% end %> +
+ <% end %>
diff --git a/app/views/visualization/frames/show.html.erb b/app/views/visualization/frames/show.html.erb index b08adcda8..fe9c87ebb 100644 --- a/app/views/visualization/frames/show.html.erb +++ b/app/views/visualization/frames/show.html.erb @@ -41,7 +41,7 @@ <%= render "ports/modal_edit_port" %> -