From b2e72b62d741300b4fc75351ddfab45cd6976868 Mon Sep 17 00:00:00 2001 From: henrikmv Date: Fri, 16 Aug 2024 21:45:40 +0200 Subject: [PATCH 1/7] feat: respect block entry form --- i18n/en.pot | 7 +++++-- .../WidgetEventEdit/WidgetEventEdit.container.js | 16 +++++++++++++--- .../WidgetEventEdit/constants/status.const.js | 10 ++++++++++ .../metaData/Program/ProgramStage.js | 9 +++++++++ .../factory/programStage/ProgramStageFactory.js | 1 + .../quickStoreOperations/storePrograms.js | 2 +- .../storageControllers/cache.types.js | 1 + 7 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 src/core_modules/capture-core/components/WidgetEventEdit/constants/status.const.js diff --git a/i18n/en.pot b/i18n/en.pot index a24932402c..d4d7db36f5 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2024-08-08T11:49:13.423Z\n" -"PO-Revision-Date: 2024-08-08T11:49:13.423Z\n" +"POT-Creation-Date: 2024-08-16T18:52:32.077Z\n" +"PO-Revision-Date: 2024-08-16T18:52:32.077Z\n" msgid "Choose one or more dates..." msgstr "Choose one or more dates..." @@ -1353,6 +1353,9 @@ msgstr "Scheduled date cannot be changed for {{ eventStatus }} events" msgid "Event completed" msgstr "Event completed" +msgid "You can't edit this event due to program settings" +msgstr "You can't edit this event due to program settings" + msgid "Back to all stages and events" msgstr "Back to all stages and events" diff --git a/src/core_modules/capture-core/components/WidgetEventEdit/WidgetEventEdit.container.js b/src/core_modules/capture-core/components/WidgetEventEdit/WidgetEventEdit.container.js index 147934a992..95b2bb5eb3 100644 --- a/src/core_modules/capture-core/components/WidgetEventEdit/WidgetEventEdit.container.js +++ b/src/core_modules/capture-core/components/WidgetEventEdit/WidgetEventEdit.container.js @@ -31,6 +31,7 @@ import { OverflowButton } from '../Buttons'; import { EventChangelogWrapper } from './EventChangelogWrapper'; import { FEATURES, useFeature } from '../../../capture-core-utils'; import { inMemoryFileStore } from '../DataEntry/file/inMemoryFileStore'; +import { eventStatuses } from './constants/status.const'; const styles = { header: { @@ -99,6 +100,14 @@ export const WidgetEventEditPlain = ({ const loadedValues = useSelector(({ viewEventPage }) => viewEventPage.loadedValues); const eventAccess = getProgramEventAccess(programId, stageId); + console.log('stage', stage); + const blockEntryForm = stage.blockEntryForm && eventStatus === eventStatuses.COMPLETED; + const disableEdit = !eventAccess?.write || blockEntryForm; + + const tooltipContent = blockEntryForm ? + i18n.t('You can\'t edit this event due to program settings') : + i18n.t('You don\'t have access to edit this event'); + const availableProgramStages = useAvailableProgramStages(stage, teiId, enrollmentId, programId); const { programCategory } = useCategoryCombinations(programId); if (error) { @@ -117,14 +126,14 @@ export const WidgetEventEditPlain = ({ {currentPageMode === dataEntryKeys.VIEW && (