isprambiente/medplan

View on GitHub
app/views/users/_user.html.haml

Summary

Maintainability
Test Coverage
- row_class = 'button'
- if user.events.future.distinct.map{|m| m.status(user)}.uniq.include?('confirmed')
  - row_class += ' is-success'
- elsif !user.events.future.distinct.blank?
  - row_class += ' is-warning'
- elsif user.events.future.distinct.blank?
  - row_class += ''
- if user.locked_at? || user.deleted?
  - row_class += ' is-light'
- else  - row_class += ' reveal-modal'
= turbo_frame_tag dom_id(user) do
  .columns.row.user.is-unselectable
    .column.first
      - if user.locked_at?
        %span.tooltip.help.is-inline-flex{ data: { tooltip: "Utente disattivato manualmente il #{ l_date user.locked_at } #{ 'con contratto '+user.status.upcase if user.status.present? }. Per riattivarlo cliccare sul bottone 'Riattiva'", disable_hover: "false"} }
          %i.fas.fa-ban.has-text-danger
      - elsif user.deleted?
        %span.tooltip.help.is-inline-flex{ data: { tooltip: "Contratto scaduto il #{ l_date user.scadenza_rapporto.to_date }" } }
          %i.fas.fa-ban.has-text-danger
      - unless user.postazione == "sede" || user.postazione == "altro"
        - text = "#{ user.postazione.try(:capitalize) }#{ ' presso ' + user.postazione_locazione.downcase  if user.postazione_locazione.present? }#{ ' dal ' + l( user.postazione_inizio.to_date )  if user.postazione_inizio.present? }#{ ' al ' + l( user.postazione_fine.to_date )  if user.postazione_fine.present? }"
        %span.tooltip.help.is-inline-flex{ data: { tooltip: text } }
          %i.fas.fa-circle.has-text-warning
      - unless user.body.blank?
        %span.tooltip.help.is-inline-flex{ data: { tooltip: "#{t('note', scope: 'user')}: #{user.body}"} }
          %i.fas.fa-comment
      = user.label
      - if user.require_visit?
        %span.help.is-inline-flex.has-text-danger deve fare la visita
      - if user.locked_at? && user.status == 'attivo'
        - text = "Utente con contratto #{ user.tipo_contratto } fino a #{ l_date user.scadenza_rapporto }"
        %span.tooltip.help.is-inline-flex{ data: { tooltip: text } }
          %i.fas.fa-circle.has-text-success
    .column.last.categories.is-narrow.has-text-right
      - if user.audits.present?
        - arrAudits = []
        - user.audits.map do |audit|
          - arrAudits << content_tag( :span, audit.category.title, class: "#{audit.status_class} tooltip help is-inline-flex", data: { tooltip: "#{ audit.expired? ? 'Scaduto' : 'Scade' } il #{l( audit.expire ) unless audit.expire.blank?}" } )
        = arrAudits.join(',&nbsp;').html_safe
      - else
        %small.has-text-danger Nessun rischio lavorativo configurato
      %span.tag{class: user.city}= user.city.capitalize
    .column.tool.is-narrow
      .buttons.has-addons.is-right
        = link_to fas_icon('file'), user_path(id: user.id, filter: {view: 'modal'}), class: 'button tooltip', data: { tooltip: t('details', scope: 'user'), turbo_frame: 'modal' }
        = link_to fas_icon('exclamation-triangle'), user.locked_at? || user.deleted? ? '#' : user_audits_path(user, filter: {view: 'modal'}), :class => if user.locked_at? || user.deleted? then 'button disabled tooltip' else 'button tooltip' end , data: { turbo_frame: 'modal', tooltip: t('title', scope: 'risk') }, disabled: user.locked_at? || user.deleted?
        = link_to fas_icon('calendar'), user.locked_at? || user.deleted? ? '#' : new_user_event_path(user, filter: {view: 'modal'}), class: "tooltip #{row_class}" , data: { turbo_frame: 'modal', tooltip: t('manage', scope: 'event') }, disabled: user.locked_at? || user.deleted?
        - if user.locked_at?
          = link_to fas_icon("redo"), unlock_user_path(user), method: :patch, :class => 'button is-danger tooltip', data: { confirm: t('reactive', scope: 'message.user'), tooltip: t('reactive', scope: 'user'), turbo_frame: dom_id(user), turbo_method: 'PATCH' }
        - elsif user.deleted?
          = link_to fas_icon('trash'), '#', :class => 'button tooltip', disabled: true, data: { tooltip: t('deleted', scope: 'user') }
        - elsif Devise.mappings[:user].lockable? && !user.access_locked? && current_user == user
          = link_to fas_icon('trash'), '#', :class => 'button is-light tooltip', disabled: true, data: { tooltip: t('same_user', scope: 'user') }
        - else
          %a{ href: user.locked_at? ? '#' : user_path(user), class: 'button is-danger tooltip', data: { method: :delete, turbo_method: 'DELETE', confirm: t('delete', scope: 'message.user'), tooltip: t('delete', scope: 'user'), disabled: user.locked_at? }}=  fas_icon('trash')