diff --git a/app/graphql/resolvers/reviewers_query_resolver.rb b/app/graphql/resolvers/reviewers_query_resolver.rb index a61fe5e..5a27465 100644 --- a/app/graphql/resolvers/reviewers_query_resolver.rb +++ b/app/graphql/resolvers/reviewers_query_resolver.rb @@ -8,8 +8,7 @@ module Resolvers def resolve UserPolicy::Scope.new(@context[:current_user], User) .resolve - .joins(:roles) - .where(roles: { name: %i[teacher nde] }) + .where(roles: %i[teacher nde]) .where.not(id: @context[:current_user].id) .distinct end diff --git a/app/javascript/pages/question/Form/Form.tsx b/app/javascript/pages/question/Form/Form.tsx index 304815a..1d83ca1 100644 --- a/app/javascript/pages/question/Form/Form.tsx +++ b/app/javascript/pages/question/Form/Form.tsx @@ -1,5 +1,5 @@ import React, {FC, useState} from 'react' -import {useForm} from 'react-hook-form'; +import {FieldValue, FieldValues, useForm} from 'react-hook-form'; import {ExclamationCircleIcon} from '@heroicons/react/outline'; import {useHistory} from "react-router-dom"; import {useDispatch, useSelector} from "react-redux"; @@ -57,7 +57,19 @@ export const Form: FC = ({question, onSubmit, onDraftSubmit, alert}) => { const [validationErrors, setValidationErrors] = useState([]) const [confirmSaveDialogIsOpen, setConfirmFinishDialogIsOpen] = useState(false) const [leaveDialogIsOpen, setLeaveDialogIsOpen] = useState(false) - const {register, control, setValue, getValues, reset, formState} = useForm() + const formHooks = useForm({ + defaultValues: { + authorship: question?.authorship ?? 'UNIFESO', + authorshipType: question?.authorship === 'UNIFESO' ? 'UNIFESO' : 'OTHER', + authorshipYear: new Date().getFullYear().toString(), + difficulty: question?.difficulty, + checkType: question?.checkType, + bloomTaxonomy: question?.bloomTaxonomy, + intention: question?.intention, + } + }) + const {register, control, setValue, getValues, reset, formState, resetField} = formHooks + const [currentStep, setCurrentStep] = useState(0) const unsavedChanges = useSelector((state: RootState) => state.unsavedChanges) const history = useHistory() @@ -119,7 +131,7 @@ export const Form: FC = ({question, onSubmit, onDraftSubmit, alert}) => { } return ( - + {alert && ( )} diff --git a/app/javascript/pages/question/Form/FormContext.tsx b/app/javascript/pages/question/Form/FormContext.tsx index 9c611ce..645e113 100644 --- a/app/javascript/pages/question/Form/FormContext.tsx +++ b/app/javascript/pages/question/Form/FormContext.tsx @@ -1,15 +1,9 @@ -import React, { FC, useContext } from 'react' -import { Control, FieldValues } from 'react-hook-form'; +import React, { FC, useContext } from 'react'; +import { FieldValues, UseFormReturn } from 'react-hook-form'; import { Question } from '../../../__generated__/graphql-schema'; -type FormContextHooks = { - register: any - setValue: Function - control: Control -} - type FormContextProps = { - hooks: FormContextHooks + hooks: UseFormReturn question?: Question } diff --git a/app/javascript/pages/question/Form/steps/FeaturesFromStep/FeaturesFormStep.tsx b/app/javascript/pages/question/Form/steps/FeaturesFromStep/FeaturesFormStep.tsx index b9c6c8c..1efc2d7 100644 --- a/app/javascript/pages/question/Form/steps/FeaturesFromStep/FeaturesFormStep.tsx +++ b/app/javascript/pages/question/Form/steps/FeaturesFromStep/FeaturesFormStep.tsx @@ -1,20 +1,23 @@ -import React, { FC, useState } from "react"; import { gql } from "@apollo/client"; +import React, { FC, useState } from "react"; import { Card } from "../../../../../components"; -import { SubjectSelect, SubjectFragment } from "./SubjectSelect"; -import { ReviewerSelect, ReviewerFragment } from "./ReviewSelect"; -import { useFormProvider } from '../../FormContext' +import { useFormProvider } from "../../FormContext"; +import { ReviewerFragment, ReviewerSelect } from "./ReviewSelect"; +import { SubjectFragment, SubjectSelect } from "./SubjectSelect"; -import { BLOOM_TAXONOMY, CHECK_TYPE, DIFFICULTY } from "../../../../../utils/types"; -import { Question } from "../../../../../__generated__/graphql-schema"; +import { + BLOOM_TAXONOMY, + CHECK_TYPE, + DIFFICULTY, +} from "../../../../../utils/types"; export const FeaturesFragment = gql` ${ReviewerFragment} ${SubjectFragment} fragment FeaturesFields on Question { - ... ReviewerFields - ... SubjectFields + ...ReviewerFields + ...SubjectFields authorship authorshipYear difficulty @@ -22,30 +25,24 @@ export const FeaturesFragment = gql` intention bloomTaxonomy } -` +`; export const FeaturesFormStep: FC = () => { - const { question, hooks: { setValue, register } } = useFormProvider(); - + const { + hooks: { setValue, register, getValues }, + } = useFormProvider(); const currentYear = new Date().getFullYear(); - const { - authorship, - authorshipYear, - difficulty, - bloomTaxonomy, - checkType, - } = question || {} as Question - - const [ownQuestion, setOwnQuestion] = useState(authorship === "UNIFESO" || authorship === undefined || authorship === null); + const authorship = getValues("authorship"); + const [ownQuestion, setOwnQuestion] = useState(authorship === "UNIFESO"); const handleOwnCheck = (value: string) => { - if (value === 'UNIFESO') { - setOwnQuestion(true) + if (value === "UNIFESO") { + setOwnQuestion(true); setValue("authorship", "UNIFESO"); setValue("authorshipYear", currentYear.toString()); } else { - setOwnQuestion(false) + setOwnQuestion(false); setValue("authorship", ""); setValue("authorshipYear", ""); } @@ -61,25 +58,29 @@ export const FeaturesFormStep: FC = () => {
handleOwnCheck("UNIFESO")} /> - +
handleOwnCheck("")} /> - +
@@ -88,9 +89,8 @@ export const FeaturesFormStep: FC = () => {
@@ -100,13 +100,12 @@ export const FeaturesFormStep: FC = () => {

Ano

@@ -119,9 +118,8 @@ export const FeaturesFormStep: FC = () => {

Grau de Dificuldade