details:
    type: formGroups
    name: Form Groups
    table: gibbonFormGroup
    modes: { update: true, insert: true, export: true }
access:
    module: School Admin
    action: Manage Form Groups
primaryKey:
    gibbonFormGroupID
uniqueKeys:
    - [ gibbonSchoolYearID, name ]
    - [ gibbonSchoolYearID, nameShort ]
table:
    gibbonSchoolYearID: 
        name: "School Year"
        desc: "School year name, as set in School Admin. Must already exist."
        args: { filter: schoolyear,  required: true }
        relationship: { table: gibbonSchoolYear, key: gibbonSchoolYearID, field: name  }
    name: 
        name: "Name"
        desc: "Needs to be unique in school year."
        args: { filter: string, required: true }
    nameShort: 
        name: "Short Name"
        desc: "Needs to be unique in school year."
        args: { filter: string, required: true }
    gibbonPersonIDTutor: 
        name: "Tutor 1"
        desc: "Up to 3 per form group. The first-listed will be marked as \"Main Tutor\"."
        args: { filter: string }
        relationship: { table: gibbonPerson, key: gibbonPersonID, field: username|email  }
    gibbonPersonIDTutor2: 
        name: "Tutor 2"
        desc: ""
        args: { filter: string }
        relationship: { table: gibbonPerson, key: gibbonPersonID, field: username|email  }
    gibbonPersonIDTutor3: 
        name: "Tutor 3"
        desc: ""
        args: { filter: string }
        relationship: { table: gibbonPerson, key: gibbonPersonID, field: username|email  }
    gibbonSpaceID: 
        name: "Location"
        desc: "Name"
        relationship: { table: gibbonSpace, key: gibbonSpaceID, field: name }
    gibbonFormGroupIDNext: 
        name: "Next Form Group"
        desc: "Short Name"
        relationship: { table: gibbonFormGroup, key: gibbonFormGroupID, field: nameShort  }
    attendance:
        name: "Track Attendance?"
        desc: "Should this class allow attendance to be taken?"
        args: { filter: yesno, custom: true }
    website: 
        name: "Website"
        desc: "Include http://"
        args: { filter: url, custom: true }
