Skip to content

Commit

Permalink
Reorder the user imports fields (#3722)
Browse files Browse the repository at this point in the history
* Reorder the user imports fields
* Swap gender and pronoun in account import field list
* Use other way to order the account and participant import fields
* Use lists for the order of the import fields
  • Loading branch information
reiterl authored Jul 10, 2024
1 parent e5e295f commit 6c66759
Show file tree
Hide file tree
Showing 12 changed files with 64 additions and 30 deletions.
4 changes: 2 additions & 2 deletions client/src/app/domain/models/users/user.constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ export const userHeadersAndVerboseNames: { [key in keyof User]?: any } = {
first_name: _(`Given name`),
last_name: _(`Surname`),
email: _(`Email`),
member_number: _(`Member number`),
pronoun: _(`Pronoun`),
gender: _(`Gender`),
username: _(`Username`),
default_password: _(`Initial password`),
is_active: _(`Active`),
is_physical_person: _(`Natural person`),
saml_id: _(`SSO identification`),
member_number: _(`Membership number`)
saml_id: _(`SSO identification`)
};
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(
{ 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 @@ -101,14 +101,15 @@ export class CsvExportForBackendService {
}
}

public dummyCSVExport<I>(headerAndVerboseNames: { [key in keyof I]: any }, rows: I[], filename: string): void {
public dummyCSVExport<I>(headers: string[], rows: I[], filename: string): void {
const separator = DEFAULT_COLUMN_SEPARATOR;
const encoding: `utf-8` | `iso-8859-15` = DEFAULT_ENCODING as any;
const headerRow = [Object.keys(headerAndVerboseNames).join(separator)];
const headerRow = [headers.join(separator)];

const content = rows.map(row =>
Object.keys(headerAndVerboseNames)
headers
.map(key => {
let value = row[key as keyof I] || ``;
let value = row[key] || ``;
if (typeof value === `number`) {
value = value.toString(10);
} else if (typeof value === `boolean`) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export class TopicExportService {
];

this.csvExportService.dummyCSVExport<TopicExport>(
topicHeadersAndVerboseNames,
Object.keys(topicHeadersAndVerboseNames),
rows,
`${this.translate.instant(`Agenda`)}-${this.translate.instant(`example`)}.csv`
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +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 { 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 @@ -45,7 +45,7 @@ export class ParticipantCsvExportService {
public export(participants: ViewUser[]): void {
this.csvExport.export(
participants,
Object.keys(participantHeadersAndVerboseNames).map(key => {
participantColumns.map(key => {
return {
property: key
} as CsvColumnDefinitionProperty<ViewUser>;
Expand All @@ -57,7 +57,7 @@ export class ParticipantCsvExportService {
public exportCsvExample(): void {
const rows: UserExport[] = participantsExportExample;
this.csvExport.dummyCSVExport<UserExport>(
participantHeadersAndVerboseNames,
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 { participantHeadersAndVerboseNames } from '../../definitions';
import { participantColumns, participantHeadersAndVerboseNames } from '../../definitions';
import { ParticipantImportService } from '../../services';

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

public columns: ImportListHeaderDefinition[] = Object.keys(participantHeadersAndVerboseNames).map(header => ({
public columns: ImportListHeaderDefinition[] = this.possibleFields.map(header => ({
property: header,
label: (<any>participantHeadersAndVerboseNames)[header],
isTableColumn: true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,33 @@
import { userHeadersAndVerboseNames } from 'src/app/domain/models/users/user.constants';
import { GeneralUser } from 'src/app/gateways/repositories/users';

export const participantHeadersAndVerboseNames: { [key in keyof GeneralUser]?: string } = {
export const participantHeadersAndVerboseNames: { [key in keyof GeneralUser]?: any } = {
...userHeadersAndVerboseNames,
is_present: `Is present`,
structure_level: `Structure levels`,
groups: `Groups`,
number: `Participant number`,
vote_weight: `Vote weight`,
groups: `Groups`,
is_present: `Is present`,
comment: `Comment`
};

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 { accountHeadersAndVerboseNames } from '../../definitions';
import { accountColumns, accountHeadersAndVerboseNames } from '../../definitions';
import { AccountImportService } from '../../services/account-import.service/account-import.service';

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

public columns: ImportListHeaderDefinition[] = Object.keys(accountHeadersAndVerboseNames).map(header => ({
public columns: ImportListHeaderDefinition[] = this.possibleFields.map(header => ({
property: header,
label: (<any>accountHeadersAndVerboseNames)[header],
isTableColumn: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,23 @@ import { marker as _ } from '@colsen1991/ngx-translate-extract-marker';
import { User } from 'src/app/domain/models/users/user';
import { userHeadersAndVerboseNames } from 'src/app/domain/models/users/user.constants';

export const accountHeadersAndVerboseNames: { [key in keyof User]?: string } = {
export const accountHeadersAndVerboseNames: { [key in keyof User]?: any } = {
...userHeadersAndVerboseNames,
default_vote_weight: _(`Vote weight`)
};

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,7 +5,7 @@ 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 { accountHeadersAndVerboseNames } from '../../pages/account-import/definitions';
import { accountColumns } from '../../pages/account-import/definitions';
import { AccountExportServiceModule } from '../account-export-service.module';

@Injectable({
Expand All @@ -16,7 +16,7 @@ export class AccountExportService {

public downloadCsvImportExample(): void {
this.csvExportService.dummyCSVExport<UserExport>(
accountHeadersAndVerboseNames,
accountColumns,
AccountCsvExportExample,
`${this.translate.instant(`account-example`)}.csv`
);
Expand All @@ -25,7 +25,7 @@ export class AccountExportService {
public downloadAccountCsvFile(dataSource: ViewUser[]): void {
this.csvExportService.export(
dataSource,
Object.keys(accountHeadersAndVerboseNames).map(key => ({
accountColumns.map(key => ({
property: key as keyof ViewUser
})),
`${this.translate.instant(`Accounts`)}.csv`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export class CommitteeImportService extends BaseBackendImportService {

public downloadCsvExample(): void {
this.exporter.dummyCSVExport(
committeeHeadersAndVerboseNames,
Object.keys(committeeHeadersAndVerboseNames),
COMMITTEE_CSV_EXPORT_EXAMPLE,
`${this.translate.instant(`committee-example`)}.csv`
);
Expand Down
2 changes: 1 addition & 1 deletion client/src/meta
Submodule meta updated 3 files
+4 −4 dev/requirements.txt
+4 −8 models.yml
+0 −1 search.yml

0 comments on commit 6c66759

Please sign in to comment.