isprambiente/medplan

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

Summary

Maintainability
Test Coverage
- if user.username.blank?
  - status = "stato del contratto non disponibile"
  - status_class = 'grey-dark'
- elsif user.deleted?
  - status = 'offline'
  - status_class = 'danger'
- else
  - status = 'online'
  - status_class = 'success'
#user.container
  .columns.has-2-tablet
    .column
      %article.message
        .message-header
          = t('general_informations', scope: 'user')
          // è un esterno oppure è stata impostata a "true" la variabile "permit_full_edit_user" nel file di configurazione
          -# if user.username.blank? || Settings.users.permit_edit_user
            = link_to fas_icon('edit', text: 'Modifica dati utente'), edit_external_user_path(user), id: 'edit_#{user.id}', remote: true, data: { action: 'ajax:success->users#goPage' }
        .message-body
          %ul.info
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('user', text: t('fullname', scope: 'user')+': ')
              .column.has-text-left
                - if Settings.users.permit_edit_user && !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.label.present? ? 'modificare' : 'inserire' } il nominativo", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[label]", type: 'input', value: user.label.present? ? user.label : '', placeholder: "Inserisci il nominativo", required: false } } }= ( user.label.present? ? user.label : 'aggiungi il nominativo' )
                - else
                  = @user.label.presence || 'n.d.'
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('barcode', text: t('cf', scope: 'user')+': ')
              .column.has-text-left
                - if Settings.users.permit_edit_user && !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.cf.present? ? 'modificare' : 'inserire' } il codice fiscale", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[cf]", type: 'input', value: user.cf.present? ? user.cf : '', placeholder: "Inserisci il codice fiscale", required: false } } }= ( user.cf.present? ? user.cf : 'aggiungi il codice fiscale' )
                - else
                  = user.cf.presence || 'n.d.'
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('calendar', text: t('born_date', scope: 'user')+': ')
              .column.has-text-left
                - if Settings.users.permit_edit_user && !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.data_nasc.present? ? 'modificare' : 'inserire' } la data di nascita", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[data_nasc]", type: 'date', value: user.data_nasc.present? ? user.data_nasc : '', placeholder: "Inserisci la data di nascita", required: false } } }= ( user.data_nasc.present? ? l_date(user.data_nasc) : 'aggiungi la data di nascita' )
                - else
                  = user.data_nasc.blank? ? 'n.d.' : l_date(user.data_nasc)
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('map-marker', text: t('born_city', scope: 'user')+': ')
              .column.has-text-left
                - if Settings.users.permit_edit_user && !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.citta_nasc.present? ? 'modificare' : 'inserire' } la città di nascita", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[citta_nasc]", type: 'input', value: user.citta_nasc.present? ? user.citta_nasc : '', placeholder: "Inserisci la città di nascita", required: false } } }= ( user.citta_nasc.present? ? user.citta_nasc : 'aggiungi la città di nascita' )
                - else
                  = user.citta_nasc.blank? ? 'n.d.' : user.citta_nasc.titleize
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('envelope', text: t('email', scope: 'user')+': ')
              .column.has-text-left
                - if Settings.users.permit_edit_user && !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.email.present? ? 'modificare' : 'inserire' } l'indirizzo e-mail", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[email]", type: 'email', value: user.email.present? ? user.email : '', placeholder: "Inserisci l'indirizzo e-mail", required: false } } }= ( user.email.present? ? user.email : "aggiungi l'indirizzo e-mail" )
                - else
                  = user.email.blank? ? 'n.d.' : "<a href='mailto:#{user.email}'>#{user.email}</a>".html_safe
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('credit-card', text: t('signature', scope: 'user')+': ')
              .column.has-text-left
                - if Settings.users.permit_edit_user && !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.matr.present? ? 'modificare' : 'inserire' } la matricola", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[matr]", type: 'input', value: user.matr.present? ? user.matr : '', placeholder: "Inserisci la matricola", required: false } } }= ( user.matr.present? ? user.matr : 'aggiungi la matricola' )
                - else
                  = user.matr.presence || 'n.d.'
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('money-check', text: t('contract_type', scope: 'user')+': ')
              .column.has-text-left
                - if Settings.users.permit_edit_user && !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.denominazione_contratto.present? ? 'modificare' : 'inserire' } il rapporto di lavoro", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[denominazione_contratto]", type: 'select', options: Settings.users.contracts.join(','), value: user.denominazione_contratto.presence || '', placeholder: "Inserisci un rapporto di lavoro", required: false, prompt: 'Nessun rapporto' } } }= ( user.denominazione_contratto.presence || 'aggiungi un rapporto di lavoro' )
                - else
                  = user.denominazione_contratto.presence || 'n.d.'
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('calendar', text: t('expiration_date', scope: 'user')+': ')
              .column.has-text-left
                - if Settings.users.permit_edit_user && !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.scadenza_rapporto.present? ? 'modificare' : 'inserire' } la data di scadenza contratto", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[scadenza_rapporto]", type: 'date', value: user.scadenza_rapporto.present? ? user.scadenza_rapporto : '', placeholder: "Inserisci la data di scadenza contratto", required: false } } }= ( user.scadenza_rapporto.present? ? l_date(user.scadenza_rapporto) : 'aggiungi la data di scadenza contratto' )
                - else
                  = user.scadenza_rapporto.blank? ? 'n.d.' : l_date(user.scadenza_rapporto)
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('circle', text: t('status', scope: 'user')+': ')
              .column.is-uppercase.has-text-weight-bold.has-text-left{ class: "has-text-#{ status_class }" }= t(status, scope: 'user', default: status)
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('edit', text: t('note', scope: 'user')+': ')
              .column.has-text-left
                - if !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.body.present? ? 'modificare la' : 'inserire una' } nota", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[body]", type: 'textarea', value: user.body.present? ? user.body : '', placeholder: "Inserisci una nota" } } }= user.body.present? ? user.body : 'aggiungi'
                - else
                  = user.body.presence || 'n.d.'
      - if Devise.mappings[:user].database_authenticatable? && (current_user.admin? || current_user.secretary? || current_user.doctor?)
        %article.message
          .message-header Credenziali di accesso
          .message-body
            %ul.info
              %li.columns
                .column.is-4.has-text-left.has-text-weight-bold= fas_icon('user', text: t('username', scope: 'user')+': ')
                .column.has-text-left
                  %span.editable.tooltip{ data: { tooltip: "Clicca per #{ user.username.present? ? 'modificare' : 'inserire' } la username", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[username]", type: 'text', value: user.username.present? ? user.username : '', placeholder: "Inserisci la username", required: false } } }= ( user.username.present? ? user.username : 'aggiungi username' )
              %li.columns
                .column.is-4.has-text-left.has-text-weight-bold
                  = fas_icon('key', text: t('new', scope: 'user.password')+': ')
                .column.has-text-left
                  %span.editable.tooltip{ data: { tooltip: "Clicca per #{ user.password.present? ? 'modificare' : 'inserire' } la password", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[password]", type: 'password', value: user.password.present? ? '**********' : '', placeholder: "Inserisci la password", required: false } } }= ( user.password.present? ? '********' : 'aggiungi password' )
                .column.is-3
                  %span.help la password è segreta e può essere solo mdificata.
    .column
      %article.message
        .message-header= t('place_and_structure', scope: 'user')
        .message-body
          %ul.info
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('map-marker', text: t('city', scope: 'user')+': ')
              .column.has-text-left
                - if Settings.users.permit_edit_user && !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.city.present? ? 'modificare' : 'inserire' } la città", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[city]", type: 'select', options: User.cities.map{|k,v| "#{k}||#{t(k, scope: 'user.cities', default: k)}"}.join(','), value: user.city.present? ? user.city : '', placeholder: "Inserisci una città", required: false } } }= ( user.city.present? ? user.city : 'aggiungi città' )
                - else
                  = user.city.present? ? t(user.city, scope: 'user.cities') : 'n.d.'
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('building', text: t('office', scope: 'user')+': ')
              .column.has-text-left
                - if Settings.users.permit_edit_user && !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.location.present? ? 'modificare' : 'inserire' } la sede", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[location]", type: 'input', value: user.location.present? ? user.location : '', placeholder: "Inserisci una sede", required: false } } }= ( user.location.present? ? user.location : 'aggiungi sede' )
                - else
                  = user.location.presence || 'n.d.'
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('fax', text: t('telephone', scope: 'user')+': ')
              .column.has-text-left
                - if Settings.users.permit_edit_user && !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.telephone.present? ? 'modificare' : 'inserire' } il telefono", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[telephone]", type: 'input', value: user.telephone.present? ? user.telephone : '', placeholder: "Inserisci il telefono", required: false } } }= ( user.telephone.present? ? user.telephone : 'aggiungi il telefono' )
                - else
                  = user.telephone.blank? ? 'n.d.' : "#{user.prefix} #{user.telephone}"
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('sitemap', text: t('structure', scope: 'user')+': ')
              .column.has-text-left
                - if Settings.users.permit_edit_user && !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.structure.present? ? 'modificare' : 'inserire' } la struttura", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[structure]", type: 'input', value: user.structure.present? ? user.structure : '', placeholder: "Inserisci la struttura", required: false } } }= ( user.structure.present? ? user.structure : 'aggiungi la struttura' )
                - else
                  = user.structure_label.presence || 'n.d.'
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('user-secret', text: t('responsable', scope: 'user')+': ')
              .column.has-text-left
                - if Settings.users.permit_edit_user && !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.responsabile.present? ? 'modificare' : 'inserire' } il responsabile", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[responsabile]", type: 'input', value: user.responsabile.present? ? user.responsabile : '', placeholder: "Inserisci il responsabile", required: false } } }= ( user.responsabile.present? ? user.responsabile : 'aggiungi il responsabile' )
                - else
                  = user.responsabile.presence || 'n.d.'
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('mobile-alt', text: t('personal_tel', scope: 'user')+': ')
              .column.has-text-left
                - if Settings.users.permit_edit_user && !user.locked_at?
                  %span{ class: "#{ 'editable tooltip' if current_user.secretary? }", data: { tooltip: "Clicca per #{ user.tel.present? ? 'modificare' : 'inserire' } il recapito telefonico", controller: 'users', action: 'click->users#edit', user_id: user.id, field: { name: "user[tel]", type: 'tel', value: user.tel.present? ? user.tel : '', placeholder: "Inserisci un recapito telefonico", pattern: "[+.\/\-\0-9]+", required: false } } }= ( user.tel.present? ? user.tel : 'aggiungi numero' )
                - else
                  %span.tooltip{ style: 'cursor: help', data: { tooltip: "Inserito dall'utente e non modificabile" } }= user.emergenze.presence || 'n.d.'
            %li.columns
              .column.is-4.has-text-left.has-text-weight-bold= fas_icon('file-pdf', text: t('file_assegnazione', scope: 'user')+': ')
              .column.has-text-left
                - if user.assegnazione.attached?
                  .columns
                    .column.is-10-desktop= link_to user.assegnazione.filename, url_for(user.assegnazione), target: :blank
                    .column= link_to fas_icon('trash', tooltip: 'Cancella'), delete_attachment_user_path(id: user.id), class: 'button tiny is-transparent is-borderless', remote: true, method: :delete, data: { action: 'ajax:success->users#goPage', confirm: 'Confermi la cancellazione del file?' }
                - else
                  - if !user.locked_at?
                    %a{ data: { action: 'click->users#toggleVisible click->users#toggleVisibleSelf', id: 'assegnazione' } } aggiungi file pdf
                  - else
                    n.d.
                - if !user.locked_at?
                  = form_with model: user, url: user_path(id: user.id), method: :put, multipart: true, class: 'is-hidden', id: 'assegnazione', data: { action: 'ajax:success->users#goPage' } do |f|
                    .field.has-addons
                      .control{style: 'width: 60%;margin-right: 4px;'}
                        .file
                          %label.file-label{style: 'width: 100%;'}
                            = f.file_field :assegnazione, id: 'assegnazione', accept: 'application/pdf', direct_upload: true, class: 'file-input'
                            %span.file-cta{style: 'width: 100%;'}
                              %span.file-icon= fas_icon 'upload'
                              %span.file-label{style: 'width: 100%;'} Seleziona pdf assegnazione
                      .control
                        %button.button.is-fullwidt.is-transparent.is-borderless.small.mr-2{ type: 'submit' }= fas_icon('save', tooltip: 'Carica')
                      .control
                        %a.button.is-fullwidth.is-transparent.is-borderless.small{ href: user_path(id: user.id), data: { action: 'ajax:success->users#goPage', remote: true } }= fas_icon('times', tooltip: 'Annulla')
      - unless user.postazione == "sede"
        %article.message
          .message-header= t('position', scope: 'user')
          .message-body
            %ul.info
              %li.columns
                .column.is-4.has-text-left.has-text-weight-bold= fas_icon('laptop', text: t('position', scope: 'user')+': ')
                .column= user.postazione.capitalize.presence || 'n.d.'
              %li.columns
                .column.is-4.has-text-left.has-text-weight-bold= fas_icon('calendar', text: t('start_date', scope: 'user')+': ')
                .column= user.postazione_inizio.present? ? l( user.postazione_inizio.to_date ) : 'n.d.'
              %li.columns
                .column.is-4.has-text-left.has-text-weight-bold= fas_icon('calendar', text: t('stop_date', scope: 'user')+': ')
                .column= user.postazione_fine.present? ? l( user.postazione_fine.to_date ) : 'n.d.'
              %li.columns
                .column.is-4.has-text-left.has-text-weight-bold= fas_icon('map-marker', text: ( user.postazione == "telelavoro" ? t('city', scope: 'user') : t('presso', scope: 'user') ) +': ')
                .column= user.postazione_locazione.presence || 'n.d.'