feat(course-events): implement opt deletion
This commit is contained in:
parent
5f9aad8aa9
commit
0ecc3c689f
@ -139,6 +139,7 @@ ScheduleOffsetWeekForwardWeek: 1 Woche vorwärts
|
||||
ScheduleOptActions: Terminübersicht
|
||||
ScheduleOptOut: Deabonnieren
|
||||
ScheduleOptIn: Abonnieren
|
||||
ScheduleOptDelete: Standard wiederherstellen
|
||||
|
||||
ScheduleOptOutSuccess: Termin erfolgreich deabonniert
|
||||
ScheduleOptInSuccess: Termin erfolgreich abonniert
|
||||
|
||||
@ -140,6 +140,7 @@ ScheduleOffsetWeekForwardWeek: 1 week forward
|
||||
ScheduleOptActions: Schedule
|
||||
ScheduleOptOut: Unsubscribe
|
||||
ScheduleOptIn: Subscribe
|
||||
ScheduleOptDelete: Reset to default
|
||||
|
||||
ScheduleOptOutSuccess: Successfully unsubscribed from occurrence
|
||||
ScheduleOptInSuccess: Successfully subscribed to occurrence
|
||||
|
||||
9
routes
9
routes
@ -216,10 +216,11 @@
|
||||
!/download/*FilePath CNFileR GET !timeANDparticipant
|
||||
!/events/add CEventsNewR GET POST
|
||||
/events/#CryptoUUIDCourseEvent CourseEventR:
|
||||
/schedule-opt/#Bool CEvScheduleOptR GET POST !free
|
||||
/edit CEvEditR GET POST
|
||||
/delete CEvDeleteR GET POST
|
||||
/personalised-sheet-files CPersonalFilesR GET
|
||||
/schedule-opt/set/#Bool CEvScheduleOptSetR GET POST !free
|
||||
/schedule-opt/delete CEvScheduleOptDelR GET POST !free
|
||||
/edit CEvEditR GET POST
|
||||
/delete CEvDeleteR GET POST
|
||||
/personalised-sheet-files CPersonalFilesR GET
|
||||
|
||||
|
||||
/subs CorrectionsR GET POST !corrector !lecturer
|
||||
|
||||
@ -207,7 +207,8 @@ instance BearerAuthSite UniWorX => YesodBreadcrumbs UniWorX where
|
||||
|
||||
breadcrumb (CourseR tid ssh csh CEventsNewR) = i18nCrumb MsgMenuCourseEventNew . Just $ CourseR tid ssh csh CShowR
|
||||
breadcrumb (CourseR tid ssh csh (CourseEventR _cID sRoute)) = case sRoute of
|
||||
CEvScheduleOptR _ -> i18nCrumb MsgBreadcrumbCourseEventScheduleOpt . Just $ CourseR tid ssh csh CShowR
|
||||
CEvScheduleOptSetR _ -> i18nCrumb MsgBreadcrumbCourseEventScheduleOpt . Just $ CourseR tid ssh csh CShowR
|
||||
CEvScheduleOptDelR -> i18nCrumb MsgBreadcrumbCourseEventScheduleOpt . Just $ CourseR tid ssh csh CShowR
|
||||
CEvEditR -> i18nCrumb MsgMenuCourseEventEdit . Just $ CourseR tid ssh csh CShowR
|
||||
CEvDeleteR -> i18nCrumb MsgBreadcrumbCourseEventDelete . Just $ CourseR tid ssh csh CShowR
|
||||
|
||||
|
||||
@ -1,13 +1,14 @@
|
||||
module Handler.Course.Events.Schedule
|
||||
( getCEvScheduleOptR , postCEvScheduleOptR
|
||||
( getCEvScheduleOptSetR , postCEvScheduleOptSetR
|
||||
, getCEvScheduleOptDelR , postCEvScheduleOptDelR
|
||||
) where
|
||||
|
||||
import Import
|
||||
|
||||
|
||||
getCEvScheduleOptR, postCEvScheduleOptR :: TermId -> SchoolId -> CourseShorthand -> CryptoUUIDCourseEvent -> Bool -> Handler Html
|
||||
getCEvScheduleOptR = postCEvScheduleOptR
|
||||
postCEvScheduleOptR tid ssh csh ceId opt = do
|
||||
getCEvScheduleOptSetR, postCEvScheduleOptSetR :: TermId -> SchoolId -> CourseShorthand -> CryptoUUIDCourseEvent -> Bool -> Handler Html
|
||||
getCEvScheduleOptSetR = postCEvScheduleOptSetR
|
||||
postCEvScheduleOptSetR tid ssh csh ceId opt = do
|
||||
uid <- requireAuthId
|
||||
eId <- decrypt ceId
|
||||
|
||||
@ -21,3 +22,15 @@ postCEvScheduleOptR tid ssh csh ceId opt = do
|
||||
|
||||
addMessageI Success $ bool MsgScheduleOptOutSuccess MsgScheduleOptInSuccess opt
|
||||
redirect $ CourseR tid ssh csh CShowR
|
||||
|
||||
|
||||
getCEvScheduleOptDelR, postCEvScheduleOptDelR :: TermId -> SchoolId -> CourseShorthand -> CryptoUUIDCourseEvent -> Handler Html
|
||||
getCEvScheduleOptDelR = postCEvScheduleOptDelR
|
||||
postCEvScheduleOptDelR tid ssh csh ceId = do
|
||||
uid <- requireAuthId
|
||||
eId <- decrypt ceId
|
||||
|
||||
runDB $ deleteBy (UniqueCourseEventScheduleOpt eId uid)
|
||||
|
||||
addMessageI Success MsgScheduleOptDeleteSuccess
|
||||
redirect $ CourseR tid ssh csh CShowR
|
||||
|
||||
@ -285,9 +285,10 @@ $# $if NTop (Just 0) < NTop (courseCapacity course)
|
||||
$maybe (_, User{userScheduleOccurrenceDisplayDefault}) <- mbAuth
|
||||
<td .table__td>
|
||||
<div .table__td-content>
|
||||
<a .btn .btn-primary href=@{CEventR tid ssh csh cID (CEvScheduleOptR (not (maybe userScheduleOccurrenceDisplayDefault courseEventScheduleOptOpt mEventScheduleOpt)))}>
|
||||
<a .btn .btn-primary href=@{CEventR tid ssh csh cID (CEvScheduleOptSetR (not (maybe userScheduleOccurrenceDisplayDefault courseEventScheduleOptOpt mEventScheduleOpt)))}>
|
||||
_{bool MsgScheduleOptIn MsgScheduleOptOut (maybe userScheduleOccurrenceDisplayDefault courseEventScheduleOptOpt mEventScheduleOpt)}
|
||||
$# TODO: add link to remove schedule opt-*
|
||||
<a .btn .btn-primary href=@{CEventR tid ssh csh cID CEvScheduleOptDelR}>
|
||||
_{MsgScheduleOptDelete}
|
||||
$if mayCreateEvents
|
||||
<td .table__td>
|
||||
<ul .list--inline .list--iconless .list--comma-separated>
|
||||
|
||||
Reference in New Issue
Block a user