Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/controllers/frames_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ def frame_params
end

def set_frame
@frame = Frame.all.includes(servers: [modele: [:category, :composants],
@frame = Frame.all.includes(servers: [modele: [:category, :components],
cards: [:composant,
ports: [connection: [cable: :connections]],
card_type: [:port_type],]],
Expand Down
10 changes: 5 additions & 5 deletions app/controllers/modeles_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ def show

def new
@modele = Modele.new
@modele.composants.build(:name => 'ALIM', type_composant_id: 4)
@modele.composants.build(:name => 'IPMI', type_composant_id: 4)
@modele.composants.build(:name => 'CM', type_composant_id: 4)
@modele.components.build(:name => 'ALIM', type_composant_id: 4)
@modele.components.build(:name => 'IPMI', type_composant_id: 4)
@modele.components.build(:name => 'CM', type_composant_id: 4)
7.times do |i|
@modele.composants.build(:name => "SL#{i + 1}", type_composant_id: 4)
@modele.components.build(:name => "SL#{i + 1}", type_composant_id: 4)
end
end

Expand Down Expand Up @@ -84,7 +84,7 @@ def modele_params
network_types: [],
enclosures_attributes: [
:id, :modele_id, :_destroy, :position, :display, :grid_areas,
composants_attributes: [:type_composant_id, :enclosure_id, :name, :position, :_destroy, :id],
components_attributes: [:type_composant_id, :enclosure_id, :name, :position, :_destroy, :id],
]
)
end
Expand Down
2 changes: 1 addition & 1 deletion app/models/card.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class Card < ApplicationRecord
delegate :is_power_input?, to: :card_type, allow_nil: true

belongs_to :server
belongs_to :composant
belongs_to :composant, class_name: "EnclosureComponent"
delegate :frame, to: :server # TODO: replace by has_one?

has_many :ports
Expand Down
4 changes: 2 additions & 2 deletions app/models/enclosure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ class Enclosure < ApplicationRecord
acts_as_list scope: [:modele_id]

belongs_to :modele
has_many :composants, -> { order(position: :asc) }
has_many :components, -> { order(position: :asc) }, class_name: "EnclosureComponent"

accepts_nested_attributes_for :composants,
accepts_nested_attributes_for :components,
:allow_destroy => true,
:reject_if => :all_blank
end
4 changes: 2 additions & 2 deletions app/models/composant.rb → app/models/enclosure_component.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# frozen_string_literal: true

class Composant < ApplicationRecord
class EnclosureComponent < ApplicationRecord
include PublicActivity::Model
tracked owner: ->(controller, model) { controller && controller.current_user }
tracked :parameters => {
Expand All @@ -15,7 +15,7 @@ class Composant < ApplicationRecord

has_many :cards

scope :slots, -> { where(type_composant: TypeComposant.find_by_name('SLOT')).order("composants.position ASC") }
scope :slots, -> { where(type_composant: TypeComposant.find_by_name('SLOT')).order("enclosure_components.position ASC") }

def to_s
name.to_s
Expand Down
2 changes: 1 addition & 1 deletion app/models/frame.rb
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ def init_pdus
side: Pdu.calculated_side(frame, line_name),
color: line_name == 'A' ? 'J' : 'B')
puts "ERROR: #{pdu}" unless pdu.valid?
enclosure.composants.each do |composant|
enclosure.components.each do |composant|
card = Card.find_or_create_by(card_type: card_type,
server: pdu,
composant: composant)
Expand Down
2 changes: 1 addition & 1 deletion app/models/modele.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class Modele < ApplicationRecord

has_many :servers, dependent: :restrict_with_error
has_many :enclosures, dependent: :restrict_with_error
has_many :composants, through: :enclosures
has_many :components, through: :enclosures

belongs_to :manufacturer, counter_cache: true
belongs_to :architecture, counter_cache: true
Expand Down
2 changes: 1 addition & 1 deletion app/models/type_composant.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ class TypeComposant < ApplicationRecord
tracked owner: ->(controller, model) { controller && controller.current_user }
has_changelog

has_many :composants
has_many :components, class_name: "EnclosureComponent"
end
2 changes: 1 addition & 1 deletion app/queries/frames/including_servers_query.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ def self.call(relation = Frame.all, order = nil)
bay: [:frames],
servers: [
:frame, :gestion, :cluster,
modele: [:category, :composants],
modele: [:category, :components],
cards: [
:composant,
ports: [:cable, connection: :cable],
Expand Down
4 changes: 2 additions & 2 deletions app/views/islets/_network_capacity.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
grid-row: <%= "#{bay.lane.to_i}/#{bay.lane.to_i+1}" %>;">
<% frames.each_with_index do |frame, index| %>
<% # TODO: move in the action or a model method %>
<% servers = frame.servers.includes(:bay, :stack, modele: { enclosures: :composants },
<% servers = frame.servers.includes(:bay, :stack, modele: { enclosures: :components },
cards: [{ card_type: :port_type }, { ports: :cable }])
.where("servers.network_types @> ?", "{#{network}}") # Switch LAN
%>
Expand Down Expand Up @@ -40,7 +40,7 @@
<% if server.modele.present? %>
<% server.modele.enclosures.each do |enclosure| %>
<% cards = server.cards %>
<% components_per_enclosure = enclosure.composants.reject { |c| c.name&.downcase == "alim" } %>
<% components_per_enclosure = enclosure.components.reject { |c| c.name&.downcase == "alim" } %>
<% if enclosure.display != 'horizontal' %>
<table>
<tr>
Expand Down
10 changes: 5 additions & 5 deletions app/views/modeles/_enclosure_fields.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
</span>
</div>

<% child_index = "__#{Digest::MD5.hexdigest("Enclosure_composants")}_NEW_RECORD__" %>
<% child_index = "__#{Digest::MD5.hexdigest("Enclosure_components")}_NEW_RECORD__" %>
<div data-controller="nested-form" data-nested-form-child-index-name-value="<%= child_index %>">
<template data-nested-form-target="template">
<%= f.fields_for :composants, f.object.composants.slots.klass.new,
<%= f.fields_for :components, f.object.components.slots.klass.new,
child_index: child_index do |composant_fields| %>
<%= render partial: "composant_fields", locals: { f: composant_fields, type_composant: "SLOT" } %>
<%= render partial: "component_fields", locals: { f: composant_fields, type_composant: "SLOT" } %>
<% end %>
</template>

Expand All @@ -38,8 +38,8 @@
<%= f.text_area :grid_areas, class: "font-monospace form-control", style: "height:110px;" %>
</fieldset>
</li>
<%= f.fields_for :composants, f.object.composants.slots do |composant_fields| %>
<%= render partial: "composant_fields", locals: { f: composant_fields, type_composant: "SLOT" } %>
<%= f.fields_for :components, f.object.components.slots do |composant_fields| %>
<%= render partial: "component_fields", locals: { f: composant_fields, type_composant: "SLOT" } %>
<% end %>

<li class="list-group-item bg-transparent" data-nested-form-target="target"></li>
Expand Down
2 changes: 1 addition & 1 deletion app/views/modeles/show.json.jbuilder
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
json.extract! @modele, :id, :name, :description, :color, :u, :nb_elts, :category, :architecture, :manufacturer

json.enclosures(@modele.enclosures) do |enclosure|
json.extract! enclosure, :id, :display, :position, :grid_areas, :composants
json.extract! enclosure, :id, :display, :position, :grid_areas, :components
end

json.extract! @modele, :created_at, :updated_at
2 changes: 1 addition & 1 deletion app/views/pdus/_pdu.html.erb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<h5 class="text-center"><%= link_to pdu.name[-1], edit_server_path(pdu.id) %></h5>
<% pdu.modele.enclosures.first.composants.each do |component| %>
<% pdu.modele.enclosures.first.components.each do |component| %>
<div class="py-0 px-3 mb-4 text-center">
<%= link_to "#", class: "pdu-line" do %>
<span class="badge text-bg-secondary"><%= component.name ? component.name[-2..-1] : ' ' %></span>
Expand Down
6 changes: 3 additions & 3 deletions app/views/servers/_card_fields.html.erb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<%
if local_assigns[:enclosure].present?
composants = enclosure.composants.slots
components = enclosure.components.slots
else
composants = server.modele.composants.slots
components = server.modele.components.slots
end
%>

Expand All @@ -11,7 +11,7 @@
data-new-record="<%= f.object.new_record? %>">
<div class="row">
<span class="col-md-2 mb-2 mb-md-0">
<%= f.select :composant_id, options_for_select(composants.map { |c| [c.name || c.position, c.id] },
<%= f.select :composant_id, options_for_select(components.map { |c| [c.name || c.position, c.id] },
f.object.composant_id),
{},
{ class: "form-select" } %>
Expand Down
2 changes: 1 addition & 1 deletion app/views/servers/_draw_patch_panel.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<b><%= link_to h(server.name), server_path(server, :view => params[:view]) %></b>
<br>

<% slots_sur_modele = server.modele.composants.slots.to_a %>
<% slots_sur_modele = server.modele.components.slots.to_a %>
<% half_slots = slots_sur_modele.length / 2 %>

<% slots_sur_modele.slice(0, half_slots).each do |slot| %>
Expand Down
8 changes: 4 additions & 4 deletions app/views/servers/_draw_server.html.erb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<% if server.modele.present? %>
<div class="float-end">
<% slots_sur_modele = server.modele.composants.slots %>
<% slots_sur_modele = server.modele.components.slots %>
<table class="slots">
<thead>
<% slots_sur_modele.each do |slot| %>
Expand Down Expand Up @@ -33,15 +33,15 @@
<tr>
<td>
<%= ports_by_card(port_type: PortType.find_by_name('RJ'),
port_quantity: server.modele.composants.where(type_composant_id: 3).count,
port_quantity: server.modele.components.where(type_composant_id: 3).count,
ports_data: Port.where(card: server.cards.joins(composant: :type_composant).where('type_composants.name = ?', 'CM')) )%>
</td>
</tr>
</tbody>
</table>
</div>

<% if server.modele.composants.where(type_composant_id: 2).count > 0 %>
<% if server.modele.components.where(type_composant_id: 2).count > 0 %>
<div class="float-end">
<%= ports_by_card(port_type: PortType.find_by_name('IPMI'),
port_quantity: 1,
Expand All @@ -60,7 +60,7 @@
<br>
<i><%= link_to server.modele.try(:name), edit_modele_path(server.modele) %></i>
<div class="alims">
<% alims_sur_modele = server.modele.composants.where(type_composant_id: 1) %>
<% alims_sur_modele = server.modele.components.where(type_composant_id: 1) %>
<% alims_sur_modele.each_with_index do |composant_alim, i| %>
<span class="alim">ALIM <%= i+1 %></span>
<% end %>
Expand Down
10 changes: 5 additions & 5 deletions app/views/servers/_draw_server_compact.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<% server.modele.enclosures.each_with_index do |enclosure, index| %>

<% composants_per_enclosure = enclosure.composants.slots %>
<% components_per_enclosure = enclosure.components.slots %>

<% if enclosure.display == "grid" %>
<style type="text/css">
Expand All @@ -14,7 +14,7 @@
}
</style>
<div class="container enclosure-container">
<% composants_per_enclosure.each do |component| %>
<% components_per_enclosure.each do |component| %>
<% class_name = "item-#{component.name}" %>
<style>
.<%= class_name %> {
Expand All @@ -38,12 +38,12 @@
<% if enclosure.display != "horizontal" %>

<tr>
<% composants_per_enclosure.each do |component| %>
<% components_per_enclosure.each do |component| %>
<th><%= slot_label(server, component) %></th>
<% end %>
</tr>
<tr>
<% composants_per_enclosure.each do |component| %>
<% components_per_enclosure.each do |component| %>
<td class="slot_column">
<%= render partial: "servers/draw_component", locals: { server: , component: , selected_port: } %>
</td>
Expand All @@ -52,7 +52,7 @@

<% else %>

<% composants_per_enclosure.each do |component| %>
<% components_per_enclosure.each do |component| %>
<tr>
<th><%= slot_label(server, component) %></th>
<td>
Expand Down
2 changes: 1 addition & 1 deletion app/views/servers/show.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@

<dt class="col-6 text-end"><%= Card.model_name.human.pluralize %> :</dt>
<dd class="col-6">
<% @server.modele.composants.slots.each do |slot| %>
<% @server.modele.components.slots.each do |slot| %>
<% @server.cards.where(:composant_id => slot.id).each do |card| %>
<div>
<%= card.composant.name ? card.composant.name : card.composant.position %>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
class RenameComposantsToEnclosureComponent < ActiveRecord::Migration[7.1]
def change
rename_table :composants, :enclosure_components
end
end
26 changes: 13 additions & 13 deletions db/schema.rb

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions lib/tasks/fix_duplicated_slots.rake
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,22 @@ namespace :duplicated_slots do
desc "Fix duplicated slots"
task :fix => :environment do

Modele.includes(:enclosures => :composants)
Modele.includes(enclosures: :components)
.find_each do |modele|

servers = []
modele.enclosures.each do |enclosure|

composants_names = enclosure.composants.map(&:name)
if composants_names.include?('SL1') && composants_names.include?('1')
components_names = enclosure.components.map(&:name)
if components_names.include?('SL1') && components_names.include?('1')
# Potential duplicated slot
puts "****** Modele ##{modele.id} - #{modele.name}"

enclosure.composants.each do |composant|
enclosure.components.each do |composant|
if composant.name.to_i.to_s == composant.name
# Duplicated slot
puts "****** Composant ##{composant.id} - #{composant.name}"
correct_composant = enclosure.composants.find_by(name: 'SL' + composant.name)
correct_composant = enclosure.components.find_by(name: 'SL' + composant.name)
puts "****** correct_composant ##{correct_composant.id} - #{correct_composant.name}"
composant.cards.each do |card|
card.composant = correct_composant
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

require 'rails_helper'

RSpec.describe Composant do
RSpec.describe EnclosureComponent do
# it_behaves_like "changelogable", object: -> { described_class.new(type_composant: TypeComposant.create!) },
# new_attributes: { name: "New name" }

Expand Down
2 changes: 1 addition & 1 deletion spec/models/enclosure_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@

describe "associations" do
it { is_expected.to belong_to(:modele) }
it { is_expected.to have_many(:composants) }
it { is_expected.to have_many(:components) }
end
end
2 changes: 1 addition & 1 deletion spec/models/modele_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
it { is_expected.to belong_to(:category) }
it { is_expected.to have_many(:servers) }
it { is_expected.to have_many(:enclosures) }
it { is_expected.to have_many(:composants).through(:enclosures) }
it { is_expected.to have_many(:components).through(:enclosures) }
end

describe "#validate_network_types_values" do
Expand Down
Loading