hpi-schuelerklub/workshop-portal

View on GitHub
app/views/application_letters/_application_selective.html.erb

Summary

Maintainability
Test Coverage
<% if can? :edit_applicants, Event %>
    <% if application_letter.event.participant_selection_locked %>
        <%= t("application_status.#{application_letter.status}") %>
        <% if application_letter.event.phase == :execution %>
            <% if application_letter.status.to_sym == :accepted %>
                <% if application_letter.status_notification_sent %>                
                    <%= link_to t('application_status.actions.cancel'), update_application_letter_status_path(application_letter, 'application_letter[status]': :canceled),
                            method: :put, class: 'btn btn-sm btn-default' %>
                <% else %>
                    <span class="glyphicon glyphicon-envelope"></span>
                <% end %>
            <% elsif application_letter.status.to_sym == :alternative && @has_free_places %>
                <%= link_to t('application_status.actions.accept'), update_application_letter_status_path(application_letter, 'application_letter[status]': :accepted),
                            method: :put, class: 'btn btn-sm btn-default' %>
            <% elsif application_letter.status.to_sym == :rejected && @has_free_places && !application_letter.event.has_alternative_application_letters? %>
                <%= link_to t('application_status.actions.accept'), update_application_letter_status_path(application_letter, 'application_letter[status]': :accepted),
                            method: :put, class: 'btn btn-sm btn-default' %>
            <% end %>
        <% end %>
    <% elsif application_letter.event.phase == :selection %>
        <%= form_for :application_letter, url: update_application_letter_status_path(application_letter), html: {method: :put} do |f| %>
            <div class="form-group">
              <div class="btn-group" data-toggle="buttons">
                <% ApplicationLetter.selectable_statuses.each do |key| %>
                    <label class="btn btn-xs btn-default <%= 'active' if application_letter.status == key %>">
                      <%= f.radio_button :status,
                                         key,
                                         checked: application_letter.status == key,
                                         onchange:
                                             'ajaxUpdateApplicationStatus(this.form, "' +
                                                 I18n.t('events.applicants_overview.failed_to_update') +
                                                 '")' %>
                      <%= t("application_status.#{key}") %>
                    </label>
                <% end %>
              </div>
              <%= f.error_span(:status) %>
            </div>
        <% end %>
    <% else %>
      <%= t("application_status.#{application_letter.status}") %>
    <% end %>
<% elsif can? :view_applicants, Event %>
    <%= t("application_status.#{application_letter.status}") %>
<% else %>
    <%= t("application_status.#{:pending}") %>
<% end %>