BathHacked/energy-sparks

View on GitHub
app/views/activities/_form.html.erb

Summary

Maintainability
Test Coverage
<%= simple_form_for([@school, activity], direct_upload: true, html: {class: "activity-form"}) do |f| %>

  <%= render 'shared/errors', subject: activity, subject_name: 'activity' %>

  <fieldset class="form-group">
    <label><%= t('activities.form.the_activity_you_completed') %></label>
    <p><%= activity.activity_type.name %></p>
    <% if !activity.persisted? %>
      <p class="small text-muted">
        <% if activity.activity_type.exceeded_maximum_in_year?(@school) %>
          <%= t('activities.form.exceeded_maximum_in_year', maximum: activity.activity_type.maximum_frequency) %>
        <% else %>
          <%= t('activities.form.completing_this_activity',
                maximum: activity.activity_type.maximum_frequency,
                count: activity.activity_type.score) %>
        <% end %>
      </p>
      <p class="small text-muted">
        <%= t('activities.form.previous_years') %>
      </p>
    <% end %>
  </fieldset>

  <% if activity.activity_type.custom %>
    <div class="form-group mt-4" id="title-field">
      <%= f.label t('activities.form.how_would_you_describe_this_activity') %>
      <p class="small">
        <%= t('activities.form.not_a_standard_activity_message') %>.
      </p>
      <%= f.text_field :title, class: 'form-control', value: t('activities.form.other')  %>
    </div>
  <% end %>

  <div class="form-group mt-4">
    <%= f.label t('activities.form.when_did_you_complete_this_activity'), for: :happened_on %>
    <p class="small text-muted">
      <%= t('activities.form.build_a_record_message') %>.
    </p>
    <%= f.input :happened_on, label: false, as: :tempus_dominus_date %>
  </div>

  <%= f.hidden_field :activity_type_id, value: activity.activity_type.id, required: true %>

  <div class="form-group mt-4">
    <%= f.label :description, t('activities.form.tell_us_more_label') %>
    <small class="form-text text-muted">
      <%= t('activities.form.tell_us_more_message') %>
    </small>
    <small class="form-text text-muted">
      <%= t('activities.form.tell_us_more_formatting_message') %>.
    </small>
    <% if SiteSettings.current&.photo_bonus_points&.nonzero? %>
      <small class="form-text text-muted">
        <%= t('activities.form.adding_a_photo_to_document_your_activity_will_score_you') %>
        <span class="badge badge-success"><%= SiteSettings.current.photo_bonus_points %></span>
        <%= t('activities.form.bonus_points', count: SiteSettings.current.photo_bonus_points) %>
      </small>
    <% end %>

    <%= f.rich_text_area :description, required: true %>
  </div>

  <div class="form-group mt-4">
    <%= f.input :pupil_count, as: :numeric, label: t('activities.form.how_many_pupils_were_involved_in_this_activity') %>
  </div>

  <div class="actions">
    <%= f.submit activity.persisted? ? t('activities.form.update_activity') : t('activities.form.save_activity'), class: 'btn btn-primary' %>
    <%= link_to t('activities.form.cancel'), activity_type_path(activity.activity_type), class: 'btn btn-secondary' %>
  </div>
<% end %>