diff --git a/app/models/frame.rb b/app/models/frame.rb index 72dac7304..972fd4b6b 100644 --- a/app/models/frame.rb +++ b/app/models/frame.rb @@ -12,8 +12,20 @@ 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 :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", + dependent: :restrict_with_error + has_many :right_power_distribution_units, + -> { right }, + class_name: "PowerDistributionUnit", + dependent: :restrict_with_error has_one :islet, through: :bay has_one :room, through: :islet 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" %> -