mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-15 20:33:47 +00:00
feat: export excel file
refactor: align id columns between export and import refactor: match column names with template
This commit is contained in:
committed by
Carlos Valente
parent
10762f10bf
commit
1d8c04d0b4
@@ -0,0 +1,363 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`rundownToTabular() > returns an array of arrays describing a rundown 1`] = `
|
||||
[
|
||||
[
|
||||
"ID",
|
||||
"Flag",
|
||||
"Cue",
|
||||
"Title",
|
||||
"Colour",
|
||||
"Time Start",
|
||||
"Time End",
|
||||
"Duration",
|
||||
"Link Start",
|
||||
"Count to end",
|
||||
"Note",
|
||||
"Timer Type",
|
||||
"End Action",
|
||||
"Warning Time",
|
||||
"Danger Time",
|
||||
"Skip",
|
||||
"Custom Field",
|
||||
"Images",
|
||||
],
|
||||
[
|
||||
"e2163f",
|
||||
"",
|
||||
"Demo",
|
||||
"Clear all, or Create New Project to start fresh",
|
||||
"#9d9d9d",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Go to Settings cog wheel top left of Editor, Project > Create",
|
||||
"milestone",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Create Custom Fields to store specific text information or images.
|
||||
|
||||
Go to Settings > Project data > Custom fields",
|
||||
"https://www.getontime.no/images/icons/ontime-logo.png",
|
||||
],
|
||||
[
|
||||
"7eaf99",
|
||||
"",
|
||||
"",
|
||||
"Morning Sessions",
|
||||
"#339E4E",
|
||||
"10:00:00",
|
||||
"12:00:00",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"group",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"9bf60f",
|
||||
"",
|
||||
"1",
|
||||
"Pre-show Countdown",
|
||||
"#77C785",
|
||||
"10:00:00",
|
||||
"11:00:00",
|
||||
"01:00:00",
|
||||
"",
|
||||
"",
|
||||
"Music plays, holding slide on screens",
|
||||
"count-down",
|
||||
"",
|
||||
"00:10:00",
|
||||
"00:05:00",
|
||||
"",
|
||||
"Put additional info here",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"bf71a2",
|
||||
"",
|
||||
"Standby",
|
||||
"10:45 - Presenters ready side stage",
|
||||
"#A790F5",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"milestone",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"c2697f",
|
||||
"",
|
||||
"1.1",
|
||||
"Welcome",
|
||||
"#FFCC78",
|
||||
"11:00:00",
|
||||
"11:10:00",
|
||||
"00:10:00",
|
||||
"TRUE",
|
||||
"",
|
||||
"Emma Thompson",
|
||||
"count-down",
|
||||
"",
|
||||
"00:02:00",
|
||||
"00:01:00",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"fa593e",
|
||||
"TRUE",
|
||||
"1.2",
|
||||
"Session 1",
|
||||
"#77C785",
|
||||
"11:10:00",
|
||||
"12:00:00",
|
||||
"00:50:00",
|
||||
"TRUE",
|
||||
"",
|
||||
"Liam Carter, Sophia Patel + PowerPoint",
|
||||
"count-down",
|
||||
"",
|
||||
"00:02:00",
|
||||
"00:01:00",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"a8b0b3",
|
||||
"",
|
||||
"House",
|
||||
"11:30 - House staff setup lunch in lobby",
|
||||
"#A790F5",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"milestone",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"group-end",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"f60403",
|
||||
"",
|
||||
"",
|
||||
"Lunch",
|
||||
"#3E75E8",
|
||||
"12:00:00",
|
||||
"13:00:00",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"group",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"0aaa7d",
|
||||
"",
|
||||
"2.1",
|
||||
"Lunch / Countdown to next session",
|
||||
"#779BE7",
|
||||
"12:00:00",
|
||||
"13:00:00",
|
||||
"01:00:00",
|
||||
"TRUE",
|
||||
"",
|
||||
"Buffet in lobby
|
||||
Music plays, holding slide on screens",
|
||||
"count-down",
|
||||
"",
|
||||
"00:02:00",
|
||||
"00:01:00",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"group-end",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"6b0edb",
|
||||
"",
|
||||
"",
|
||||
"Afternoon Sessions",
|
||||
"#339E4E",
|
||||
"13:00:00",
|
||||
"14:00:00",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"group",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"02afca",
|
||||
"",
|
||||
"Standby",
|
||||
"12:45 - Presenters ready side stage",
|
||||
"#A790F5",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"milestone",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"75ce86",
|
||||
"",
|
||||
"3.1",
|
||||
"Session 2",
|
||||
"#77C785",
|
||||
"13:00:00",
|
||||
"13:50:00",
|
||||
"00:50:00",
|
||||
"TRUE",
|
||||
"",
|
||||
"Ethan Brooks + PowerPoint + Video playback",
|
||||
"count-down",
|
||||
"",
|
||||
"00:02:00",
|
||||
"00:01:00",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"e10ed9",
|
||||
"",
|
||||
"3.2",
|
||||
"Wrap up",
|
||||
"#FFCC78",
|
||||
"13:50:00",
|
||||
"14:00:00",
|
||||
"00:10:00",
|
||||
"",
|
||||
"",
|
||||
"Lucas Bennett",
|
||||
"count-down",
|
||||
"",
|
||||
"00:02:00",
|
||||
"00:01:00",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"07df89",
|
||||
"",
|
||||
"Strike",
|
||||
"14:00 - AV & Room strike",
|
||||
"#A790F5",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"milestone",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
[
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"group-end",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
],
|
||||
]
|
||||
`;
|
||||
@@ -1,11 +1,13 @@
|
||||
import { CustomFields } from 'ontime-types';
|
||||
import { defaultImportMap, ImportMap } from 'ontime-utils';
|
||||
|
||||
import { getCustomFieldData } from '../excel.utils.js';
|
||||
import { demoDb } from '../../../models/demoProject.js';
|
||||
|
||||
import { getCustomFieldData, rundownToTabular } from '../excel.utils.js';
|
||||
|
||||
describe('getCustomFieldData()', () => {
|
||||
it('generates a list of keys from the given import map', () => {
|
||||
const importMap = {
|
||||
const importMap: ImportMap = {
|
||||
worksheet: 'event schedule',
|
||||
timeStart: 'time start',
|
||||
linkStart: 'link start',
|
||||
@@ -27,8 +29,8 @@ describe('getCustomFieldData()', () => {
|
||||
sound: 'sound',
|
||||
video: 'av',
|
||||
},
|
||||
entryId: 'id',
|
||||
} as ImportMap;
|
||||
id: 'id',
|
||||
};
|
||||
|
||||
const result = getCustomFieldData(importMap, {});
|
||||
expect(result.mergedCustomFields).toStrictEqual({
|
||||
@@ -58,7 +60,7 @@ describe('getCustomFieldData()', () => {
|
||||
});
|
||||
|
||||
it('keeps colour information from existing fields', () => {
|
||||
const importMap = {
|
||||
const importMap: ImportMap = {
|
||||
worksheet: 'event schedule',
|
||||
timeStart: 'time start',
|
||||
linkStart: 'link start',
|
||||
@@ -81,8 +83,8 @@ describe('getCustomFieldData()', () => {
|
||||
video: 'av',
|
||||
'ontime key': 'excel label',
|
||||
},
|
||||
entryId: 'id',
|
||||
} as ImportMap;
|
||||
id: 'id',
|
||||
};
|
||||
|
||||
const existingCustomFields: CustomFields = {
|
||||
lighting: { label: 'lighting', type: 'text', colour: 'red' },
|
||||
@@ -160,3 +162,13 @@ describe('getCustomFieldData()', () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('rundownToTabular()', () => {
|
||||
it('returns an array of arrays describing a rundown', () => {
|
||||
const testRundown = demoDb.rundowns['default'];
|
||||
const testCustomFields = demoDb.customFields;
|
||||
|
||||
const result = rundownToTabular(testRundown, testCustomFields);
|
||||
expect(result).toMatchSnapshot();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user