Skip to content

Commit 7acc754

Browse files
committed
implement loading team evidence from YAML and localStorage
1 parent 01398ce commit 7acc754

File tree

4 files changed

+22
-7
lines changed

4 files changed

+22
-7
lines changed

src/app/model/evidence-store.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -179,14 +179,9 @@ export class EvidenceStore {
179179
private isDuplicateEntry(activityUuid: Uuid, entry: EvidenceEntry): boolean {
180180
const existing = this._evidence[activityUuid];
181181
if (!existing) return false;
182-
183-
return existing.some(
184-
e =>
185-
e.description === entry.description &&
186-
e.evidenceRecorded === entry.evidenceRecorded &&
187-
e.reviewer === entry.reviewer
188-
);
182+
return existing.some(e => e.id === entry.id);
189183
}
184+
190185
public static todayDateString(): string {
191186
const now = new Date();
192187
return now.toISOString().substring(0, 10);

src/app/model/meta-store.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export class MetaStore {
3535
teams: TeamNames = [];
3636
activityFiles: string[] = [];
3737
teamProgressFile: string = '';
38+
teamEvidenceFile: string = '';
3839
allowChangeTeamNameInBrowser: boolean = true;
3940

4041
dimensionIcons: Record<string, string> = {
@@ -67,6 +68,7 @@ export class MetaStore {
6768
this.teams = metaData.teams || this.teams || [];
6869
this.activityFiles = metaData.activityFiles || this.activityFiles || [];
6970
this.teamProgressFile = metaData.teamProgressFile || this.teamProgressFile || '';
71+
this.teamEvidenceFile = metaData.teamEvidenceFile || this.teamEvidenceFile || '';
7072
if (metaData.allowChangeTeamNameInBrowser !== undefined)
7173
this.allowChangeTeamNameInBrowser = metaData.allowChangeTeamNameInBrowser;
7274
}

src/app/service/loader/data-loader.service.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,14 @@ export class LoaderService {
8484
this.dataStore.addProgressData(browserProgress?.progress);
8585
}
8686

87+
// Load evidence data
88+
const evidenceData = await this.loadEvidence(this.dataStore.meta);
89+
this.dataStore.addEvidenceData(evidenceData.evidence);
90+
this.dataStore.evidenceStore?.initFromLocalStorage();
91+
92+
// DEBUG ONLY
93+
console.log('Merged EvidenceStore:', this.dataStore.evidenceStore?.getEvidenceData());
94+
8795
console.log(`${perfNow()}: YAML: All YAML files loaded`);
8896

8997
return this.dataStore;
@@ -134,6 +142,10 @@ export class LoaderService {
134142
meta.activityFiles = meta.activityFiles.map(file =>
135143
this.yamlService.makeFullPath(file, this.META_FILE)
136144
);
145+
if (!meta.teamProgressFile) {
146+
throw Error("The meta.yaml has no 'teamEvidenceFile' to be loaded");
147+
}
148+
meta.teamEvidenceFile = this.yamlService.makeFullPath(meta.teamEvidenceFile, this.META_FILE);
137149

138150
if (this.debug) console.log(`${perfNow()} s: meta loaded`);
139151
console.log(`${perfNow()} s: Loaded teams: ${meta.teams.join(', ')}`);
@@ -145,6 +157,11 @@ export class LoaderService {
145157
return this.yamlService.loadYaml(meta.teamProgressFile);
146158
}
147159

160+
private async loadEvidence(meta: MetaStore): Promise<{ evidence: any }> {
161+
if (this.debug) console.log(`${perfNow()}s: Loading Team Evidence: ${meta.teamEvidenceFile}`);
162+
return this.yamlService.loadYaml(meta.teamEvidenceFile);
163+
}
164+
148165
private async loadActivities(meta: MetaStore): Promise<ActivityStore> {
149166
const activityStore = new ActivityStore();
150167
const errors: string[] = [];

src/assets/YAML/meta.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ browserSettings:
55

66

77
teamProgressFile: 'team-progress.yaml'
8+
teamEvidenceFile: 'team-evidence.yaml'
89
progressDefinition:
910
Not implemented:
1011
score: 0%

0 commit comments

Comments
 (0)