placementt-core 1.400.996 → 1.400.998
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/callables/registry.d.ts +8 -8
- package/lib/callables/surveys.d.ts +6 -6
- package/lib/callables/surveys.js +7 -7
- package/lib/callables/surveys.js.map +1 -1
- package/lib/surveys/schedule.d.ts +11 -7
- package/lib/surveys/schedule.js +9 -5
- package/lib/surveys/schedule.js.map +1 -1
- package/lib/surveys/schedule.test.js +1 -1
- package/lib/surveys/schedule.test.js.map +1 -1
- package/lib/surveys/types.d.ts +28 -25
- package/lib/surveys/types.js +12 -12
- package/lib/surveys/types.js.map +1 -1
- package/lib/typeDefinitions.d.ts +4 -4
- package/package.json +1 -1
- package/src/callables/surveys.ts +8 -8
- package/src/surveys/schedule.test.ts +1 -1
- package/src/surveys/schedule.ts +13 -9
- package/src/surveys/types.ts +28 -25
- package/src/typeDefinitions.ts +4 -4
|
@@ -303,27 +303,27 @@ export declare const allCallables: {
|
|
|
303
303
|
deleted: number;
|
|
304
304
|
}>;
|
|
305
305
|
};
|
|
306
|
-
"surveys-
|
|
306
|
+
"surveys-saveSurveyGroupSetup": {
|
|
307
307
|
request: z.ZodObject<{
|
|
308
308
|
oId: z.ZodString;
|
|
309
309
|
scope: z.ZodEnum<[string, ...string[]]>;
|
|
310
|
-
|
|
310
|
+
group: z.ZodString;
|
|
311
311
|
studentSelection: z.ZodOptional<z.ZodString>;
|
|
312
312
|
selectionSummary: z.ZodOptional<z.ZodString>;
|
|
313
313
|
emailTemplateId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
314
314
|
applyToExisting: z.ZodOptional<z.ZodBoolean>;
|
|
315
315
|
}, "strip", z.ZodTypeAny, {
|
|
316
|
+
group: string;
|
|
316
317
|
oId: string;
|
|
317
318
|
scope: string;
|
|
318
|
-
cohort: string;
|
|
319
319
|
emailTemplateId?: string | null | undefined;
|
|
320
320
|
studentSelection?: string | undefined;
|
|
321
321
|
selectionSummary?: string | undefined;
|
|
322
322
|
applyToExisting?: boolean | undefined;
|
|
323
323
|
}, {
|
|
324
|
+
group: string;
|
|
324
325
|
oId: string;
|
|
325
326
|
scope: string;
|
|
326
|
-
cohort: string;
|
|
327
327
|
emailTemplateId?: string | null | undefined;
|
|
328
328
|
studentSelection?: string | undefined;
|
|
329
329
|
selectionSummary?: string | undefined;
|
|
@@ -967,27 +967,27 @@ export declare const callableGroups: {
|
|
|
967
967
|
deleted: number;
|
|
968
968
|
}>;
|
|
969
969
|
};
|
|
970
|
-
"surveys-
|
|
970
|
+
"surveys-saveSurveyGroupSetup": {
|
|
971
971
|
request: z.ZodObject<{
|
|
972
972
|
oId: z.ZodString;
|
|
973
973
|
scope: z.ZodEnum<[string, ...string[]]>;
|
|
974
|
-
|
|
974
|
+
group: z.ZodString;
|
|
975
975
|
studentSelection: z.ZodOptional<z.ZodString>;
|
|
976
976
|
selectionSummary: z.ZodOptional<z.ZodString>;
|
|
977
977
|
emailTemplateId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
978
978
|
applyToExisting: z.ZodOptional<z.ZodBoolean>;
|
|
979
979
|
}, "strip", z.ZodTypeAny, {
|
|
980
|
+
group: string;
|
|
980
981
|
oId: string;
|
|
981
982
|
scope: string;
|
|
982
|
-
cohort: string;
|
|
983
983
|
emailTemplateId?: string | null | undefined;
|
|
984
984
|
studentSelection?: string | undefined;
|
|
985
985
|
selectionSummary?: string | undefined;
|
|
986
986
|
applyToExisting?: boolean | undefined;
|
|
987
987
|
}, {
|
|
988
|
+
group: string;
|
|
988
989
|
oId: string;
|
|
989
990
|
scope: string;
|
|
990
|
-
cohort: string;
|
|
991
991
|
emailTemplateId?: string | null | undefined;
|
|
992
992
|
studentSelection?: string | undefined;
|
|
993
993
|
selectionSummary?: string | undefined;
|
|
@@ -8,7 +8,7 @@ export declare const surveyCallables: {
|
|
|
8
8
|
yearGroups: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
9
9
|
scheduledSendDate: z.ZodString;
|
|
10
10
|
/** Overrides the year derived from the send date — the leaver thread's
|
|
11
|
-
* Christmas leg sends in the year after the
|
|
11
|
+
* Christmas leg sends in the year after the group's own. */
|
|
12
12
|
academicYear: z.ZodOptional<z.ZodString>;
|
|
13
13
|
closeAfterDays: z.ZodOptional<z.ZodNumber>;
|
|
14
14
|
emailTemplateId: z.ZodOptional<z.ZodString>;
|
|
@@ -302,32 +302,32 @@ export declare const surveyCallables: {
|
|
|
302
302
|
deleted: number;
|
|
303
303
|
}>;
|
|
304
304
|
};
|
|
305
|
-
"surveys-
|
|
305
|
+
"surveys-saveSurveyGroupSetup": {
|
|
306
306
|
request: z.ZodObject<{
|
|
307
307
|
oId: z.ZodString;
|
|
308
308
|
scope: z.ZodEnum<[string, ...string[]]>;
|
|
309
309
|
/** Year group ("9") or skills group id ("all", "yg9", a mapping id). */
|
|
310
|
-
|
|
310
|
+
group: z.ZodString;
|
|
311
311
|
/** JSON-serialised DataViewerSelectionBackend. */
|
|
312
312
|
studentSelection: z.ZodOptional<z.ZodString>;
|
|
313
313
|
selectionSummary: z.ZodOptional<z.ZodString>;
|
|
314
|
-
/** null clears the
|
|
314
|
+
/** null clears the group's template and falls back to the default copy. */
|
|
315
315
|
emailTemplateId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
316
316
|
/** false → store the answer for future years only, leaving the cycles
|
|
317
317
|
* already provisioned alone. Defaults to true. */
|
|
318
318
|
applyToExisting: z.ZodOptional<z.ZodBoolean>;
|
|
319
319
|
}, "strip", z.ZodTypeAny, {
|
|
320
|
+
group: string;
|
|
320
321
|
oId: string;
|
|
321
322
|
scope: string;
|
|
322
|
-
cohort: string;
|
|
323
323
|
emailTemplateId?: string | null | undefined;
|
|
324
324
|
studentSelection?: string | undefined;
|
|
325
325
|
selectionSummary?: string | undefined;
|
|
326
326
|
applyToExisting?: boolean | undefined;
|
|
327
327
|
}, {
|
|
328
|
+
group: string;
|
|
328
329
|
oId: string;
|
|
329
330
|
scope: string;
|
|
330
|
-
cohort: string;
|
|
331
331
|
emailTemplateId?: string | null | undefined;
|
|
332
332
|
studentSelection?: string | undefined;
|
|
333
333
|
selectionSummary?: string | undefined;
|
package/lib/callables/surveys.js
CHANGED
|
@@ -12,7 +12,7 @@ const types_1 = require("../surveys/types");
|
|
|
12
12
|
* hook that drives every staff survey page (`useSurveyAdmin`) calls all of them.
|
|
13
13
|
*/
|
|
14
14
|
const surveyKind = zod_1.z.enum(types_1.SURVEY_KINDS_LIST);
|
|
15
|
-
const
|
|
15
|
+
const groupScope = zod_1.z.enum(types_1.SURVEY_GROUP_SCOPES);
|
|
16
16
|
const raters = zod_1.z.object({
|
|
17
17
|
students: zod_1.z.boolean().optional(),
|
|
18
18
|
parents: zod_1.z.boolean().optional(),
|
|
@@ -27,7 +27,7 @@ exports.surveyCallables = {
|
|
|
27
27
|
yearGroups: zod_1.z.array(zod_1.z.string()).optional(),
|
|
28
28
|
scheduledSendDate: zod_1.z.string(), // ISO
|
|
29
29
|
/** Overrides the year derived from the send date — the leaver thread's
|
|
30
|
-
* Christmas leg sends in the year after the
|
|
30
|
+
* Christmas leg sends in the year after the group's own. */
|
|
31
31
|
academicYear: zod_1.z.string().optional(),
|
|
32
32
|
closeAfterDays: zod_1.z.number().optional(),
|
|
33
33
|
emailTemplateId: zod_1.z.string().optional(),
|
|
@@ -115,16 +115,16 @@ exports.surveyCallables = {
|
|
|
115
115
|
request: zod_1.z.object({ cycleId: zod_1.z.string(), jobId: zod_1.z.string().optional() }),
|
|
116
116
|
response: zod_1.z.object({ deleted: zod_1.z.number() }),
|
|
117
117
|
},
|
|
118
|
-
"surveys-
|
|
118
|
+
"surveys-saveSurveyGroupSetup": {
|
|
119
119
|
request: zod_1.z.object({
|
|
120
120
|
oId: zod_1.z.string(),
|
|
121
|
-
scope:
|
|
121
|
+
scope: groupScope,
|
|
122
122
|
/** Year group ("9") or skills group id ("all", "yg9", a mapping id). */
|
|
123
|
-
|
|
123
|
+
group: zod_1.z.string(),
|
|
124
124
|
/** JSON-serialised DataViewerSelectionBackend. */
|
|
125
125
|
studentSelection: zod_1.z.string().optional(),
|
|
126
126
|
selectionSummary: zod_1.z.string().optional(),
|
|
127
|
-
/** null clears the
|
|
127
|
+
/** null clears the group's template and falls back to the default copy. */
|
|
128
128
|
emailTemplateId: zod_1.z.string().nullable().optional(),
|
|
129
129
|
/** false → store the answer for future years only, leaving the cycles
|
|
130
130
|
* already provisioned alone. Defaults to true. */
|
|
@@ -141,7 +141,7 @@ exports.surveyCallables = {
|
|
|
141
141
|
request: zod_1.z.object({
|
|
142
142
|
oId: zod_1.z.string(),
|
|
143
143
|
/** Omit for every programme the institute runs. */
|
|
144
|
-
scope:
|
|
144
|
+
scope: groupScope.optional(),
|
|
145
145
|
/** Provision the upcoming academic year rather than the current one. */
|
|
146
146
|
nextYear: zod_1.z.boolean().optional(),
|
|
147
147
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surveys.js","sourceRoot":"","sources":["../../src/callables/surveys.ts"],"names":[],"mappings":";;;AAAA,6BAAsB;AAEtB,
|
|
1
|
+
{"version":3,"file":"surveys.js","sourceRoot":"","sources":["../../src/callables/surveys.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
* A rule is year-agnostic; it resolves into a concrete date for a given academic
|
|
10
10
|
* year (each September) via surveyRuleToMMDD / surveyRuleToDate.
|
|
11
11
|
*
|
|
12
|
+
* It also answers WHICH academic year to resolve against — programmeStartYear, at the
|
|
13
|
+
* foot of this file. Provisioning and the staff year tabs both ask it, so they cannot
|
|
14
|
+
* disagree about the year a school is on.
|
|
15
|
+
*
|
|
12
16
|
* ── One academic-year boundary: 1 September ───────────────────────────────────
|
|
13
17
|
* Everything here derives the academic year the same way — currentAcademicStartYear,
|
|
14
18
|
* and academicYearOf which labels it. September to August is one academic year.
|
|
@@ -25,7 +29,7 @@
|
|
|
25
29
|
* callers move onto the engine, so new writes agree with migrated ones.
|
|
26
30
|
*/
|
|
27
31
|
import type { DestinationsConfig, InstituteData, SurveyDateRule, SurveyOrdinal, SurveyWeekday } from "../typeDefinitions";
|
|
28
|
-
import type {
|
|
32
|
+
import type { SurveyGroupScope, SurveyKind, SurveySlot } from "./types";
|
|
29
33
|
/** "MM-DD" for a date, in local time — the format survey slots are stored in. */
|
|
30
34
|
export declare const toMMDD: (date?: Date) => string;
|
|
31
35
|
/**
|
|
@@ -130,11 +134,11 @@ export type SurveyProgrammeConfig = Pick<InstituteData, "destinationsConfig" | "
|
|
|
130
134
|
* "finished", and callers treat it as "nothing to say".
|
|
131
135
|
*
|
|
132
136
|
* @param {SurveyProgrammeConfig} institute the school's setup.
|
|
133
|
-
* @param {
|
|
137
|
+
* @param {SurveyGroupScope} scope which programme.
|
|
134
138
|
* @param {number} academicStartYear the year the academic year starts in.
|
|
135
139
|
* @return {string[]} ISO send datetimes, earliest first.
|
|
136
140
|
*/
|
|
137
|
-
export declare const programmeSendDatesForYear: (institute: SurveyProgrammeConfig, scope:
|
|
141
|
+
export declare const programmeSendDatesForYear: (institute: SurveyProgrammeConfig, scope: SurveyGroupScope, academicStartYear: number) => string[];
|
|
138
142
|
/**
|
|
139
143
|
* The academic year a programme should be laid out for, as its start year: the current
|
|
140
144
|
* one while any of its sends is still to come, the next one once they have all gone by.
|
|
@@ -143,18 +147,18 @@ export declare const programmeSendDatesForYear: (institute: SurveyProgrammeConfi
|
|
|
143
147
|
* roll forward to, and the current year is still the one staff are working in.
|
|
144
148
|
*
|
|
145
149
|
* @param {SurveyProgrammeConfig} institute the school's setup.
|
|
146
|
-
* @param {
|
|
150
|
+
* @param {SurveyGroupScope} scope which programme.
|
|
147
151
|
* @param {Date} [now] the moment to judge "still to come" against.
|
|
148
152
|
* @return {number} the year the academic year to provision starts in.
|
|
149
153
|
*/
|
|
150
|
-
export declare const programmeStartYear: (institute: SurveyProgrammeConfig, scope:
|
|
154
|
+
export declare const programmeStartYear: (institute: SurveyProgrammeConfig, scope: SurveyGroupScope, now?: Date) => number;
|
|
151
155
|
/**
|
|
152
156
|
* The academic-year LABEL a programme is on, hyphen form — what the staff year tabs
|
|
153
157
|
* key on. See programmeStartYear.
|
|
154
158
|
*
|
|
155
159
|
* @param {SurveyProgrammeConfig} institute the school's setup.
|
|
156
|
-
* @param {
|
|
160
|
+
* @param {SurveyGroupScope} scope which programme.
|
|
157
161
|
* @param {Date} [now] the moment to judge "still to come" against.
|
|
158
162
|
* @return {string} e.g. "2026-27".
|
|
159
163
|
*/
|
|
160
|
-
export declare const programmeAcademicYear: (institute: SurveyProgrammeConfig, scope:
|
|
164
|
+
export declare const programmeAcademicYear: (institute: SurveyProgrammeConfig, scope: SurveyGroupScope, now?: Date) => string;
|
package/lib/surveys/schedule.js
CHANGED
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
* A rule is year-agnostic; it resolves into a concrete date for a given academic
|
|
11
11
|
* year (each September) via surveyRuleToMMDD / surveyRuleToDate.
|
|
12
12
|
*
|
|
13
|
+
* It also answers WHICH academic year to resolve against — programmeStartYear, at the
|
|
14
|
+
* foot of this file. Provisioning and the staff year tabs both ask it, so they cannot
|
|
15
|
+
* disagree about the year a school is on.
|
|
16
|
+
*
|
|
13
17
|
* ── One academic-year boundary: 1 September ───────────────────────────────────
|
|
14
18
|
* Everything here derives the academic year the same way — currentAcademicStartYear,
|
|
15
19
|
* and academicYearOf which labels it. September to August is one academic year.
|
|
@@ -169,11 +173,11 @@ const resolveLeaverLegsForYearGroup = (cfg, yearGroup, academicStartYear) => {
|
|
|
169
173
|
{ kind: "leaverChristmas", mmdd: christmasCfg?.sendMMDD ?? "", rule: christmasCfg?.rule, enabled: Boolean(christmasCfg?.enabled) },
|
|
170
174
|
];
|
|
171
175
|
return legs.flatMap((leg) => {
|
|
172
|
-
// A 2026/27
|
|
176
|
+
// A 2026/27 group sits its exams in June 2027 and gets its results that August,
|
|
173
177
|
// but its Christmas check-in is December 2027 — the winter AFTER it leaves, which
|
|
174
178
|
// falls in the next academic year. Resolving it against this academic year would
|
|
175
179
|
// date it December 2026, six months BEFORE the intentions form. The cycle still
|
|
176
|
-
// carries the
|
|
180
|
+
// carries the group's academic year, so the three legs stay one journey.
|
|
177
181
|
const startYear = leg.kind === "leaverChristmas" ? academicStartYear + 1 : academicStartYear;
|
|
178
182
|
// A rule is resolved against the leg's own year, so "third Thursday of August"
|
|
179
183
|
// lands on the right Thursday every year. The stored MM-DD is the fallback for
|
|
@@ -194,7 +198,7 @@ exports.resolveLeaverLegsForYearGroup = resolveLeaverLegsForYearGroup;
|
|
|
194
198
|
* "finished", and callers treat it as "nothing to say".
|
|
195
199
|
*
|
|
196
200
|
* @param {SurveyProgrammeConfig} institute the school's setup.
|
|
197
|
-
* @param {
|
|
201
|
+
* @param {SurveyGroupScope} scope which programme.
|
|
198
202
|
* @param {number} academicStartYear the year the academic year starts in.
|
|
199
203
|
* @return {string[]} ISO send datetimes, earliest first.
|
|
200
204
|
*/
|
|
@@ -239,7 +243,7 @@ exports.programmeSendDatesForYear = programmeSendDatesForYear;
|
|
|
239
243
|
* roll forward to, and the current year is still the one staff are working in.
|
|
240
244
|
*
|
|
241
245
|
* @param {SurveyProgrammeConfig} institute the school's setup.
|
|
242
|
-
* @param {
|
|
246
|
+
* @param {SurveyGroupScope} scope which programme.
|
|
243
247
|
* @param {Date} [now] the moment to judge "still to come" against.
|
|
244
248
|
* @return {number} the year the academic year to provision starts in.
|
|
245
249
|
*/
|
|
@@ -256,7 +260,7 @@ exports.programmeStartYear = programmeStartYear;
|
|
|
256
260
|
* key on. See programmeStartYear.
|
|
257
261
|
*
|
|
258
262
|
* @param {SurveyProgrammeConfig} institute the school's setup.
|
|
259
|
-
* @param {
|
|
263
|
+
* @param {SurveyGroupScope} scope which programme.
|
|
260
264
|
* @param {Date} [now] the moment to judge "still to come" against.
|
|
261
265
|
* @return {string} e.g. "2026-27".
|
|
262
266
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/surveys/schedule.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/surveys/schedule.ts"],"names":[],"mappings":"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"}
|
|
@@ -134,7 +134,7 @@ describe("resolveLeaverLegsForYearGroup", () => {
|
|
|
134
134
|
resultsDay: { enabled: true, sendMMDD: "08-29" },
|
|
135
135
|
christmas: { enabled: true, sendMMDD: "12-08" },
|
|
136
136
|
};
|
|
137
|
-
it("dates the Christmas leg in the year AFTER the
|
|
137
|
+
it("dates the Christmas leg in the year AFTER the group leaves", () => {
|
|
138
138
|
expect((0, schedule_1.resolveLeaverLegsForYearGroup)(leavers, "13", 2026).map((l) => l.sendISO.slice(0, 10)))
|
|
139
139
|
.toEqual(["2027-06-15", "2027-08-29", "2027-12-08"]);
|
|
140
140
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.test.js","sourceRoot":"","sources":["../../src/surveys/schedule.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schedule.test.js","sourceRoot":"","sources":["../../src/surveys/schedule.test.ts"],"names":[],"mappings":"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"}
|
package/lib/surveys/types.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* the data model.
|
|
9
9
|
*
|
|
10
10
|
* Firestore:
|
|
11
|
-
* surveyCycles/{cycleId} — one scheduled SEND to one
|
|
11
|
+
* surveyCycles/{cycleId} — one scheduled SEND to one group
|
|
12
12
|
* surveyRequests/{requestId} — one PERSON inside one cycle
|
|
13
13
|
*
|
|
14
14
|
* These supersede aspirationCycles/aspirationRequests, leaverGroups/leaverRequests,
|
|
@@ -61,7 +61,7 @@ export type SurveyRequestStatus = "pending" | "sent" | "completed" | "bounced";
|
|
|
61
61
|
/** Who submitted a response, as passed to submitSurveyResponse. */
|
|
62
62
|
export type SurveySubmittedBy = "student" | "parent" | "employer" | "staff" | "trustedContact";
|
|
63
63
|
/**
|
|
64
|
-
* One send to one
|
|
64
|
+
* One send to one group — AspirationCycle generalised across kinds.
|
|
65
65
|
*
|
|
66
66
|
* Legacy status mapping: LeaverGroup.stage "created"/"review" → "draft",
|
|
67
67
|
* "scheduled" → "scheduled", "sent" → "active", "archived" → "closed";
|
|
@@ -81,7 +81,7 @@ export type SurveyCycle = {
|
|
|
81
81
|
yearGroup?: string;
|
|
82
82
|
/** SkillsMapping.id ("all" for the All students group) — skills cycles only. */
|
|
83
83
|
groupId?: string;
|
|
84
|
-
/** Chains the cycles of one journey: the three leaver kinds for a
|
|
84
|
+
/** Chains the cycles of one journey: the three leaver kinds for a group share
|
|
85
85
|
* one threadKey (the pre-migration leaverGroups id). Also the supersession key. */
|
|
86
86
|
threadKey?: string;
|
|
87
87
|
status: SurveyCycleStatus;
|
|
@@ -122,7 +122,7 @@ export type SurveyCycle = {
|
|
|
122
122
|
* and `students` on SkillAssessmentRequest / LeaverGroup. */
|
|
123
123
|
studentSelection?: string;
|
|
124
124
|
/** True on auto-provisioned cycles — requests are fanned out from studentSelection
|
|
125
|
-
* when emails fire, not at creation, so the
|
|
125
|
+
* when emails fire, not at creation, so the group tracks the live roster. */
|
|
126
126
|
resolveRecipientsAtSend?: boolean;
|
|
127
127
|
/** Created by surveyCron from institute config rather than by staff. */
|
|
128
128
|
autoProvisioned?: boolean;
|
|
@@ -204,20 +204,20 @@ export type SurveyRequest = {
|
|
|
204
204
|
parentTokenExpiry?: string;
|
|
205
205
|
};
|
|
206
206
|
/**
|
|
207
|
-
* The two questions a school can only answer once per
|
|
207
|
+
* The two questions a school can only answer once per group — who is in it, and
|
|
208
208
|
* which email its invitations use.
|
|
209
209
|
*
|
|
210
210
|
* A survey's SCHEDULE holds for every year to come, so setup asks for it once. Its
|
|
211
|
-
*
|
|
211
|
+
* GROUP does not: no school's student records agree on how a year group is written,
|
|
212
212
|
* so provisioning cannot resolve "Year 9" on its own, and until someone says who
|
|
213
213
|
* Year 9 is, that year group's surveys have nobody to send to. Rather than ask again
|
|
214
214
|
* every time a survey is provisioned, the answer is stored here and every later
|
|
215
|
-
* survey for that
|
|
215
|
+
* survey for that group inherits it — including next year's, whose group is the
|
|
216
216
|
* same query against a new set of students.
|
|
217
217
|
*
|
|
218
|
-
* Stored on institutes/{oId}.
|
|
218
|
+
* Stored on institutes/{oId}.surveyGroups, keyed by surveyGroupKey().
|
|
219
219
|
*/
|
|
220
|
-
export type
|
|
220
|
+
export type SurveyGroupSetup = {
|
|
221
221
|
/** JSON-serialised DataViewerSelectionBackend — a FILTER, not a frozen list, so
|
|
222
222
|
* it re-resolves against whoever is in the year group at each send. */
|
|
223
223
|
studentSelection?: string;
|
|
@@ -226,30 +226,33 @@ export type SurveyCohortSetup = {
|
|
|
226
226
|
selectionSummary?: string;
|
|
227
227
|
/** How many students it resolved to when it was saved. Indicative only. */
|
|
228
228
|
resolvedCount?: number;
|
|
229
|
-
/** emailTemplates doc id used for this
|
|
229
|
+
/** emailTemplates doc id used for this group's invitations. Absent = the
|
|
230
230
|
* platform's default copy for the kind. */
|
|
231
231
|
emailTemplateId?: string;
|
|
232
232
|
savedAt?: string;
|
|
233
|
-
/** uid of the staff member who answered
|
|
233
|
+
/** uid of the staff member who answered, or "system" when provisioning stored the
|
|
234
|
+
* group's own filter — the year group, or a skills group's rules — as the answer.
|
|
235
|
+
* A derived answer follows its filter if the school later changes it; one a person
|
|
236
|
+
* gave is never overwritten. */
|
|
234
237
|
savedBy?: string;
|
|
235
238
|
};
|
|
236
239
|
/**
|
|
237
|
-
* A
|
|
240
|
+
* A group's scope. Kinds that share a group share a scope, so answering once for
|
|
238
241
|
* Year 11 leavers covers all three legs of their journey.
|
|
239
242
|
*/
|
|
240
|
-
export type
|
|
243
|
+
export type SurveyGroupScope = "aspirations" | "leavers" | "skills";
|
|
241
244
|
/** Every scope as a runtime array — for validation. */
|
|
242
|
-
export declare const
|
|
245
|
+
export declare const SURVEY_GROUP_SCOPES: SurveyGroupScope[];
|
|
243
246
|
/**
|
|
244
|
-
* The key one
|
|
247
|
+
* The key one group's setup is stored under: the scope plus the group within it —
|
|
245
248
|
* a year group for aspirations and leavers ("aspirations_y9"), a skills group id for
|
|
246
249
|
* skills ("skills_all", "skills_yg9", "skills_<mappingId>").
|
|
247
250
|
*
|
|
248
|
-
* @param {
|
|
249
|
-
* @param {string}
|
|
251
|
+
* @param {SurveyGroupScope} scope which programme the group belongs to.
|
|
252
|
+
* @param {string} group the year group tag, or the skills group id.
|
|
250
253
|
* @return {string} the storage key.
|
|
251
254
|
*/
|
|
252
|
-
export declare const
|
|
255
|
+
export declare const surveyGroupKey: (scope: SurveyGroupScope, group: string) => string;
|
|
253
256
|
/**
|
|
254
257
|
* A year group tag reduced to characters that are safe in a Firestore field path and
|
|
255
258
|
* document id.
|
|
@@ -262,12 +265,12 @@ export declare const surveyCohortKey: (scope: SurveyCohortScope, cohort: string)
|
|
|
262
265
|
* @param {string} tag the year group tag or group id.
|
|
263
266
|
* @return {string} the tag as a key segment.
|
|
264
267
|
*/
|
|
265
|
-
export declare const
|
|
266
|
-
/** The scope a survey kind's
|
|
267
|
-
export declare const
|
|
268
|
-
[k in SurveyKind]?:
|
|
268
|
+
export declare const surveyGroupSlug: (tag: string) => string;
|
|
269
|
+
/** The scope a survey kind's groups are keyed under. */
|
|
270
|
+
export declare const SURVEY_KIND_GROUP_SCOPE: {
|
|
271
|
+
[k in SurveyKind]?: SurveyGroupScope;
|
|
269
272
|
};
|
|
270
|
-
/** Every
|
|
271
|
-
export type
|
|
272
|
-
[key: string]:
|
|
273
|
+
/** Every group's setup, as stored on the institute. */
|
|
274
|
+
export type SurveyGroupSetupMap = {
|
|
275
|
+
[key: string]: SurveyGroupSetup;
|
|
273
276
|
};
|
package/lib/surveys/types.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* the data model.
|
|
10
10
|
*
|
|
11
11
|
* Firestore:
|
|
12
|
-
* surveyCycles/{cycleId} — one scheduled SEND to one
|
|
12
|
+
* surveyCycles/{cycleId} — one scheduled SEND to one group
|
|
13
13
|
* surveyRequests/{requestId} — one PERSON inside one cycle
|
|
14
14
|
*
|
|
15
15
|
* These supersede aspirationCycles/aspirationRequests, leaverGroups/leaverRequests,
|
|
@@ -17,24 +17,24 @@
|
|
|
17
17
|
* documented per field below and in SURVEY_UNIFICATION_PLAN.md §3.2.
|
|
18
18
|
*/
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.
|
|
20
|
+
exports.SURVEY_KIND_GROUP_SCOPE = exports.surveyGroupSlug = exports.surveyGroupKey = exports.SURVEY_GROUP_SCOPES = exports.SURVEY_KINDS_LIST = void 0;
|
|
21
21
|
/** Every SurveyKind as a runtime array — for iteration, validation and registry tests. */
|
|
22
22
|
exports.SURVEY_KINDS_LIST = [
|
|
23
23
|
"skills", "aspirations", "leaverIntentions", "leaverResults", "leaverChristmas", "alumniCheckIn",
|
|
24
24
|
];
|
|
25
25
|
/** Every scope as a runtime array — for validation. */
|
|
26
|
-
exports.
|
|
26
|
+
exports.SURVEY_GROUP_SCOPES = ["aspirations", "leavers", "skills"];
|
|
27
27
|
/**
|
|
28
|
-
* The key one
|
|
28
|
+
* The key one group's setup is stored under: the scope plus the group within it —
|
|
29
29
|
* a year group for aspirations and leavers ("aspirations_y9"), a skills group id for
|
|
30
30
|
* skills ("skills_all", "skills_yg9", "skills_<mappingId>").
|
|
31
31
|
*
|
|
32
|
-
* @param {
|
|
33
|
-
* @param {string}
|
|
32
|
+
* @param {SurveyGroupScope} scope which programme the group belongs to.
|
|
33
|
+
* @param {string} group the year group tag, or the skills group id.
|
|
34
34
|
* @return {string} the storage key.
|
|
35
35
|
*/
|
|
36
|
-
const
|
|
37
|
-
exports.
|
|
36
|
+
const surveyGroupKey = (scope, group) => `${scope}_${(0, exports.surveyGroupSlug)(group)}`;
|
|
37
|
+
exports.surveyGroupKey = surveyGroupKey;
|
|
38
38
|
/**
|
|
39
39
|
* A year group tag reduced to characters that are safe in a Firestore field path and
|
|
40
40
|
* document id.
|
|
@@ -47,10 +47,10 @@ exports.surveyCohortKey = surveyCohortKey;
|
|
|
47
47
|
* @param {string} tag the year group tag or group id.
|
|
48
48
|
* @return {string} the tag as a key segment.
|
|
49
49
|
*/
|
|
50
|
-
const
|
|
51
|
-
exports.
|
|
52
|
-
/** The scope a survey kind's
|
|
53
|
-
exports.
|
|
50
|
+
const surveyGroupSlug = (tag) => String(tag).trim().replace(/[^A-Za-z0-9_-]+/g, "-").replace(/^-+|-+$/g, "") || "unknown";
|
|
51
|
+
exports.surveyGroupSlug = surveyGroupSlug;
|
|
52
|
+
/** The scope a survey kind's groups are keyed under. */
|
|
53
|
+
exports.SURVEY_KIND_GROUP_SCOPE = {
|
|
54
54
|
aspirations: "aspirations",
|
|
55
55
|
skills: "skills",
|
|
56
56
|
leaverIntentions: "leavers",
|
package/lib/surveys/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/surveys/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAiBH,0FAA0F;AAC7E,QAAA,iBAAiB,GAAiB;IAC3C,QAAQ,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe;CACnG,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/surveys/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAiBH,0FAA0F;AAC7E,QAAA,iBAAiB,GAAiB;IAC3C,QAAQ,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe;CACnG,CAAC;AAuOF,uDAAuD;AAC1C,QAAA,mBAAmB,GAAuB,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAE5F;;;;;;;;GAQG;AACI,MAAM,cAAc,GAAG,CAAC,KAAuB,EAAE,KAAa,EAAU,EAAE,CAC7E,GAAG,KAAK,IAAI,IAAA,uBAAe,EAAC,KAAK,CAAC,EAAE,CAAC;AAD5B,QAAA,cAAc,kBACc;AAEzC;;;;;;;;;;;GAWG;AACI,MAAM,eAAe,GAAG,CAAC,GAAW,EAAU,EAAE,CACnD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;AADhF,QAAA,eAAe,mBACiE;AAE7F,wDAAwD;AAC3C,QAAA,uBAAuB,GAA2C;IAC3E,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,SAAS;IAC3B,aAAa,EAAE,SAAS;IACxB,eAAe,EAAE,SAAS;CAC7B,CAAC"}
|
package/lib/typeDefinitions.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { DocumentData, DocumentReference, OrderByDirection, Timestamp, WhereFilt
|
|
|
2
2
|
import { Descendant } from "slate";
|
|
3
3
|
import { emailTemplates } from "./constants";
|
|
4
4
|
import type { ChecklistItem, GiftHistory } from "./customerCareConfig";
|
|
5
|
-
import type {
|
|
5
|
+
import type { SurveyGroupSetupMap, SurveyKind, SurveySlot } from "./surveys/types";
|
|
6
6
|
export type FilterObject = {
|
|
7
7
|
[key: string]: {
|
|
8
8
|
label: string;
|
|
@@ -929,10 +929,10 @@ export type InstituteData = {
|
|
|
929
929
|
closeAfterDays?: number;
|
|
930
930
|
};
|
|
931
931
|
destinationsConfig?: DestinationsConfig;
|
|
932
|
-
/** Who is in each survey
|
|
933
|
-
* answers a schedule can't supply on its own. Keyed by
|
|
932
|
+
/** Who is in each survey group, and which email template it uses — the two
|
|
933
|
+
* answers a schedule can't supply on its own. Keyed by surveyGroupKey(); read
|
|
934
934
|
* by provisioning so every year's surveys inherit the answer. */
|
|
935
|
-
|
|
935
|
+
surveyGroups?: SurveyGroupSetupMap;
|
|
936
936
|
acceptingAlumni?: boolean;
|
|
937
937
|
approveAlumni?: boolean;
|
|
938
938
|
shareAlumni?: boolean;
|
package/package.json
CHANGED
package/src/callables/surveys.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {z} from "zod";
|
|
2
2
|
import {CallableGroup} from "./types";
|
|
3
|
-
import {
|
|
3
|
+
import {SURVEY_GROUP_SCOPES, SURVEY_KINDS_LIST} from "../surveys/types";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Contracts for the unified survey engine
|
|
@@ -12,7 +12,7 @@ import {SURVEY_COHORT_SCOPES, SURVEY_KINDS_LIST} from "../surveys/types";
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
const surveyKind = z.enum(SURVEY_KINDS_LIST as [string, ...string[]]);
|
|
15
|
-
const
|
|
15
|
+
const groupScope = z.enum(SURVEY_GROUP_SCOPES as [string, ...string[]]);
|
|
16
16
|
|
|
17
17
|
const raters = z.object({
|
|
18
18
|
students: z.boolean().optional(),
|
|
@@ -29,7 +29,7 @@ export const surveyCallables = {
|
|
|
29
29
|
yearGroups: z.array(z.string()).optional(),
|
|
30
30
|
scheduledSendDate: z.string(), // ISO
|
|
31
31
|
/** Overrides the year derived from the send date — the leaver thread's
|
|
32
|
-
* Christmas leg sends in the year after the
|
|
32
|
+
* Christmas leg sends in the year after the group's own. */
|
|
33
33
|
academicYear: z.string().optional(),
|
|
34
34
|
closeAfterDays: z.number().optional(),
|
|
35
35
|
emailTemplateId: z.string().optional(),
|
|
@@ -117,16 +117,16 @@ export const surveyCallables = {
|
|
|
117
117
|
request: z.object({cycleId: z.string(), jobId: z.string().optional()}),
|
|
118
118
|
response: z.object({deleted: z.number()}),
|
|
119
119
|
},
|
|
120
|
-
"surveys-
|
|
120
|
+
"surveys-saveSurveyGroupSetup": {
|
|
121
121
|
request: z.object({
|
|
122
122
|
oId: z.string(),
|
|
123
|
-
scope:
|
|
123
|
+
scope: groupScope,
|
|
124
124
|
/** Year group ("9") or skills group id ("all", "yg9", a mapping id). */
|
|
125
|
-
|
|
125
|
+
group: z.string(),
|
|
126
126
|
/** JSON-serialised DataViewerSelectionBackend. */
|
|
127
127
|
studentSelection: z.string().optional(),
|
|
128
128
|
selectionSummary: z.string().optional(),
|
|
129
|
-
/** null clears the
|
|
129
|
+
/** null clears the group's template and falls back to the default copy. */
|
|
130
130
|
emailTemplateId: z.string().nullable().optional(),
|
|
131
131
|
/** false → store the answer for future years only, leaving the cycles
|
|
132
132
|
* already provisioned alone. Defaults to true. */
|
|
@@ -143,7 +143,7 @@ export const surveyCallables = {
|
|
|
143
143
|
request: z.object({
|
|
144
144
|
oId: z.string(),
|
|
145
145
|
/** Omit for every programme the institute runs. */
|
|
146
|
-
scope:
|
|
146
|
+
scope: groupScope.optional(),
|
|
147
147
|
/** Provision the upcoming academic year rather than the current one. */
|
|
148
148
|
nextYear: z.boolean().optional(),
|
|
149
149
|
}),
|
|
@@ -165,7 +165,7 @@ describe("resolveLeaverLegsForYearGroup", () => {
|
|
|
165
165
|
christmas: {enabled: true, sendMMDD: "12-08"},
|
|
166
166
|
};
|
|
167
167
|
|
|
168
|
-
it("dates the Christmas leg in the year AFTER the
|
|
168
|
+
it("dates the Christmas leg in the year AFTER the group leaves", () => {
|
|
169
169
|
expect(resolveLeaverLegsForYearGroup(leavers, "13", 2026).map((l) => l.sendISO.slice(0, 10)))
|
|
170
170
|
.toEqual(["2027-06-15", "2027-08-29", "2027-12-08"]);
|
|
171
171
|
});
|
package/src/surveys/schedule.ts
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
* A rule is year-agnostic; it resolves into a concrete date for a given academic
|
|
10
10
|
* year (each September) via surveyRuleToMMDD / surveyRuleToDate.
|
|
11
11
|
*
|
|
12
|
+
* It also answers WHICH academic year to resolve against — programmeStartYear, at the
|
|
13
|
+
* foot of this file. Provisioning and the staff year tabs both ask it, so they cannot
|
|
14
|
+
* disagree about the year a school is on.
|
|
15
|
+
*
|
|
12
16
|
* ── One academic-year boundary: 1 September ───────────────────────────────────
|
|
13
17
|
* Everything here derives the academic year the same way — currentAcademicStartYear,
|
|
14
18
|
* and academicYearOf which labels it. September to August is one academic year.
|
|
@@ -26,7 +30,7 @@
|
|
|
26
30
|
*/
|
|
27
31
|
|
|
28
32
|
import type {DestinationsConfig, InstituteData, SurveyDateRule, SurveyOrdinal, SurveyWeekday} from "../typeDefinitions";
|
|
29
|
-
import type {
|
|
33
|
+
import type {SurveyGroupScope, SurveyKind, SurveySlot} from "./types";
|
|
30
34
|
|
|
31
35
|
const pad2 = (n: number) => String(n).padStart(2, "0");
|
|
32
36
|
|
|
@@ -211,11 +215,11 @@ export const resolveLeaverLegsForYearGroup = (
|
|
|
211
215
|
];
|
|
212
216
|
|
|
213
217
|
return legs.flatMap((leg) => {
|
|
214
|
-
// A 2026/27
|
|
218
|
+
// A 2026/27 group sits its exams in June 2027 and gets its results that August,
|
|
215
219
|
// but its Christmas check-in is December 2027 — the winter AFTER it leaves, which
|
|
216
220
|
// falls in the next academic year. Resolving it against this academic year would
|
|
217
221
|
// date it December 2026, six months BEFORE the intentions form. The cycle still
|
|
218
|
-
// carries the
|
|
222
|
+
// carries the group's academic year, so the three legs stay one journey.
|
|
219
223
|
const startYear = leg.kind === "leaverChristmas" ? academicStartYear + 1 : academicStartYear;
|
|
220
224
|
// A rule is resolved against the leg's own year, so "third Thursday of August"
|
|
221
225
|
// lands on the right Thursday every year. The stored MM-DD is the fallback for
|
|
@@ -251,12 +255,12 @@ export type SurveyProgrammeConfig = Pick<InstituteData,
|
|
|
251
255
|
* "finished", and callers treat it as "nothing to say".
|
|
252
256
|
*
|
|
253
257
|
* @param {SurveyProgrammeConfig} institute the school's setup.
|
|
254
|
-
* @param {
|
|
258
|
+
* @param {SurveyGroupScope} scope which programme.
|
|
255
259
|
* @param {number} academicStartYear the year the academic year starts in.
|
|
256
260
|
* @return {string[]} ISO send datetimes, earliest first.
|
|
257
261
|
*/
|
|
258
262
|
export const programmeSendDatesForYear = (
|
|
259
|
-
institute: SurveyProgrammeConfig, scope:
|
|
263
|
+
institute: SurveyProgrammeConfig, scope: SurveyGroupScope, academicStartYear: number,
|
|
260
264
|
): string[] => {
|
|
261
265
|
const dates: string[] = [];
|
|
262
266
|
|
|
@@ -298,12 +302,12 @@ export const programmeSendDatesForYear = (
|
|
|
298
302
|
* roll forward to, and the current year is still the one staff are working in.
|
|
299
303
|
*
|
|
300
304
|
* @param {SurveyProgrammeConfig} institute the school's setup.
|
|
301
|
-
* @param {
|
|
305
|
+
* @param {SurveyGroupScope} scope which programme.
|
|
302
306
|
* @param {Date} [now] the moment to judge "still to come" against.
|
|
303
307
|
* @return {number} the year the academic year to provision starts in.
|
|
304
308
|
*/
|
|
305
309
|
export const programmeStartYear = (
|
|
306
|
-
institute: SurveyProgrammeConfig, scope:
|
|
310
|
+
institute: SurveyProgrammeConfig, scope: SurveyGroupScope, now = new Date(),
|
|
307
311
|
): number => {
|
|
308
312
|
const startYear = currentAcademicStartYear(now);
|
|
309
313
|
const dates = programmeSendDatesForYear(institute, scope, startYear);
|
|
@@ -316,10 +320,10 @@ export const programmeStartYear = (
|
|
|
316
320
|
* key on. See programmeStartYear.
|
|
317
321
|
*
|
|
318
322
|
* @param {SurveyProgrammeConfig} institute the school's setup.
|
|
319
|
-
* @param {
|
|
323
|
+
* @param {SurveyGroupScope} scope which programme.
|
|
320
324
|
* @param {Date} [now] the moment to judge "still to come" against.
|
|
321
325
|
* @return {string} e.g. "2026-27".
|
|
322
326
|
*/
|
|
323
327
|
export const programmeAcademicYear = (
|
|
324
|
-
institute: SurveyProgrammeConfig, scope:
|
|
328
|
+
institute: SurveyProgrammeConfig, scope: SurveyGroupScope, now = new Date(),
|
|
325
329
|
): string => academicYearLabel(programmeStartYear(institute, scope, now));
|
package/src/surveys/types.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* the data model.
|
|
9
9
|
*
|
|
10
10
|
* Firestore:
|
|
11
|
-
* surveyCycles/{cycleId} — one scheduled SEND to one
|
|
11
|
+
* surveyCycles/{cycleId} — one scheduled SEND to one group
|
|
12
12
|
* surveyRequests/{requestId} — one PERSON inside one cycle
|
|
13
13
|
*
|
|
14
14
|
* These supersede aspirationCycles/aspirationRequests, leaverGroups/leaverRequests,
|
|
@@ -79,7 +79,7 @@ export type SurveyRequestStatus = "pending"|"sent"|"completed"|"bounced";
|
|
|
79
79
|
export type SurveySubmittedBy = "student"|"parent"|"employer"|"staff"|"trustedContact";
|
|
80
80
|
|
|
81
81
|
/**
|
|
82
|
-
* One send to one
|
|
82
|
+
* One send to one group — AspirationCycle generalised across kinds.
|
|
83
83
|
*
|
|
84
84
|
* Legacy status mapping: LeaverGroup.stage "created"/"review" → "draft",
|
|
85
85
|
* "scheduled" → "scheduled", "sent" → "active", "archived" → "closed";
|
|
@@ -99,7 +99,7 @@ export type SurveyCycle = {
|
|
|
99
99
|
yearGroup?: string,
|
|
100
100
|
/** SkillsMapping.id ("all" for the All students group) — skills cycles only. */
|
|
101
101
|
groupId?: string,
|
|
102
|
-
/** Chains the cycles of one journey: the three leaver kinds for a
|
|
102
|
+
/** Chains the cycles of one journey: the three leaver kinds for a group share
|
|
103
103
|
* one threadKey (the pre-migration leaverGroups id). Also the supersession key. */
|
|
104
104
|
threadKey?: string,
|
|
105
105
|
status: SurveyCycleStatus,
|
|
@@ -140,7 +140,7 @@ export type SurveyCycle = {
|
|
|
140
140
|
* and `students` on SkillAssessmentRequest / LeaverGroup. */
|
|
141
141
|
studentSelection?: string,
|
|
142
142
|
/** True on auto-provisioned cycles — requests are fanned out from studentSelection
|
|
143
|
-
* when emails fire, not at creation, so the
|
|
143
|
+
* when emails fire, not at creation, so the group tracks the live roster. */
|
|
144
144
|
resolveRecipientsAtSend?: boolean,
|
|
145
145
|
/** Created by surveyCron from institute config rather than by staff. */
|
|
146
146
|
autoProvisioned?: boolean,
|
|
@@ -223,23 +223,23 @@ export type SurveyRequest = {
|
|
|
223
223
|
parentTokenExpiry?: string,
|
|
224
224
|
};
|
|
225
225
|
|
|
226
|
-
// ─── Per-
|
|
226
|
+
// ─── Per-group setup ─────────────────────────────────────────────────────────
|
|
227
227
|
|
|
228
228
|
/**
|
|
229
|
-
* The two questions a school can only answer once per
|
|
229
|
+
* The two questions a school can only answer once per group — who is in it, and
|
|
230
230
|
* which email its invitations use.
|
|
231
231
|
*
|
|
232
232
|
* A survey's SCHEDULE holds for every year to come, so setup asks for it once. Its
|
|
233
|
-
*
|
|
233
|
+
* GROUP does not: no school's student records agree on how a year group is written,
|
|
234
234
|
* so provisioning cannot resolve "Year 9" on its own, and until someone says who
|
|
235
235
|
* Year 9 is, that year group's surveys have nobody to send to. Rather than ask again
|
|
236
236
|
* every time a survey is provisioned, the answer is stored here and every later
|
|
237
|
-
* survey for that
|
|
237
|
+
* survey for that group inherits it — including next year's, whose group is the
|
|
238
238
|
* same query against a new set of students.
|
|
239
239
|
*
|
|
240
|
-
* Stored on institutes/{oId}.
|
|
240
|
+
* Stored on institutes/{oId}.surveyGroups, keyed by surveyGroupKey().
|
|
241
241
|
*/
|
|
242
|
-
export type
|
|
242
|
+
export type SurveyGroupSetup = {
|
|
243
243
|
/** JSON-serialised DataViewerSelectionBackend — a FILTER, not a frozen list, so
|
|
244
244
|
* it re-resolves against whoever is in the year group at each send. */
|
|
245
245
|
studentSelection?: string,
|
|
@@ -248,34 +248,37 @@ export type SurveyCohortSetup = {
|
|
|
248
248
|
selectionSummary?: string,
|
|
249
249
|
/** How many students it resolved to when it was saved. Indicative only. */
|
|
250
250
|
resolvedCount?: number,
|
|
251
|
-
/** emailTemplates doc id used for this
|
|
251
|
+
/** emailTemplates doc id used for this group's invitations. Absent = the
|
|
252
252
|
* platform's default copy for the kind. */
|
|
253
253
|
emailTemplateId?: string,
|
|
254
254
|
savedAt?: string,
|
|
255
|
-
/** uid of the staff member who answered
|
|
255
|
+
/** uid of the staff member who answered, or "system" when provisioning stored the
|
|
256
|
+
* group's own filter — the year group, or a skills group's rules — as the answer.
|
|
257
|
+
* A derived answer follows its filter if the school later changes it; one a person
|
|
258
|
+
* gave is never overwritten. */
|
|
256
259
|
savedBy?: string,
|
|
257
260
|
};
|
|
258
261
|
|
|
259
262
|
/**
|
|
260
|
-
* A
|
|
263
|
+
* A group's scope. Kinds that share a group share a scope, so answering once for
|
|
261
264
|
* Year 11 leavers covers all three legs of their journey.
|
|
262
265
|
*/
|
|
263
|
-
export type
|
|
266
|
+
export type SurveyGroupScope = "aspirations"|"leavers"|"skills";
|
|
264
267
|
|
|
265
268
|
/** Every scope as a runtime array — for validation. */
|
|
266
|
-
export const
|
|
269
|
+
export const SURVEY_GROUP_SCOPES: SurveyGroupScope[] = ["aspirations", "leavers", "skills"];
|
|
267
270
|
|
|
268
271
|
/**
|
|
269
|
-
* The key one
|
|
272
|
+
* The key one group's setup is stored under: the scope plus the group within it —
|
|
270
273
|
* a year group for aspirations and leavers ("aspirations_y9"), a skills group id for
|
|
271
274
|
* skills ("skills_all", "skills_yg9", "skills_<mappingId>").
|
|
272
275
|
*
|
|
273
|
-
* @param {
|
|
274
|
-
* @param {string}
|
|
276
|
+
* @param {SurveyGroupScope} scope which programme the group belongs to.
|
|
277
|
+
* @param {string} group the year group tag, or the skills group id.
|
|
275
278
|
* @return {string} the storage key.
|
|
276
279
|
*/
|
|
277
|
-
export const
|
|
278
|
-
`${scope}_${
|
|
280
|
+
export const surveyGroupKey = (scope: SurveyGroupScope, group: string): string =>
|
|
281
|
+
`${scope}_${surveyGroupSlug(group)}`;
|
|
279
282
|
|
|
280
283
|
/**
|
|
281
284
|
* A year group tag reduced to characters that are safe in a Firestore field path and
|
|
@@ -289,11 +292,11 @@ export const surveyCohortKey = (scope: SurveyCohortScope, cohort: string): strin
|
|
|
289
292
|
* @param {string} tag the year group tag or group id.
|
|
290
293
|
* @return {string} the tag as a key segment.
|
|
291
294
|
*/
|
|
292
|
-
export const
|
|
295
|
+
export const surveyGroupSlug = (tag: string): string =>
|
|
293
296
|
String(tag).trim().replace(/[^A-Za-z0-9_-]+/g, "-").replace(/^-+|-+$/g, "") || "unknown";
|
|
294
297
|
|
|
295
|
-
/** The scope a survey kind's
|
|
296
|
-
export const
|
|
298
|
+
/** The scope a survey kind's groups are keyed under. */
|
|
299
|
+
export const SURVEY_KIND_GROUP_SCOPE: {[k in SurveyKind]?: SurveyGroupScope} = {
|
|
297
300
|
aspirations: "aspirations",
|
|
298
301
|
skills: "skills",
|
|
299
302
|
leaverIntentions: "leavers",
|
|
@@ -301,5 +304,5 @@ export const SURVEY_KIND_COHORT_SCOPE: {[k in SurveyKind]?: SurveyCohortScope} =
|
|
|
301
304
|
leaverChristmas: "leavers",
|
|
302
305
|
};
|
|
303
306
|
|
|
304
|
-
/** Every
|
|
305
|
-
export type
|
|
307
|
+
/** Every group's setup, as stored on the institute. */
|
|
308
|
+
export type SurveyGroupSetupMap = {[key: string]: SurveyGroupSetup};
|
package/src/typeDefinitions.ts
CHANGED
|
@@ -2,7 +2,7 @@ import {DocumentData, DocumentReference, OrderByDirection, Timestamp, WhereFilte
|
|
|
2
2
|
import {Descendant} from "slate";
|
|
3
3
|
import {emailTemplates} from "./constants";
|
|
4
4
|
import type {ChecklistItem, GiftHistory} from "./customerCareConfig";
|
|
5
|
-
import type {
|
|
5
|
+
import type {SurveyGroupSetupMap, SurveyKind, SurveySlot} from "./surveys/types";
|
|
6
6
|
|
|
7
7
|
export type FilterObject = {
|
|
8
8
|
[key: string]: {
|
|
@@ -940,10 +940,10 @@ export type InstituteData = {
|
|
|
940
940
|
// Written by the setup wizard (aspirations-saveDestinationsConfig); read by
|
|
941
941
|
// destinationsProvisionCron each September to create that year's surveys/groups.
|
|
942
942
|
destinationsConfig?: DestinationsConfig,
|
|
943
|
-
/** Who is in each survey
|
|
944
|
-
* answers a schedule can't supply on its own. Keyed by
|
|
943
|
+
/** Who is in each survey group, and which email template it uses — the two
|
|
944
|
+
* answers a schedule can't supply on its own. Keyed by surveyGroupKey(); read
|
|
945
945
|
* by provisioning so every year's surveys inherit the answer. */
|
|
946
|
-
|
|
946
|
+
surveyGroups?: SurveyGroupSetupMap,
|
|
947
947
|
acceptingAlumni?: boolean,
|
|
948
948
|
approveAlumni?: boolean,
|
|
949
949
|
shareAlumni?: boolean
|