BathHacked/energy-sparks

View on GitHub
app/views/schools/school_targets/_form.html.erb

Summary

Maintainability
Test Coverage
<%= form_with model: [school_target.school, school_target], local: true, html: {class: 'form-horizontal'} do |f| %>

  <%= hidden_field :school_target, :start_date %>
  <%= hidden_field :school_target, :target_date %>
  <%= hidden_field :school_target, :school_id %>

  <%= render 'shared/errors', subject: school_target, subject_name: t('schools.school_targets.form.school_target') %>

  <% if target_service.enough_data_for_electricity? %>
    <div class="input-group col-12">
      <div class="col-sm-6">
        <%= f.label :electricity, t('schools.school_targets.form.reducing_electricity_usage_by'), class: "form-label" %>
      </div>
      <div class="col-sm-2">
        <%= f.text_field :electricity, class: 'form-control', value: school_target.electricity || 0.0, pattern: '[0-9.]+' %>
      </div>
      <div class="input-group-append">
        <span class="input-group-text"> % </span>
      </div>
    </div>
  <% end %>

  <% if target_service.enough_data_for_gas? %>
    <div class="input-group col-12">
      <div class="col-sm-6">
        <%= f.label :gas, t('schools.school_targets.form.reducing_gas_usage_by'), class: "form-label" %>
      </div>
      <div class="col-sm-2">
        <%= f.text_field :gas, class: 'form-control', value: school_target.gas || 0.0, pattern: '[0-9.]+'  %>
      </div>
      <div class="input-group-append">
        <span class="input-group-text"> % </span>
      </div>
    </div>
  <% end %>

  <% if target_service.enough_data_for_storage_heater? %>
    <div class="input-group col-12">
      <div class="col-sm-6">
        <%= f.label :storage_heaters,  t('schools.school_targets.form.reducing_storage_heater_usage_by'), class: "form-label" %>
      </div>
      <div class="col-sm-2">
        <%= f.text_field :storage_heaters, class: 'form-control', value: school_target.storage_heaters || 0.0, pattern: '[0-9.]+' %>
      </div>
      <div class="input-group-append">
        <span class="input-group-text"> % </span>
      </div>
    </div>
  <% end %>

  <div class="mt-4">
    <% if !school_target.persisted? %>
      <p>
        <%= t('schools.school_targets.form.your_new_target_will_run_for_12_months') %>.<br>
      </p>
    <% else %>
      <p>
        <%= t('schools.school_targets.form.you_are_currently_aiming_to_achieve_your_target_by_html', target_date: nice_dates(school_target.target_date)) %>.
      </p>
    <% end %>
  </div>

  <div class="input-group col-12">
    <div class="col-sm-6">
      <%= f.label :start_date, t('schools.school_targets.form.start_date'), class: "form-label" %>
    </div>
    <div class="col-sm-4">
      <%= component 'date_picker_form', form: f, field_name: :start_date, value: school_target.start_date&.strftime('%d/%m/%Y') %>
    </div>
  </div>
  <%= f.submit school_target.persisted? ? t('schools.school_targets.form.update_our_target') : t('schools.school_targets.form.set_this_target'), class: "btn btn-primary" %>
<% end %>