openSUSE/osem

View on GitHub
app/views/admin/events/show.html.haml

Summary

Maintainability
Test Coverage
.tabbable
  %ul.nav.nav-tabs
    %li.active
      = link_to 'Proposal', '#proposal-content', 'data-toggle' => 'tab'
    %li
      = link_to 'History', '#history-content', 'data-toggle' => 'tab'
    %li
      %a{ href: '#proposal-tasks', 'data-toggle' => 'tab' }
        Tasks
        %span.label.label-danger{ style: 'border-radius: 1em;' }
          - progress_status = @event.progress_status
          = progress_status.reject{ |_key, value| value || value.nil? }.length
    %li
      = link_to 'Commercials', '#proposal-commercials', 'data-toggle' => 'tab'

  .tab-content
    #proposal-content.tab-pane.active
      = render 'proposal'
    #history-content.tab-pane
      .col-md-12
        %table.datatable
          %thead
            %tr
              %th ID
              %th Description
              %th Actions
          %tbody
            - @versions.each do |version|
              %tr
                %td
                  = version.id
                %td
                  %p
                    = link_to_user(version.whodunnit)

                    - if version.item_type == 'Event'
                      = event_change_description(version)
                      = "event #{@event.title}"

                    - elsif version.item_type == 'Vote'
                      = vote_change_description(version)
                      = "event #{@event.title}"

                    - else
                      = general_change_description(version)
                      =  link_to 'commercial',
                                edit_admin_conference_program_event_path(conference_id: @conference.short_title,
                                        id: @event.id, anchor: 'commercials-content')

                    %small.text-muted
                      = distance_of_time_in_words(Time.now, version.created_at) + ' ago'
                      %br
                      = "(#{version.created_at.strftime('%B %-d, %Y %H:%M')})"

                  %br
                  = render partial: 'shared/object_changes', locals: { version: version }
                %td
                  = render partial: 'shared/changelog_actions', locals: { version: version }

    #proposal-tasks.tab-pane
      - progress_percentage = @event.calculate_progress
      .col-md-12
        %h3
          = @event.title
        %br
        %table.table.table-hover
          %tr
            %td= link_to "#{'Speaker'.pluralize(@event.speakers.count)} must be registered to the conference", admin_conference_registrations_path(@event.program.conference.short_title)
            %td{ 'class' => class_for_todo(progress_status['registered']) }
              %span{ 'class' => [icon_for_todo(progress_status['registered']), 'fa-lg'] }
          %tr
            %td
              - speakers_count = @event.speakers.count
              - if speakers_count == 1
                = link_to 'Fill out speaker\'s biography', edit_admin_user_path(@event.speakers.first)
              - elsif speakers_count > 1
                Fill out speaker's biography:
                = speaker_links(@event)
            %td{ 'class' => class_for_todo(progress_status['biographies']) }
              %span{ 'class' => [icon_for_todo(progress_status['biographies']), 'fa-lg'] }
          %tr
            %td= link_to 'Add a subtitle', edit_admin_conference_program_event_path(@event.program.conference.short_title, @event)
            %td{ 'class' => class_for_todo(progress_status['subtitle']) }
              %span{ 'class' => [icon_for_todo(progress_status['subtitle']), 'fa-lg'] }
          %tr
            %td= link_to 'Add a commercial', edit_admin_conference_program_event_path(@event.program.conference.short_title, @event, anchor: 'commercials-content')
            %td{ 'class' => class_for_todo(progress_status['commercials']) }
              %span{ 'class' => [icon_for_todo(progress_status['commercials']), 'fa-lg'] }
          - unless progress_status['track'].nil?
            %tr
              %td= link_to 'Add a track', edit_admin_conference_program_event_path(@event.program.conference.short_title, @event)
              %td{ 'class' => class_for_todo(progress_status['track']) }
                %span{ 'class' => [icon_for_todo(progress_status['track']), 'fa-lg'] }
          %tr
            %td= link_to 'Add a difficulty level', edit_admin_conference_program_event_path(@event.program.conference.short_title, @event)
            %td{ 'class' => class_for_todo(progress_status['difficulty_level']) }
              %span{ 'class' => [icon_for_todo(progress_status['difficulty_level']), 'fa-lg'] }
    #proposal-commercials.tab-pane
      = render partial: 'shared/media_items', locals: { commercials: @event.commercials }