[Rails] Fertilizer recipe solver for the FAPG.
1
<%= form_with(model: nutrient_measurement) do |form| %>
2
<% if nutrient_measurement.errors.any? %>
3
<div class="alert alert-danger">
4
<p class="mb-1"><strong><%= pluralize(nutrient_measurement.errors.count, "erreur") %></strong> empêchent l’enregistrement :</p>
5
<ul class="mb-0">
6
<% nutrient_measurement.errors.full_messages.each do |msg| %>
7
<li><%= msg %></li>
8
<% end %>
9
</ul>
10
</div>
11
<% end %>
12
13
<div class="mb-3">
14
<%= form.label :measured_on, "Date du relevé", class: "form-label" %>
15
<%= form.date_field :measured_on, class: "form-control", required: true %>
16
</div>
17
18
<h2 class="h6 mt-4 mb-2">Concentrations de nutriments — laisser vide si non mesuré</h2>
19
20
<div class="row g-2">
21
<% # You can reorganize into macros/micros if you prefer %>
22
<% labels = {
23
nno3: "Nitrate (N-NO₃)", p: "Phosphore (P)", k: "Potassium (K)",
24
ca: "Calcium (Ca)", mg: "Magnésium (Mg)", s: "Soufre (S)",
25
na: "Sodium (Na)", cl: "Chlore (Cl)", si: "Silicium (Si)",
26
fe: "Fer (Fe)", zn: "Zinc (Zn)", b: "Bore (B)",
27
mn: "Manganèse (Mn)", cu: "Cuivre (Cu)", mo: "Molybdène (Mo)",
28
nnh4: "Ammonium (N-NH₄)"
29
} %>
30
31
<% NutrientMeasurement::NUTRIENT_FIELDS.each do |field| %>
32
<div class="col-6 col-md-3">
33
<div class="input-group">
34
<%= form.number_field field,
35
class: "form-control",
36
placeholder: "—",
37
step: "0.01",
38
min: "0" %>
39
<span class="input-group-text">mg/L</span>
40
</div>
41
<label class="form-label d-block small text-muted mt-1"><%= labels[field] %></label>
42
</div>
43
<% end %>
44
</div>
45
46
<div>
47
<%= form.submit "Ajouter le relevé", class: "btn btn-primary" %>
48
</div>
49
<% end %>
50