From 8d0ac10eb40bdf0efbf13f25831bc28a685c9ef4 Mon Sep 17 00:00:00 2001 From: Louis Kirkham Date: Mon, 19 Feb 2024 13:16:05 +0000 Subject: [PATCH] Adds assessment status --- .../assessor/form_answers_controller.rb | 9 + app/services/assessor_assignment_service.rb | 1 + .../form_answers/_list_body.html.slim | 17 +- .../assessor/form_answers/index.html.slim | 6 +- ...4428_add_status_to_assessor_assignments.rb | 5 + db/structure.sql | 467 +++++++++--------- 6 files changed, 267 insertions(+), 238 deletions(-) create mode 100644 db/migrate/20240216144428_add_status_to_assessor_assignments.rb diff --git a/app/controllers/assessor/form_answers_controller.rb b/app/controllers/assessor/form_answers_controller.rb index f24549968..02b2f1c4c 100644 --- a/app/controllers/assessor/form_answers_controller.rb +++ b/app/controllers/assessor/form_answers_controller.rb @@ -95,6 +95,10 @@ 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 @@ -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..33f2bd84b 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.find_by_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..a8a0a51a1 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -174,7 +174,8 @@ CREATE TABLE public.assessor_assignments ( editable_id integer, assessed_at timestamp without time zone, locked_at timestamp without time zone, - award_year_id integer + award_year_id integer, + status character varying ); @@ -801,7 +802,7 @@ CREATE TABLE public.group_leaders ( first_name character varying, last_name character varying, deleted boolean DEFAULT false NOT NULL, - form_answer_id integer + form_answer_id bigint ); @@ -3572,6 +3573,14 @@ ALTER TABLE ONLY public.feedbacks ADD CONSTRAINT fk_rails_85a1d7f049 FOREIGN KEY (form_answer_id) REFERENCES public.form_answers(id); +-- +-- Name: group_leaders fk_rails_8781709c53; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.group_leaders + ADD CONSTRAINT fk_rails_8781709c53 FOREIGN KEY (form_answer_id) REFERENCES public.form_answers(id); + + -- -- Name: support_letter_attachments fk_rails_abd43a0510; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -3611,232 +3620,232 @@ ALTER TABLE ONLY public.support_letters SET search_path TO "$user", public; INSERT INTO "schema_migrations" (version) VALUES -('20141124095215'), -('20141124112326'), -('20141124161532'), -('20141127094914'), -('20141127094940'), -('20141127095334'), -('20141128115405'), -('20141130191608'), -('20141201084521'), -('20141203090803'), -('20141203135504'), -('20141203140154'), -('20141203172220'), -('20141203182047'), -('20141204113405'), -('20141204113729'), -('20141204134014'), -('20141204161223'), -('20141208085751'), -('20141208105812'), -('20141209150903'), -('20141211103406'), -('20141211103425'), -('20141217112332'), -('20141219102035'), -('20150109142716'), -('20150112121539'), -('20150113154435'), -('20150113155731'), -('20150216232552'), -('20150217114106'), -('20150218132412'), -('20150218141547'), -('20150218150006'), -('20150219102528'), -('20150219125327'), -('20150223100419'), -('20150223115842'), -('20150223123005'), -('20150224115303'), -('20150224115503'), -('20150225090728'), -('20150225122104'), -('20150226141107'), -('20150227124243'), -('20150227125140'), -('20150227125226'), -('20150227125421'), -('20150227135432'), -('20150227141437'), -('20150228145247'), -('20150302092030'), -('20150302095528'), -('20150303120704'), -('20150303123415'), -('20150303152052'), -('20150303163541'), -('20150304075824'), -('20150304080108'), -('20150304084018'), -('20150304144532'), -('20150304145423'), -('20150304155948'), -('20150305084628'), -('20150305104844'), -('20150306122216'), -('20150309112759'), -('20150309114102'), -('20150309114427'), -('20150309143448'), -('20150310114756'), -('20150310124624'), -('20150310130907'), -('20150312105021'), -('20150312114528'), -('20150313090152'), -('20150317130146'), -('20150318123932'), -('20150318142055'), -('20150323132637'), -('20150323155826'), -('20150324104816'), -('20150324104913'), -('20150324163344'), -('20150325092930'), -('20150325133040'), -('20150325160755'), -('20150325201007'), -('20150326105117'), -('20150326170750'), -('20150326170823'), -('20150326221536'), -('20150327122904'), -('20150327190410'), -('20150331061542'), -('20150331180118'), -('20150406130916'), -('20150407122134'), -('20150407132835'), -('20150407134028'), -('20150407172016'), -('20150409082247'), -('20150409090140'), -('20150410091747'), -('20150410131705'), -('20150411113516'), -('20150411113532'), -('20150411113543'), -('20150411113558'), -('20150414102640'), -('20150414133524'), -('20150414141823'), -('20150414170238'), -('20150417153811'), -('20150427100604'), -('20150429171132'), -('20150429171704'), -('20150429171705'), -('20150504112318'), -('20150506150526'), -('20150507114157'), -('20150507143136'), -('20150515145647'), -('20150519123524'), -('20150617142142'), -('20150622173914'), -('20150907131321'), -('20150907145343'), -('20150907145955'), -('20150907161006'), -('20150907165227'), -('20150908105756'), -('20150908151417'), -('20150908163040'), -('20150908172247'), -('20150914114817'), -('20150917134236'), -('20150917135114'), -('20150922132151'), -('20151001144155'), -('20151005112348'), -('20151126154434'), -('20151126171347'), -('20151130145800'), -('20160106115349'), -('20160121080201'), -('20160204203037'), -('20160222153821'), -('20160222175452'), -('20160224174712'), -('20160302191539'), -('20160302191611'), -('20160302191628'), -('20160310140650'), -('20160311130931'), -('20160314141838'), -('20160323103504'), -('20160328090616'), -('20160328124213'), -('20160604141333'), -('20160607085426'), -('20160607172315'), -('20160621114955'), -('20160708131227'), -('20160727154722'), -('20160728174708'), -('20160728174732'), -('20160729082206'), -('20160729082616'), -('20160729090515'), -('20160729131756'), -('20160729132247'), -('20160729132552'), -('20160731102944'), -('20160731121716'), -('20160802111557'), -('20160804172537'), -('20160804175341'), -('20160804175513'), -('20160804175527'), -('20160906174550'), -('20161021111201'), -('20161021140457'), -('20161116104612'), -('20180820050136'), -('20181102125508'), -('20181102125923'), -('20190415133209'), -('20190422174739'), -('20190501154629'), -('20190501162430'), -('20190501163901'), -('20190513114859'), -('20190514192116'), -('20190515121928'), -('20200710150405'), -('20200714125921'), -('20200814122259'), -('20200918110854'), -('20200918151320'), -('20201023115307'), -('20210517075551'), -('20210615093659'), -('20210616135647'), -('20210629130552'), -('20210707081708'), -('20210707115136'), -('20210707122554'), -('20210803084421'), -('20210803120605'), -('20210806102135'), -('20210808194051'), -('20210809072025'), -('20210809072320'), -('20210809073242'), -('20210810173827'), -('20210810175339'), -('20210816072005'), -('20210817084427'), -('20210819140008'), -('20210826124140'), -('20210831085355'), -('20210928120530'), -('20211011083451'), -('20211013073349'), +('20240216144428'), +('20211214111643'), ('20211104074415'), -('20211214111643'); - +('20211013073349'), +('20211011083451'), +('20210928120530'), +('20210831085355'), +('20210826124140'), +('20210819140008'), +('20210817084427'), +('20210816072005'), +('20210810175339'), +('20210810173827'), +('20210809073242'), +('20210809072320'), +('20210809072025'), +('20210808194051'), +('20210806102135'), +('20210803120605'), +('20210803084421'), +('20210707122554'), +('20210707115136'), +('20210707081708'), +('20210629130552'), +('20210616135647'), +('20210615093659'), +('20210517075551'), +('20201023115307'), +('20200918151320'), +('20200918110854'), +('20200814122259'), +('20200714125921'), +('20200710150405'), +('20190515121928'), +('20190514192116'), +('20190513114859'), +('20190501163901'), +('20190501162430'), +('20190501154629'), +('20190422174739'), +('20190415133209'), +('20181102125923'), +('20181102125508'), +('20180820050136'), +('20161116104612'), +('20161021140457'), +('20161021111201'), +('20160906174550'), +('20160804175527'), +('20160804175513'), +('20160804175341'), +('20160804172537'), +('20160802111557'), +('20160731121716'), +('20160731102944'), +('20160729132552'), +('20160729132247'), +('20160729131756'), +('20160729090515'), +('20160729082616'), +('20160729082206'), +('20160728174732'), +('20160728174708'), +('20160727154722'), +('20160708131227'), +('20160621114955'), +('20160607172315'), +('20160607085426'), +('20160604141333'), +('20160328124213'), +('20160328090616'), +('20160323103504'), +('20160314141838'), +('20160311130931'), +('20160310140650'), +('20160302191628'), +('20160302191611'), +('20160302191539'), +('20160224174712'), +('20160222175452'), +('20160222153821'), +('20160204203037'), +('20160121080201'), +('20160106115349'), +('20151130145800'), +('20151126171347'), +('20151126154434'), +('20151005112348'), +('20151001144155'), +('20150922132151'), +('20150917135114'), +('20150917134236'), +('20150914114817'), +('20150908172247'), +('20150908163040'), +('20150908151417'), +('20150908105756'), +('20150907165227'), +('20150907161006'), +('20150907145955'), +('20150907145343'), +('20150907131321'), +('20150622173914'), +('20150617142142'), +('20150519123524'), +('20150515145647'), +('20150507143136'), +('20150507114157'), +('20150506150526'), +('20150504112318'), +('20150429171705'), +('20150429171704'), +('20150429171132'), +('20150427100604'), +('20150417153811'), +('20150414170238'), +('20150414141823'), +('20150414133524'), +('20150414102640'), +('20150411113558'), +('20150411113543'), +('20150411113532'), +('20150411113516'), +('20150410131705'), +('20150410091747'), +('20150409090140'), +('20150409082247'), +('20150407172016'), +('20150407134028'), +('20150407132835'), +('20150407122134'), +('20150406130916'), +('20150331180118'), +('20150331061542'), +('20150327190410'), +('20150327122904'), +('20150326221536'), +('20150326170823'), +('20150326170750'), +('20150326105117'), +('20150325201007'), +('20150325160755'), +('20150325133040'), +('20150325092930'), +('20150324163344'), +('20150324104913'), +('20150324104816'), +('20150323155826'), +('20150323132637'), +('20150318142055'), +('20150318123932'), +('20150317130146'), +('20150313090152'), +('20150312114528'), +('20150312105021'), +('20150310130907'), +('20150310124624'), +('20150310114756'), +('20150309143448'), +('20150309114427'), +('20150309114102'), +('20150309112759'), +('20150306122216'), +('20150305104844'), +('20150305084628'), +('20150304155948'), +('20150304145423'), +('20150304144532'), +('20150304084018'), +('20150304080108'), +('20150304075824'), +('20150303163541'), +('20150303152052'), +('20150303123415'), +('20150303120704'), +('20150302095528'), +('20150302092030'), +('20150228145247'), +('20150227141437'), +('20150227135432'), +('20150227125421'), +('20150227125226'), +('20150227125140'), +('20150227124243'), +('20150226141107'), +('20150225122104'), +('20150225090728'), +('20150224115503'), +('20150224115303'), +('20150223123005'), +('20150223115842'), +('20150223100419'), +('20150219125327'), +('20150219102528'), +('20150218150006'), +('20150218141547'), +('20150218132412'), +('20150217114106'), +('20150216232552'), +('20150113155731'), +('20150113154435'), +('20150112121539'), +('20150109142716'), +('20141219102035'), +('20141217112332'), +('20141211103425'), +('20141211103406'), +('20141209150903'), +('20141208105812'), +('20141208085751'), +('20141204161223'), +('20141204134014'), +('20141204113729'), +('20141204113405'), +('20141203182047'), +('20141203172220'), +('20141203140154'), +('20141203135504'), +('20141203090803'), +('20141201084521'), +('20141130191608'), +('20141128115405'), +('20141127095334'), +('20141127094940'), +('20141127094914'), +('20141124161532'), +('20141124112326'), +('20141124095215');