check if clients are editable
This commit is contained in:
@@ -5,4 +5,12 @@ class Client < ApplicationRecord
|
|||||||
|
|
||||||
validates :company_name, :firstname, :lastname, presence: true
|
validates :company_name, :firstname, :lastname, presence: true
|
||||||
# Add other validations as needed
|
# Add other validations as needed
|
||||||
|
|
||||||
|
def referenced_count
|
||||||
|
owner_subprojects.count + builder_subprojects.count + client_subprojects.count
|
||||||
|
end
|
||||||
|
|
||||||
|
def editable?
|
||||||
|
referenced_count <= 1
|
||||||
|
end
|
||||||
end
|
end
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
<%= form_with(model: client) do |form| %>
|
<% if @client.editable? %>
|
||||||
|
<%= form_with(model: client) do |form| %>
|
||||||
<% if client.errors.any? %>
|
<% if client.errors.any? %>
|
||||||
<div style="color: red">
|
<div style="color: red">
|
||||||
<h2><%= pluralize(client.errors.count, "error") %> prohibited this client from being saved:</h2>
|
<h2><%= pluralize(client.errors.count, "error") %> prohibited this client from being saved:</h2>
|
||||||
@@ -11,52 +12,17 @@
|
|||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
<% [:company_name, :firstname, :lastname, :streetname, :zipcode, :city, :country, :email, :phone].each do |attrib|%>
|
||||||
<div>
|
<div>
|
||||||
<%= form.label :company_name, style: "display: block" %>
|
<%= form.label attrib, style: "display: block" %>
|
||||||
<%= form.text_field :company_name %>
|
<%= form.text_field attrib %><br>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<%= form.label :firstname, style: "display: block" %>
|
|
||||||
<%= form.text_field :firstname %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<%= form.label :lastname, style: "display: block" %>
|
|
||||||
<%= form.text_field :lastname %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<%= form.label :streetname, style: "display: block" %>
|
|
||||||
<%= form.text_field :streetname %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<%= form.label :zipcode, style: "display: block" %>
|
|
||||||
<%= form.text_field :zipcode %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<%= form.label :city, style: "display: block" %>
|
|
||||||
<%= form.text_field :city %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<%= form.label :country, style: "display: block" %>
|
|
||||||
<%= form.text_field :country %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<%= form.label :email, style: "display: block" %>
|
|
||||||
<%= form.text_field :email %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<%= form.label :phone, style: "display: block" %>
|
|
||||||
<%= form.text_field :phone %>
|
|
||||||
</div>
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<%= form.submit %>
|
<%= form.submit %>
|
||||||
</div>
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<p>This client is used in multiple subprojects and cannot be edited.</p>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
Reference in New Issue
Block a user