diff --git a/lang/DictionaryHu.hs b/lang/DictionaryHu.hs index 8a2c050e..cf1553d3 100644 --- a/lang/DictionaryHu.hs +++ b/lang/DictionaryHu.hs @@ -135,6 +135,11 @@ dict = DictionaryFile { , msg_NewAssessment_EvalTypeWarn <| "Az értékelés típusát nem lehet megváltoztatni, mert már van beírt eredmény." , msg_NewAssessment_Accepted <| "Elfogadott" , msg_NewAssessment_Rejected <| "Elutasított" + , msg_ViewAssessment_Course <| "Tárgy:" + , msg_ViewAssessment_Group <| "Csoport:" + , msg_ViewAssessment_Teacher <| "Oktató:" + , msg_ViewAssessment_Assessment <| "Értékelés:" + , msg_ViewAssessment_Description <| "Leírás:" , msg_GroupRegistration_RegisteredCourses <| "Felvett csoportok" , msg_GroupRegistration_SelectGroup <| "Tárgy és csoport kiválasztása" , msg_GroupRegistration_NoRegisteredCourses <| "Nincsenek felvett tárgyak. Válasszunk egy csoportot!" diff --git a/src/Bead/Controller/Pages.hs b/src/Bead/Controller/Pages.hs index 0621f036..9ce1895a 100644 --- a/src/Bead/Controller/Pages.hs +++ b/src/Bead/Controller/Pages.hs @@ -882,6 +882,7 @@ regularPages = [ , isSubmissionDetails , isGroupRegistration , isGetSubmission + , isViewAssessment , isViewUserScore , isNotifications ] @@ -906,7 +907,6 @@ groupAdminPages = [ , isFillNewGroupAssessmentPreview , isModifyAssessment , isModifyAssessmentPreview - , isViewAssessment , isGetGroupCsv ] diff --git a/src/Bead/Domain/Relationships.hs b/src/Bead/Domain/Relationships.hs index 52f057c1..ef07df24 100644 --- a/src/Bead/Domain/Relationships.hs +++ b/src/Bead/Domain/Relationships.hs @@ -460,6 +460,7 @@ scoreBoardPermissions = ObjectPermissions data AssessmentDesc = AssessmentDesc { adCourse :: String , adGroup :: Maybe String + , adTeacher :: [String] , adAssessmentKey :: AssessmentKey , adAssessment :: Assessment } diff --git a/src/Bead/Persistence/Relations.hs b/src/Bead/Persistence/Relations.hs index 006590a8..9bc59d64 100644 --- a/src/Bead/Persistence/Relations.hs +++ b/src/Bead/Persistence/Relations.hs @@ -641,30 +641,33 @@ scoreDesc sk = do Left ck -> do course <- loadCourse ck teachers <- courseAdmins ck - return (courseName course,Nothing,teachers) + return (courseName course, Nothing, teachers) Right gk -> do group <- loadGroup gk ck <- courseOfGroup gk course <- loadCourse ck teachers <- groupAdmins gk - return (courseName course,Just . groupName $ group,teachers) + return (courseName course, Just . groupName $ group, teachers) teachersName <- mapM ((ud_fullname <$>) . userDescription) teachers return $ ScoreDesc course group teachersName info as assessmentDesc :: AssessmentKey -> Persist AssessmentDesc assessmentDesc ak = do courseOrGroup <- courseOrGroupOfAssessment ak - (course,group) <- case courseOrGroup of + (course,group,teachers) <- case courseOrGroup of Left ck -> do course <- loadCourse ck - return (courseName course,Nothing) + teachers <- courseAdmins ck + return (courseName course, Nothing, teachers) Right gk -> do group <- loadGroup gk ck <- courseOfGroup gk course <- loadCourse ck - return (courseName course,Just . groupName $ group) + teachers <- groupAdmins gk + return (courseName course, Just . groupName $ group, teachers) assessment <- loadAssessment ak - return $ AssessmentDesc course group ak assessment + teachersName <- mapM ((ud_fullname <$>) . userDescription) teachers + return $ AssessmentDesc course group teachersName ak assessment courseOrGroupOfAssessment :: AssessmentKey -> Persist (Either CourseKey GroupKey) courseOrGroupOfAssessment ak = do diff --git a/src/Bead/View/Content/Assessment/Page.hs b/src/Bead/View/Content/Assessment/Page.hs index 37cb1411..adf6cc14 100644 --- a/src/Bead/View/Content/Assessment/Page.hs +++ b/src/Bead/View/Content/Assessment/Page.hs @@ -10,6 +10,7 @@ module Bead.View.Content.Assessment.Page ( ) where import Bead.View.Content +import Bead.View.Content.Bootstrap ((.|.)) import qualified Bead.View.Content.Bootstrap as Bootstrap import Bead.View.Content.ScoreInfo (scoreInfoToIcon) import Bead.View.RequestParams @@ -28,13 +29,13 @@ import qualified Data.ByteString.Char8 as B import qualified Data.ByteString.UTF8 as BsUTF8 (toString) import Data.Function (on) import qualified Data.Map as M -import Data.List (sortBy) +import Data.List (sortBy,intercalate) import Data.String.Utils (strip) import Data.Time (getCurrentTime) import qualified Text.Blaze.Html5 as H import qualified Text.Blaze.Html5.Attributes as A import Text.Blaze.Html5 ((!)) -import Control.Monad (join) +import Control.Monad (join,when) import Control.Monad.Trans (lift) import Control.Monad.IO.Class (liftIO) @@ -424,7 +425,26 @@ readCsv bs = foldr (f . dropSpaces) M.empty (B.lines bs) stripSpaces = B.reverse . dropSpaces . B.reverse . dropSpaces viewAssessmentPage :: GETContentHandler -viewAssessmentPage = error "viewAssessmentPage is undefined" +viewAssessmentPage = do + ak <- getParameter assessmentKeyPrm + aDesc <- userStory $ Story.assessmentDesc ak + return $ viewAssessmentContent aDesc + +viewAssessmentContent :: AssessmentDesc -> IHtml +viewAssessmentContent aDesc = do + msg <- getI18N + return $ do + Bootstrap.rowColMd12 . Bootstrap.table . H.tbody $ do + (msg . msg_ViewAssessment_Course $ "Course:") .|. fromString (adCourse aDesc) + maybe mempty (\g -> (msg . msg_ViewAssessment_Group $ "Group:") .|. fromString g) (adGroup aDesc) + (msg . msg_ViewAssessment_Teacher $ "Teacher:") .|. (fromString . intercalate ", " . sortHun . adTeacher) aDesc + (msg . msg_ViewAssessment_Assessment $ "Assessment:") .|. fromString title + when (not . null $ description) $ + (msg . msg_ViewAssessment_Description $ "Description:") .|. fromString description + where + title, description :: String + (title, description) = let assessment = adAssessment aDesc + in withAssessment assessment (\title description _ _ -> (title, description)) evTypeSelection :: I18N -> EvConfig -> H.Html evTypeSelection msg selected = Bootstrap.selectionWithLabel "evConfig" evalType (== selected) selection diff --git a/src/Bead/View/Translation/Base.hs b/src/Bead/View/Translation/Base.hs index d01f8d11..17fd9150 100644 --- a/src/Bead/View/Translation/Base.hs +++ b/src/Bead/View/Translation/Base.hs @@ -171,6 +171,11 @@ labels = , "msg_NewAssessment_EvalTypeWarn" , "msg_NewAssessment_Accepted" , "msg_NewAssessment_Rejected" + , "msg_ViewAssessment_Course" + , "msg_ViewAssessment_Group" + , "msg_ViewAssessment_Teacher" + , "msg_ViewAssessment_Assessment" + , "msg_ViewAssessment_Description" , "msg_GroupRegistration_RegisteredCourses" , "msg_GroupRegistration_SelectGroup"