-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration
SCM Helper is driven by the file
scm-helper/config.yaml
in your home directory.
A default file will be created for you.
You MUST edit this file to configure SCM Helper to meet your needs. It should run with no configuration, but will likely report a lot of false errors.
See leander.yaml for a full worked example.
This is used to configure the command line --email option.
email:
smtp_server: smtp.server.address
smtp_port: 25
username:
send_to:
tls: False
password: "email.enc" # This file will be created when needed.
The parameters should be obvious!
See Swim England feature.
This applies to all swimming types: Swimmers, Water Polo and Synchro. Further configuration via the [Types](##Types] configuration.
swimmers:
username:
min_age: 17 # Min age to have a user name
parent:
mandatory: True # Must have a parent
max_age: 17 # Age a parent is mandatory until
confirmation_difference:
verify: False
absence:
time: 182 # Warn if not seen at swimming for this period of time
If confirmation_difference is set to True SCM Helper will look for and difference of more than 3 months in the
configuration confirmation dates fo parents and children. If there is a difference, it will then check to see of basic details like
email, phone and address are the same. If they are, it will not print an error.
If an error is printed it means parent has not confirmed their details, and they are different to the child.
This prevents this situation where we needlessly hassle parents to confirm details, when the child details are up to date and the same.
parents:
age:
min_age: 17 # min age to be a parent
child: 21 # Age at which child should not longer have a parent
login:
mandatory: True # must have a login to SCM
No explanation needed!
This applies to all club members.
members:
confirmation:
expiry: 365 # Warn if confirmation more than this many day old.
align_quarter: True # Align expiry to calender quarter
# So reminders go in batches.
dbs:
expiry: 60 # Days waring prior to expiry.
newstarter:
grace: 90 # Don't give errors for 90 days, giving admin time to sort it all out
inactive:
time: 365 # Warn if member in inactive state for this many days
The align_quarter is used so that we are not constantly getting NOT CONFIRMED issues reported.
Instead, they come in batches each quarter.
coaches:
role:
mandatory: False # All coaches, must be in a coach role
No explanation needed!
This relates to Roles configured in SCM.
roles:
volunteer:
mandatory: True # if user in a role, the volunteer flag must be set
login:
unused: 180 # Error if not used in 180 days
Above should be obvious.
For each roles you want to check you need to add the roles to the configurations. Roles not in the configuration will not be checked.
roles:
role:
"Coaches":
check_permissions: False
is_coach: True # Should have "Is A Coach" ticked.
"Register Taker":
check_restrictions: True # Check they have session restrictions
In the above we have two example roles Coaches and Register Taker configured in SCM.
The parameters are:
-
check_permissionsIn our set up, each coach has SCM restricted sessions configured, so when the coach logs on they can only see the records of the swimmers they coach. With this set to
trueSCM Helper will check all the permissions are set correctly. -
is_coachIf in the
coachesrole, they must have "is a coach" ticked in SCM. -
check_restrictionsLike
check_permissions, but we don't know which sessions should be configured, so the check is less stringent.
groups:
priority:
- 'Water Polo'
- 'Masters'
When printing issues, in some cases SCM Help will print the swimmers group. If a members is in multiple groups, they will be printed in this priority order.
You can configure the checking behaviour on a per group basis.
These should be listed in the group parameter as follows...
groups
group:
'Membership Only':
no_sessions: true
'Senior Development':
sessions:
- 'Senior Development'
type: swimmer
max_sessions: 4
'Masters':
session:
- 'Masters'
no_session_allowed:
- 'Life Members and Past Presidents'
- 'Membership Only'
unique: false
min_age: 17
type: swimmer
max_sessions: 3
login: true
'Life Members and Past Presidents':
ignore_unknown: true # Don't raise issue if not a swimmer, parent or coach.
unique: false
'Team Manager':
check_dbs: true
type: volunteer # Must be of this type
unique: false
'Club Timekeeper':
unique: false
type: volunteer
'Resignations':
ignore_swimmer: true
Where the parameters are:
-
check_dbsMembers of the group should have a DBS and Safeguarding.
-
ignore_swimmerDon't report any errors for this group
-
ignore_unknownIf someone is not a swimmer/coach/parent/volunteer an error is normally printed. Ignore the issue of they are in this group.
-
min_ageandmax_ageThe minimum and maximum age allowed for the group
-
no_session_allowedThis contains a list of other groups. If they are a member of these groups also, don't report session errors.
-
no_sessionsIf
truedon't check session membership -
sessionsThe member should belong to at least one of these sessions. This is not an exact match - the session name must contain this string. For example, the "Masters" group above, would be allowed in the sessions "Masters", "Seniors and Masters" or "Masters Sprint Session".
-
typeMembers of the group, must also have the relevant type set in SCM.
-
typesMembers of the group, must also have the relevant type set in SCM.
-
uniqueIf set to
truethe member should be a member of this group only. -
confirmationThe value is a date. Members of this group must have had a confirmation of details after this date.
-
max_sessionsThe maximum number of sessions a swimmer in the chosen group can have
-
loginSet to true to enforce a login to be assigned to members of the group.
sessions:
absence: 120 # Number of days allowed to miss a session
register: 60 # Alert if register not taken for this many days
covid: code_of_conduct
Where code_of_conduct is the Code of Conduct all swimmers must sign prior to being allowed into a session.
You can configure the checking behaviour on a per session basis.
These should be listed in the session parameter as follows...
sessions:
session:
'Junior Squad':
groups:
- 'Junior Squad'
'Masters':
groups:
- 'Masters'
'Transition':
groups:
- 'Tadpoles'
- 'Development'
- 'Transition'
ignore_attendance: True
'Starts and Turns':
ignore_attendance: True
Where the parameters are:
-
groupsA list of groups a member of the session should be in. They only need to be a member of one. Not all.
-
ignore_attendanceDon't report on attendance issues for this session.
conduct:
"Code of Conduct for Coaches":
types:
- "coach"
"Code of Conduct for Swimmers and Water Polo Players":
types:
- "swimmer"
ignore_group:
- "Tadpoles"
date: yyyy-mm-dd # code must be signed after this date to be "valid"
For each code of conduct, you can configure the type the code should apply to. While this is configured in SCM, and is applied automatically, this seems to go wrong if you change the type of entries. So this will report on missing codes.
The ignore_group parameter is used to exclude that group from the code.
See Lists
You can configure the checking behaviour on a per type basis (swimmers, parent, volunteer, committee, synchro etc)
These should be listed in the types parameter as follows...
types:
synchro:
name: "Synchro"
check_se_number: False
parents: False # Don't check parents, overrides Mandatory above.
waterpolo:
name: "Water Polo"
groups: # Specify if they must be members of a specific group
- "Water Polo"
volunteer:
ignore_coach: True # If coach, do not need to be a volunteer
ignore_committee: True # If committee, do not need to be a volunteer
groups:
- "Team Manager"
- "Club Timekeeper"
- "Licensed Officials"
committee:
jobtitle: True # must have a job title
Where the parameters are:
-
nameIs an alternative name to print.
-
check_se_numberIf
falsethe existence of a Swim England number will not be checked -
parentsIf
falseparent records will not be checked -
groupsMembers of the type should also be members of one of the listed groups.
-
ignore_coachandignore_committeeIf
truethen the volunteer type is not needed for these types -
jobtitleThis type must have a
jobtitlein their entry.
Normally, if a job title is given the member should be a volunteer or committee member. This lists job titles that can be ignored.
jobtitle:
ignore:
- "Vice President" # If VP, dont need to be a committee member.
See Facebook
See Records
See Configuring Issue Reporting
If having problems, we may ask for more information to trace the problem. This is achieved via the debug_level parameter:
debug_level: 0
There the levels are:
- 0: None
- 1 / 2: Program errors
- 3 / 4: Enhance notification of issues
- 5 / 6: Program tracing
- 7 / 8 / 9: Function specific notification