From 319f9eb5b0389d9bd61d588e420cdbac023a83f3 Mon Sep 17 00:00:00 2001 From: Paul Abumov Date: Tue, 15 Oct 2024 22:46:15 -0400 Subject: [PATCH] Enabled multiple qualifications for a woker's single unit --- .../screenshots/submission_approve_dialog.png | Bin 30807 -> 143460 bytes .../how_to_use/review_app/server_api.md | 28 ++ .../abstractions/databases/local_database.py | 56 ++-- .../_002_20241002_modify_qualifications.py | 14 +- .../providers/inhouse/inhouse_agent.py | 2 +- .../providers/prolific/prolific_agent.py | 2 +- mephisto/review_app/client/public/index.html | 4 + .../pages/TaskPage/ModalForm/ModalForm.css | 28 -- .../TaskPage/ReviewModal/ReviewModal.tsx | 4 +- .../ReviewModalForm/ReviewModalForm.css | 68 +++++ .../ReviewModalForm.tsx} | 247 +++++++++++++----- .../client/src/pages/TaskPage/TaskPage.tsx | 20 +- .../client/src/pages/TaskPage/modalData.tsx | 25 +- .../review_app/client/src/requests/workers.ts | 24 ++ .../client/src/types/qualifications.d.ts | 10 + .../client/src/types/reviewModal.d.ts | 12 +- mephisto/review_app/client/src/urls.ts | 1 + .../review_app/server/api/views/__init__.py | 1 + .../server/api/views/qualify_worker_view.py | 4 +- .../views/worker_qualifications_grant_view.py | 57 ++++ mephisto/review_app/server/urls.py | 4 + .../test_worker_qualifications_grant_view.py | 124 +++++++++ 22 files changed, 588 insertions(+), 147 deletions(-) delete mode 100644 mephisto/review_app/client/src/pages/TaskPage/ModalForm/ModalForm.css create mode 100644 mephisto/review_app/client/src/pages/TaskPage/ReviewModalForm/ReviewModalForm.css rename mephisto/review_app/client/src/pages/TaskPage/{ModalForm/ModalForm.tsx => ReviewModalForm/ReviewModalForm.tsx} (66%) create mode 100644 mephisto/review_app/server/api/views/worker_qualifications_grant_view.py create mode 100644 test/review_app/server/api/test_worker_qualifications_grant_view.py diff --git a/docs/web/docs/guides/how_to_use/review_app/screenshots/submission_approve_dialog.png b/docs/web/docs/guides/how_to_use/review_app/screenshots/submission_approve_dialog.png index 729a002629a3fc0ffa5085e36c48810808ab7b85..2c9f6c2cdae78ad79f2888da22c75bf01cebc1bc 100644 GIT binary patch literal 143460 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
^ckZ_rcV`Q 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, ...], // Required + "qualification_grants": [ // Required + { + "qualification_id": , + "value": , + }, + ... + ], +} +``` + +**Response**: +```json +{} +``` + +--- + ### `GET /api/workers/{id}/qualifications` Get list of all granted qualifications for a worker. diff --git a/mephisto/abstractions/databases/local_database.py b/mephisto/abstractions/databases/local_database.py index f978c859c..9bb7e05d9 100644 --- a/mephisto/abstractions/databases/local_database.py +++ b/mephisto/abstractions/databases/local_database.py @@ -1562,25 +1562,47 @@ def _update_worker_review( f"`worker_review` was not created for this `unit_id={unit_id}`" ) - latest_worker_review_id = results[-1]["id"] + latest_worker_review = results[-1] + latest_worker_review_id = latest_worker_review["id"] - c.execute( - """ - UPDATE worker_review - SET - updated_qualification_id = ?, - updated_qualification_value = ?, - revoked_qualification_id = ? - WHERE id = ?; - """, - ( - nonesafe_int(qualification_id) if not revoke else None, - value, - nonesafe_int(qualification_id) if revoke else None, - nonesafe_int(latest_worker_review_id), - ), + has_entry_with_qualification = ( + latest_worker_review["updated_qualification_id"] + or latest_worker_review["revoked_qualification_id"] ) - conn.commit() + + if not has_entry_with_qualification: + # Update just created entry when unit was approved + c.execute( + """ + UPDATE worker_review + SET + updated_qualification_id = ?, + updated_qualification_value = ?, + revoked_qualification_id = ? + WHERE id = ?; + """, + ( + nonesafe_int(qualification_id) if not revoke else None, + value, + nonesafe_int(qualification_id) if revoke else None, + nonesafe_int(latest_worker_review_id), + ), + ) + conn.commit() + else: + # If we try to update entry for the same unit, + # but it was already assigned to another qualifications, + # create a new entry with the same data, but with another qualification and value + self._new_worker_review( + worker_id=worker_id, + status=latest_worker_review["status"], + task_id=latest_worker_review["task_id"], + unit_id=unit_id, + qualification_id=qualification_id, + value=value, + review_note=latest_worker_review["review_note"], + bonus=latest_worker_review["bonus"], + ) # File/blob manipulation methods diff --git a/mephisto/abstractions/databases/migrations/_002_20241002_modify_qualifications.py b/mephisto/abstractions/databases/migrations/_002_20241002_modify_qualifications.py index f4cb6061a..b666fec20 100644 --- a/mephisto/abstractions/databases/migrations/_002_20241002_modify_qualifications.py +++ b/mephisto/abstractions/databases/migrations/_002_20241002_modify_qualifications.py @@ -7,8 +7,8 @@ """ List of changes: 1. Add `description` field into `qualifications` table -2. Make unit-related fields nullable in table `worker_review` -3. Rename `unit_review` table into `worker_review` +2. Rename `unit_review` table into `worker_review` and + make unit-related fields nullable in table `unit_review` """ @@ -16,11 +16,12 @@ /* 1. Add `description` field into `qualifications` table */ ALTER TABLE qualifications ADD COLUMN description CHAR(500); - /* 2. Make unit-related fields nullable in table `worker_review` */ /* Disable FK constraints */ PRAGMA foreign_keys = off; - CREATE TABLE IF NOT EXISTS _worker_review ( + /* 2. Rename `unit_review` table into `worker_review` and + make unit-related fields nullable in table `unit_review` */ + CREATE TABLE IF NOT EXISTS worker_review ( id INTEGER PRIMARY KEY, unit_id INTEGER, worker_id INTEGER NOT NULL, @@ -40,13 +41,10 @@ FOREIGN KEY (worker_id) REFERENCES workers (worker_id), FOREIGN KEY (task_id) REFERENCES tasks (task_id) ); - INSERT INTO _worker_review SELECT * FROM unit_review; + INSERT INTO worker_review SELECT * FROM unit_review; DROP INDEX IF EXISTS unit_review_by_unit_index; DROP TABLE IF EXISTS unit_review; - /* 3. Rename `unit_review` table into `worker_review` */ - ALTER TABLE _worker_review RENAME TO worker_review; - /* Enable FK constraints back */ PRAGMA foreign_keys = on; """ diff --git a/mephisto/abstractions/providers/inhouse/inhouse_agent.py b/mephisto/abstractions/providers/inhouse/inhouse_agent.py index 086376484..32c0d5621 100644 --- a/mephisto/abstractions/providers/inhouse/inhouse_agent.py +++ b/mephisto/abstractions/providers/inhouse/inhouse_agent.py @@ -101,7 +101,7 @@ def approve_work( worker_id=self.unit.worker_id, status=AgentState.STATUS_APPROVED, review_note=review_note, - bonus=str(bonus), + bonus=bonus and str(bonus), ) def soft_reject_work(self, review_note: Optional[str] = None) -> None: diff --git a/mephisto/abstractions/providers/prolific/prolific_agent.py b/mephisto/abstractions/providers/prolific/prolific_agent.py index 0f8264ffc..dc491accb 100644 --- a/mephisto/abstractions/providers/prolific/prolific_agent.py +++ b/mephisto/abstractions/providers/prolific/prolific_agent.py @@ -139,7 +139,7 @@ def approve_work( worker_id=unit.worker_id, status=AgentState.STATUS_APPROVED, review_note=review_note, - bonus=str(bonus), + bonus=bonus and str(bonus), ) def soft_reject_work(self, review_note: Optional[str] = None) -> None: diff --git a/mephisto/review_app/client/public/index.html b/mephisto/review_app/client/public/index.html index c9a17fe59..ec78d385f 100644 --- a/mephisto/review_app/client/public/index.html +++ b/mephisto/review_app/client/public/index.html @@ -12,6 +12,10 @@ Review + diff --git a/mephisto/review_app/client/src/pages/TaskPage/ModalForm/ModalForm.css b/mephisto/review_app/client/src/pages/TaskPage/ModalForm/ModalForm.css deleted file mode 100644 index 4c61eeda4..000000000 --- a/mephisto/review_app/client/src/pages/TaskPage/ModalForm/ModalForm.css +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) Meta Platforms and its affiliates. - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -.review-form > * input, -.review-form > * select, -.review-form > * textarea { - border: 1px solid black; -} - -.review-form .second-line, -.review-form .third-line { - margin-top: 10px; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - padding-left: 25px; -} - -.review-form .third-line { - margin-top: 10px; -} - -.new-qualification-name-button { - width: 100%; -} diff --git a/mephisto/review_app/client/src/pages/TaskPage/ReviewModal/ReviewModal.tsx b/mephisto/review_app/client/src/pages/TaskPage/ReviewModal/ReviewModal.tsx index 89a6f3aec..be0a61946 100644 --- a/mephisto/review_app/client/src/pages/TaskPage/ReviewModal/ReviewModal.tsx +++ b/mephisto/review_app/client/src/pages/TaskPage/ReviewModal/ReviewModal.tsx @@ -7,7 +7,7 @@ import { ReviewType } from "consts/review"; import * as React from "react"; import { Button, Form, Modal } from "react-bootstrap"; -import ModalForm from "../ModalForm/ModalForm"; +import ReviewModalForm from "../ReviewModalForm/ReviewModalForm"; import "./ReviewModal.css"; const ReviewTypeButtonClassMapping = { @@ -43,7 +43,7 @@ function ReviewModal(props: ReviewModalProps) { - * input, +.review-form > * select, +.review-form > * textarea { + border: 1px solid black; +} + +.review-form .second-line, +.review-form .third-line, +.review-form .assign-quallification, +.review-form .explanation, +.review-form .selected-qualification, +.review-form .separator, +.review-form .new-qualification { + margin-top: 10px; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + padding-left: 25px; +} + +.review-form .explanation { + margin-top: 5px; + font-size: 12px; + font-style: italic; + opacity: 0.5; +} + +.review-form .selected-qualification { + display: flex; + align-items: center; +} + +.review-form .selected-qualification .inline-column .selected-value { + display: flex; + align-items: center; +} + +.review-form .separator { + margin-top: 0; +} + +.review-form .new-qualification { + margin-top: 0; +} + +.review-form .row .inline-column { + display: flex; + flex-direction: row; + gap: 4px; + justify-content: space-between; +} + +.review-form .row .inline-column .select-qualification, +.review-form .row .inline-column .remove-qualification { + display: flex; + padding: var(--bs-btn-padding-y) var(--bs-btn-padding-y); + font-size: 20px; +} + +.new-qualification-name-button { + width: 100%; +} diff --git a/mephisto/review_app/client/src/pages/TaskPage/ModalForm/ModalForm.tsx b/mephisto/review_app/client/src/pages/TaskPage/ReviewModalForm/ReviewModalForm.tsx similarity index 66% rename from mephisto/review_app/client/src/pages/TaskPage/ModalForm/ModalForm.tsx rename to mephisto/review_app/client/src/pages/TaskPage/ReviewModalForm/ReviewModalForm.tsx index 13212e5b3..f56984c32 100644 --- a/mephisto/review_app/client/src/pages/TaskPage/ModalForm/ModalForm.tsx +++ b/mephisto/review_app/client/src/pages/TaskPage/ReviewModalForm/ReviewModalForm.tsx @@ -10,12 +10,13 @@ import { ReviewType, } from "consts/review"; import { setResponseErrors } from "helpers"; +import cloneDeep from "lodash/cloneDeep"; import * as React from "react"; import { useEffect } from "react"; import { Button, Col, Form, Row } from "react-bootstrap"; import { getQualifications, postQualification } from "requests/qualifications"; import { getWorkerGrantedQualifications } from "requests/workers"; -import "./ModalForm.css"; +import "./ReviewModalForm.css"; const BONUS_FOR_WORKER_ENABLED = true; const FEEDBACK_FOR_WORKER_ENABLED = true; @@ -31,7 +32,7 @@ type ModalFormPropsType = { workerId: string | null; }; -function ModalForm(props: ModalFormPropsType) { +function ReviewModalForm(props: ModalFormPropsType) { const [ workerGrantedQualifications, setWorkerGrantedQualifications, @@ -45,6 +46,9 @@ function ModalForm(props: ModalFormPropsType) { newQualificationFormIsValid, setNewQualificationFormIsValid, ] = React.useState(false); + const [selectedQualifications, setSelectedQualifications] = React.useState< + SelectedQualificationsType + >({}); const onError = (response: ErrorResponseType) => setResponseErrors(props.setErrors, response); @@ -70,16 +74,16 @@ function ModalForm(props: ModalFormPropsType) { prevFormData.newQualificationName = ""; prevFormData.newQualificationDescription = ""; } else { - prevFormData.qualification = value; + prevFormData.selectQualification = value; const prevGrantedQualification = workerGrantedQualifications[value]; const prevGrantedQualificationValue = prevGrantedQualification?.value; if (prevGrantedQualificationValue !== undefined) { // Set to previous granted value for selected qualification - prevFormData.qualificationValue = prevGrantedQualificationValue; + prevFormData.selectQualificationValue = prevGrantedQualificationValue; } else { // Set to default value - prevFormData.qualificationValue = QUALIFICATION_VALUE_MIN; + prevFormData.selectQualificationValue = QUALIFICATION_VALUE_MIN; } } @@ -88,7 +92,7 @@ function ModalForm(props: ModalFormPropsType) { function onChangeAssignQualificationValue(value: string) { let prevFormData: FormType = Object(props.data.form); - prevFormData.qualificationValue = Number(value); + prevFormData.selectQualificationValue = Number(value); props.setData({ ...props.data, form: prevFormData }); } @@ -211,6 +215,32 @@ function ModalForm(props: ModalFormPropsType) { ); } + function onClickSelectQualification() { + setSelectedQualifications((oldValue: SelectedQualificationsType) => { + const newValue = cloneDeep(oldValue); + + const selectedQualificationId = props.data.form.selectQualification; + const selectedQualification = qualifications.find( + (q: QualificationType) => q.id === selectedQualificationId + ); + + newValue[props.data.form.selectQualification] = { + qualification_id: selectedQualificationId, + qualification_name: selectedQualification.name, + value: props.data.form.selectQualificationValue, + }; + return newValue; + }); + } + + function onClickRemoveQualification(qualificationId: string) { + setSelectedQualifications((oldValue: SelectedQualificationsType) => { + const newValue = cloneDeep(oldValue); + delete newValue[qualificationId]; + return newValue; + }); + } + // Effects useEffect(() => { requestWorkerGrantedQualifications(); @@ -228,6 +258,22 @@ function ModalForm(props: ModalFormPropsType) { } }, [props.data.form.newQualificationName]); + useEffect(() => { + let prevFormData: FormType = Object(props.data.form); + const _formSelectedQualifications = Object.values( + selectedQualifications + ).map( + (q: SelectedQualificationType): FormSelectedQualificationType => { + return { + qualification_id: q.qualification_id, + value: q.value, + }; + } + ); + prevFormData.selectedQualifications = _formSelectedQualifications; + props.setData({ ...props.data, form: prevFormData }); + }, [selectedQualifications]); + if (loading) { return; } @@ -254,12 +300,12 @@ function ModalForm(props: ModalFormPropsType) { {props.data.form.checkboxAssignQualification && ( <> - + onChangeAssignQualification(e.target.value) } @@ -292,11 +338,12 @@ function ModalForm(props: ModalFormPropsType) { - + + onChangeAssignQualificationValue(e.target.value) } @@ -308,60 +355,134 @@ function ModalForm(props: ModalFormPropsType) { return ; })} + + + + + + + + Please press "Add" button to assign indicated qualification + + {Object.keys(selectedQualifications).length > 0 && ( +
+ {Object.values(selectedQualifications).map( + ( + selectedQualification: SelectedQualificationType, + index: number + ) => { + return ( + + + {selectedQualification.qualification_name} + + + +
+ {selectedQualification.value} +
+ + + +
+ ); + } + )} +
+ )} + {props.data.form.showNewQualification && ( - - - - onChangeNewQualificationValue( - "newQualificationName", - e.target.value - ) - } - /> - - - onChangeNewQualificationValue( - "newQualificationDescription", - e.target.value - ) - } - /> - - - - - + <> + + +
+ +
+ + + + + onChangeNewQualificationValue( + "newQualificationName", + e.target.value + ) + } + /> + + + onChangeNewQualificationValue( + "newQualificationDescription", + e.target.value + ) + } + /> + + + + + + + + + + Create new qualification that can be assigned to this or + other workers + + + )} )} @@ -386,7 +507,7 @@ function ModalForm(props: ModalFormPropsType) { onChangeUnassignQualification(e.target.value) } @@ -506,4 +627,4 @@ function ModalForm(props: ModalFormPropsType) { ); } -export default ModalForm; +export default ReviewModalForm; diff --git a/mephisto/review_app/client/src/pages/TaskPage/TaskPage.tsx b/mephisto/review_app/client/src/pages/TaskPage/TaskPage.tsx index 01480742f..05e2cfe5f 100644 --- a/mephisto/review_app/client/src/pages/TaskPage/TaskPage.tsx +++ b/mephisto/review_app/client/src/pages/TaskPage/TaskPage.tsx @@ -34,7 +34,7 @@ import { postUnitsReject, postUnitsSoftReject, } from "requests/units"; -import { postWorkerBlock } from "requests/workers"; +import { postWorkerBlock, postWorkerGrant } from "requests/workers"; import urls from "urls"; import { APPROVE_MODAL_DATA_STATE, @@ -279,17 +279,16 @@ function TaskPage(props: TaskPagePropsType) { // Grant Qualification if ( _modalData.form.checkboxAssignQualification && - _modalData.form.qualification + _modalData.form.selectedQualifications?.length > 0 ) { - postQualificationGrantWorker( - _modalData.form.qualification, + postWorkerGrant( currentWorkerOnReview, () => null, setLoading, onError, { unit_ids: unitIds, - value: _modalData.form.qualificationValue, + qualification_grants: _modalData.form.selectedQualifications, } ); } @@ -297,17 +296,16 @@ function TaskPage(props: TaskPagePropsType) { // Revoke Qualification if ( _modalData.form.checkboxAssignQualification && - _modalData.form.qualification + _modalData.form.selectQualification ) { - postQualificationRevokeWorker( - _modalData.form.qualification, + postWorkerGrant( currentWorkerOnReview, () => null, setLoading, onError, { unit_ids: unitIds, - value: _modalData.form.qualificationValue, + qualification_grants: _modalData.form.selectedQualifications, } ); } @@ -315,10 +313,10 @@ function TaskPage(props: TaskPagePropsType) { // Revoke Qualification if ( _modalData.form.checkboxUnassignQualification && - _modalData.form.qualification + _modalData.form.selectQualification ) { postQualificationRevokeWorker( - _modalData.form.qualification, + _modalData.form.selectQualification, currentWorkerOnReview, () => null, setLoading, diff --git a/mephisto/review_app/client/src/pages/TaskPage/modalData.tsx b/mephisto/review_app/client/src/pages/TaskPage/modalData.tsx index 3559d0532..2baac0796 100644 --- a/mephisto/review_app/client/src/pages/TaskPage/modalData.tsx +++ b/mephisto/review_app/client/src/pages/TaskPage/modalData.tsx @@ -17,11 +17,12 @@ export const APPROVE_MODAL_DATA_STATE: ModalDataType = { checkboxGiveBonus: false, checkboxReviewNote: false, checkboxReviewNoteSend: false, - newQualificationName: "", newQualificationDescription: "", - qualification: null, - qualificationValue: 1, + newQualificationName: "", reviewNote: "", + selectQualification: null, + selectQualificationValue: 1, + selectedQualifications: null, showNewQualification: false, }, title: "Approve Unit", @@ -38,11 +39,12 @@ export const SOFT_REJECT_MODAL_DATA_STATE: ModalDataType = { checkboxAssignQualification: false, checkboxReviewNote: false, checkboxReviewNoteSend: false, - newQualificationName: "", newQualificationDescription: "", - qualification: null, - qualificationValue: 1, + newQualificationName: "", reviewNote: "", + selectQualification: null, + selectQualificationValue: 1, + selectedQualifications: null, showNewQualification: false, }, title: "Soft-Reject Unit", @@ -57,14 +59,15 @@ export const REJECT_MODAL_DATA_STATE: ModalDataType = { title: "Reject Unit", type: ReviewType.REJECT, form: { - checkboxUnassignQualification: false, + bonus: null, + checkboxBanWorker: false, checkboxReviewNote: false, checkboxReviewNoteSend: false, - checkboxBanWorker: false, + checkboxUnassignQualification: false, reviewNote: "", - qualification: null, - qualificationValue: 1, - bonus: null, + selectQualification: null, + selectQualificationValue: 1, + selectedQualifications: null, }, }; diff --git a/mephisto/review_app/client/src/requests/workers.ts b/mephisto/review_app/client/src/requests/workers.ts index db2921dce..1d0c526fb 100644 --- a/mephisto/review_app/client/src/requests/workers.ts +++ b/mephisto/review_app/client/src/requests/workers.ts @@ -50,3 +50,27 @@ export function getWorkerGrantedQualifications( abortController ); } + +export function postWorkerGrant( + id: string, + setDataAction: SetRequestDataActionType, + setLoadingAction: SetRequestLoadingActionType, + setErrorsAction: SetRequestErrorsActionType, + data: { + [key: string]: string | number | string[] | FormSelectedQualificationType[]; + }, + abortController?: AbortController +) { + const url = generateURL(urls.server.workerGrant, [id], null); + + makeRequest( + "POST", + url, + JSON.stringify(data), + (data) => setDataAction(data), + setLoadingAction, + setErrorsAction, + "postWorkerGrant error:", + abortController + ); +} diff --git a/mephisto/review_app/client/src/types/qualifications.d.ts b/mephisto/review_app/client/src/types/qualifications.d.ts index a6db7d049..c6a26bd5e 100644 --- a/mephisto/review_app/client/src/types/qualifications.d.ts +++ b/mephisto/review_app/client/src/types/qualifications.d.ts @@ -26,6 +26,16 @@ declare type WorkerGrantedQualificationsType = { [key: string]: GrantedQualificationType; }; +declare type SelectedQualificationType = { + qualification_id: string; + qualification_name: string; + value: number; +}; + +declare type SelectedQualificationsType = { + [key: string]: SelectedQualificationType; +}; + declare type FGQUnit = { creation_date: string; task_id: string; diff --git a/mephisto/review_app/client/src/types/reviewModal.d.ts b/mephisto/review_app/client/src/types/reviewModal.d.ts index b32b14c15..49157ce49 100644 --- a/mephisto/review_app/client/src/types/reviewModal.d.ts +++ b/mephisto/review_app/client/src/types/reviewModal.d.ts @@ -4,6 +4,11 @@ * LICENSE file in the root directory of this source tree. */ +declare type FormSelectedQualificationType = { + qualification_id: string; + value: number; +}; + type FormType = { bonus: number | null; checkboxAssignQualification?: boolean; @@ -12,11 +17,12 @@ type FormType = { checkboxReviewNote: boolean; checkboxReviewNoteSend?: boolean; checkboxUnassignQualification?: boolean; - newQualificationName?: string; newQualificationDescription?: string; - qualification: string | null; - qualificationValue: number; + newQualificationName?: string; reviewNote: string; + selectQualification: string | null; + selectQualificationValue: number; + selectedQualifications?: FormSelectedQualificationType[]; showNewQualification?: boolean; }; diff --git a/mephisto/review_app/client/src/urls.ts b/mephisto/review_app/client/src/urls.ts index 95d296ec7..48d7afa7e 100644 --- a/mephisto/review_app/client/src/urls.ts +++ b/mephisto/review_app/client/src/urls.ts @@ -48,6 +48,7 @@ const urls = { API_URL + `/api/units/${id}/static/${filename}`, unitsOutputsFileByFieldname: (id, fieldname) => API_URL + `/api/units/${id}/static/fieldname/${fieldname}`, + workerGrant: (id) => API_URL + `/api/workers/${id}/qualifications/grant`, workerGrantedQualifications: (id) => API_URL + `/api/workers/${id}/qualifications`, workersBlock: (id) => API_URL + `/api/workers/${id}/block`, diff --git a/mephisto/review_app/server/api/views/__init__.py b/mephisto/review_app/server/api/views/__init__.py index 3068c60bf..0f237c942 100644 --- a/mephisto/review_app/server/api/views/__init__.py +++ b/mephisto/review_app/server/api/views/__init__.py @@ -31,3 +31,4 @@ from .units_view import UnitsView from .worker_block_view import WorkerBlockView from .worker_granted_qualifications_view import WorkerGrantedQualificationsView +from .worker_qualifications_grant_view import WorkerQualificationsGrantView diff --git a/mephisto/review_app/server/api/views/qualify_worker_view.py b/mephisto/review_app/server/api/views/qualify_worker_view.py index 74c59a9f7..2ad1fe985 100644 --- a/mephisto/review_app/server/api/views/qualify_worker_view.py +++ b/mephisto/review_app/server/api/views/qualify_worker_view.py @@ -59,7 +59,7 @@ def _find_units_ids( class QualifyWorkerView(MethodView): @staticmethod - def _grant_worker_qualification_with_unit( + def grant_worker_qualification_with_unit( qualification: StringIDRow, unit: Unit, worker: Worker, @@ -150,7 +150,7 @@ def post(self, qualification_id: int, worker_id: int, action: str) -> dict: try: if action == "grant": - self._grant_worker_qualification_with_unit( + self.grant_worker_qualification_with_unit( qualification=db_qualification, unit=unit, worker=worker, diff --git a/mephisto/review_app/server/api/views/worker_qualifications_grant_view.py b/mephisto/review_app/server/api/views/worker_qualifications_grant_view.py new file mode 100644 index 000000000..fd2a4f44b --- /dev/null +++ b/mephisto/review_app/server/api/views/worker_qualifications_grant_view.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +from typing import List + +from flask import current_app as app +from flask import request +from flask.views import MethodView +from werkzeug.exceptions import BadRequest + +from mephisto.abstractions.databases.local_database import StringIDRow +from mephisto.data_model.unit import Unit +from mephisto.data_model.worker import Worker +from mephisto.review_app.server.api.views import QualifyWorkerView + + +class WorkerQualificationsGrantView(MethodView): + def post(self, worker_id: int) -> dict: + """Grant multiple qualifications to a worker with units""" + + data: dict = request.json or {} + unit_ids: List[str] = data.get("unit_ids") + qualification_grants: List[dict] = data.get("qualification_grants", []) + + if not unit_ids: + raise BadRequest('Field "unit_ids" is required.') + + if not qualification_grants: + raise BadRequest('Field "qualification_grants" is required.') + + for qualification_grant in qualification_grants: + qualification_id = qualification_grant.get("qualification_id") + qualification_value = qualification_grant.get("value", 1) + + db_qualification: StringIDRow = app.db.get_qualification(qualification_id) + + if not db_qualification: + app.logger.debug(f"Could not found qualification with ID={qualification_id}") + # Do not raise any error, just ignore it + continue + + worker: Worker = Worker.get(app.db, str(worker_id)) + + for unit_id in unit_ids: + unit: Unit = Unit.get(app.db, str(unit_id)) + + QualifyWorkerView.grant_worker_qualification_with_unit( + qualification=db_qualification, + unit=unit, + worker=worker, + value=qualification_value, + ) + + return {} diff --git a/mephisto/review_app/server/urls.py b/mephisto/review_app/server/urls.py index 4a6bfdefa..d226d9202 100644 --- a/mephisto/review_app/server/urls.py +++ b/mephisto/review_app/server/urls.py @@ -116,6 +116,10 @@ def init_urls(app: Flask): "worker_granted_qualifications", ), ) + app.add_url_rule( + "/api/workers//qualifications/grant", + view_func=api_views.WorkerQualificationsGrantView.as_view("worker_qualifications_grant"), + ) app.add_url_rule( "/api/review-stats", view_func=api_views.ReviewStatsView.as_view("review-stats"), diff --git a/test/review_app/server/api/test_worker_qualifications_grant_view.py b/test/review_app/server/api/test_worker_qualifications_grant_view.py new file mode 100644 index 000000000..7485875b2 --- /dev/null +++ b/test/review_app/server/api/test_worker_qualifications_grant_view.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python3 + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +import unittest + +from flask import url_for + +from mephisto.data_model.constants.assignment_state import AssignmentState +from mephisto.data_model.unit import Unit +from mephisto.utils import http_status +from mephisto.utils.testing import get_mock_requester +from mephisto.utils.testing import get_test_qualification +from mephisto.utils.testing import get_test_task_run +from mephisto.utils.testing import get_test_worker +from mephisto.utils.testing import make_completed_unit +from test.review_app.server.api.base_test_api_view_case import BaseTestApiViewCase + + +class TestWorkerQualificationsGrantView(BaseTestApiViewCase): + def test_worker_qualifications_grant_no_units_ids_error(self, *args, **kwargs): + _, worker_id = get_test_worker(self.db) + + with self.app_context: + url = url_for("worker_qualifications_grant", worker_id=worker_id) + response = self.client.post(url, json={}) + result = response.json + + self.assertEqual(response.status_code, http_status.HTTP_400_BAD_REQUEST) + self.assertEqual(result["error"], 'Field "unit_ids" is required.') + + def test_worker_qualifications_grant_no_qualification_grants_error(self, *args, **kwargs): + _, worker_id = get_test_worker(self.db) + + with self.app_context: + url = url_for("worker_qualifications_grant", worker_id=worker_id) + response = self.client.post(url, json={"unit_ids": [1, 2]}) + result = response.json + + self.assertEqual(response.status_code, http_status.HTTP_400_BAD_REQUEST) + self.assertEqual(result["error"], 'Field "qualification_grants" is required.') + + def test_worker_qualifications_grant_success(self, *args, **kwargs): + expected_value_1 = "9" + expected_value_2 = "10" + + # Requester + requester = get_mock_requester(self.db) + + # Task Run + get_test_task_run(self.db) + + # Worker + _, worker_id = get_test_worker(self.db) + + # Unit + unit_id = make_completed_unit(self.db) + unit: Unit = Unit.get(self.db, unit_id) + unit.set_db_status(AssignmentState.COMPLETED) + + # Qualification + qualification_id_1 = get_test_qualification(self.db, name="Test 1") + qualification_id_2 = get_test_qualification(self.db, name="Test 2") + + granted_aualification_1_before = self.db.check_granted_qualifications( + qualification_id_1, + worker_id, + ) + granted_aualification_2_before = self.db.check_granted_qualifications( + qualification_id_2, + worker_id, + ) + + # Unit Review + self.db.new_worker_review( + unit_id=unit_id, + task_id=unit.task_id, + worker_id=worker_id, + status=unit.db_status, + ) + + with self.app_context: + url = url_for("worker_qualifications_grant", worker_id=worker_id) + response = self.client.post( + url, + json={ + "unit_ids": [unit_id], + "qualification_grants": [ + { + "qualification_id": qualification_id_1, + "value": expected_value_1, + }, + { + "qualification_id": qualification_id_2, + "value": expected_value_2, + }, + ], + }, + ) + result = response.json + + granted_aualification_1_after = self.db.check_granted_qualifications( + qualification_id_1, + worker_id, + expected_value_1, + ) + granted_aualification_2_after = self.db.check_granted_qualifications( + qualification_id_2, + worker_id, + expected_value_2, + ) + + self.assertEqual(response.status_code, http_status.HTTP_200_OK) + self.assertEqual(result, {}) + self.assertEqual(len(granted_aualification_1_before), 0) + self.assertEqual(len(granted_aualification_2_before), 0) + self.assertEqual(len(granted_aualification_1_after), 1) + self.assertEqual(len(granted_aualification_2_after), 1) + + +if __name__ == "__main__": + unittest.main()

lqDM;|&;5uN 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