fablabbcn/fablabs

View on GitHub
app/views/backstage/labs/show.html.haml

Summary

Maintainability
Test Coverage
- if current_user.present?
  = render "backstage/header"

.container.mt-4
  .row
    .col-lg-12
      = title @lab
      %table.table
        %tr
          %th State
          %td
            = @lab.current_state

        %tr
          %th State actions
          %td
            - if current_user.present?
              - @lab.current_state.events.keys.each do |event|
                - if current_user.is_referee? || current_user.is_unique_referee? || current_user.has_role?(:superadmin)
                  - if 'request_more_info' == event.to_s
                    = button_to "#{event.capitalize.to_s.tr('_', ' ')}",
                      { controller: 'labs', action: event },
                      method: :get,
                      class:  'btn btn-primary m-1',
                      id:     'event'

                - if current_user.is_referee? or current_user.is_unique_referee?
                  - if ['referee_approves', 'referee_requests_admin_approval', 'referee_rejects'].include? event.to_s
                    = button_to "#{event.capitalize.to_s.tr('_', ' ')}", {controller: 'labs', action: event}, method: :patch, class: 'btn btn-primary m-1', id: 'event'
                - if current_user.has_role? :superadmin
                  - if ['approve', 'reject', 'remove'].include? event.to_s
                    = button_to "#{event.capitalize.to_s.tr('_', ' ')}", {controller: 'labs', action: event}, method: :patch, class: 'btn btn-primary m-1', id: 'event'

        - if @lab.referee.present?
          %tr
            %th Referee
            %td= @lab.referee

        - if current_user.present?
          - if current_user.has_role?(:superadmin) && @lab.approval_workflow_logs.present?
            %tr
              %th Workflow Approval Logs

              %td
                %ul
                  - @lab.approval_workflow_logs.each do |log|
                    - if log.user.present? and log.lab.present?
                      %li= "#{link_to(log.user.full_name, log.user)} said <strong>#{log.workflow_state}</strong> on #{log.created_at}".html_safe
                    - else
                      %li
                        = "#{log.user_id} said #{log.workflow_state} on #{log.created_at}"
                        %small User name or lab name not shown because either one ore another does no longer exist

        - if @lab.referee_approval_processes.present?
          %tr
            %th Referees
            %td
          - @lab.referee_approval_processes.each do |c|
            - if c.referee_lab.present? and c.id
              %tr
                %th
                  = image_tag c.referee_lab.avatar.thumb("90x90#").url, class: 'avatar tiny'
                %td
                  = link_to link_to c.referee_lab, c.referee_lab
                  = c.action

        %tr
          %th Avatar
          %td= image_tag @lab.avatar.url, class: 'avatar med'

        - if @lab.header.present?
          %tr
            %th Header
            %td= image_tag @lab.header.url, class: 'avatar med'
        %tr
          %th Slug
          %td= @lab.slug
        %tr
          %th Creator
          %td= link_to @lab.creator, @lab.creator
        - if @lab.application_notes.present?
          %tr
            %th Application Notes
            %td= @lab.application_notes
        %tr
          %th Description
          %td= @lab.description
        - if @lab.links.any?
          %tr
            %th URLS
            %td
              %ul
                - @lab.links.each do |link|
                  %li= link_to link.url, link.url
        - if @lab.phone.present?
          %tr
            %th Phone
            %td= @lab.phone
        - if @lab.email.present?
          %tr
            %th Email
            %td= mail_to @lab.email, @lab.email
        %tr
          %th Address
          %td= @lab.formatted_address
        - if @lab.address_notes.present?
          %tr
            %th Address Notes
            %td= @lab.address_notes
        %tr
          %th Employees
          %td
            %ul
              - @lab.employees.each do |employee|
                = content_tag_for :li, employee do
                  = link_to employee.user, employee.user
                  = employee.job_title
        %tr
          %th Events
          %td
            %ul
              - @lab.events.each do |event|
                = content_tag_for :li, event do
                  = link_to event
        %tr
          %th Is a ref
          %td= @lab.is_referee
        %tr
          %th Created At
          %td= @lab.created_at
        %tr
          %th Updated At
          %td= @lab.updated_at
        %tr
          %th Discourse sync
          %td
            = @lab.discourse_id

            - if @lab.discourse_errors.present?
              %pre
                = @lab.discourse_errors

            = comments_script(@lab.discourse_id)

      - if current_user.present?
        - if current_user.has_role? :superadmin
          = link_to edit_backstage_lab_path(@lab), class: 'btn btn-primary my-1 mr-1' do
            = icon "edit", "Edit Lab"
          = link_to lab_employees_path(@lab), class: 'btn btn-primary my-1 mr-1' do
            = icon "group", t('shared.edit_employee_list', default: "Edit Employee List")
          = link_to new_lab_event_path(@lab), class: 'btn btn-primary my-1 mr-1' do
            = icon "calendar", t('shared.add_event', default: "Add Event")