Term editing required third route :(
This commit is contained in:
parent
a871725d9c
commit
d9c6380807
3
.gitignore
vendored
3
.gitignore
vendored
@ -21,4 +21,5 @@ cabal.sandbox.config
|
|||||||
uniworx.cabal
|
uniworx.cabal
|
||||||
uniworx.nix
|
uniworx.nix
|
||||||
.gup/
|
.gup/
|
||||||
.dbsettings.yml
|
.dbsettings.yml
|
||||||
|
*.kate-swp
|
||||||
|
|||||||
6
routes
6
routes
@ -10,5 +10,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/assist/newcourse NewCourseR GET POST
|
/assist/newcourse NewCourseR GET POST
|
||||||
/assist/newterm NewTermR GET POST
|
/assist/showterms ShowTermsR GET
|
||||||
/assist/showterm ShowTermR GET
|
/assist/newterm NewTermR GET
|
||||||
|
/assist/editterm EditTermR GET POST
|
||||||
|
/assist/editterm/#TermIdentifier EditTermExistR GET
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
{-# LANGUAGE TemplateHaskell #-}
|
{-# LANGUAGE TemplateHaskell #-}
|
||||||
{-# LANGUAGE MultiParamTypeClasses #-}
|
{-# LANGUAGE MultiParamTypeClasses #-}
|
||||||
{-# LANGUAGE TypeFamilies #-}
|
{-# LANGUAGE TypeFamilies #-}
|
||||||
|
{-# LANGUAGE ViewPatterns #-}
|
||||||
{-# LANGUAGE RecordWildCards #-}
|
{-# LANGUAGE RecordWildCards #-}
|
||||||
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
||||||
module Application
|
module Application
|
||||||
|
|||||||
@ -167,9 +167,11 @@ instance Yesod UniWorX where
|
|||||||
|
|
||||||
isAuthorized ProfileR _ = isAuthenticated
|
isAuthorized ProfileR _ = isAuthenticated
|
||||||
-- TODO: change to Assistants
|
-- TODO: change to Assistants
|
||||||
isAuthorized NewCourseR _ = return Authorized
|
isAuthorized NewCourseR _ = return Authorized
|
||||||
isAuthorized NewTermR _ = return Authorized
|
isAuthorized NewTermR _ = return Authorized
|
||||||
isAuthorized ShowTermR _ = return Authorized
|
isAuthorized EditTermR _ = return Authorized
|
||||||
|
isAuthorized (EditTermExistR _) _ = return Authorized
|
||||||
|
isAuthorized ShowTermsR _ = return Authorized
|
||||||
|
|
||||||
-- This function creates static content files in the static folder
|
-- This function creates static content files in the static folder
|
||||||
-- and names them based on a hash of their content. This allows
|
-- and names them based on a hash of their content. This allows
|
||||||
|
|||||||
@ -121,8 +121,8 @@ postNewCourseR = do
|
|||||||
-}
|
-}
|
||||||
|
|
||||||
|
|
||||||
getShowTermR :: Handler Html
|
getShowTermsR :: Handler Html
|
||||||
getShowTermR = do
|
getShowTermsR = do
|
||||||
terms <- runDB $ selectList [] [Desc TermStart]
|
terms <- runDB $ selectList [] [Desc TermStart]
|
||||||
defaultLayout $ do
|
defaultLayout $ do
|
||||||
setTitle "Freigeschaltete Semester"
|
setTitle "Freigeschaltete Semester"
|
||||||
@ -137,7 +137,7 @@ getShowTermR = do
|
|||||||
<ul>
|
<ul>
|
||||||
$forall Entity _ term <- terms
|
$forall Entity _ term <- terms
|
||||||
<li>
|
<li>
|
||||||
<a href=@{NewTermR}>
|
<a href=@{EditTermExistR $ termName term}>
|
||||||
#{termToText $ termName term}
|
#{termToText $ termName term}
|
||||||
from #{formatTime defaultTimeLocale "%d.%m.%Y" $ termStart term}
|
from #{formatTime defaultTimeLocale "%d.%m.%Y" $ termStart term}
|
||||||
to: #{formatTime defaultTimeLocale "%d.%m.%Y" $ termEnd term}
|
to: #{formatTime defaultTimeLocale "%d.%m.%Y" $ termEnd term}
|
||||||
@ -148,19 +148,28 @@ getShowTermR = do
|
|||||||
getNewTermR :: Handler Html
|
getNewTermR :: Handler Html
|
||||||
getNewTermR = do
|
getNewTermR = do
|
||||||
-- TODO: Defaults für Semester hier ermitteln und übergeben
|
-- TODO: Defaults für Semester hier ermitteln und übergeben
|
||||||
getNewTermDefR Nothing
|
getEditTermMaybeR Nothing
|
||||||
|
|
||||||
|
getEditTermR :: Handler Html
|
||||||
|
getEditTermR = do
|
||||||
|
-- TODO: Defaults für Semester hier ermitteln und übergeben
|
||||||
|
getEditTermMaybeR Nothing
|
||||||
|
|
||||||
|
getEditTermExistR :: TermIdentifier -> Handler Html
|
||||||
|
getEditTermExistR tid = do
|
||||||
|
term <- runDB $ get $ TermKey tid
|
||||||
|
getEditTermMaybeR term
|
||||||
|
|
||||||
|
getEditTermMaybeR :: Maybe Term -> Handler Html
|
||||||
getNewTermDefR :: Maybe Term -> Handler Html
|
getEditTermMaybeR mbTerm= do
|
||||||
getNewTermDefR mbTerm= do
|
|
||||||
aid <- requireAuthId
|
aid <- requireAuthId
|
||||||
(formWidget, formEnctype) <- generateFormPost $ newTermForm mbTerm
|
(formWidget, formEnctype) <- generateFormPost $ newTermForm mbTerm
|
||||||
defaultLayout $ do
|
defaultLayout $ do
|
||||||
setTitle "Neues Semester anlegen"
|
setTitle "Semester editieren/anlegen"
|
||||||
$(widgetFile "newTerm")
|
$(widgetFile "editTerm")
|
||||||
|
|
||||||
postNewTermR :: Handler Html
|
postEditTermR :: Handler Html
|
||||||
postNewTermR = do
|
postEditTermR = do
|
||||||
aid <- requireAuthId
|
aid <- requireAuthId
|
||||||
((result, formWidget), formEnctype) <- runFormPost $ newTermForm Nothing
|
((result, formWidget), formEnctype) <- runFormPost $ newTermForm Nothing
|
||||||
case result of
|
case result of
|
||||||
@ -171,17 +180,17 @@ postNewTermR = do
|
|||||||
let msg = "Semester " `T.append` tid `T.append` " wurde angelegt!"
|
let msg = "Semester " `T.append` tid `T.append` " wurde angelegt!"
|
||||||
-- setMessage $ toHtml msg -- FIXME
|
-- setMessage $ toHtml msg -- FIXME
|
||||||
setMessage "Semester wurde angelegt"
|
setMessage "Semester wurde angelegt"
|
||||||
redirect ShowTermR
|
redirect ShowTermsR
|
||||||
FormMissing -> defaultLayout $ do
|
FormMissing -> defaultLayout $ do
|
||||||
setMessage "Keine Formulardaten erhalten."
|
setMessage "Keine Formulardaten erhalten."
|
||||||
$(widgetFile "newTerm")
|
$(widgetFile "editTerm")
|
||||||
FormFailure errorMsgs -> defaultLayout $ do
|
FormFailure errorMsgs -> defaultLayout $ do
|
||||||
setMessage [shamlet| <span .error>Fehler:
|
setMessage [shamlet| <span .error>Fehler:
|
||||||
<ul>
|
<ul>
|
||||||
$forall errmsg <- errorMsgs
|
$forall errmsg <- errorMsgs
|
||||||
<li> #{errmsg}
|
<li> #{errmsg}
|
||||||
|]
|
|]
|
||||||
$(widgetFile "newTerm")
|
$(widgetFile "editTerm")
|
||||||
|
|
||||||
newTermForm :: Maybe Term -> Form Term
|
newTermForm :: Maybe Term -> Form Term
|
||||||
newTermForm template =
|
newTermForm template =
|
||||||
|
|||||||
@ -3,15 +3,12 @@
|
|||||||
<div .row>
|
<div .row>
|
||||||
<div .col-lg-12>
|
<div .col-lg-12>
|
||||||
<div .page-header>
|
<div .page-header>
|
||||||
<h1 #forms>Neues Semester anlegen:
|
<h1 #forms>Semester editieren/anlegen:
|
||||||
|
|
||||||
<p>
|
|
||||||
Bitte alles ausfüllen!
|
|
||||||
|
|
||||||
<div .row>
|
<div .row>
|
||||||
<div .col-lg-6>
|
<div .col-lg-6>
|
||||||
<div .bs-callout bs-callout-info well>
|
<div .bs-callout bs-callout-info well>
|
||||||
<form .form-horizontal method=post action=@{NewTermR}#forms enctype=#{formEnctype}>
|
<form .form-horizontal method=post action=@{EditTermR}#forms enctype=#{formEnctype}>
|
||||||
^{formWidget}
|
^{formWidget}
|
||||||
|
|
||||||
<button .btn.btn-primary type="submit">
|
<button .btn.btn-primary type="submit">
|
||||||
Reference in New Issue
Block a user