placementt-core 1.400.1150 → 1.400.1152
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/activities.d.ts +15 -4
- package/lib/activities.js +39 -6
- package/lib/activities.js.map +1 -1
- package/lib/activities.test.js +43 -7
- package/lib/activities.test.js.map +1 -1
- package/lib/emailSections.js +1 -1
- package/lib/emailSections.js.map +1 -1
- package/lib/letters.d.ts +29 -1
- package/lib/letters.js +34 -1
- package/lib/letters.js.map +1 -1
- package/lib/typeDefinitions.d.ts +5 -2
- package/lib/typeDefinitions.js.map +1 -1
- package/package.json +1 -1
- package/src/activities.test.ts +49 -6
- package/src/activities.ts +42 -7
- package/src/emailSections.ts +2 -2
- package/src/letters.ts +38 -1
- package/src/typeDefinitions.ts +5 -2
package/lib/activities.d.ts
CHANGED
|
@@ -15,18 +15,29 @@ export declare function resolveActivities(activities: {
|
|
|
15
15
|
};
|
|
16
16
|
/** Ids of the careers hubs an institute has an approved link with. */
|
|
17
17
|
export declare function approvedCareersHubIds(institute?: Pick<InstituteData, "careersHubLinks">): string[];
|
|
18
|
+
/**
|
|
19
|
+
* Orgs whose hidden activities `institute` hides too. A careers school follows its approved
|
|
20
|
+
* hubs. A school follows only the trust it has joined, never a hub it's linked to. Hubs
|
|
21
|
+
* and trusts decide for themselves.
|
|
22
|
+
*/
|
|
23
|
+
export declare function activityHidingParentIds(institute: Pick<InstituteData, "package" | "careersHubLinks" | "trustLinks"> | undefined | null): string[];
|
|
24
|
+
/** Activity ids an org has hidden itself. Hubs hid them with activityOverrides.disabled before hiddenActivities existed. */
|
|
25
|
+
export declare function ownHiddenActivityIds(org?: Pick<InstituteData, "hiddenActivities" | "activityOverrides">): string[];
|
|
18
26
|
/**
|
|
19
27
|
* The activityOverrides that apply when `institute` views activities. A hub uses its own.
|
|
20
|
-
* A school linked to careers hubs inherits each approved hub's
|
|
28
|
+
* A school linked to careers hubs inherits each approved hub's renames, so its staff,
|
|
21
29
|
* employers and alumni see the hub's wording and not the global one; anything the school
|
|
22
30
|
* sets itself wins. Pass the hubs named by approvedCareersHubIds(institute).
|
|
31
|
+
*
|
|
32
|
+
* Hiding is separate: an activity is `disabled` when the institute hides it, or when one of
|
|
33
|
+
* `hidingParents` (named by activityHidingParentIds) does. A school can't unhide those.
|
|
23
34
|
*/
|
|
24
|
-
export declare function combineActivityOverrides(institute?: Pick<InstituteData, "activityOverrides">, hubs?: (Pick<InstituteData, "activityOverrides"> | undefined)[]): InstituteData["activityOverrides"];
|
|
35
|
+
export declare function combineActivityOverrides(institute?: Pick<InstituteData, "activityOverrides" | "hiddenActivities">, hubs?: (Pick<InstituteData, "activityOverrides"> | undefined)[], hidingParents?: (Pick<InstituteData, "activityOverrides" | "hiddenActivities"> | undefined)[]): InstituteData["activityOverrides"];
|
|
25
36
|
/**
|
|
26
|
-
* Loads the hubs an institute is linked to and returns its combined overrides. Takes the
|
|
37
|
+
* Loads the hubs and trust an institute is linked to and returns its combined overrides. Takes the
|
|
27
38
|
* caller's own institute fetcher so frontend, backend and core all resolve them the same way.
|
|
28
39
|
*/
|
|
29
|
-
export declare function loadActivityOverrides(institute: Pick<InstituteData, "activityOverrides" | "careersHubLinks"> | undefined | null, getInstitute: (oId: string) => Promise<InstituteData | undefined | null>): Promise<InstituteData["activityOverrides"]>;
|
|
40
|
+
export declare function loadActivityOverrides(institute: Pick<InstituteData, "activityOverrides" | "hiddenActivities" | "careersHubLinks" | "trustLinks" | "package"> | undefined | null, getInstitute: (oId: string) => Promise<InstituteData | undefined | null>): Promise<InstituteData["activityOverrides"]>;
|
|
30
41
|
/**
|
|
31
42
|
* Orgs whose own (non-public) externalActivities `institute` sees alongside the public
|
|
32
43
|
* ones: itself when it's a careers hub, and every careers hub it has an approved link
|
package/lib/activities.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveActivities = resolveActivities;
|
|
4
4
|
exports.approvedCareersHubIds = approvedCareersHubIds;
|
|
5
|
+
exports.activityHidingParentIds = activityHidingParentIds;
|
|
6
|
+
exports.ownHiddenActivityIds = ownHiddenActivityIds;
|
|
5
7
|
exports.combineActivityOverrides = combineActivityOverrides;
|
|
6
8
|
exports.loadActivityOverrides = loadActivityOverrides;
|
|
7
9
|
exports.activityOwnerIds = activityOwnerIds;
|
|
@@ -36,28 +38,59 @@ function approvedCareersHubIds(institute) {
|
|
|
36
38
|
.filter(([, link]) => link.status === "approved")
|
|
37
39
|
.map(([hubId]) => hubId);
|
|
38
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Orgs whose hidden activities `institute` hides too. A careers school follows its approved
|
|
43
|
+
* hubs. A school follows only the trust it has joined, never a hub it's linked to. Hubs
|
|
44
|
+
* and trusts decide for themselves.
|
|
45
|
+
*/
|
|
46
|
+
function activityHidingParentIds(institute) {
|
|
47
|
+
if (institute?.package === "careersSchool")
|
|
48
|
+
return approvedCareersHubIds(institute);
|
|
49
|
+
// Same as workflows' approvedTrustId, which can't be imported here without pulling in Firebase.
|
|
50
|
+
if (institute?.package === "institutes-one") {
|
|
51
|
+
return Object.entries(institute.trustLinks || {}).filter(([, link]) => link.status === "approved").map(([oId]) => oId).slice(0, 1);
|
|
52
|
+
}
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
/** Activity ids an org has hidden itself. Hubs hid them with activityOverrides.disabled before hiddenActivities existed. */
|
|
56
|
+
function ownHiddenActivityIds(org) {
|
|
57
|
+
return [...new Set([
|
|
58
|
+
...(org?.hiddenActivities || []),
|
|
59
|
+
...Object.entries(org?.activityOverrides || {}).filter(([, o]) => o.disabled).map(([id]) => id),
|
|
60
|
+
])];
|
|
61
|
+
}
|
|
39
62
|
/**
|
|
40
63
|
* The activityOverrides that apply when `institute` views activities. A hub uses its own.
|
|
41
|
-
* A school linked to careers hubs inherits each approved hub's
|
|
64
|
+
* A school linked to careers hubs inherits each approved hub's renames, so its staff,
|
|
42
65
|
* employers and alumni see the hub's wording and not the global one; anything the school
|
|
43
66
|
* sets itself wins. Pass the hubs named by approvedCareersHubIds(institute).
|
|
67
|
+
*
|
|
68
|
+
* Hiding is separate: an activity is `disabled` when the institute hides it, or when one of
|
|
69
|
+
* `hidingParents` (named by activityHidingParentIds) does. A school can't unhide those.
|
|
44
70
|
*/
|
|
45
|
-
function combineActivityOverrides(institute, hubs = []) {
|
|
71
|
+
function combineActivityOverrides(institute, hubs = [], hidingParents = []) {
|
|
46
72
|
const combined = {};
|
|
47
73
|
[...hubs.map((hub) => hub?.activityOverrides), institute?.activityOverrides].forEach((overrides) => Object.entries(overrides || {}).forEach(([id, override]) => {
|
|
48
|
-
|
|
74
|
+
const renames = Object.fromEntries(Object.entries(override).filter(([key]) => key !== "disabled"));
|
|
75
|
+
if (Object.keys(renames).length)
|
|
76
|
+
combined[id] = { ...combined[id], ...renames };
|
|
49
77
|
}));
|
|
78
|
+
[institute, ...hidingParents].flatMap((org) => ownHiddenActivityIds(org)).forEach((id) => {
|
|
79
|
+
combined[id] = { ...combined[id], disabled: true };
|
|
80
|
+
});
|
|
50
81
|
return Object.keys(combined).length ? combined : undefined;
|
|
51
82
|
}
|
|
52
83
|
/**
|
|
53
|
-
* Loads the hubs an institute is linked to and returns its combined overrides. Takes the
|
|
84
|
+
* Loads the hubs and trust an institute is linked to and returns its combined overrides. Takes the
|
|
54
85
|
* caller's own institute fetcher so frontend, backend and core all resolve them the same way.
|
|
55
86
|
*/
|
|
56
87
|
async function loadActivityOverrides(institute, getInstitute) {
|
|
57
88
|
if (!institute)
|
|
58
89
|
return undefined;
|
|
59
|
-
const
|
|
60
|
-
|
|
90
|
+
const hubIds = approvedCareersHubIds(institute);
|
|
91
|
+
const parentIds = activityHidingParentIds(institute);
|
|
92
|
+
const orgs = Object.fromEntries(await Promise.all([...new Set([...hubIds, ...parentIds])].map(async (oId) => [oId, (await getInstitute(oId).catch(() => undefined)) ?? undefined])));
|
|
93
|
+
return combineActivityOverrides(institute, hubIds.map((oId) => orgs[oId]), parentIds.map((oId) => orgs[oId]));
|
|
61
94
|
}
|
|
62
95
|
/**
|
|
63
96
|
* Orgs whose own (non-public) externalActivities `institute` sees alongside the public
|
package/lib/activities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activities.js","sourceRoot":"","sources":["../src/activities.ts"],"names":[],"mappings":";;AAWA,8CAgBC;AAGD,sDAIC;
|
|
1
|
+
{"version":3,"file":"activities.js","sourceRoot":"","sources":["../src/activities.ts"],"names":[],"mappings":";;AAWA,8CAgBC;AAGD,sDAIC;AAOD,0DASC;AAGD,oDAKC;AAWD,4DAeC;AAMD,sDAUC;AASD,4CAOC;AAlHD;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAC7B,UAA4C,EAC5C,SAA8C;IAE9C,IAAI,CAAC,SAAS;QAAE,OAAO,UAAU,CAAC;IAClC,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE;QACxE,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACrC,OAAO,CAAC,EAAE,EAAE;gBACR,GAAG,QAAQ;gBACX,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,GAAG,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,KAAK;aACvC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAED,sEAAsE;AACtE,SAAgB,qBAAqB,CAAC,SAAkD;IACpF,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,IAAI,EAAE,CAAC;SAClD,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CACnC,SAAuF;IAEvF,IAAI,SAAS,EAAE,OAAO,KAAK,eAAe;QAAE,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACpF,gGAAgG;IAChG,IAAI,SAAS,EAAE,OAAO,KAAK,gBAAgB,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvI,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAED,4HAA4H;AAC5H,SAAgB,oBAAoB,CAAC,GAAiE;IAClG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC;YACf,GAAG,CAAC,GAAG,EAAE,gBAAgB,IAAI,EAAE,CAAC;YAChC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;SAClG,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,wBAAwB,CACpC,SAAuE,EACvE,OAA+D,EAAE,EACjE,gBAA2F,EAAE;IAE7F,MAAM,QAAQ,GAAoD,EAAE,CAAC;IACrE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAC/F,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE;QACvD,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC;QACnG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM;YAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,EAAC,CAAC;IAClF,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,SAAS,EAAE,GAAG,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACrF,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,qBAAqB,CACvC,SAA8H,EAC9H,YAAoE;IAEpE,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CACxG,CAAC,GAAG,EAAE,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,SAAS,CAAU,CAAC,CAAC,CAAC,CAAC;IACrF,OAAO,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC5B,SAA0E,EAC1E,GAAY;IAEZ,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,KAAK,YAAY,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC"}
|
package/lib/activities.test.js
CHANGED
|
@@ -20,9 +20,18 @@ describe("combineActivityOverrides", () => {
|
|
|
20
20
|
expect((0, activities_1.combineActivityOverrides)({ activityOverrides: { a: { title: "Networking Activity" } } }))
|
|
21
21
|
.toEqual({ a: { title: "Networking Activity" } });
|
|
22
22
|
});
|
|
23
|
-
it("gives a linked school its hub's
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
it("gives a linked school its hub's renames, and its hides only when the hub is a hiding parent", () => {
|
|
24
|
+
const hub = { activityOverrides: { a: { title: "Employer Workshop", disabled: false }, b: { disabled: true } } };
|
|
25
|
+
expect((0, activities_1.combineActivityOverrides)({}, [hub])).toEqual({ a: { title: "Employer Workshop" } });
|
|
26
|
+
expect((0, activities_1.combineActivityOverrides)({}, [hub], [hub])).toEqual({ a: { title: "Employer Workshop" }, b: { disabled: true } });
|
|
27
|
+
});
|
|
28
|
+
it("hides the institute's own and its hiding parents' hiddenActivities", () => {
|
|
29
|
+
expect((0, activities_1.combineActivityOverrides)({ hiddenActivities: ["a"] }, [], [{ hiddenActivities: ["b"] }]))
|
|
30
|
+
.toEqual({ a: { disabled: true }, b: { disabled: true } });
|
|
31
|
+
});
|
|
32
|
+
it("doesn't let a school unhide what its parent hid", () => {
|
|
33
|
+
expect((0, activities_1.combineActivityOverrides)({ activityOverrides: { a: { disabled: false } } }, [], [{ hiddenActivities: ["a"] }]))
|
|
34
|
+
.toEqual({ a: { disabled: true } });
|
|
26
35
|
});
|
|
27
36
|
it("lets the school's own override win, field by field", () => {
|
|
28
37
|
expect((0, activities_1.combineActivityOverrides)({ activityOverrides: { a: { description: "School wording" } } }, [{ activityOverrides: { a: { title: "Hub title", description: "Hub wording" } } }])).toEqual({ a: { title: "Hub title", description: "School wording" } });
|
|
@@ -35,10 +44,11 @@ describe("combineActivityOverrides", () => {
|
|
|
35
44
|
a: { title: "CV/Personal Statements", description: "", color: "#000", activityType: "other" },
|
|
36
45
|
b: { title: "Short Placement", description: "", color: "#000", activityType: "workExperience" },
|
|
37
46
|
};
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
47
|
+
const hub = { activityOverrides: {
|
|
48
|
+
a: { title: "Employer Workshop" },
|
|
49
|
+
b: { disabled: true },
|
|
50
|
+
} };
|
|
51
|
+
const resolved = (0, activities_1.resolveActivities)(activities, (0, activities_1.combineActivityOverrides)({}, [hub], [hub]));
|
|
42
52
|
expect(resolved.a.title).toBe("Employer Workshop");
|
|
43
53
|
expect(resolved.b.disabled).toBe(true);
|
|
44
54
|
});
|
|
@@ -56,4 +66,30 @@ describe("activityOwnerIds", () => {
|
|
|
56
66
|
expect((0, activities_1.activityOwnerIds)(undefined, "x")).toEqual([]);
|
|
57
67
|
});
|
|
58
68
|
});
|
|
69
|
+
describe("activityHidingParentIds", () => {
|
|
70
|
+
const hubLinks = { careersHubLinks: { hubA: link("approved"), hubB: link("invited") } };
|
|
71
|
+
const trustLinks = { trustLinks: { trust1: link("approved") } };
|
|
72
|
+
it("makes a careers school follow its approved hubs", () => {
|
|
73
|
+
expect((0, activities_1.activityHidingParentIds)({ package: "careersSchool", ...hubLinks, ...trustLinks })).toEqual(["hubA"]);
|
|
74
|
+
});
|
|
75
|
+
it("makes a school follow its trust, never its hubs", () => {
|
|
76
|
+
expect((0, activities_1.activityHidingParentIds)({ package: "institutes-one", ...hubLinks, ...trustLinks })).toEqual(["trust1"]);
|
|
77
|
+
expect((0, activities_1.activityHidingParentIds)({ package: "institutes-one", ...hubLinks })).toEqual([]);
|
|
78
|
+
});
|
|
79
|
+
it("lets hubs and trusts decide for themselves", () => {
|
|
80
|
+
expect((0, activities_1.activityHidingParentIds)({ package: "careersHub", ...hubLinks })).toEqual([]);
|
|
81
|
+
expect((0, activities_1.activityHidingParentIds)({ package: "institutes-two", ...trustLinks })).toEqual([]);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
describe("loadActivityOverrides", () => {
|
|
85
|
+
it("gives a trust school its hub's renames and its trust's hides", async () => {
|
|
86
|
+
const orgs = {
|
|
87
|
+
hubA: { activityOverrides: { a: { title: "Hub title", disabled: true } } },
|
|
88
|
+
trust1: { hiddenActivities: ["b"] },
|
|
89
|
+
};
|
|
90
|
+
const school = { package: "institutes-one", careersHubLinks: { hubA: link("approved") }, trustLinks: { trust1: link("approved") } };
|
|
91
|
+
expect(await (0, activities_1.loadActivityOverrides)(school, async (oId) => orgs[oId]))
|
|
92
|
+
.toEqual({ a: { title: "Hub title" }, b: { disabled: true } });
|
|
93
|
+
});
|
|
94
|
+
});
|
|
59
95
|
//# sourceMappingURL=activities.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activities.test.js","sourceRoot":"","sources":["../src/activities.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"activities.test.js","sourceRoot":"","sources":["../src/activities.test.ts"],"names":[],"mappings":"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"}
|
package/lib/emailSections.js
CHANGED
|
@@ -300,7 +300,7 @@ const createEmailSectionRenderer = (fetcher, isPreview) => {
|
|
|
300
300
|
]);
|
|
301
301
|
const activitiesRaw = { ...publicActivities, ...hubActivities };
|
|
302
302
|
const hubInstitute = await f.getDocData(["institutes", hubId]).catch(() => undefined);
|
|
303
|
-
const activities = (0, activities_1.resolveActivities)(activitiesRaw, hubInstitute
|
|
303
|
+
const activities = (0, activities_1.resolveActivities)(activitiesRaw, (0, activities_1.combineActivityOverrides)(hubInstitute));
|
|
304
304
|
const activityCounts = Object.fromEntries(Object.entries(activities).map(([activityId, activity]) => {
|
|
305
305
|
const count = contacts.reduce((total, c) => {
|
|
306
306
|
const acts = c.savedBy?.[hubId]?.activities ?? [];
|
package/lib/emailSections.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emailSections.js","sourceRoot":"","sources":["../src/emailSections.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emailSections.js","sourceRoot":"","sources":["../src/emailSections.ts"],"names":[],"mappings":"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"}
|
package/lib/letters.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Descendant } from "slate";
|
|
2
|
-
import type { ProductTag } from "./typeDefinitions";
|
|
2
|
+
import type { CohortData, InstituteData, ProductTag } from "./typeDefinitions";
|
|
3
3
|
export type WexLetterKey = "employer" | "parent" | "student";
|
|
4
4
|
export type WexLetterOverride = {
|
|
5
5
|
body: Descendant[];
|
|
@@ -20,3 +20,31 @@ export declare const wexLetters: {
|
|
|
20
20
|
export declare function fillLetterParams(text: string, values: {
|
|
21
21
|
[key: string]: string | undefined;
|
|
22
22
|
}): string;
|
|
23
|
+
export declare const CAREERTHREAD_LETTER_ADDRESS: string[];
|
|
24
|
+
export declare const CAREERTHREAD_LETTER_CONTACT: string[];
|
|
25
|
+
export declare const CAREERTHREAD_LETTER_FOOTER = "CareerThread is the trading name of Placementt Ltd, a company registered in England and Wales with company number 14481303.";
|
|
26
|
+
export declare function wexLetterValues({ institute, cohort, staff }: {
|
|
27
|
+
institute?: Partial<InstituteData>;
|
|
28
|
+
cohort?: Partial<CohortData>;
|
|
29
|
+
staff?: {
|
|
30
|
+
forename?: string;
|
|
31
|
+
surname?: string;
|
|
32
|
+
email?: string;
|
|
33
|
+
};
|
|
34
|
+
}): {
|
|
35
|
+
[key: string]: string | undefined;
|
|
36
|
+
};
|
|
37
|
+
export type LetterRun = {
|
|
38
|
+
text: string;
|
|
39
|
+
bold?: boolean;
|
|
40
|
+
italic?: boolean;
|
|
41
|
+
underline?: boolean;
|
|
42
|
+
href?: string;
|
|
43
|
+
};
|
|
44
|
+
export type LetterBlock = {
|
|
45
|
+
type: "heading-one" | "heading-two" | "paragraph";
|
|
46
|
+
runs: LetterRun[];
|
|
47
|
+
};
|
|
48
|
+
export declare function wexLetterBlocks(body: Descendant[], values: {
|
|
49
|
+
[key: string]: string | undefined;
|
|
50
|
+
}): LetterBlock[];
|
package/lib/letters.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.wexLetters = exports.wexLetterParams = void 0;
|
|
3
|
+
exports.CAREERTHREAD_LETTER_FOOTER = exports.CAREERTHREAD_LETTER_CONTACT = exports.CAREERTHREAD_LETTER_ADDRESS = exports.wexLetters = exports.wexLetterParams = void 0;
|
|
4
4
|
exports.fillLetterParams = fillLetterParams;
|
|
5
|
+
exports.wexLetterValues = wexLetterValues;
|
|
6
|
+
exports.wexLetterBlocks = wexLetterBlocks;
|
|
7
|
+
const benchmarkEvidenceRules_1 = require("./benchmarkEvidenceRules");
|
|
5
8
|
// Params available in every letter. Filled in when the letter is previewed or downloaded.
|
|
6
9
|
exports.wexLetterParams = ["instituteName", "academicYear", "cohortName", "placementStart", "placementEnd", "staffName", "staffEmail"];
|
|
7
10
|
// Builds Slate content from lines. "# " and "## " start headings, **text** is bold, {{param}} becomes a param node.
|
|
@@ -72,4 +75,34 @@ exports.wexLetters = {
|
|
|
72
75
|
function fillLetterParams(text, values) {
|
|
73
76
|
return text.replace(/\{\{(\w+)\}\}/g, (match, key) => values[key] ?? match);
|
|
74
77
|
}
|
|
78
|
+
// Printed top right of every letter, under the CareerThread name.
|
|
79
|
+
// TODO(Tom): fill in the postal address.
|
|
80
|
+
exports.CAREERTHREAD_LETTER_ADDRESS = [];
|
|
81
|
+
exports.CAREERTHREAD_LETTER_CONTACT = ["tom@careerthread.co.uk", "careerthread.co.uk"];
|
|
82
|
+
exports.CAREERTHREAD_LETTER_FOOTER = "CareerThread is the trading name of Placementt Ltd, a company registered in England and Wales with company number 14481303.";
|
|
83
|
+
// Values for the letter params. Shared by the web preview and the backend PDF, so both say the same thing.
|
|
84
|
+
function wexLetterValues({ institute, cohort, staff }) {
|
|
85
|
+
const formatDate = (d) => d ? new Date(d).toLocaleDateString("en-GB", { day: "numeric", month: "long", year: "numeric" }) : undefined;
|
|
86
|
+
return {
|
|
87
|
+
instituteName: institute?.name,
|
|
88
|
+
academicYear: (0, benchmarkEvidenceRules_1.academicYearForDate)(cohort?.startPlacements || new Date()).replace("-", "/"),
|
|
89
|
+
cohortName: cohort?.name,
|
|
90
|
+
placementStart: formatDate(cohort?.startPlacements),
|
|
91
|
+
placementEnd: formatDate(cohort?.endPlacements),
|
|
92
|
+
staffName: [staff?.forename, staff?.surname].filter(Boolean).join(" ") || undefined,
|
|
93
|
+
staffEmail: staff?.email,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
// Flattens Slate content into blocks of styled text runs with params filled in. The web preview and the PDF both draw from this.
|
|
97
|
+
function wexLetterBlocks(body, values) {
|
|
98
|
+
const runsOf = (node, href) => {
|
|
99
|
+
if (typeof node.text === "string")
|
|
100
|
+
return [{ text: fillLetterParams(node.text, values), bold: node.bold, italic: node.italic, underline: node.underline, href }];
|
|
101
|
+
return (node.children || []).flatMap((child) => runsOf(child, node.type === "link" ? node.href : href));
|
|
102
|
+
};
|
|
103
|
+
return body.map((node) => ({
|
|
104
|
+
type: node.type === "heading-one" || node.type === "heading-two" ? node.type : "paragraph",
|
|
105
|
+
runs: runsOf(node).filter((r) => r.text),
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
75
108
|
//# sourceMappingURL=letters.js.map
|
package/lib/letters.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"letters.js","sourceRoot":"","sources":["../src/letters.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"letters.js","sourceRoot":"","sources":["../src/letters.ts"],"names":[],"mappings":"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"}
|
package/lib/typeDefinitions.d.ts
CHANGED
|
@@ -1142,6 +1142,9 @@ export type InstituteData = {
|
|
|
1142
1142
|
}[];
|
|
1143
1143
|
};
|
|
1144
1144
|
};
|
|
1145
|
+
/** externalActivities ids this org has hidden from its platform. A careers school also
|
|
1146
|
+
* hides those its hubs hide, and a school those its trust hides; see activityHidingParentIds. */
|
|
1147
|
+
hiddenActivities?: string[];
|
|
1145
1148
|
activityOverrides?: {
|
|
1146
1149
|
[externalActivityId: string]: {
|
|
1147
1150
|
disabled?: boolean;
|
|
@@ -1360,8 +1363,8 @@ export type ExternalActivity = {
|
|
|
1360
1363
|
provider?: boolean;
|
|
1361
1364
|
permanent?: boolean;
|
|
1362
1365
|
activityType: "workExperience" | "workplaceVisits" | "mentoring" | "mockInterviews" | "other";
|
|
1363
|
-
/** Set by resolveActivities when the viewing institute
|
|
1364
|
-
*
|
|
1366
|
+
/** Set by resolveActivities when the viewing institute hides this activity, or inherits
|
|
1367
|
+
* the hide from its hub or trust. Never stored on the externalActivities doc itself. */
|
|
1365
1368
|
disabled?: boolean;
|
|
1366
1369
|
};
|
|
1367
1370
|
export type NotificationObject = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeDefinitions.js","sourceRoot":"","sources":["../src/typeDefinitions.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"typeDefinitions.js","sourceRoot":"","sources":["../src/typeDefinitions.ts"],"names":[],"mappings":";;;AA8nIA,sDASC;AAeD,oDAKC;AAaD,0CAEC;AAjoED;;;;;kFAKkF;AACrE,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,iBAAiB,GAAG,OAAO,CAAC;AA6iEzC;yEACyE;AAC5D,QAAA,0BAA0B,GAA2C;IAC9E,gBAAgB,EAAE,2BAA2B;IAC7C,mBAAmB,EAAE,sBAAsB;IAC3C,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,UAAU,EAAE,oCAAoC;IAChD,aAAa,EAAE,yBAAyB;IACxC,aAAa,EAAE,wBAAwB;IACvC,KAAK,EAAE,OAAO;CACjB,CAAC;AAEW,QAAA,0BAA0B,GAA+C;IAClF,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,OAAO;CACjB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAgB,qBAAqB,CAAC,SAAsC;IACxE,QAAQ,SAAS,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC;QAC5B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,OAAO,CAAC,CAAC,OAAO,UAAU,CAAC;IAC3B,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAChC,IAAwC,EACxC,MAA6C;IAE7C,OAAO,IAAI,EAAE,WAAW,IAAI,MAAM,EAAE,YAAY,IAAI,KAAK,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAAC,KAA6D;IACzF,OAAO,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAC/E,CAAC"}
|
package/package.json
CHANGED
package/src/activities.test.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {activityOwnerIds, approvedCareersHubIds, combineActivityOverrides, resolveActivities} from "./activities";
|
|
1
|
+
import {activityHidingParentIds, activityOwnerIds, approvedCareersHubIds, combineActivityOverrides, loadActivityOverrides, resolveActivities} from "./activities";
|
|
2
2
|
import {ExternalActivity, InstituteData} from "./typeDefinitions";
|
|
3
3
|
|
|
4
4
|
const link = (status: "invited"|"approved"|"declined") => ({exists: true, invited: "2026-09-01", status});
|
|
@@ -24,9 +24,20 @@ describe("combineActivityOverrides", () => {
|
|
|
24
24
|
.toEqual({a: {title: "Networking Activity"}});
|
|
25
25
|
});
|
|
26
26
|
|
|
27
|
-
it("gives a linked school its hub's
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
it("gives a linked school its hub's renames, and its hides only when the hub is a hiding parent", () => {
|
|
28
|
+
const hub = {activityOverrides: {a: {title: "Employer Workshop", disabled: false}, b: {disabled: true}}};
|
|
29
|
+
expect(combineActivityOverrides({}, [hub])).toEqual({a: {title: "Employer Workshop"}});
|
|
30
|
+
expect(combineActivityOverrides({}, [hub], [hub])).toEqual({a: {title: "Employer Workshop"}, b: {disabled: true}});
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it("hides the institute's own and its hiding parents' hiddenActivities", () => {
|
|
34
|
+
expect(combineActivityOverrides({hiddenActivities: ["a"]}, [], [{hiddenActivities: ["b"]}]))
|
|
35
|
+
.toEqual({a: {disabled: true}, b: {disabled: true}});
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("doesn't let a school unhide what its parent hid", () => {
|
|
39
|
+
expect(combineActivityOverrides({activityOverrides: {a: {disabled: false}}}, [], [{hiddenActivities: ["a"]}]))
|
|
40
|
+
.toEqual({a: {disabled: true}});
|
|
30
41
|
});
|
|
31
42
|
|
|
32
43
|
it("lets the school's own override win, field by field", () => {
|
|
@@ -45,10 +56,11 @@ describe("combineActivityOverrides", () => {
|
|
|
45
56
|
a: {title: "CV/Personal Statements", description: "", color: "#000", activityType: "other"},
|
|
46
57
|
b: {title: "Short Placement", description: "", color: "#000", activityType: "workExperience"},
|
|
47
58
|
};
|
|
48
|
-
const
|
|
59
|
+
const hub = {activityOverrides: {
|
|
49
60
|
a: {title: "Employer Workshop"},
|
|
50
61
|
b: {disabled: true},
|
|
51
|
-
}}
|
|
62
|
+
}};
|
|
63
|
+
const resolved = resolveActivities(activities, combineActivityOverrides({}, [hub], [hub]));
|
|
52
64
|
expect(resolved.a.title).toBe("Employer Workshop");
|
|
53
65
|
expect(resolved.b.disabled).toBe(true);
|
|
54
66
|
});
|
|
@@ -69,3 +81,34 @@ describe("activityOwnerIds", () => {
|
|
|
69
81
|
expect(activityOwnerIds(undefined, "x")).toEqual([]);
|
|
70
82
|
});
|
|
71
83
|
});
|
|
84
|
+
|
|
85
|
+
describe("activityHidingParentIds", () => {
|
|
86
|
+
const hubLinks = {careersHubLinks: {hubA: link("approved"), hubB: link("invited")}};
|
|
87
|
+
const trustLinks = {trustLinks: {trust1: link("approved")}};
|
|
88
|
+
|
|
89
|
+
it("makes a careers school follow its approved hubs", () => {
|
|
90
|
+
expect(activityHidingParentIds({package: "careersSchool", ...hubLinks, ...trustLinks} as unknown as InstituteData)).toEqual(["hubA"]);
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
it("makes a school follow its trust, never its hubs", () => {
|
|
94
|
+
expect(activityHidingParentIds({package: "institutes-one", ...hubLinks, ...trustLinks} as unknown as InstituteData)).toEqual(["trust1"]);
|
|
95
|
+
expect(activityHidingParentIds({package: "institutes-one", ...hubLinks} as unknown as InstituteData)).toEqual([]);
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
it("lets hubs and trusts decide for themselves", () => {
|
|
99
|
+
expect(activityHidingParentIds({package: "careersHub", ...hubLinks} as unknown as InstituteData)).toEqual([]);
|
|
100
|
+
expect(activityHidingParentIds({package: "institutes-two", ...trustLinks} as unknown as InstituteData)).toEqual([]);
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
describe("loadActivityOverrides", () => {
|
|
105
|
+
it("gives a trust school its hub's renames and its trust's hides", async () => {
|
|
106
|
+
const orgs: {[oId: string]: Partial<InstituteData>} = {
|
|
107
|
+
hubA: {activityOverrides: {a: {title: "Hub title", disabled: true}}},
|
|
108
|
+
trust1: {hiddenActivities: ["b"]},
|
|
109
|
+
};
|
|
110
|
+
const school = {package: "institutes-one", careersHubLinks: {hubA: link("approved")}, trustLinks: {trust1: link("approved")}} as unknown as InstituteData;
|
|
111
|
+
expect(await loadActivityOverrides(school, async (oId) => orgs[oId] as InstituteData))
|
|
112
|
+
.toEqual({a: {title: "Hub title"}, b: {disabled: true}});
|
|
113
|
+
});
|
|
114
|
+
});
|
package/src/activities.ts
CHANGED
|
@@ -34,35 +34,70 @@ export function approvedCareersHubIds(institute?: Pick<InstituteData, "careersHu
|
|
|
34
34
|
.map(([hubId]) => hubId);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Orgs whose hidden activities `institute` hides too. A careers school follows its approved
|
|
39
|
+
* hubs. A school follows only the trust it has joined, never a hub it's linked to. Hubs
|
|
40
|
+
* and trusts decide for themselves.
|
|
41
|
+
*/
|
|
42
|
+
export function activityHidingParentIds(
|
|
43
|
+
institute: Pick<InstituteData, "package"|"careersHubLinks"|"trustLinks">|undefined|null,
|
|
44
|
+
): string[] {
|
|
45
|
+
if (institute?.package === "careersSchool") return approvedCareersHubIds(institute);
|
|
46
|
+
// Same as workflows' approvedTrustId, which can't be imported here without pulling in Firebase.
|
|
47
|
+
if (institute?.package === "institutes-one") {
|
|
48
|
+
return Object.entries(institute.trustLinks || {}).filter(([, link]) => link.status === "approved").map(([oId]) => oId).slice(0, 1);
|
|
49
|
+
}
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** Activity ids an org has hidden itself. Hubs hid them with activityOverrides.disabled before hiddenActivities existed. */
|
|
54
|
+
export function ownHiddenActivityIds(org?: Pick<InstituteData, "hiddenActivities"|"activityOverrides">): string[] {
|
|
55
|
+
return [...new Set([
|
|
56
|
+
...(org?.hiddenActivities || []),
|
|
57
|
+
...Object.entries(org?.activityOverrides || {}).filter(([, o]) => o.disabled).map(([id]) => id),
|
|
58
|
+
])];
|
|
59
|
+
}
|
|
60
|
+
|
|
37
61
|
/**
|
|
38
62
|
* The activityOverrides that apply when `institute` views activities. A hub uses its own.
|
|
39
|
-
* A school linked to careers hubs inherits each approved hub's
|
|
63
|
+
* A school linked to careers hubs inherits each approved hub's renames, so its staff,
|
|
40
64
|
* employers and alumni see the hub's wording and not the global one; anything the school
|
|
41
65
|
* sets itself wins. Pass the hubs named by approvedCareersHubIds(institute).
|
|
66
|
+
*
|
|
67
|
+
* Hiding is separate: an activity is `disabled` when the institute hides it, or when one of
|
|
68
|
+
* `hidingParents` (named by activityHidingParentIds) does. A school can't unhide those.
|
|
42
69
|
*/
|
|
43
70
|
export function combineActivityOverrides(
|
|
44
|
-
institute?: Pick<InstituteData, "activityOverrides">,
|
|
71
|
+
institute?: Pick<InstituteData, "activityOverrides"|"hiddenActivities">,
|
|
45
72
|
hubs: (Pick<InstituteData, "activityOverrides">|undefined)[] = [],
|
|
73
|
+
hidingParents: (Pick<InstituteData, "activityOverrides"|"hiddenActivities">|undefined)[] = [],
|
|
46
74
|
): InstituteData["activityOverrides"] {
|
|
47
75
|
const combined: NonNullable<InstituteData["activityOverrides"]> = {};
|
|
48
76
|
[...hubs.map((hub) => hub?.activityOverrides), institute?.activityOverrides].forEach((overrides) =>
|
|
49
77
|
Object.entries(overrides || {}).forEach(([id, override]) => {
|
|
50
|
-
|
|
78
|
+
const renames = Object.fromEntries(Object.entries(override).filter(([key]) => key !== "disabled"));
|
|
79
|
+
if (Object.keys(renames).length) combined[id] = {...combined[id], ...renames};
|
|
51
80
|
}));
|
|
81
|
+
[institute, ...hidingParents].flatMap((org) => ownHiddenActivityIds(org)).forEach((id) => {
|
|
82
|
+
combined[id] = {...combined[id], disabled: true};
|
|
83
|
+
});
|
|
52
84
|
return Object.keys(combined).length ? combined : undefined;
|
|
53
85
|
}
|
|
54
86
|
|
|
55
87
|
/**
|
|
56
|
-
* Loads the hubs an institute is linked to and returns its combined overrides. Takes the
|
|
88
|
+
* Loads the hubs and trust an institute is linked to and returns its combined overrides. Takes the
|
|
57
89
|
* caller's own institute fetcher so frontend, backend and core all resolve them the same way.
|
|
58
90
|
*/
|
|
59
91
|
export async function loadActivityOverrides(
|
|
60
|
-
institute: Pick<InstituteData, "activityOverrides"|"careersHubLinks">|undefined|null,
|
|
92
|
+
institute: Pick<InstituteData, "activityOverrides"|"hiddenActivities"|"careersHubLinks"|"trustLinks"|"package">|undefined|null,
|
|
61
93
|
getInstitute: (oId: string) => Promise<InstituteData|undefined|null>,
|
|
62
94
|
): Promise<InstituteData["activityOverrides"]> {
|
|
63
95
|
if (!institute) return undefined;
|
|
64
|
-
const
|
|
65
|
-
|
|
96
|
+
const hubIds = approvedCareersHubIds(institute);
|
|
97
|
+
const parentIds = activityHidingParentIds(institute);
|
|
98
|
+
const orgs = Object.fromEntries(await Promise.all([...new Set([...hubIds, ...parentIds])].map(async (oId) =>
|
|
99
|
+
[oId, (await getInstitute(oId).catch(() => undefined)) ?? undefined] as const)));
|
|
100
|
+
return combineActivityOverrides(institute, hubIds.map((oId) => orgs[oId]), parentIds.map((oId) => orgs[oId]));
|
|
66
101
|
}
|
|
67
102
|
|
|
68
103
|
/**
|
package/src/emailSections.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {where} from "firebase/firestore";
|
|
2
2
|
import FirebaseQuery from "./firebase/firebaseQuery";
|
|
3
3
|
import {convertDate} from "./firebase/util";
|
|
4
|
-
import {loadActivityOverrides, resolveActivities} from "./activities";
|
|
4
|
+
import {combineActivityOverrides, loadActivityOverrides, resolveActivities} from "./activities";
|
|
5
5
|
import {EmailSectionConfig, EmailSectionRenderProps, ExternalActivity, ExternalEvent, ExternalEventAttendee, ExternalEventRequest, InstituteData, ProviderContactData, SectionDataFetcher, SectionFallback} from "./typeDefinitions";
|
|
6
6
|
import {sectorColours} from "./constants";
|
|
7
7
|
|
|
@@ -317,7 +317,7 @@ export const createEmailSectionRenderer = (fetcher?: SectionDataFetcher, isPrevi
|
|
|
317
317
|
]);
|
|
318
318
|
const activitiesRaw = {...publicActivities, ...hubActivities};
|
|
319
319
|
const hubInstitute = await f.getDocData(["institutes", hubId]).catch(() => undefined) as InstituteData|undefined;
|
|
320
|
-
const activities = resolveActivities(activitiesRaw, hubInstitute
|
|
320
|
+
const activities = resolveActivities(activitiesRaw, combineActivityOverrides(hubInstitute));
|
|
321
321
|
const activityCounts: Record<string, {value: number, color?: string}> = Object.fromEntries(
|
|
322
322
|
Object.entries(activities).map(([activityId, activity]) => {
|
|
323
323
|
const count = contacts.reduce((total, c) => {
|
package/src/letters.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {Descendant} from "slate";
|
|
2
|
-
import type {ProductTag} from "./typeDefinitions";
|
|
2
|
+
import type {CohortData, InstituteData, ProductTag} from "./typeDefinitions";
|
|
3
|
+
import {academicYearForDate} from "./benchmarkEvidenceRules";
|
|
3
4
|
|
|
4
5
|
// Work experience letters schools hand to employers, parents and students. We provide the defaults below.
|
|
5
6
|
// A school can edit a letter once, saved to InstituteData.wexLetters[key], and that version is used for all their cohorts.
|
|
@@ -89,3 +90,39 @@ export const wexLetters: {[key in WexLetterKey]: WexLetterConfig} = {
|
|
|
89
90
|
export function fillLetterParams(text: string, values: {[key: string]: string|undefined}) {
|
|
90
91
|
return text.replace(/\{\{(\w+)\}\}/g, (match, key) => values[key] ?? match);
|
|
91
92
|
}
|
|
93
|
+
|
|
94
|
+
// Printed top right of every letter, under the CareerThread name.
|
|
95
|
+
// TODO(Tom): fill in the postal address.
|
|
96
|
+
export const CAREERTHREAD_LETTER_ADDRESS: string[] = [];
|
|
97
|
+
export const CAREERTHREAD_LETTER_CONTACT = ["tom@careerthread.co.uk", "careerthread.co.uk"];
|
|
98
|
+
export const CAREERTHREAD_LETTER_FOOTER = "CareerThread is the trading name of Placementt Ltd, a company registered in England and Wales with company number 14481303.";
|
|
99
|
+
|
|
100
|
+
// Values for the letter params. Shared by the web preview and the backend PDF, so both say the same thing.
|
|
101
|
+
export function wexLetterValues({institute, cohort, staff}:{institute?: Partial<InstituteData>, cohort?: Partial<CohortData>, staff?: {forename?: string, surname?: string, email?: string}}): {[key: string]: string|undefined} {
|
|
102
|
+
const formatDate = (d?: string) => d ? new Date(d).toLocaleDateString("en-GB", {day: "numeric", month: "long", year: "numeric"}) : undefined;
|
|
103
|
+
return {
|
|
104
|
+
instituteName: institute?.name,
|
|
105
|
+
academicYear: academicYearForDate(cohort?.startPlacements || new Date()).replace("-", "/"),
|
|
106
|
+
cohortName: cohort?.name,
|
|
107
|
+
placementStart: formatDate(cohort?.startPlacements),
|
|
108
|
+
placementEnd: formatDate(cohort?.endPlacements),
|
|
109
|
+
staffName: [staff?.forename, staff?.surname].filter(Boolean).join(" ") || undefined,
|
|
110
|
+
staffEmail: staff?.email,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export type LetterRun = {text: string, bold?: boolean, italic?: boolean, underline?: boolean, href?: string};
|
|
115
|
+
export type LetterBlock = {type: "heading-one"|"heading-two"|"paragraph", runs: LetterRun[]};
|
|
116
|
+
|
|
117
|
+
// Flattens Slate content into blocks of styled text runs with params filled in. The web preview and the PDF both draw from this.
|
|
118
|
+
export function wexLetterBlocks(body: Descendant[], values: {[key: string]: string|undefined}): LetterBlock[] {
|
|
119
|
+
type Node = {type?: string, href?: string, text?: string, bold?: boolean, italic?: boolean, underline?: boolean, children?: Node[]};
|
|
120
|
+
const runsOf = (node: Node, href?: string): LetterRun[] => {
|
|
121
|
+
if (typeof node.text === "string") return [{text: fillLetterParams(node.text, values), bold: node.bold, italic: node.italic, underline: node.underline, href}];
|
|
122
|
+
return (node.children || []).flatMap((child) => runsOf(child, node.type === "link" ? node.href : href));
|
|
123
|
+
};
|
|
124
|
+
return (body as unknown as Node[]).map((node) => ({
|
|
125
|
+
type: node.type === "heading-one" || node.type === "heading-two" ? node.type : "paragraph",
|
|
126
|
+
runs: runsOf(node).filter((r) => r.text),
|
|
127
|
+
}));
|
|
128
|
+
}
|
package/src/typeDefinitions.ts
CHANGED
|
@@ -1175,6 +1175,9 @@ export type InstituteData = {
|
|
|
1175
1175
|
messageId?: string,
|
|
1176
1176
|
}[]
|
|
1177
1177
|
}},
|
|
1178
|
+
/** externalActivities ids this org has hidden from its platform. A careers school also
|
|
1179
|
+
* hides those its hubs hide, and a school those its trust hides; see activityHidingParentIds. */
|
|
1180
|
+
hiddenActivities?: string[],
|
|
1178
1181
|
activityOverrides?: {[externalActivityId: string]: { // Customisations of existing hard-coded activities by a hub.
|
|
1179
1182
|
disabled?: boolean,
|
|
1180
1183
|
title?: string,
|
|
@@ -1390,8 +1393,8 @@ export type ExternalActivity = {
|
|
|
1390
1393
|
provider?: boolean,
|
|
1391
1394
|
permanent?: boolean,
|
|
1392
1395
|
activityType: "workExperience"|"workplaceVisits"|"mentoring"|"mockInterviews"|"other"
|
|
1393
|
-
/** Set by resolveActivities when the viewing institute
|
|
1394
|
-
*
|
|
1396
|
+
/** Set by resolveActivities when the viewing institute hides this activity, or inherits
|
|
1397
|
+
* the hide from its hub or trust. Never stored on the externalActivities doc itself. */
|
|
1395
1398
|
disabled?: boolean,
|
|
1396
1399
|
}
|
|
1397
1400
|
|