diff --git a/src/Model/Types/Exam.hs b/src/Model/Types/Exam.hs index 986aa3871..e0ce8828f 100644 --- a/src/Model/Types/Exam.hs +++ b/src/Model/Types/Exam.hs @@ -128,10 +128,6 @@ instance Semigroup res => Semigroup (ExamResult' res) where instance Monoid res => Monoid (ExamResult' res) where mempty = ExamAttended mempty - ExamAttended r `mappend` ExamAttended r' = ExamAttended $ r `mappend` r' - ExamVoided `mappend` _ = ExamVoided - _ `mappend` ExamVoided = ExamVoided - _ `mappend` _ = ExamNoShow instance Csv.ToField res => Csv.ToField (ExamResult' res) where toField ExamVoided = "voided" @@ -498,6 +494,9 @@ data ExamAidsPreset deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic) deriving anyclass (Universe, Finite, NFData) +nullaryPathPiece' ''ExamAidsPreset $ nameToPathPiece' 1 +pathPieceJSON ''ExamAidsPreset + deriveJSON defaultOptions { constructorTagModifier = camelToPathPiece' 2 , fieldLabelModifier = camelToPathPiece' 2 @@ -505,9 +504,6 @@ deriveJSON defaultOptions } ''ExamAids derivePersistFieldJSON ''ExamAids -nullaryPathPiece' ''ExamAidsPreset $ nameToPathPiece' 1 -pathPieceJSON ''ExamAidsPreset - data ExamOnline = ExamOnlinePreset { examOnlinePreset :: ExamOnlinePreset } | ExamOnlineCustom { examOnlineCustom :: StoredMarkup } @@ -520,6 +516,9 @@ data ExamOnlinePreset deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic) deriving anyclass (Universe, Finite, NFData) +nullaryPathPiece' ''ExamOnlinePreset $ nameToPathPiece' 1 +pathPieceJSON ''ExamOnlinePreset + deriveJSON defaultOptions { constructorTagModifier = camelToPathPiece' 2 , fieldLabelModifier = camelToPathPiece' 2 @@ -527,9 +526,6 @@ deriveJSON defaultOptions } ''ExamOnline derivePersistFieldJSON ''ExamOnline -nullaryPathPiece' ''ExamOnlinePreset $ nameToPathPiece' 1 -pathPieceJSON ''ExamOnlinePreset - data ExamSynchronicity = ExamSynchronicityPreset { examSynchronicityPreset :: ExamSynchronicityPreset } | ExamSynchronicityCustom { examSynchronicityCustom :: StoredMarkup } @@ -542,6 +538,9 @@ data ExamSynchronicityPreset deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic) deriving anyclass (Universe, Finite, NFData) +nullaryPathPiece' ''ExamSynchronicityPreset $ nameToPathPiece' 1 +pathPieceJSON ''ExamSynchronicityPreset + deriveJSON defaultOptions { constructorTagModifier = camelToPathPiece' 2 , fieldLabelModifier = camelToPathPiece' 2 @@ -549,9 +548,6 @@ deriveJSON defaultOptions } ''ExamSynchronicity derivePersistFieldJSON ''ExamSynchronicity -nullaryPathPiece' ''ExamSynchronicityPreset $ nameToPathPiece' 1 -pathPieceJSON ''ExamSynchronicityPreset - data ExamRequiredEquipment = ExamRequiredEquipmentPreset { examRequiredEquipmentPreset :: ExamRequiredEquipmentPreset } | ExamRequiredEquipmentCustom { examRequiredEquipmentCustom :: StoredMarkup } @@ -569,6 +565,9 @@ data ExamRequiredEquipmentPreset deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic) deriving anyclass (Universe, Finite, NFData) +nullaryPathPiece' ''ExamRequiredEquipmentPreset $ nameToPathPiece' 3 +pathPieceJSON ''ExamRequiredEquipmentPreset + deriveJSON defaultOptions { constructorTagModifier = camelToPathPiece' 2 , fieldLabelModifier = camelToPathPiece' 2 @@ -576,9 +575,6 @@ deriveJSON defaultOptions } ''ExamRequiredEquipment derivePersistFieldJSON ''ExamRequiredEquipment -nullaryPathPiece' ''ExamRequiredEquipmentPreset $ nameToPathPiece' 3 -pathPieceJSON ''ExamRequiredEquipmentPreset - data ExamMode = ExamMode { examAids :: Maybe ExamAids