From 49fe920173cc7f648d2a2919d124e5d75726674c Mon Sep 17 00:00:00 2001 From: Tore Brede <Tore.Brede@uib.no> Date: Mon, 13 Dec 2021 14:01:06 +0100 Subject: [PATCH] GREG-127: Removing comment field, adding toggle for contact person field --- frontend/src/contexts/featureContext.ts | 3 +++ frontend/src/providers/featureProvider.tsx | 12 +++++++++-- .../routes/guest/register/guestDataForm.ts | 2 +- frontend/src/routes/guest/register/index.tsx | 4 ++-- .../routes/guest/register/steps/register.tsx | 20 +++++++++++-------- gregui/api/views/invitation.py | 2 +- gregui/tests/api/views/test_invitation.py | 2 +- 7 files changed, 30 insertions(+), 15 deletions(-) diff --git a/frontend/src/contexts/featureContext.ts b/frontend/src/contexts/featureContext.ts index 0fd76a4e..238f2bc3 100644 --- a/frontend/src/contexts/featureContext.ts +++ b/frontend/src/contexts/featureContext.ts @@ -5,11 +5,14 @@ export interface IFeatureContext { displayContactAtUnit: boolean // Controls whether the optional field is shown in the register new guest wizard displayComment: boolean + // Should the contact at unit field be shown for the guest when he registers his information? + displayContactAtUnitGuestInput: boolean } export const FeatureContext = createContext<IFeatureContext>({ displayContactAtUnit: true, displayComment: true, + displayContactAtUnitGuestInput: true, }) export const useFeatureContext = () => useContext(FeatureContext) diff --git a/frontend/src/providers/featureProvider.tsx b/frontend/src/providers/featureProvider.tsx index 962e46aa..6f5e7242 100644 --- a/frontend/src/providers/featureProvider.tsx +++ b/frontend/src/providers/featureProvider.tsx @@ -13,12 +13,20 @@ function FeatureProvider(props: FeatureProviderProps) { let features: IFeatureContext switch (appInst) { case 'uib': - features = { displayContactAtUnit: false, displayComment: false } + features = { + displayContactAtUnit: false, + displayComment: false, + displayContactAtUnitGuestInput: false, + } break case 'uio': default: - features = { displayContactAtUnit: true, displayComment: true } + features = { + displayContactAtUnit: true, + displayComment: true, + displayContactAtUnitGuestInput: true, + } break } diff --git a/frontend/src/routes/guest/register/guestDataForm.ts b/frontend/src/routes/guest/register/guestDataForm.ts index c1d35dcd..5c86b600 100644 --- a/frontend/src/routes/guest/register/guestDataForm.ts +++ b/frontend/src/routes/guest/register/guestDataForm.ts @@ -14,7 +14,7 @@ export type GuestInviteInformation = { role_name_nb: string role_start: string role_end: string - comment?: string + contact_person_unit?: string feide_id?: string email?: string diff --git a/frontend/src/routes/guest/register/index.tsx b/frontend/src/routes/guest/register/index.tsx index c595bac7..79b614d5 100644 --- a/frontend/src/routes/guest/register/index.tsx +++ b/frontend/src/routes/guest/register/index.tsx @@ -56,7 +56,7 @@ type InvitationData = { role_name_en: string start: string end: string - comments: string + contact_person_unit: string } meta: { session_type: string @@ -149,7 +149,7 @@ export default function GuestRegister() { role_name_nb: data.role.role_name_nb ?? '', role_start: data.role.start ?? '', role_end: data.role.end ?? '', - comment: data.role.comments ?? '', + contact_person_unit: data.role.contact_person_unit ?? '', authentication_method: authenticationMethod, }) diff --git a/frontend/src/routes/guest/register/steps/register.tsx b/frontend/src/routes/guest/register/steps/register.tsx index 9cc70c71..3b4fbb35 100644 --- a/frontend/src/routes/guest/register/steps/register.tsx +++ b/frontend/src/routes/guest/register/steps/register.tsx @@ -11,6 +11,7 @@ import { SubmitHandler, Controller, useForm } from 'react-hook-form' import React, { forwardRef, Ref, + useContext, useEffect, useImperativeHandle, useState, @@ -30,9 +31,11 @@ import { GuestInviteInformation } from '../guestDataForm' import { GuestRegisterData } from '../enteredGuestData' import { GuestRegisterCallableMethods } from '../guestRegisterCallableMethods' import AuthenticationMethod from '../authenticationMethod' +import { FeatureContext } from '../../../../contexts' interface GuestRegisterProperties { nextHandler(registerData: GuestRegisterData): void + initialGuestData: GuestInviteInformation registerData: GuestRegisterData | null } @@ -57,6 +60,7 @@ const GuestRegisterStep = forwardRef( string | undefined >(undefined) const [idErrorState, setIdErrorState] = useState<string>('') + const { displayContactAtUnitGuestInput } = useContext(FeatureContext) console.log('register step registerData', registerData) @@ -528,14 +532,14 @@ const GuestRegisterStep = forwardRef( disabled /> - <TextField - id="comment" - label={t('input.comment')} - multiline - rows={5} - value={initialGuestData.comment} - disabled - /> + {displayContactAtUnitGuestInput && ( + <TextField + id="contactPersonUnit" + label={t('input.contactPersonUnit')} + value={initialGuestData.contact_person_unit} + disabled + /> + )} </Stack> </form> </Box> diff --git a/gregui/api/views/invitation.py b/gregui/api/views/invitation.py index 34b6d4fa..f629d427 100644 --- a/gregui/api/views/invitation.py +++ b/gregui/api/views/invitation.py @@ -235,7 +235,7 @@ class InvitedGuestView(GenericAPIView): "role_name_en": role.type.name_en, "start": role.start_date, "end": role.end_date, - "comments": role.comments, + "contact_person_unit": role.contact_person_unit, }, "meta": {"session_type": session_type}, } diff --git a/gregui/tests/api/views/test_invitation.py b/gregui/tests/api/views/test_invitation.py index 0fb8e456..3fe44484 100644 --- a/gregui/tests/api/views/test_invitation.py +++ b/gregui/tests/api/views/test_invitation.py @@ -101,7 +101,7 @@ def test_get_invited_info_session_okay( assert data.get("role") == dict( start=None, end="2050-10-15", - comments="", + contact_person_unit="", ou_name_en=unit_foo.name_en, ou_name_nb=unit_foo.name_nb, role_name_en=role_type_foo.name_en, -- GitLab