diff --git a/app/controllers/assessor/form_answers_controller.rb b/app/controllers/assessor/form_answers_controller.rb index f24549968..0639bd0da 100644 --- a/app/controllers/assessor/form_answers_controller.rb +++ b/app/controllers/assessor/form_answers_controller.rb @@ -36,7 +36,7 @@ def index scope = current_assessor.applications_scope( params[:year].to_s == "all_years" ? nil : @award_year - ).eligible_for_assessor + ).includes(:assessor_assignments).eligible_for_assessor if search_params[:query].blank? && category_picker.show_award_tabs_for_assessor? scope = scope.where(award_type: category_picker.current_award_type) @@ -95,13 +95,17 @@ def show def edit authorize resource, :edit? + unless assessor_assignment.status + assessor_assignment.update(status: "viewed") + end + @form = resource.award_form.decorate(answers: HashWithIndifferentAccess.new(resource.document)) end private def resource - @form_answer ||= current_assessor.applications_scope(@award_year).find(params[:id]).decorate + @form_answer ||= current_assessor.applications_scope(@award_year).includes(:assessor_assignments).find(params[:id]).decorate end def category_picker @@ -120,4 +124,9 @@ def resolve_layout "application-assessor" end end + + def assessor_assignment + AssessorAssignment.find_by(assessor_id: current_assessor.id, form_answer_id: resource.id) || + resource.assessor_assignments.build(assessor: current_assessor, award_year: @award_year) + end end diff --git a/app/services/assessor_assignment_service.rb b/app/services/assessor_assignment_service.rb index 482c6a9e4..b7dc13e2c 100644 --- a/app/services/assessor_assignment_service.rb +++ b/app/services/assessor_assignment_service.rb @@ -14,6 +14,7 @@ def save resource.assign_attributes(update_params) resource.editable = current_subject resource.assessed_at = DateTime.now unless assignment_request? + resource.status = "in_progress" resource.save end diff --git a/app/views/assessor/form_answers/_list_body.html.slim b/app/views/assessor/form_answers/_list_body.html.slim index 948b9d908..894da4005 100644 --- a/app/views/assessor/form_answers/_list_body.html.slim +++ b/app/views/assessor/form_answers/_list_body.html.slim @@ -10,11 +10,6 @@ tbody.govuk-table__body em ' Not found - td.govuk-table__cell = obj.dashboard_status - - td.govuk-table__cell - = obj.sub_group.try(:text) || "Not assigned" - td.govuk-table__cell - if obj.ceremonial_county.present? = obj.ceremonial_county.name @@ -31,6 +26,18 @@ tbody.govuk-table__body span.muted = obj.last_updated_by + td.govuk-table__cell + - assignment = obj.assessor_assignments.detect{|aa| aa.assessor_id == current_assessor.id} + - if assignment&.submitted_at + strong.govuk-tag.govuk-tag--green + | Submitted + - elsif assignment&.status == "in_progress" + strong.govuk-tag.govuk-tag--yellow + | In progress + - elsif assignment&.status == "viewed" + strong.govuk-tag.govuk-tag--blue + | Viewed + td.govuk-table__cell - aria_label = obj.company_or_nominee_name.present? ? "View submitted nomination, for #{obj.company_or_nominee_name}" : "View submitted nomination, nominee name not yet specified" = link_to polymorphic_url([namespace_name, obj], search_id: params[:search_id], year: params[:year], page: params[:page]), aria: { label: aria_label }, class: 'govuk-link', target: :_blank do diff --git a/app/views/assessor/form_answers/index.html.slim b/app/views/assessor/form_answers/index.html.slim index 16a96fffb..9b814e5cf 100644 --- a/app/views/assessor/form_answers/index.html.slim +++ b/app/views/assessor/form_answers/index.html.slim @@ -46,16 +46,14 @@ h1.govuk-heading-xl tr.govuk-table__row th.sortable.govuk-table__header scope="col" width="250" = sort_link f, "Group name", @search, :company_or_nominee_name, disabled: @search.query? - th.govuk-table__header scope="col" width="250" - | Status - th.govuk-table__header scope="col" width="200" - | National assessor Sub-group th.govuk-table__header scope="col" width="200" | Lord Lieutenancy assigned th.govuk-table__header scope="col" width="200" | Type of group th.sortable.govuk-table__header scope="col" width="130" = sort_link f, "Last updated", @search, :audit_updated_at, disabled: @search.query? + th.govuk-table__header scope="col" width="150" + | Status th.govuk-table__header scope="col" View = render(partial: "list_body") diff --git a/db/migrate/20240216144428_add_status_to_assessor_assignments.rb b/db/migrate/20240216144428_add_status_to_assessor_assignments.rb new file mode 100644 index 000000000..33ddd7c03 --- /dev/null +++ b/db/migrate/20240216144428_add_status_to_assessor_assignments.rb @@ -0,0 +1,5 @@ +class AddStatusToAssessorAssignments < ActiveRecord::Migration[7.1] + def change + add_column :assessor_assignments, :status, :string + end +end diff --git a/db/structure.sql b/db/structure.sql index 113fcaacc..99cd08162 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -3838,5 +3838,3 @@ INSERT INTO "schema_migrations" (version) VALUES ('20211013073349'), ('20211104074415'), ('20211214111643'); - -