Esqueleto for Term Overview
This commit is contained in:
parent
0cd0425903
commit
772a5ee02c
@ -34,6 +34,8 @@ postHomeR :: Handler Html
|
||||
postHomeR = do
|
||||
((infResult,_), _) <- runFormPost $ postButtonForm "Informatik"
|
||||
((matResult,_), _) <- runFormPost $ postButtonForm "Mathematik"
|
||||
$(logDebug) $ tshow infResult
|
||||
$(logDebug) $ tshow matResult
|
||||
setMessage "ButtonTest"
|
||||
case infResult of
|
||||
(FormSuccess ()) -> setMessage "Informatik anlegen" -- does not work somehow
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE RecordWildCards #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE QuasiQuotes #-}
|
||||
{-# LANGUAGE MultiParamTypeClasses #-}
|
||||
@ -14,44 +15,61 @@ import Handler.Utils
|
||||
import qualified Data.Text as T
|
||||
import Yesod.Form.Bootstrap3
|
||||
|
||||
import Colonnade
|
||||
import Colonnade hiding (bool)
|
||||
import Yesod.Colonnade
|
||||
|
||||
import qualified Database.Esqueleto as E
|
||||
|
||||
getTermShowR :: Handler TypedContent
|
||||
getTermShowR = do
|
||||
terms <- runDB $ selectList [] [Desc TermStart]
|
||||
-- terms <- runDB $ selectList [] [Desc TermStart]
|
||||
------- ÄQUIVALENT:
|
||||
-- term <- runDB $ E.select . E.from $ \(term) -> do
|
||||
-- E.orderBy [E.desc $ term E.^. TermStart ]
|
||||
-- return term
|
||||
--
|
||||
termData <- runDB $ E.select . E.from $ \term -> do
|
||||
E.orderBy [E.desc $ term E.^. TermStart ]
|
||||
let courseCount :: E.SqlExpr (E.Value Int)
|
||||
courseCount = E.sub_select . E.from $ \course -> do
|
||||
E.where_ $ term E.^. TermId E.==. course E.^. CourseTermId
|
||||
return E.countRows
|
||||
return (term, courseCount)
|
||||
selectRep $ do
|
||||
provideRep $ return $ toJSON terms
|
||||
provideRep $ return $ toJSON $ map fst termData
|
||||
provideRep $ do
|
||||
let colonnadeTerms = mconcat
|
||||
[ headed "Kürzel" $ (\t -> let tn = termName t in do
|
||||
adminLink <- handlerToWidget $ isAuthorized (TermEditExistR tn) False
|
||||
[ headed "Kürzel" $ \(Entity _ Term{..},_) -> do
|
||||
-- Scrap this if to slow, create term edit page instead
|
||||
adminLink <- handlerToWidget $ isAuthorized (TermEditExistR termName) False
|
||||
[whamlet|
|
||||
$if adminLink == Authorized
|
||||
<a href=@{TermEditExistR tn}>
|
||||
#{termToText tn}
|
||||
<a href=@{TermEditExistR termName}>
|
||||
#{termToText termName}
|
||||
$else
|
||||
#{termToText tn}
|
||||
|] )
|
||||
, headed "Beginn Vorlesungen" $ fromString.formatTimeGerWD.termLectureStart
|
||||
, headed "Ende Vorlesungen" $ fromString.formatTimeGerWD.termLectureEnd
|
||||
, headed "Aktiv" (\t -> if termActive t then tickmark else "")
|
||||
-- , Colonnade.bool (Headed "Aktiv") termActive (const tickmark) (const "")
|
||||
, headed "Kursliste" $ (\t -> let tn = termName t in do
|
||||
numCourses <- handlerToWidget $ runDB $ count [CourseTermId ==. TermKey tn ]
|
||||
#{termToText termName}
|
||||
|]
|
||||
, headed "Beginn Vorlesungen" $ \(Entity _ Term{..},_) ->
|
||||
fromString $ formatTimeGerWD termLectureStart
|
||||
, headed "Ende Vorlesungen" $ \(Entity _ Term{..},_) ->
|
||||
fromString $ formatTimeGerWD termLectureEnd
|
||||
, headed "Aktiv" $ \(Entity _ Term{..},_) ->
|
||||
bool "" tickmark termActive
|
||||
, headed "Kursliste" $ \(Entity _ Term{..}, E.Value numCourses) ->
|
||||
[whamlet|
|
||||
<a href=@{CourseListTermR tn}>
|
||||
<a href=@{CourseListTermR termName}>
|
||||
#{show numCourses} Kurse
|
||||
|] )
|
||||
, headed "Semesteranfang" $ fromString.formatTimeGerWD.termStart
|
||||
, headed "Semesterende" $ fromString.formatTimeGerWD.termEnd
|
||||
, headed "Feiertage im Semester" $
|
||||
fromString.(intercalate ", ").(map formatTimeGerWD).termHolidays
|
||||
|]
|
||||
, headed "Semesteranfang" $ \(Entity _ Term{..},_) ->
|
||||
fromString $ formatTimeGerWD termStart
|
||||
, headed "Semesterende" $ \(Entity _ Term{..},_) ->
|
||||
fromString $ formatTimeGerWD termEnd
|
||||
, headed "Feiertage im Semester" $ \(Entity _ Term{..},_) ->
|
||||
fromString $ (intercalate ", ") $ map formatTimeGerWD termHolidays
|
||||
]
|
||||
defaultLayout $ do
|
||||
setTitle "Freigeschaltete Semester"
|
||||
encodeHeadedWidgetTable tableDefault colonnadeTerms (map entityVal terms)
|
||||
encodeHeadedWidgetTable tableDefault colonnadeTerms termData
|
||||
|
||||
|
||||
getTermEditR :: Handler Html
|
||||
|
||||
@ -65,9 +65,9 @@
|
||||
|
||||
<li .list-group-item>
|
||||
Institut einmalig in Datenbank einfügen:
|
||||
<form .form-inline method=post action=@{HomeR} enctype=#{crInfEnctype}>
|
||||
<form .form-inline method=post action=@{HomeR} enctype=#{crInfEnctype}>
|
||||
^{crInfWdgt}
|
||||
<form .form-inline method=post action=@{HomeR} enctype=#{crMatEnctype}>
|
||||
<form .form-inline method=post action=@{HomeR} enctype=#{crMatEnctype}>
|
||||
^{crMatWdgt}
|
||||
|
||||
<li .list-group-item>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user