AgileVentures/MetPlus_PETS

View on GitHub
app/views/tasks/_tasks.html.haml

Summary

Maintainability
Test Coverage
- if all_tasks.empty?
  %i No outstanding tasks
- else
  %table.table.table-hover
    %thead
      %tr
        %th
          Task
        %th
          Status
        %th
          Entities associated
        %th
          Change date
        %th
          Options
    %tbody
      - all_tasks.each do |task|
        %tr{:id => "task-#{task.id}"}
          %td
            = task.description
          %td{:id => "task-#{task.id}-status"}
            - if task.status == Task::STATUS[:NEW] || task.task_owner.respond_to?('each')
              = task.status
            - else
              = "#{task.status}("
              = link_to( task.task_owner.full_name, show_person_path(task.task_owner))
              )
          %td
            - if not task.user.nil?
              %p
                User:
                =link_to( task.person.full_name, show_person_path(task.person))
            - if not task.job_application.nil?
              %p
                = link_to(task.job_application.job_seeker.full_name, job_seeker_path(task.job_application.job_seeker))
                has
                = link_to("applied", application_path(task.job_application))
                to:
                = link_to(task.job_application.job.title, job_path(task.job_application.job))
            - if not task.company.nil?
              %p
                Company:
                = link_to(task.company.name, company_registration_path(task.company))
          %td
            = task.updated_at.strftime('%F')
          %td
            - if task.status == Task::STATUS[:NEW] and policy(task).assign?
              = link_to '#', :title => 'Assign task',
                              class: 'assign_button',
                              id: "assign-#{task.id}",
                              data: { :task_id => task.id,
                                      :toggle => 'modal',
                                      :target => '#assignTaskModal'} do
                %i.fa.fa-male.fa-1
            - elsif task.status == Task::STATUS[:ASSIGNED] and policy(task).in_progress?
              = link_to '#', :title => 'Start working on task',
                             class: 'wip_button',
                             id: "wip-#{task.id}",
                             data: {:url => in_progress_task_path(task)} do
                %i.fa.fa-hourglass-start.fa-1
            - elsif task.status == Task::STATUS[:WIP] and policy(task).done?
              = link_to '#', :title => 'Work complete',
                             class: 'done_button',
                             id: "done-#{task.id}",
                             data: {:url => done_task_path(task)} do
                %i.fa.fa-flag-checkered.fa-1
  .row.text-center
    = will_paginate all_tasks, param_name: 'tasks_page', :params => {:controller => 'tasks', :action => 'tasks', :task_type => task_type}

%script{:type=>"text/javascript"}
  $(document).ready( function() {
  =  "TaskManagerHolder('tasks-#{task_type}', '#{task_type}')"
  } );