weekdaze-0.0.0.2: A school-timetable problem-solver.

Safe HaskellNone
LanguageHaskell2010

WeekDaze.Data.Group

Contents

Description

AUTHOR
Dr. Alistair Ward
DESCRIPTION
  • Describes groups of students or teachers.
  • Any number of different groups can exist.
  • Students & teachers can belong to any number of groups, & any group can include both students & teachers.
  • This concept exists because of the probable requirement to book staff-meetings interleaved with the booking of normal classes; the requirement for student-groups isn't so clear, though perhaps Muslim student may need to pray at certain times within the normal working day.
  • Practice for a drama or choir, lunch or morning-assembly, might be other examples of group-meetings, because in contrast to a normal lesson, more than one teacher might be required to attend.
Synopsis

Types

Type-synonyms

type Id = String Source #

Names a group to which human-resource may belong.

type Membership = Set Id Source #

The groups to which a human-resource belongs.

Data-types

data Profile timeslotId locationId Source #

Aggregates the attributes of a group.

Instances
(Eq timeslotId, Eq locationId) => Eq (Profile timeslotId locationId) Source # 
Instance details

Defined in WeekDaze.Data.Group

Methods

(==) :: Profile timeslotId locationId -> Profile timeslotId locationId -> Bool #

(/=) :: Profile timeslotId locationId -> Profile timeslotId locationId -> Bool #

(Ord timeslotId, Read timeslotId, Read locationId) => Read (Profile timeslotId locationId) Source # 
Instance details

Defined in WeekDaze.Data.Group

Methods

readsPrec :: Int -> ReadS (Profile timeslotId locationId) #

readList :: ReadS [Profile timeslotId locationId] #

readPrec :: ReadPrec (Profile timeslotId locationId) #

readListPrec :: ReadPrec [Profile timeslotId locationId] #

(Show timeslotId, Show locationId) => Show (Profile timeslotId locationId) Source # 
Instance details

Defined in WeekDaze.Data.Group

Methods

showsPrec :: Int -> Profile timeslotId locationId -> ShowS #

show :: Profile timeslotId locationId -> String #

showList :: [Profile timeslotId locationId] -> ShowS #

(NFData locationId, NFData timeslotId) => NFData (Profile timeslotId locationId) Source # 
Instance details

Defined in WeekDaze.Data.Group

Methods

rnf :: Profile timeslotId locationId -> () #

(XmlPickler locationId, XmlPickler timeslotId, Ord timeslotId) => XmlPickler (Profile timeslotId locationId) Source # 
Instance details

Defined in WeekDaze.Data.Group

Methods

xpickle :: PU (Profile timeslotId locationId) #

SelfValidator (Profile timeslotId locationId) Source # 
Instance details

Defined in WeekDaze.Data.Group

Methods

getErrors :: Profile timeslotId locationId -> [String] #

isValid :: Profile timeslotId locationId -> Bool #

Constants

groupIdTag :: String Source #

Used to qualify CSS, SQL & XML.

memberTag :: String Source #

Used to qualify XML.

mandatesAttendanceTag :: String Source #

Used to qualify SQL & XML.

meetingTimesTag :: String Source #

Used to qualify XML.

Functions

countNTimeslotsPerWeek :: Profile timeslotId locationId -> NTimeslots Source #

  • Counts the number of time-slots per week required for meetings of this group.
  • CAVEAT: this total is independent of the individual member, but if attendance isn't mandated, it should be reduced according to individual availability.

Constructor

mkProfile :: TimeSet timeslotId -> Maybe locationId -> Bool -> Profile timeslotId locationId Source #

Smart constructor.

Predicates