Safe Haskell | None |
---|---|
Language | Haskell2010 |
WeekDaze.Data.HumanResource
Description
AUTHOR
- Dr. Alistair Ward
DESCRIPTION
- Describes an aspect of either a teacher or student.
- These resources have a requirement to devote a portion of their week to teaching, whereas a location doesn't care what it's being used for.
- They can also be members of heterogenous groups of other human-resources.
Synopsis
- class HumanResource h where
- groupMembershipTag :: String
- defaultGroupMembership :: Membership
- calculateNTimeslotsPerWeekAvailable :: Resource resource => NTimeslots -> resource -> NTimeslots
- extractDistinctGroupMembership :: HumanResource humanResource => ResourceMap humanResourceId humanResource -> Membership
- extractGroupMembersOf :: HumanResource humanResource => Id -> ResourceMap humanResourceId humanResource -> ResourceMap humanResourceId humanResource
- extractCombinedGroupMembership :: HumanResource humanResource => ResourceMap humanResourceId humanResource -> Membership
- hasFreePeriodPreference :: HumanResource humanResource => humanResource -> Bool
Type-classes
class HumanResource h where Source #
Describes a resource, which is also a person.
Methods
getNTimeslotsPerWeekOfTeaching Source #
Arguments
:: NTimeslots | The number of time-slots per day. |
-> h | |
-> NTimeslots | The number of those time-slots when the person is available, devoted to teaching or being taught. |
getNTimeslotsPerWeekOfNonTeaching Source #
Arguments
:: NTimeslots | The number of time-slots per day. |
-> h | |
-> NTimeslots | The number of those time-slots when the person is available, devoted to any activity other than teaching; e.g. lunch, meetings, administration, free-study. |
Arguments
:: h | |
-> Membership | The groups to which this human-resource belongs. |
getMaybeFreePeriodPreference Source #
Arguments
:: h | |
-> Maybe FreePeriodPreference | Any preference for the position within each day, of unallocated time-slots. |
Instances
RealFrac teachingRatio => HumanResource (Profile level stream teachingRatio) Source # | |
Defined in WeekDaze.Data.Student Methods getNTimeslotsPerWeekOfTeaching :: NTimeslots -> Profile level stream teachingRatio -> NTimeslots Source # getNTimeslotsPerWeekOfNonTeaching :: NTimeslots -> Profile level stream teachingRatio -> NTimeslots Source # getGroupMembership :: Profile level stream teachingRatio -> Membership Source # getMaybeFreePeriodPreference :: Profile level stream teachingRatio -> Maybe FreePeriodPreference Source # | |
RealFrac teachingRatio => HumanResource (Profile synchronisationId level timeslotId locationId teachingRatio) Source # | |
Defined in WeekDaze.Data.Teacher Methods getNTimeslotsPerWeekOfTeaching :: NTimeslots -> Profile synchronisationId level timeslotId locationId teachingRatio -> NTimeslots Source # getNTimeslotsPerWeekOfNonTeaching :: NTimeslots -> Profile synchronisationId level timeslotId locationId teachingRatio -> NTimeslots Source # getGroupMembership :: Profile synchronisationId level timeslotId locationId teachingRatio -> Membership Source # getMaybeFreePeriodPreference :: Profile synchronisationId level timeslotId locationId teachingRatio -> Maybe FreePeriodPreference Source # |
Constants
groupMembershipTag :: String Source #
Used to qualify XML.
defaultGroupMembership :: Membership Source #
The default value for getGroupMembership
.
Functions
calculateNTimeslotsPerWeekAvailable :: Resource resource => NTimeslots -> resource -> NTimeslots Source #
The number of time-slots in each week, that this resource is regularly scheduled to be available.
extractDistinctGroupMembership :: HumanResource humanResource => ResourceMap humanResourceId humanResource -> Membership Source #
Finds the set of groups, of which at least one human-resource claims membership.
extractGroupMembersOf :: HumanResource humanResource => Id -> ResourceMap humanResourceId humanResource -> ResourceMap humanResourceId humanResource Source #
Identify those human-resources, in the specified resource-map, who belong to the specified group.
extractCombinedGroupMembership :: HumanResource humanResource => ResourceMap humanResourceId humanResource -> Membership Source #
Get the union of all group-memberships.
Predicates
hasFreePeriodPreference :: HumanResource humanResource => humanResource -> Bool Source #
Whether the human-resource has specified a preference for the position, within each day on which they're available, of free time-slots.