chore(course): direct link for add participant to existing tutorial
This commit is contained in:
parent
e9eeaca229
commit
394ce3066c
@ -30,6 +30,7 @@ MenuLogout !ident-ok: Logout
|
|||||||
MenuCourseList: Kurse
|
MenuCourseList: Kurse
|
||||||
MenuCourseMembers: Kursteilnehmer:innen
|
MenuCourseMembers: Kursteilnehmer:innen
|
||||||
MenuCourseAddMembers: Kursteilnehmer:innen hinzufügen
|
MenuCourseAddMembers: Kursteilnehmer:innen hinzufügen
|
||||||
|
MenuTutorialAddMembers: Tutorium Teilnehmer:innen hinzufügen
|
||||||
MenuCourseCommunication: Kursmitteilung (E-Mail)
|
MenuCourseCommunication: Kursmitteilung (E-Mail)
|
||||||
MenuCourseExamOffice: Prüfungsbeauftragte
|
MenuCourseExamOffice: Prüfungsbeauftragte
|
||||||
MenuTermShow: Semester
|
MenuTermShow: Semester
|
||||||
|
|||||||
@ -29,7 +29,8 @@ MenuLogin: Login
|
|||||||
MenuLogout: Logout
|
MenuLogout: Logout
|
||||||
MenuCourseList: Courses
|
MenuCourseList: Courses
|
||||||
MenuCourseMembers: Participants
|
MenuCourseMembers: Participants
|
||||||
MenuCourseAddMembers: Add participants
|
MenuCourseAddMembers: Add course participants
|
||||||
|
MenuTutorialAddMembers: Add tutorium participants
|
||||||
MenuCourseCommunication: Course message (email)
|
MenuCourseCommunication: Course message (email)
|
||||||
MenuCourseExamOffice: Exam offices
|
MenuCourseExamOffice: Exam offices
|
||||||
MenuTermShow: Semesters
|
MenuTermShow: Semesters
|
||||||
|
|||||||
1
routes
1
routes
@ -209,6 +209,7 @@
|
|||||||
/edit TEditR GET POST !tutorANDtutor-control
|
/edit TEditR GET POST !tutorANDtutor-control
|
||||||
/delete TDeleteR GET POST
|
/delete TDeleteR GET POST
|
||||||
/participants TUsersR GET POST !tutor
|
/participants TUsersR GET POST !tutor
|
||||||
|
/participants/add TAddUserR GET POST !tutor
|
||||||
/register TRegisterR POST !timeANDcapacityANDcourse-registeredANDregister-group !timeANDtutorial-registered
|
/register TRegisterR POST !timeANDcapacityANDcourse-registeredANDregister-group !timeANDtutorial-registered
|
||||||
/communication TCommR GET POST !tutor
|
/communication TCommR GET POST !tutor
|
||||||
/tutor-invite TInviteR GET POST !tutorANDtutor-control
|
/tutor-invite TInviteR GET POST !tutorANDtutor-control
|
||||||
|
|||||||
@ -283,11 +283,12 @@ breadcrumb (CourseR tid ssh csh (TutorialR tutn sRoute)) = case sRoute of
|
|||||||
TUsersR -> useRunDB . maybeT (i18nCrumb MsgBreadcrumbTutorial . Just $ CourseR tid ssh csh CTutorialListR) $ do
|
TUsersR -> useRunDB . maybeT (i18nCrumb MsgBreadcrumbTutorial . Just $ CourseR tid ssh csh CTutorialListR) $ do
|
||||||
guardM . lift . hasReadAccessTo $ CTutorialR tid ssh csh tutn TUsersR
|
guardM . lift . hasReadAccessTo $ CTutorialR tid ssh csh tutn TUsersR
|
||||||
return (CI.original tutn, Just $ CourseR tid ssh csh CTutorialListR)
|
return (CI.original tutn, Just $ CourseR tid ssh csh CTutorialListR)
|
||||||
TEditR -> i18nCrumb MsgMenuTutorialEdit . Just $ CTutorialR tid ssh csh tutn TUsersR
|
TAddUserR -> i18nCrumb MsgMenuTutorialAddMembers . Just $ CTutorialR tid ssh csh tutn TUsersR
|
||||||
TDeleteR -> i18nCrumb MsgMenuTutorialDelete . Just $ CTutorialR tid ssh csh tutn TUsersR
|
TEditR -> i18nCrumb MsgMenuTutorialEdit . Just $ CTutorialR tid ssh csh tutn TUsersR
|
||||||
TCommR -> i18nCrumb MsgMenuTutorialComm . Just $ CTutorialR tid ssh csh tutn TUsersR
|
TDeleteR -> i18nCrumb MsgMenuTutorialDelete . Just $ CTutorialR tid ssh csh tutn TUsersR
|
||||||
TRegisterR -> i18nCrumb MsgBreadcrumbTutorialRegister . Just $ CourseR tid ssh csh CShowR
|
TCommR -> i18nCrumb MsgMenuTutorialComm . Just $ CTutorialR tid ssh csh tutn TUsersR
|
||||||
TInviteR -> i18nCrumb MsgBreadcrumbTutorInvite . Just $ CTutorialR tid ssh csh tutn TUsersR
|
TRegisterR -> i18nCrumb MsgBreadcrumbTutorialRegister . Just $ CourseR tid ssh csh CShowR
|
||||||
|
TInviteR -> i18nCrumb MsgBreadcrumbTutorInvite . Just $ CTutorialR tid ssh csh tutn TUsersR
|
||||||
|
|
||||||
breadcrumb (CourseR tid ssh csh (SheetR shn sRoute)) = case sRoute of
|
breadcrumb (CourseR tid ssh csh (SheetR shn sRoute)) = case sRoute of
|
||||||
SShowR -> useRunDB . maybeT (i18nCrumb MsgBreadcrumbSheet . Just $ CourseR tid ssh csh SheetListR) $ do
|
SShowR -> useRunDB . maybeT (i18nCrumb MsgBreadcrumbSheet . Just $ CourseR tid ssh csh SheetListR) $ do
|
||||||
@ -1619,6 +1620,17 @@ pageActions (CTutorialR tid ssh csh tutn TUsersR) = do
|
|||||||
membersSecondary <- pageQuickActions NavQuickViewPageActionSecondary $ CourseR tid ssh csh CUsersR
|
membersSecondary <- pageQuickActions NavQuickViewPageActionSecondary $ CourseR tid ssh csh CUsersR
|
||||||
return
|
return
|
||||||
[ NavPageActionPrimary
|
[ NavPageActionPrimary
|
||||||
|
{ navLink = NavLink
|
||||||
|
{ navLabel = MsgMenuTutorialAddMembers
|
||||||
|
, navRoute = CTutorialR tid ssh csh tutn TAddUserR
|
||||||
|
, navAccess' = NavAccessTrue
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick' = mempty
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
, navChildren = []
|
||||||
|
}
|
||||||
|
, NavPageActionPrimary
|
||||||
{ navLink = NavLink
|
{ navLink = NavLink
|
||||||
{ navLabel = MsgMenuCourseMembers
|
{ navLabel = MsgMenuCourseMembers
|
||||||
, navRoute = CourseR tid ssh csh CUsersR
|
, navRoute = CourseR tid ssh csh CUsersR
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
module Handler.Course.ParticipantInvite
|
module Handler.Course.ParticipantInvite
|
||||||
( getCAddUserR, postCAddUserR
|
( getCAddUserR, postCAddUserR
|
||||||
|
, getTAddUserR, postTAddUserR
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Import
|
import Import
|
||||||
@ -116,9 +117,16 @@ instance Monoid AddParticipantsResult where
|
|||||||
mappend = (<>)
|
mappend = (<>)
|
||||||
|
|
||||||
|
|
||||||
getCAddUserR, postCAddUserR :: TermId -> SchoolId -> CourseShorthand -> Handler Html
|
getCAddUserR, postCAddUserR :: TermId -> SchoolId -> CourseShorthand -> Handler Html
|
||||||
getCAddUserR = postCAddUserR
|
getCAddUserR = postCAddUserR
|
||||||
postCAddUserR tid ssh csh = do
|
postCAddUserR tid ssh csh = do
|
||||||
|
today <- localDay . TZ.utcToLocalTimeTZ appTZ <$> liftIO getCurrentTime
|
||||||
|
postTAddUserR tid ssh csh (CI.mk $ tshow today) -- Don't use user date display setting, so that tutorial default names conform to all users
|
||||||
|
|
||||||
|
|
||||||
|
getTAddUserR, postTAddUserR :: TermId -> SchoolId -> CourseShorthand -> TutorialName -> Handler Html
|
||||||
|
getTAddUserR = postTAddUserR
|
||||||
|
postTAddUserR tid ssh csh tut = do
|
||||||
cid <- runDB . getKeyBy404 $ TermSchoolCourseShort tid ssh csh
|
cid <- runDB . getKeyBy404 $ TermSchoolCourseShort tid ssh csh
|
||||||
currentRoute <- fromMaybe (error "postCAddUserR called from 404-handler") <$> getCurrentRoute
|
currentRoute <- fromMaybe (error "postCAddUserR called from 404-handler") <$> getCurrentRoute
|
||||||
|
|
||||||
@ -141,11 +149,10 @@ postCAddUserR tid ssh csh = do
|
|||||||
| otherwise
|
| otherwise
|
||||||
-> redirect $ CourseR tid ssh csh CUsersR
|
-> redirect $ CourseR tid ssh csh CUsersR
|
||||||
|
|
||||||
((usersToAdd :: FormResult AddUserRequest, formWgt), formEncoding) <- runFormPost . renderWForm FormStandard $ do
|
((usersToAdd :: FormResult AddUserRequest, formWgt), formEncoding) <- runFormPost . renderWForm FormStandard $ do
|
||||||
today <- localDay . TZ.utcToLocalTimeTZ appTZ <$> liftIO getCurrentTime
|
|
||||||
auReqUsers <- wreq (textField & cfAnySeparatedSet) (fslI MsgCourseParticipantsRegisterUsersField & setTooltip MsgCourseParticipantsRegisterUsersFieldTip) mempty
|
auReqUsers <- wreq (textField & cfAnySeparatedSet) (fslI MsgCourseParticipantsRegisterUsersField & setTooltip MsgCourseParticipantsRegisterUsersFieldTip) mempty
|
||||||
auReqTutorial <- optionalActionW
|
auReqTutorial <- optionalActionW
|
||||||
( areq (textField & cfCI) (fslI MsgCourseParticipantsRegisterTutorialField & setTooltip MsgCourseParticipantsRegisterTutorialFieldTip) (Just . CI.mk $ tshow today) ) -- TODO: use user date display setting
|
( areq (textField & cfCI) (fslI MsgCourseParticipantsRegisterTutorialField & setTooltip MsgCourseParticipantsRegisterTutorialFieldTip) (Just tut) )
|
||||||
( fslI MsgCourseParticipantsRegisterTutorialOption )
|
( fslI MsgCourseParticipantsRegisterTutorialOption )
|
||||||
( Just True )
|
( Just True )
|
||||||
return $ AddUserRequest <$> auReqUsers <*> auReqTutorial
|
return $ AddUserRequest <$> auReqUsers <*> auReqTutorial
|
||||||
|
|||||||
Reference in New Issue
Block a user