Skip to content

Commit

Permalink
Use lists for the order of the import fields
Browse files Browse the repository at this point in the history
  • Loading branch information
reiterl committed Jul 8, 2024
1 parent 91dd7f7 commit e9f39fd
Show file tree
Hide file tree
Showing 7 changed files with 46 additions and 65 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -113,11 +113,7 @@ describe(`CsvExportForBackendService`, () => {
});

it(`test dummy export method with default settings`, () => {
service.dummyCSVExport(
Object.keys({ proper: `Fancy`, tea: `Tea`, strength: `Muscle` }),
toDummyExport,
`dummyAssortmentOfTeas`
);
service.dummyCSVExport([`proper`, `tea`, `strength`], toDummyExport, `dummyAssortmentOfTeas`);
expect(exportService.lastSavedFiles.length).toBe(1);
expect(exportService.lastSavedFiles[0]).toEqual({
file: `proper,tea,strength\r\n"1","Earl Grey","5"\r\n,"Herbal tea",`,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,7 @@ import { CsvColumnDefinitionProperty, CsvColumnsDefinition } from 'src/app/gatew
import { ViewUser } from 'src/app/site/pages/meetings/view-models/view-user';

import { MeetingCsvExportForBackendService } from '../../../../services/export/meeting-csv-export-for-backend.service';
import {
participantColumnsWeight,
participantHeadersAndVerboseNames
} from '../../pages/participant-import/definitions';
import { participantColumns } from '../../pages/participant-import/definitions';
import { ParticipantExportModule } from '../participant-export.module';
import { participantsExportExample } from '../participants-export-example';

Expand Down Expand Up @@ -43,16 +40,12 @@ export class ParticipantCsvExportService {
// ]
// ]);

public columns = Object.keys(participantHeadersAndVerboseNames).sort(
(a, b) => participantColumnsWeight[a] - participantColumnsWeight[b]
);

public constructor(private csvExport: MeetingCsvExportForBackendService, private translate: TranslateService) {}

public export(participants: ViewUser[]): void {
this.csvExport.export(
participants,
this.columns.map(key => {
participantColumns.map(key => {
return {
property: key
} as CsvColumnDefinitionProperty<ViewUser>;
Expand All @@ -64,7 +57,7 @@ export class ParticipantCsvExportService {
public exportCsvExample(): void {
const rows: UserExport[] = participantsExportExample;
this.csvExport.dummyCSVExport<UserExport>(
this.columns,
participantColumns,
rows,
`${this.translate.instant(`participants-example`)}.csv`
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { TranslateService } from '@ngx-translate/core';
import { BaseViaBackendImportListMeetingComponent } from 'src/app/site/base/base-via-backend-import-list-meeting.component';
import { ImportListHeaderDefinition } from 'src/app/ui/modules/import-list';

import { participantColumnsWeight, participantHeadersAndVerboseNames } from '../../definitions';
import { participantColumns, participantHeadersAndVerboseNames } from '../../definitions';
import { ParticipantImportService } from '../../services';

@Component({
Expand All @@ -12,9 +12,7 @@ import { ParticipantImportService } from '../../services';
styleUrls: [`./participant-import-list.component.scss`]
})
export class ParticipantImportListComponent extends BaseViaBackendImportListMeetingComponent {
public possibleFields = Object.keys(participantHeadersAndVerboseNames).sort(
(a, b) => participantColumnsWeight[a] - participantColumnsWeight[b]
);
public possibleFields = participantColumns;

public columns: ImportListHeaderDefinition[] = this.possibleFields.map(header => ({
property: header,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,23 @@ export const participantHeadersAndVerboseNames: { [key in keyof GeneralUser]?: a
comment: `Comment`
};

export const participantColumnsWeight: { [key in keyof GeneralUser]?: any } = {
title: 1,
first_name: 2,
last_name: 3,
email: 4,
member_number: 5,
structure_level: 6,
groups: 7,
number: 8,
vote_weight: 9,
gender: 10,
pronoun: 11,
username: 12,
default_password: 13,
is_active: 14,
is_physical_person: 15,
is_present: 16,
saml_id: 17,
comment: 18
};
export const participantColumns: (keyof GeneralUser)[] = [
`title`,
`first_name`,
`last_name`,
`email`,
`member_number`,
`structure_level`,
`groups`,
`number`,
`vote_weight`,
`gender`,
`pronoun`,
`username`,
`default_password`,
`is_active`,
`is_physical_person`,
`is_present`,
`saml_id`,
`comment`
];
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { BaseViaBackendImportListComponent } from 'src/app/site/base/base-via-ba
import { OrganizationSettingsService } from 'src/app/site/pages/organization/services/organization-settings.service';
import { ImportListHeaderDefinition } from 'src/app/ui/modules/import-list';

import { accountColumnsWeight, accountHeadersAndVerboseNames } from '../../definitions';
import { accountColumns, accountHeadersAndVerboseNames } from '../../definitions';
import { AccountImportService } from '../../services/account-import.service/account-import.service';

@Component({
Expand All @@ -14,9 +14,7 @@ import { AccountImportService } from '../../services/account-import.service/acco
styleUrls: [`./account-import-list.component.scss`]
})
export class AccountImportListComponent extends BaseViaBackendImportListComponent {
public possibleFields = Object.keys(accountHeadersAndVerboseNames).sort(
(a, b) => accountColumnsWeight[a] - accountColumnsWeight[b]
);
public possibleFields = accountColumns;

public columns: ImportListHeaderDefinition[] = this.possibleFields.map(header => ({
property: header,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@ export const accountHeadersAndVerboseNames: { [key in keyof User]?: any } = {
default_vote_weight: _(`Vote weight`)
};

export const accountColumnsWeight: { [key in keyof User]?: any } = {
title: 1,
first_name: 2,
last_name: 3,
email: 4,
member_number: 5,
default_vote_weight: 6,
gender: 7,
pronoun: 8,
username: 9,
default_password: 10,
is_active: 11,
is_physical_person: 12,
saml_id: 13
};
export const accountColumns: (keyof User)[] = [
`title`,
`first_name`,
`last_name`,
`email`,
`member_number`,
`default_vote_weight`,
`gender`,
`pronoun`,
`username`,
`default_password`,
`is_active`,
`is_physical_person`,
`saml_id`
];
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,18 @@ import { CsvExportForBackendService } from 'src/app/gateways/export/csv-export.s
import { ViewUser } from 'src/app/site/pages/meetings/view-models/view-user';

import { AccountCsvExportExample } from '../../export/csv-export-example';
import { accountColumnsWeight, accountHeadersAndVerboseNames } from '../../pages/account-import/definitions';
import { accountColumns } from '../../pages/account-import/definitions';
import { AccountExportServiceModule } from '../account-export-service.module';

@Injectable({
providedIn: AccountExportServiceModule
})
export class AccountExportService {
public columns = Object.keys(accountHeadersAndVerboseNames).sort(
(a, b) => accountColumnsWeight[a] - accountColumnsWeight[b]
);

public constructor(private csvExportService: CsvExportForBackendService, private translate: TranslateService) {}

public downloadCsvImportExample(): void {
this.csvExportService.dummyCSVExport<UserExport>(
this.columns,
accountColumns,
AccountCsvExportExample,
`${this.translate.instant(`account-example`)}.csv`
);
Expand All @@ -29,7 +25,7 @@ export class AccountExportService {
public downloadAccountCsvFile(dataSource: ViewUser[]): void {
this.csvExportService.export(
dataSource,
this.columns.map(key => ({
accountColumns.map(key => ({
property: key as keyof ViewUser
})),
`${this.translate.instant(`Accounts`)}.csv`
Expand Down

0 comments on commit e9f39fd

Please sign in to comment.