Skip to content

Commit ce3f90d

Browse files
authored
feat: migrate originDestination connectionPenalty to netzgrafikDto (#314)
* feat: migrate originDestination connectionPenalty to netzgrafixDto * fixup! feat: migrate originDestination connectionPenalty to netzgrafixDto
1 parent d67445a commit ce3f90d

File tree

9 files changed

+65
-4
lines changed

9 files changed

+65
-4
lines changed

documentation/DATA_MODEL_JSON.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,8 @@ More details about TimeLock
378378
"netzgrafikColors": [],
379379
"trainrunCategories": [],
380380
"trainrunFrequencies": [],
381-
"trainrunTimeCategories": []
381+
"trainrunTimeCategories": [],
382+
"analyticsSettings": {}
382383
}
383384
```
384385

@@ -600,6 +601,26 @@ Define the dayTimeIntervalElement
600601
```
601602
- **from** : interval starts at time (include), in minute : numeric
602603
- **to** : interval ends at time (include), in minute : numeric
604+
</details>
605+
606+
<details>
607+
<summary>
608+
analyticsSettings: Contains settings for analytics features, such as originDestination matrix.
609+
</summary>
610+
611+
612+
```JSON
613+
"analyticsSettings": {
614+
"originDestinationSettings": {
615+
"connectionPenalty": 5
616+
},
617+
}
618+
```
619+
620+
- **connectionPenalty**: Cost to add for each connection, in minute : numeric
621+
622+
623+
603624
</details>
604625

605626
---

src/app/data-structures/business.data.structures.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,15 @@ export interface Haltezeit {
252252
no_halt: boolean; // no halt per default
253253
}
254254

255+
export interface OriginDestinationSettingsDto {
256+
// TODO: we may want a UI to display/edit this.
257+
connectionPenalty: number; // the cost to add for each connection, in minutes
258+
}
259+
260+
export interface AnalyticsSettingsDto {
261+
originDestinationSettings: OriginDestinationSettingsDto;
262+
}
263+
255264
/**
256265
* Groups Meta data in exported JSON / internal data structure (global properties for a project)
257266
*/
@@ -260,6 +269,7 @@ export interface MetadataDto {
260269
trainrunFrequencies: TrainrunFrequency[];
261270
trainrunTimeCategories: TrainrunTimeCategory[];
262271
netzgrafikColors: NetzgrafikColorDto[];
272+
analyticsSettings: AnalyticsSettingsDto;
263273
}
264274

265275
/**

src/app/sample-netzgrafik/netzgrafik.default.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,11 @@ export class NetzgrafikDefault {
205205
trainruns: [],
206206
resources: [],
207207
metadata: {
208+
analyticsSettings: {
209+
originDestinationSettings: {
210+
connectionPenalty: 5,
211+
}
212+
},
208213
trainrunCategories: [
209214
{
210215
id: 0,

src/app/utils/data-migration.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,11 @@ export class DataMigration {
8080
NetzgrafikDefault.getDefaultNetzgrafik().metadata.netzgrafikColors;
8181
}
8282

83+
if (netzgrafikDto.metadata.analyticsSettings === undefined) {
84+
netzgrafikDto.metadata.analyticsSettings =
85+
NetzgrafikDefault.getDefaultNetzgrafik().metadata.analyticsSettings;
86+
}
87+
8388
if (netzgrafikDto.freeFloatingTexts === undefined) {
8489
netzgrafikDto.freeFloatingTexts =
8590
NetzgrafikDefault.getDefaultNetzgrafik().freeFloatingTexts;

src/app/view/editor-tools-view-component/editor-tools-view.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -500,9 +500,6 @@ export class EditorToolsViewComponent {
500500
// Split trainruns are not supported at the moment:
501501
// https://github.com/SchweizerischeBundesbahnen/netzgrafik-editor-frontend/issues/285
502502
private convertToOriginDestinationCSV(): string {
503-
// The cost to add for each connection.
504-
// TODO: this may belong to the grafix metadata.
505-
const connectionPenalty = 5;
506503
// Duration of the schedule to consider (in minutes).
507504
// TODO: ideally this would be 24 hours, but performance is a concern.
508505
const timeLimit = 10*60;
@@ -514,6 +511,9 @@ export class EditorToolsViewComponent {
514511
headers.push($localize`:@@app.view.editor-side-view.editor-tools-view-component.connections:Connections`);
515512
headers.push($localize`:@@app.view.editor-side-view.editor-tools-view-component.totalCost:Total cost`);
516513

514+
const metadata = this.dataService.getNetzgrafikDto().metadata;
515+
// The cost to add for each connection.
516+
const connectionPenalty = metadata.analyticsSettings.originDestinationSettings.connectionPenalty;
517517
const nodes = this.nodeService.getNodes();
518518
const selectedNodes = this.nodeService.getSelectedNodes();
519519
const odNodes = selectedNodes.length > 0 ? selectedNodes : this.nodeService.getVisibleNodes();

src/integration-testing/netzgrafik.unit.test.reconnec.trainrunsectionst.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -696,6 +696,11 @@ export class NetzgrafikUnitTestingReconnectTrainrunSection {
696696
},
697697
],
698698
metadata: {
699+
analyticsSettings: {
700+
originDestinationSettings: {
701+
connectionPenalty: 5,
702+
}
703+
},
699704
trainrunCategories: [
700705
{
701706
id: 0,

src/integration-testing/netzgrafik.unit.testing.od.matrix.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -950,6 +950,11 @@ export class NetzgrafikUnitTestingOdMatrix {
950950
}
951951
],
952952
"metadata": {
953+
"analyticsSettings": {
954+
"originDestinationSettings": {
955+
"connectionPenalty": 5,
956+
}
957+
},
953958
"trainrunCategories": [
954959
{
955960
"id": 0,

src/integration-testing/netzgrafik.unit.testing.transition.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,6 +1126,11 @@ export class NetzgrafikUnitTestingTransition {
11261126
},
11271127
],
11281128
metadata: {
1129+
analyticsSettings: {
1130+
originDestinationSettings: {
1131+
connectionPenalty: 5,
1132+
}
1133+
},
11291134
trainrunCategories: [
11301135
{
11311136
id: 0,

src/integration-testing/netzgrafik.unit.testing.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -820,6 +820,11 @@ export class NetzgrafikUnitTesting {
820820
],
821821
resources: [],
822822
metadata: {
823+
analyticsSettings: {
824+
originDestinationSettings: {
825+
connectionPenalty: 5,
826+
}
827+
},
823828
trainrunCategories: [
824829
{
825830
id: 0,

0 commit comments

Comments
 (0)