41 lines
1.2 KiB
Haskell
41 lines
1.2 KiB
Haskell
module Handler.Course.Events.Edit
|
|
( getCEvEditR, postCEvEditR
|
|
) where
|
|
|
|
import Import
|
|
import Handler.Utils
|
|
|
|
import Handler.Course.Events.Form
|
|
|
|
|
|
getCEvEditR, postCEvEditR :: TermId -> SchoolId -> CourseShorthand -> CryptoUUIDCourseEvent -> Handler Html
|
|
getCEvEditR = postCEvEditR
|
|
postCEvEditR tid ssh csh cID = do
|
|
eId <- decrypt cID
|
|
courseEvent@CourseEvent{..} <- runDB $ get404 eId
|
|
|
|
((eventRes, eventWgt'), eventEnctype) <- runFormPost . courseEventForm . Just $ courseEventToForm courseEvent
|
|
|
|
formResult eventRes $ \CourseEventForm{..} -> do
|
|
now <- liftIO getCurrentTime
|
|
runDB $
|
|
replace eId CourseEvent
|
|
{ courseEventCourse
|
|
, courseEventType = cefType
|
|
, courseEventRoom = cefRoom
|
|
, courseEventTime = cefTime
|
|
, courseEventNote = cefNote
|
|
, courseEventLastChanged = now
|
|
}
|
|
addMessageI Success MsgCourseEventEdited
|
|
redirect $ CourseR tid ssh csh CShowR :#: [st|event-#{toPathPiece cID}|]
|
|
|
|
siteLayoutMsg MsgMenuCourseEventEdit $ do
|
|
setTitleI MsgMenuCourseEventEdit
|
|
|
|
wrapForm eventWgt' def
|
|
{ formAction = Just . SomeRoute $ CEventR tid ssh csh cID CEvEditR
|
|
, formEncoding = eventEnctype
|
|
}
|
|
|