Versionbump: Model/Types/Exam.hs instance fix for Semigroup/Monoid; line shuffle for Template Haskell.

This commit is contained in:
Stephan Barth 2024-02-22 04:48:47 +01:00
parent a008e32379
commit 1f26f03319

View File

@ -128,10 +128,6 @@ instance Semigroup res => Semigroup (ExamResult' res) where
instance Monoid res => Monoid (ExamResult' res) where instance Monoid res => Monoid (ExamResult' res) where
mempty = ExamAttended mempty 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 instance Csv.ToField res => Csv.ToField (ExamResult' res) where
toField ExamVoided = "voided" toField ExamVoided = "voided"
@ -498,6 +494,9 @@ data ExamAidsPreset
deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic) deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic)
deriving anyclass (Universe, Finite, NFData) deriving anyclass (Universe, Finite, NFData)
nullaryPathPiece' ''ExamAidsPreset $ nameToPathPiece' 1
pathPieceJSON ''ExamAidsPreset
deriveJSON defaultOptions deriveJSON defaultOptions
{ constructorTagModifier = camelToPathPiece' 2 { constructorTagModifier = camelToPathPiece' 2
, fieldLabelModifier = camelToPathPiece' 2 , fieldLabelModifier = camelToPathPiece' 2
@ -505,9 +504,6 @@ deriveJSON defaultOptions
} ''ExamAids } ''ExamAids
derivePersistFieldJSON ''ExamAids derivePersistFieldJSON ''ExamAids
nullaryPathPiece' ''ExamAidsPreset $ nameToPathPiece' 1
pathPieceJSON ''ExamAidsPreset
data ExamOnline data ExamOnline
= ExamOnlinePreset { examOnlinePreset :: ExamOnlinePreset } = ExamOnlinePreset { examOnlinePreset :: ExamOnlinePreset }
| ExamOnlineCustom { examOnlineCustom :: StoredMarkup } | ExamOnlineCustom { examOnlineCustom :: StoredMarkup }
@ -520,6 +516,9 @@ data ExamOnlinePreset
deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic) deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic)
deriving anyclass (Universe, Finite, NFData) deriving anyclass (Universe, Finite, NFData)
nullaryPathPiece' ''ExamOnlinePreset $ nameToPathPiece' 1
pathPieceJSON ''ExamOnlinePreset
deriveJSON defaultOptions deriveJSON defaultOptions
{ constructorTagModifier = camelToPathPiece' 2 { constructorTagModifier = camelToPathPiece' 2
, fieldLabelModifier = camelToPathPiece' 2 , fieldLabelModifier = camelToPathPiece' 2
@ -527,9 +526,6 @@ deriveJSON defaultOptions
} ''ExamOnline } ''ExamOnline
derivePersistFieldJSON ''ExamOnline derivePersistFieldJSON ''ExamOnline
nullaryPathPiece' ''ExamOnlinePreset $ nameToPathPiece' 1
pathPieceJSON ''ExamOnlinePreset
data ExamSynchronicity data ExamSynchronicity
= ExamSynchronicityPreset { examSynchronicityPreset :: ExamSynchronicityPreset } = ExamSynchronicityPreset { examSynchronicityPreset :: ExamSynchronicityPreset }
| ExamSynchronicityCustom { examSynchronicityCustom :: StoredMarkup } | ExamSynchronicityCustom { examSynchronicityCustom :: StoredMarkup }
@ -542,6 +538,9 @@ data ExamSynchronicityPreset
deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic) deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic)
deriving anyclass (Universe, Finite, NFData) deriving anyclass (Universe, Finite, NFData)
nullaryPathPiece' ''ExamSynchronicityPreset $ nameToPathPiece' 1
pathPieceJSON ''ExamSynchronicityPreset
deriveJSON defaultOptions deriveJSON defaultOptions
{ constructorTagModifier = camelToPathPiece' 2 { constructorTagModifier = camelToPathPiece' 2
, fieldLabelModifier = camelToPathPiece' 2 , fieldLabelModifier = camelToPathPiece' 2
@ -549,9 +548,6 @@ deriveJSON defaultOptions
} ''ExamSynchronicity } ''ExamSynchronicity
derivePersistFieldJSON ''ExamSynchronicity derivePersistFieldJSON ''ExamSynchronicity
nullaryPathPiece' ''ExamSynchronicityPreset $ nameToPathPiece' 1
pathPieceJSON ''ExamSynchronicityPreset
data ExamRequiredEquipment data ExamRequiredEquipment
= ExamRequiredEquipmentPreset { examRequiredEquipmentPreset :: ExamRequiredEquipmentPreset } = ExamRequiredEquipmentPreset { examRequiredEquipmentPreset :: ExamRequiredEquipmentPreset }
| ExamRequiredEquipmentCustom { examRequiredEquipmentCustom :: StoredMarkup } | ExamRequiredEquipmentCustom { examRequiredEquipmentCustom :: StoredMarkup }
@ -569,6 +565,9 @@ data ExamRequiredEquipmentPreset
deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic) deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic)
deriving anyclass (Universe, Finite, NFData) deriving anyclass (Universe, Finite, NFData)
nullaryPathPiece' ''ExamRequiredEquipmentPreset $ nameToPathPiece' 3
pathPieceJSON ''ExamRequiredEquipmentPreset
deriveJSON defaultOptions deriveJSON defaultOptions
{ constructorTagModifier = camelToPathPiece' 2 { constructorTagModifier = camelToPathPiece' 2
, fieldLabelModifier = camelToPathPiece' 2 , fieldLabelModifier = camelToPathPiece' 2
@ -576,9 +575,6 @@ deriveJSON defaultOptions
} ''ExamRequiredEquipment } ''ExamRequiredEquipment
derivePersistFieldJSON ''ExamRequiredEquipment derivePersistFieldJSON ''ExamRequiredEquipment
nullaryPathPiece' ''ExamRequiredEquipmentPreset $ nameToPathPiece' 3
pathPieceJSON ''ExamRequiredEquipmentPreset
data ExamMode = ExamMode data ExamMode = ExamMode
{ examAids :: Maybe ExamAids { examAids :: Maybe ExamAids