diff --git a/.env b/.env index 77602a0..7c3a28b 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ -REACT_APP_API_PATH=http://localhost:3000/ -# REACT_APP_API_PATH=https://br-ipti-beneficiarios.azurewebsites.net/ \ No newline at end of file +# REACT_APP_API_PATH=http://localhost:3000/ +REACT_APP_API_PATH=https://br-ipti-beneficiarios.azurewebsites.net/ \ No newline at end of file diff --git a/src/Assets/css/styles.css b/src/Assets/css/styles.css index f5556cd..8a0cc68 100644 --- a/src/Assets/css/styles.css +++ b/src/Assets/css/styles.css @@ -122,7 +122,7 @@ .card { box-shadow: rgba(0, 0, 0, 0.02) 0px 1px 3px 0px, rgba(27, 31, 35, 0.15) 0px 0px 0px 1px; - padding: 2rem; + padding: 1rem; border-radius: 10px; margin-bottom: 1rem; } diff --git a/src/Assets/images/calendar.svg b/src/Assets/images/calendar.svg new file mode 100644 index 0000000..68b323c --- /dev/null +++ b/src/Assets/images/calendar.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/Assets/images/meeting_card.svg b/src/Assets/images/meeting_card.svg new file mode 100644 index 0000000..5eb475b --- /dev/null +++ b/src/Assets/images/meeting_card.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/Assets/images/published_with_changes.svg b/src/Assets/images/published_with_changes.svg new file mode 100644 index 0000000..0348ef6 --- /dev/null +++ b/src/Assets/images/published_with_changes.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/Components/Card/CardMeeting/index.tsx b/src/Components/Card/CardMeeting/index.tsx index 6ccd52d..a03a196 100644 --- a/src/Components/Card/CardMeeting/index.tsx +++ b/src/Components/Card/CardMeeting/index.tsx @@ -2,12 +2,20 @@ import { useNavigate, useParams } from "react-router-dom"; import { Container } from "./style"; import { Column, Padding, Row } from "../../../Styles/styles"; import Icon from "../../Icon"; -import { formatarData, Status } from "../../../Controller/controllerGlobal"; -import { Message } from "primereact/message"; +import { + formatarData, + ROLE, + Status, +} from "../../../Controller/controllerGlobal"; import { useContext, useState } from "react"; import { MeetingListContext } from "../../../Context/Classroom/Meeting/MeetingList/context"; import { MeetingListTypes } from "../../../Context/Classroom/Meeting/MeetingList/type"; import { ConfirmDialog } from "primereact/confirmdialog"; +import { AplicationContext } from "../../../Context/Aplication/context"; +import { PropsAplicationContext } from "../../../Types/types"; +import IconMeeting from "./../../../Assets/images/meeting_card.svg"; +import IconCalendar from "./../../../Assets/images/calendar.svg"; +import IconStatus from "./../../../Assets/images/published_with_changes.svg"; const CardMeeting = ({ title, @@ -23,6 +31,10 @@ const CardMeeting = ({ const history = useNavigate(); const [visible, setVisible] = useState(false); + const propsAplication = useContext( + AplicationContext + ) as PropsAplicationContext; + const { id } = useParams(); const props = useContext(MeetingListContext) as MeetingListTypes; @@ -34,16 +46,27 @@ const CardMeeting = ({ onClick={() => history(`/turma/${id}/encontros/${idMeeting}`)} > - {title} - { - e.stopPropagation(); - setVisible(true); - }} - > - - + + + + + + + {title} + + + {(propsAplication.user?.role === ROLE.ADMIN || + propsAplication.user?.role === ROLE.COORDINATORS) && ( + { + e.stopPropagation(); + setVisible(true); + }} + > + + + )} @@ -51,21 +74,33 @@ const CardMeeting = ({ - Data: - {formatarData(data)} + + Data: {formatarData(data)} - - {status === Status.PENDING ? ( - - ) : status === Status.APPROVED ? ( - - ) : status === Status.REPROVED ? ( - - ) : null} - + + + + Status: {" "} + {status === Status.PENDING ? ( + Pendente + ) : status === Status.APPROVED ? ( + Aprovado + ) : status === Status.REPROVED ? ( + Reprovado + ) : null} + + { project: undefined, status: "", classroom: 0, + deficiency_description: "" }; return { initialValue, diff --git a/src/Context/Beneficiaries/BeneficiaresCreate/type.ts b/src/Context/Beneficiaries/BeneficiaresCreate/type.ts index 5fc8c3a..e47d87c 100644 --- a/src/Context/Beneficiaries/BeneficiaresCreate/type.ts +++ b/src/Context/Beneficiaries/BeneficiaresCreate/type.ts @@ -15,7 +15,8 @@ export interface BeneficiariesCreateType { status: string; classroom: number; zone: number | undefined, - project: number | undefined + project: number | undefined, + deficiency_description: string | undefined }; tsOne: Tsone | undefined; project: any | undefined; diff --git a/src/Context/Beneficiaries/BeneficiaresEdit/state.tsx b/src/Context/Beneficiaries/BeneficiaresEdit/state.tsx index 79d663e..c6f7566 100644 --- a/src/Context/Beneficiaries/BeneficiaresEdit/state.tsx +++ b/src/Context/Beneficiaries/BeneficiaresEdit/state.tsx @@ -64,6 +64,8 @@ export const BeneficiariesEditState = () => { responsable_cpf: registrations?.responsable_cpf, responsable_telephone: registrations?.responsable_telephone, status: getStatus(registrations?.status!), + deficiency_description: registrations?.deficiency_description + }; const CreateRegisterClassroom = (data: CreateRegistrationClassroomType) => { diff --git a/src/Context/Classroom/Registration/state.tsx b/src/Context/Classroom/Registration/state.tsx index 2d1c5e5..8662077 100644 --- a/src/Context/Classroom/Registration/state.tsx +++ b/src/Context/Classroom/Registration/state.tsx @@ -36,6 +36,8 @@ export const RegistrationClassroomState = () => { responsable_cpf: registration?.registration.responsable_cpf, responsable_telephone: registration?.registration.responsable_telephone, status: getStatus(registration?.status!), + deficiency_description: registration?.registration.deficiency_description + }; const handleUpdateRegistration = (data: UpdateRegister, id: number) => { diff --git a/src/Context/Classroom/Registration/type.tsx b/src/Context/Classroom/Registration/type.tsx index 4a3e17a..d3c3553 100644 --- a/src/Context/Classroom/Registration/type.tsx +++ b/src/Context/Classroom/Registration/type.tsx @@ -28,6 +28,7 @@ export interface UpdateRegister responsable_telephone: string | undefined; status: {id: string, name: string} | undefined; registration_classroom_id?: number + deficiency_description: any } export interface RegistrationType { id: number diff --git a/src/Pages/Beneficiaries/BeneficiariesCreate/index.tsx b/src/Pages/Beneficiaries/BeneficiariesCreate/index.tsx index 35183ce..f1cd9e0 100644 --- a/src/Pages/Beneficiaries/BeneficiariesCreate/index.tsx +++ b/src/Pages/Beneficiaries/BeneficiariesCreate/index.tsx @@ -45,9 +45,7 @@ const RegistrationPage = () => { } return true; }), - responsable_telephone: Yup.string().required( - "Telefone é obrigatório" - ), + responsable_telephone: Yup.string().required("Telefone é obrigatório"), birthday: Yup.string() .nullable() .required("Data de nascimento é obrigatória"), @@ -196,36 +194,48 @@ const RegistrationPage = () => { ) : null} - + {values.deficiency && ( - Zona * + Qual deficiência? - - - - - - - {errors.zone && touched.zone ? ( - - {errors.zone} - - ) : null} + - + )} {" "} + + + Zona * + + + + + + + + {errors.zone && touched.zone ? ( + + {errors.zone} + + ) : null} + + Dados Responsavel @@ -292,7 +302,10 @@ const RegistrationPage = () => { value={props.project} placerholder="Selecione o projeto" name="project" - onChange={(e) => {props.setProject(e.target.value); setFieldValue("project", e.target.value)}} + onChange={(e) => { + props.setProject(e.target.value); + setFieldValue("project", e.target.value); + }} options={props.tsOne?.project} optionsLabel="name" optionsValue="id" diff --git a/src/Pages/Beneficiaries/BeneficiariesEdit/index.tsx b/src/Pages/Beneficiaries/BeneficiariesEdit/index.tsx index caf1500..716e1f7 100644 --- a/src/Pages/Beneficiaries/BeneficiariesEdit/index.tsx +++ b/src/Pages/Beneficiaries/BeneficiariesEdit/index.tsx @@ -9,211 +9,222 @@ import MaskInput from "../../../Components/InputMask"; import Loading from "../../../Components/Loading"; import TextInput from "../../../Components/TextInput"; import BeneficiariesEditProvider, { - BeneficiariesEditContext, + BeneficiariesEditContext, } from "../../../Context/Beneficiaries/BeneficiaresEdit/context"; import { BeneficiariesEditType } from "../../../Context/Beneficiaries/BeneficiaresEdit/type"; import { - color_race, - getStatus, - typesex + color_race, + getStatus, + typesex, } from "../../../Controller/controllerGlobal"; import color from "../../../Styles/colors"; import { Container, Padding, Row } from "../../../Styles/styles"; import ModalCreateRegisterClassroom from "./ModalCreateRegisterClassroom"; const BeneficiariesEdit = () => { - return ( - - - - ); + return ( + + + + ); }; const BeneficiariesEditPage = () => { - const props = useContext(BeneficiariesEditContext) as BeneficiariesEditType; - const [visible, setVisible] = useState(); + const props = useContext(BeneficiariesEditContext) as BeneficiariesEditType; + const [visible, setVisible] = useState(); - const [visibleDelete, setVisibleDelete] = useState(); + const [visibleDelete, setVisibleDelete] = useState(); - if (props.isLoading) return ; + if (props.isLoading) return ; - const renderHeader = () => { - return ( - - setVisible(true)} - /> - - ); - }; - - const StatusBody = (rowData: any) => { - return {getStatus(rowData?.status)?.name}; - }; + const renderHeader = () => { + return ( + + setVisible(true)} + /> + + ); + }; - const ActionBeneficiariesBody = (rowData: any) => { - return ( - - {/* { history(`${rowData.id}`) }} /> */} - { - setVisibleDelete(rowData); - }} - /> - - ); - }; + const StatusBody = (rowData: any) => { + return {getStatus(rowData?.status)?.name}; + }; + const ActionBeneficiariesBody = (rowData: any) => { return ( - - Editar Beneficiario - - {props.registrations ? ( - { - props.handleUpdateRegistration( - { ...values }, - props.registrations?.id! - ); - }} - > - {({ values, handleChange }) => { - return ( - - - - - - - - Dados basicos - - - - Name - - - - - Sexo - - - - {" "} - - - Data de Nascimento - - - - - Cor de raça - - {" "} - - {" "} - - - Deficiente - - - - - CPF - - - - {" "} - - - Telefone - - - - {" "} - - Dados Responsavel - - - - Nome - - - - - CPF Responsavel - - - - {" "} + + {/* { history(`${rowData.id}`) }} /> */} + { + setVisibleDelete(rowData); + }} + /> + + ); + }; - - Matriculas - - {/* Endereço + return ( + + Editar Beneficiario + + {props.registrations ? ( + { + props.handleUpdateRegistration( + { ...values }, + props.registrations?.id! + ); + }} + > + {({ values, handleChange }) => { + return ( + + + + + + + + Dados basicos + + + + Name + + + + + Sexo + + + + {" "} + + + Data de Nascimento + + + + + Cor de raça + + {" "} + + {" "} + + + CPF + + + + + Telefone para contato + + + + {" "} + + + Deficiente + + + + {values.deficiency && ( + + Qual deficiência? + + + + )} + {" "} + + Dados Responsavel + + + + Nome + + + + + CPF Responsavel + + + + {" "} + + Matriculas + + {/* Endereço @@ -255,35 +266,35 @@ const BeneficiariesEditPage = () => { /> {" "} */} - - ); - }} - - ) : null} - - - - - - - setVisible(false)} - visible={visible} - /> - setVisibleDelete(false)} - message="Tem certeza de que deseja prosseguir?" - header="Confirmação" - icon="pi pi-exclamation-triangle" - accept={() => props.DeleteRegistration(visibleDelete.id)} - reject={() => setVisibleDelete(false)} - /> - - ); + + ); + }} + + ) : null} + + + + + + + setVisible(false)} + visible={visible} + /> + setVisibleDelete(false)} + message="Tem certeza de que deseja prosseguir?" + header="Confirmação" + icon="pi pi-exclamation-triangle" + accept={() => props.DeleteRegistration(visibleDelete.id)} + reject={() => setVisibleDelete(false)} + /> + + ); }; export default BeneficiariesEdit; diff --git a/src/Pages/Classroom/ClassroomOne/MeetingList/Meeting/Beneficiarios/index.tsx b/src/Pages/Classroom/ClassroomOne/MeetingList/Meeting/Beneficiarios/index.tsx index ce39068..1a5e118 100644 --- a/src/Pages/Classroom/ClassroomOne/MeetingList/Meeting/Beneficiarios/index.tsx +++ b/src/Pages/Classroom/ClassroomOne/MeetingList/Meeting/Beneficiarios/index.tsx @@ -10,6 +10,7 @@ import { MeetingListRegistrationContext } from "../../../../../../Context/Classr import { MeetingListRegisterTypes, RegisterClassroom } from "../../../../../../Context/Classroom/Meeting/MeetingListRegistration/type"; import styles from "../../../../../../Styles"; import { Padding, Row } from "../../../../../../Styles/styles"; +import { Status } from "../../../../../../Controller/controllerGlobal"; const StyleComponent = styled.div` @@ -74,7 +75,7 @@ const Beneficiarios = () => { { props.CreateFouls({ meeting: props.meeting?.id!, diff --git a/src/Pages/Classroom/ClassroomOne/RegistrationList/Registration/index.tsx b/src/Pages/Classroom/ClassroomOne/RegistrationList/Registration/index.tsx index b1d882d..e2c6f81 100644 --- a/src/Pages/Classroom/ClassroomOne/RegistrationList/Registration/index.tsx +++ b/src/Pages/Classroom/ClassroomOne/RegistrationList/Registration/index.tsx @@ -7,7 +7,11 @@ import RegistartionDetailsProvider, { RegistrationDetailsContext, } from "../../../../../Context/Classroom/Registration/context"; import { RegistrationDetailsTypes } from "../../../../../Context/Classroom/Registration/type"; -import { color_race, Status, typesex } from "../../../../../Controller/controllerGlobal"; +import { + color_race, + Status, + typesex, +} from "../../../../../Controller/controllerGlobal"; import { Container, Padding } from "../../../../../Styles/styles"; import { useParams } from "react-router-dom"; import { useFetchRequestClassroomOne } from "../../../../../Services/Classroom/query"; @@ -131,6 +135,19 @@ const RegistrationPage = () => { name="cpf" /> + + Telefone para contato + + + + {" "} + Deficiente @@ -145,19 +162,16 @@ const RegistrationPage = () => { ]} /> - {" "} - - - Telefone + {values.deficiency && + Qual deficiência? - - + } {" "} Dados Responsavel @@ -185,7 +199,6 @@ const RegistrationPage = () => { /> {" "} - {/* Endereço diff --git a/src/Pages/Register/Wizard/Steps/StepOne/index.tsx b/src/Pages/Register/Wizard/Steps/StepOne/index.tsx index 4cc4a25..1a358a2 100644 --- a/src/Pages/Register/Wizard/Steps/StepOne/index.tsx +++ b/src/Pages/Register/Wizard/Steps/StepOne/index.tsx @@ -24,22 +24,24 @@ const StepOne = () => { birthday: props.dataValues.birthday ?? "", zone: props.dataValues.zone ?? null, sex: props.dataValues.sex ?? null, - } + deficiency_description: props.dataValues.deficiency_description ?? "", + }; const schema = Yup.object().shape({ - cpf: Yup.string().test('cpf-valid', 'CPF inválido', value => validaCPF(value!)) - .required('CPF é obrigatório'), - name: Yup.string().required('Nome é obrigatório'), - color_race: Yup.string().required('Raça/cor é obrigatório'), - deficiency: Yup.boolean().required('Deficiência é obrigatória') + cpf: Yup.string() + .test("cpf-valid", "CPF inválido", (value) => validaCPF(value!)) + .required("CPF é obrigatório"), + name: Yup.string().required("Nome é obrigatório"), + color_race: Yup.string().required("Raça/cor é obrigatório"), + deficiency: Yup.boolean().required("Deficiência é obrigatória"), }); const schemaNotCpf = Yup.object().shape({ - name: Yup.string().required('Nome é obrigatório'), - color_race: Yup.string().required('Raça/cor é obrigatório'), - deficiency: Yup.boolean().required('Deficiência é obrigatória'), + name: Yup.string().required("Nome é obrigatório"), + color_race: Yup.string().required("Raça/cor é obrigatório"), + deficiency: Yup.boolean().required("Deficiência é obrigatória"), responsable_telephone: Yup.string().required( - "Telefone do responsável é obrigatório" + "Telefone para contato é obrigatório" ), birthday: Yup.string() .nullable() @@ -48,10 +50,13 @@ const StepOne = () => { sex: Yup.string().nullable().required("Sexo é obrigatória"), }); - return ( <> - props.NextStep(values)}> + props.NextStep(values)} + > {({ values, handleChange, errors, touched }) => { return ( @@ -71,47 +76,104 @@ const StepOne = () => { /> {errors.cpf && touched.cpf ? ( - {errors.cpf} - ) : null} + + {errors.cpf} + + ) : null}{" "} + Name * - + - {errors.name && touched.name ? ( - {errors.name} + + {errors.name} + ) : null} Cor/Raça * - + {errors.color_race && touched.color_race ? ( - {errors.color_race} + + {errors.color_race} + ) : null} Possui Deficiência? * - - + + + {values.deficiency && ( + <> + + + + Qual deficiência? + + + + + {errors.deficiency_description && + touched.deficiency_description ? ( + + {errors.deficiency_description} + + ) : null} + > + )} {errors.deficiency && touched.deficiency ? ( - {errors.deficiency} + + {errors.deficiency} + ) : null} - {!props.isOverAge && } + {!props.isOverAge && ( + + )} - + { // onClick={onButton} className="t-button-primary" label="Continuar" - // disabled={!isValid} + // disabled={!isValid} /> diff --git a/src/Pages/Register/Wizard/Steps/StepTwo/InputsEquals/index.tsx b/src/Pages/Register/Wizard/Steps/StepTwo/InputsEquals/index.tsx index 380901d..01bfc4f 100644 --- a/src/Pages/Register/Wizard/Steps/StepTwo/InputsEquals/index.tsx +++ b/src/Pages/Register/Wizard/Steps/StepTwo/InputsEquals/index.tsx @@ -6,6 +6,7 @@ import RadioButtonComponent from "../../../../../../Components/RadioButton" import { RegisterContext } from "../../../../../../Context/Register/context" import { RegisterTypes } from "../../../../../../Context/Register/type" import { Padding, Row } from "../../../../../../Styles/styles" +import { typesex } from "../../../../../../Controller/controllerGlobal" const InputsEquals = ({ values, handleChange, errors, touched }: { values: any, handleChange: any, errors: any, touched: any }) => { @@ -25,14 +26,14 @@ const InputsEquals = ({ values, handleChange, errors, touched }: { values: any, Sexo * - + {errors.sex && touched.sex ? ( {errors.sex} ) : null} - Telefone * + Telefone para contato* diff --git a/src/Pages/Register/Wizard/Steps/StepTwo/OverAge/index.tsx b/src/Pages/Register/Wizard/Steps/StepTwo/OverAge/index.tsx index 6fcf60d..9482548 100644 --- a/src/Pages/Register/Wizard/Steps/StepTwo/OverAge/index.tsx +++ b/src/Pages/Register/Wizard/Steps/StepTwo/OverAge/index.tsx @@ -18,7 +18,7 @@ const OverAge = () => { } const schema = Yup.object().shape({ - responsable_telephone: Yup.string().required('Telefone é obrigatório'), + responsable_telephone: Yup.string().required('Telefone para contato é obrigatório'), birthday: Yup.string().nullable().required('Data de nascimento é obrigatória'), zone: Yup.string().nullable().required('Zona é obrigatória'), sex: Yup.string().nullable().required('Sexo é obrigatória')
Data:
Data: {formatarData(data)}
Pendente
Aprovado
Reprovado