rubycentral/cfp-app

View on GitHub
app/views/staff/proposals/show.html.haml

Summary

Maintainability
Test Coverage
.event-info-bar
  .row
    .col-md-4
      .event-info.event-info-dense
        %strong.event-title= event.name
        - if event.start_date? && event.end_date?
          %span.event-meta
            %i.fa.fa-fw.fa-calendar
            = event.date_range
    .col-md-4
      .event-info.event-info-dense
        %span{:class => "event-meta event-status-badge event-status-#{event.status}"}
          CFP
          = event.status
        - if event.open?
          %span.event-meta
            CFP closes:
            %strong= event.closes_at(:month_day_year)
    .col-md-4.text-right.clearfix
      .btn-nav.pull-right
        = smart_return_button
        =link_to "Next Proposal", event_staff_program_proposal_path(uuid: "PLACEHOLDER"), class: "next-proposal btn btn-primary btn-sm", data: {"proposal-uuid" => proposal.uuid }

  .page-header.page-header-slim
    .row
      .col-md-7
        %h1= proposal.title
      .col-md-5.text-right
        .proposal-info-bar
          .proposal-meta.proposal-description
            .proposal-meta-item
              %strong Status:
              %span.proposal-status #{proposal.state_label(small: true)}
            %span.state-buttons #{proposal.state_buttons(show_hard_reset: true)}
    .row
      .proposal-info-bar.clearfix
        .proposal-meta.proposal-description.clearfix
          .col-sm-4
            .col-sm-6.no-pad-left
              .proposal-meta-item
                .info-item-heading #{ 'Speaker'.pluralize(proposal.speakers.count) }
                = proposal.speakers.collect { |speaker| speaker.name }.join(', ')
            .col-sm-6
              -if proposal.tags.present?
                .proposal-meta-item
                  .info-item-heading Tags
                  #{proposal.tags_labels}
          .col-sm-4
            .col-sm-6.no-pad-left
              .proposal-meta-item.full-width
                #current-format
                  .info-item-heading Format
                  #format-name.pull-left
                    #{proposal.session_format_name}
                  #edit-format-icon.fa.fa-pencil
                #edit-format-wrapper
                  %span
                    = render 'shared/proposals/inline_format_edit', proposal: proposal
                  #cancel-format-editing.fa.fa-undo
            .col-sm-6
              .proposal-meta-item.full-width
                #current-track
                  .info-item-heading Track
                  #track-name.pull-left
                    #{proposal.track_name}
                  #edit-track-icon.fa.fa-pencil
                #edit-track-wrapper
                  %span
                    = render 'shared/proposals/inline_track_edit', proposal: proposal
                  #cancel-track-editing.btn.fa.fa-undo
          .col-sm-4
            .proposal-meta-item.col-sm-12.no-pad-left
              .info-item-heading Reviewer Tags
              .proposal-reviewer-tags
                -if proposal.review_tags.present?
                  #{proposal.review_tags_labels}
                -else
                  %em None
              #edit-tags-icon.fa.fa-pencil
              #review-tags-form-wrapper
                = render 'shared/proposals/tags_form', locals: { event: event, proposal: proposal }

  .row
    .col-md-4
      = render partial: 'proposals/contents', locals: { proposal: proposal }

    .col-md-4
      .widget.widget-card.flush-top
        .widget-header
          %h3 Other Proposals
        .widget-content
          = render partial: 'other_proposals', locals: { event: event, other_proposals: @other_proposals }

        .widget-header
          %h3 Speakers
        .widget-content
          = render partial: 'staff/proposals/speakers', locals: { speakers: proposal.speakers }

      .widget.widget-card.flush-top
        .widget-header
          %i.fa.fa-comments
          %h3.comments-heading= pluralize(proposal.public_comments.count, 'Public Comment')
        .widget-content
          = render partial: 'proposals/comments', locals: { proposal: proposal, comments: proposal.public_comments }

          - if proposal.accepted?
            .widget-header
              %h3 Confirmation Notes
            .widget-content
              = render partial: 'proposals/confirmation_notes', locals: {proposal: proposal, notes: proposal.confirmation_notes}

    .col-md-4
      .widget.widget-card.widget-card-alt.flush-top
        .widget-header
          %h3 Review
        .widget-content
          = render partial: 'shared/proposals/rating_form', locals: { event: event, proposal: proposal, rating: @rating }

        .internal-comments
          .widget-header
            %i.fa.fa-comments
            %h3.comments-heading= pluralize(proposal.internal_comments.count, 'Internal Comment')
          .widget-content
            = render partial: 'proposals/comments', locals: { proposal: proposal, comments: proposal.internal_comments }