From cae652b512137d3a85248d164fb16a6a7d8c097f Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Tue, 7 Dec 2021 18:31:34 +0100 Subject: [PATCH] feat(profile): upsert eo-labels on form submit --- src/Handler/Profile.hs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/Handler/Profile.hs b/src/Handler/Profile.hs index b56884799..d25e24036 100644 --- a/src/Handler/Profile.hs +++ b/src/Handler/Profile.hs @@ -461,12 +461,6 @@ postProfileR = do E.&&. userSchool E.^. UserSchoolSchool E.==. school E.^. SchoolId return $ school E.^. SchoolId userExamOfficeLabels <- fmap (foldMap $ \(Entity eolid ExamOfficeLabel{..}) -> Map.singleton (Right eolid) (examOfficeLabelName,examOfficeLabelStatus,examOfficeLabelPriority)) (selectList [ ExamOfficeLabelUser ==. uid ] []) - --Map.union - -- <$> fmap foldMap $ \(Entity eolid ExamOfficeLabel{..}) -> Map.singleton (Right eolid) (examOfficeLabelName,examOfficeLabelStatus,examOfficeLabelPriority)) (selectList [ ExamOfficeLabelUser ==. uid ] []) - -- E.select . E.from $ \examOfficeLabel -> do - -- E.where_ $ examOfficeLabel E.^. ExamOfficeLabelUser E.==. E.val uid - -- E.orderBy [ E.desc $ examOfficeLabel E.^. ExamOfficeLabelPriority ] - -- return examOfficeLabel return (userSchools, userExamOfficeLabels) allocs <- runDB $ getAllocationNotifications uid let settingsTemplate = Just SettingsForm @@ -533,6 +527,17 @@ postProfileR = do } [ UserSchoolIsOptOut =. True ] + forM_ (Map.toList $ stgExamOfficeSettings & eosettingsLabels) $ \(eoLabelIdent, (examOfficeLabelName, examOfficeLabelStatus, examOfficeLabelPriority)) -> case eoLabelIdent of + Left _ -> void $ upsert ExamOfficeLabel{ examOfficeLabelUser=uid, .. } + [ ExamOfficeLabelName =. examOfficeLabelName + , ExamOfficeLabelStatus =. examOfficeLabelStatus + , ExamOfficeLabelPriority =. examOfficeLabelPriority + ] + Right lblId -> update lblId + [ ExamOfficeLabelName =. examOfficeLabelName + , ExamOfficeLabelStatus =. examOfficeLabelStatus + , ExamOfficeLabelPriority =. examOfficeLabelPriority + ] addMessageI Success MsgSettingsUpdate redirect $ ProfileR :#: ProfileSettings