diff --git a/messages/uniworx/de.msg b/messages/uniworx/de.msg index 78f999ee3..4326f365c 100644 --- a/messages/uniworx/de.msg +++ b/messages/uniworx/de.msg @@ -69,7 +69,7 @@ CourseSemester: Semester CourseSchool: Institut CourseSchoolShort: Fach CourseSecretTip: Anmeldung zum Kurs erfordert Eingabe des Passworts, sofern gesetzt -CourseRegisterFromTip: Ohne Datum ist keine Anmeldung möglich +CourseRegisterFromTip: Ohne Datum ist keine eigenständige Anmeldung von Studierenden möglich CourseRegisterToTip: Anmeldung darf auch ohne Begrenzung möglich sein CourseDeregisterUntilTip: Abmeldung darf auch ohne Begrenzung möglich sein CourseFilterSearch: Volltext-Suche diff --git a/src/Handler/Corrections.hs b/src/Handler/Corrections.hs index cf3860950..0b1514618 100644 --- a/src/Handler/Corrections.hs +++ b/src/Handler/Corrections.hs @@ -252,7 +252,6 @@ makeCorrectionsTable whereClause dbtColonnade psValidator dbtProj' dbtParams = d E.orderBy [E.asc $ user E.^. UserSurname] E.limit 1 return (user E.^. UserSurname) - ) ] , dbtFilter = Map.fromList diff --git a/src/Handler/Sheet.hs b/src/Handler/Sheet.hs index 090fefcd5..447a8a006 100644 --- a/src/Handler/Sheet.hs +++ b/src/Handler/Sheet.hs @@ -201,7 +201,7 @@ getSheetListR tid ssh csh = do ] psValidator = def - & defaultSorting [SortAscBy "submission-since"] + & defaultSorting [SortDescBy "submission-since"] (table,raw_statistics) <- runDB $ liftA2 (,) (dbTableWidget' psValidator DBTable diff --git a/src/Model/Types.hs b/src/Model/Types.hs index 0e56bc058..48a1c742e 100644 --- a/src/Model/Types.hs +++ b/src/Model/Types.hs @@ -109,7 +109,7 @@ instance FromJSON a => FromJSON (E.Value a) where parseJSON = fmap E.Value . parseJSON - +type Count = Sum Integer type Points = Centi toPoints :: Integral a => a -> Points -- deprecated @@ -130,6 +130,8 @@ data SheetGrading | PassBinary -- non-zero means passed deriving (Eq, Read, Show, Generic) +makeLenses_ ''SheetGrading + deriveJSON defaultOptions { constructorTagModifier = camelToPathPiece , fieldLabelModifier = intercalate "-" . map toLower . dropEnd 1 . splitCamel @@ -143,11 +145,15 @@ gradingPassed (PassPoints {..}) pts = Just $ pts >= passingPoints gradingPassed (PassBinary {}) pts = Just $ pts /= 0 data SheetGradeSummary = SheetGradeSummary - { numSheets :: Sum Int - , numGradePasses :: Sum Int - , sumGradePoints :: Sum Points - , achievedPasses :: Maybe (Sum Int) - , achievedPoints :: Maybe (Sum Points) + { numSheets -- Total number of sheets, includes all + , numGradePasses -- Number of sheets required to pass + , numPointSheets -- Number of sheets having points + , numMarked :: Count -- Number of already marked sheets + , numMarkedPoints:: Count -- Number of already marked sheets + , numMarkedPasses:: Count -- Number of already marked sheets + , sumGradePoints :: Sum Points -- Total of achievable points + , achievedPasses :: Count -- + , achievedPoints :: Sum Points -- } deriving (Generic, Read, Show, Eq) instance Monoid SheetGradeSummary where @@ -160,15 +166,18 @@ instance Semigroup SheetGradeSummary where makeLenses_ ''SheetGradeSummary sheetGradeSum :: SheetGrading -> Maybe Points -> SheetGradeSummary -sheetGradeSum gr (Just p) = - let baseSum = (sheetGradeSum gr Nothing) { achievedPasses = Sum . bool 0 1 <$> gradingPassed gr p } - in case gr of PassBinary -> baseSum - _other -> baseSum { achievedPoints = Just $ Sum $ p } +sheetGradeSum gr (Just p) = sheetGradeSum gr Nothing + { numMarked = 1 + , achievedPasses = fromMaybe mempty $ bool 0 1 <$> gradingPassed gr p + , achievedPoints = bool mempty (Sum p) $ has _maxPoints gr + } sheetGradeSum (Points {..}) Nothing = mempty { numSheets = Sum 1 + , numPointSheets = Sum 1 , sumGradePoints = Sum maxPoints } sheetGradeSum (PassPoints{..}) Nothing = mempty { numSheets = Sum 1 , numGradePasses = Sum 1 + , numPointSheets = Sum 1 , sumGradePoints = Sum maxPoints } sheetGradeSum (PassBinary) Nothing = mempty { numSheets = Sum 1 diff --git a/templates/widgets/gradingSummary.hamlet b/templates/widgets/gradingSummary.hamlet index a1c62237c..8221fc293 100644 --- a/templates/widgets/gradingSummary.hamlet +++ b/templates/widgets/gradingSummary.hamlet @@ -1,4 +1,8 @@ $# Displays gradings Summary for various purposes +$# Expects several variables: +$# hasPassing :: Maybe Int -- Should Passing be displayed? +$# hasPoints :: Maybe Points -- Should Points be displayed? +$# summary :: SheetGradeSummary -- summary to display $# --

_{title $ getSum $ numSheets $ sumSummaries} diff --git a/templates/widgets/gradingSummaryRow.hamlet b/templates/widgets/gradingSummaryRow.hamlet index 01e63efeb..7b37b3176 100644 --- a/templates/widgets/gradingSummaryRow.hamlet +++ b/templates/widgets/gradingSummaryRow.hamlet @@ -1,7 +1,7 @@ $# Displays one row of the grading summary $# Expects several variables: $# hasPassing :: Maybe Int -- Should Passing be displayed? -$# hasPoints :: Maybe Poibts -- Should Points be displayed? +$# hasPoints :: Maybe Points -- Should Points be displayed? $# summary :: SheetGradeSummary -- summary to display $# sumHeader :: UniWorXMessage -- row header $#