Skip to content

Commit 92a27de

Browse files
committed
refactor: deprecate-array-prototype-extensions - sortBy()
1 parent 0c4f91f commit 92a27de

File tree

17 files changed

+46
-74
lines changed

17 files changed

+46
-74
lines changed

admin/app/components/badges/capped-tubes-criterion.gjs

+5-10
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
import Component from '@glimmer/component';
2+
import sortBy from 'lodash/sortBy';
23

34
import Area from '../common/tubes-details/area';
45

56
export default class CappedTubesCriterion extends Component {
67
get areasForView() {
7-
return this.args.targetProfile
8-
.hasMany('areas')
9-
.value()
10-
.sortBy('code')
8+
return sortBy(this.args.targetProfile.hasMany('areas').value(), 'code')
119
.map((area) => ({
1210
area,
1311
competences: this._buildCompetencesViewModel(area.hasMany('competences').value()),
@@ -21,8 +19,7 @@ export default class CappedTubesCriterion extends Component {
2119
}
2220

2321
_buildCompetencesViewModel(competences) {
24-
return competences
25-
.sortBy('index')
22+
return sortBy(competences, 'index')
2623
.map((competence) => ({
2724
competence,
2825
thematics: this._buildThematicsViewModel(competence.hasMany('thematics').value()),
@@ -35,8 +32,7 @@ export default class CappedTubesCriterion extends Component {
3532
}
3633

3734
_buildThematicsViewModel(thematics) {
38-
return thematics
39-
.sortBy('index')
35+
return sortBy(thematics, 'index')
4036
.map((thematic) => ({
4137
thematic,
4238
tubes: this._buildTubesViewModel(thematic.hasMany('tubes').value()),
@@ -50,8 +46,7 @@ export default class CappedTubesCriterion extends Component {
5046
}
5147

5248
_buildTubesViewModel(tubes) {
53-
return tubes
54-
.sortBy('practicalName')
49+
return sortBy(tubes, 'practicalName')
5550
.map((tube) => ({
5651
tube,
5752
cappedTube: this.args.criterion.cappedTubes.find(({ tubeId }) => tubeId === tube.id),

admin/app/components/certification-centers/information-edit.gjs

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { tracked } from '@glimmer/tracking';
1111
import pick from 'ember-composable-helpers/helpers/pick';
1212
import { t } from 'ember-intl';
1313
import set from 'ember-set-helper/helpers/set';
14+
import sortBy from 'lodash/sortBy';
1415

1516
import contains from '../../helpers/contains.js';
1617
import { types } from '../../models/certification-center';
@@ -31,7 +32,7 @@ export default class InformationEdit extends Component {
3132
}
3233

3334
get availableHabilitations() {
34-
return this.args.availableHabilitations?.sortBy('id');
35+
return sortBy(this.args.availableHabilitations, 'id');
3536
}
3637

3738
@action

admin/app/components/certification-centers/information-view.gjs

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { service } from '@ember/service';
44
import Component from '@glimmer/component';
55
import { tracked } from '@glimmer/tracking';
66
import { t } from 'ember-intl';
7+
import sortBy from 'lodash/sortBy';
78
import ENV from 'pix-admin/config/environment';
89

910
import HabilitationTag from './habilitation-tag';
@@ -20,7 +21,7 @@ export default class InformationView extends Component {
2021
}
2122

2223
get availableHabilitations() {
23-
const habilitations = this.args.availableHabilitations?.sortBy('id') || [];
24+
const habilitations = sortBy(this.args.availableHabilitations, 'id');
2425
return habilitations.map((habilitation) => {
2526
const isHabilitated = this.habilitations.includes(habilitation);
2627
const label = habilitation.label;

admin/app/components/certification-centers/invitations.gjs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@ import { service } from '@ember/service';
66
import Component from '@glimmer/component';
77
import dayjsFormat from 'ember-dayjs/helpers/dayjs-format';
88
import { t } from 'ember-intl';
9+
import sortBy from 'lodash/sortBy';
910

1011
export default class CertificationCenterInvitations extends Component {
1112
@service intl;
1213

1314
get sortedCertificationCenterInvitations() {
14-
return this.args.certificationCenterInvitations.sortBy('updatedAt').reverse();
15+
return sortBy(this.args.certificationCenterInvitations, 'updatedAt').reverse();
1516
}
1617

1718
<template>

admin/app/components/complementary-certifications/list.gjs

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ import PixTableColumn from '@1024pix/pix-ui/components/pix-table-column';
33
import { LinkTo } from '@ember/routing';
44
import Component from '@glimmer/component';
55
import { t } from 'ember-intl';
6+
import sortBy from 'lodash/sortBy';
67

78
export default class List extends Component {
89
get sortedComplementaryCertifications() {
9-
return this.args.complementaryCertifications.sortBy('label');
10+
return sortBy(this.args.complementaryCertifications, 'label');
1011
}
1112

1213
<template>

admin/app/components/organizations/invitations.gjs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@ import { service } from '@ember/service';
66
import Component from '@glimmer/component';
77
import dayjsFormat from 'ember-dayjs/helpers/dayjs-format';
88
import { t } from 'ember-intl';
9+
import sortBy from 'lodash/sortBy';
910

1011
export default class OrganizationInvitations extends Component {
1112
@service accessControl;
1213
@service intl;
1314

1415
get sortedInvitations() {
15-
return this.args.invitations.sortBy('updatedAt').reverse();
16+
return sortBy(this.args.invitations, 'updatedAt').reverse();
1617
}
1718

1819
<template>

admin/app/components/sessions/certifications/list.gjs

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@ import PixTableColumn from '@1024pix/pix-ui/components/pix-table-column';
44
import { LinkTo } from '@ember/routing';
55
import Component from '@glimmer/component';
66
import { t } from 'ember-intl';
7+
import sortBy from 'lodash/sortBy';
78

89
import CertificationStatus from './status';
910
export default class CertificationsHeader extends Component {
1011
get sortedCertificationJurySummaries() {
11-
return this.args.juryCertificationSummaries.sortBy('numberOfCertificationIssueReportsWithRequiredAction').reverse();
12+
return sortBy(
13+
this.args.juryCertificationSummaries,
14+
'numberOfCertificationIssueReportsWithRequiredAction',
15+
).reverse();
1216
}
1317

1418
<template>

admin/app/components/target-profiles/badge-form/capped-tubes-criterion.gjs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { action } from '@ember/object';
66
import Component from '@glimmer/component';
77
import { tracked } from '@glimmer/tracking';
88
import { t } from 'ember-intl';
9+
import sortBy from 'lodash/sortBy';
910

1011
import Areas from '../../common/tubes-selection/areas';
1112

@@ -22,7 +23,7 @@ export default class CappedTubesCriterion extends Component {
2223
}
2324

2425
get areas() {
25-
return this.areasList.sortBy('code');
26+
return sortBy(this.areasList, 'code');
2627
}
2728

2829
@action

admin/app/components/trainings/trigger/details.gjs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { service } from '@ember/service';
22
import Component from '@glimmer/component';
33
import { tracked } from '@glimmer/tracking';
4+
import sortBy from 'lodash/sortBy';
45

56
import Area from '../../common/tubes-details/area';
67

@@ -17,7 +18,7 @@ export default class Details extends Component {
1718
}
1819

1920
get areasList() {
20-
return this.areas.sortBy('code').map((area) => this.buildAreaViewModel(area));
21+
return sortBy(this.areas, 'code').map((area) => this.buildAreaViewModel(area));
2122
}
2223

2324
buildAreaViewModel(area) {

admin/app/components/users/certification-centers/memberships.gjs

+3-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ import MembershipItem from './membership-item';
66

77
export default class Memberships extends Component {
88
get orderedCertificationCenterMemberships() {
9-
return this.args.certificationCenterMemberships.sortBy('certificationCenter.name');
9+
return [...this.args.certificationCenterMemberships].sort((a, b) =>
10+
a.certificationCenter?.get('name')?.localeCompare(b.certificationCenter?.get('name')),
11+
);
1012
}
1113

1214
<template>

admin/app/components/users/user-organization-memberships.gjs

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ import { LinkTo } from '@ember/routing';
44
import { service } from '@ember/service';
55
import Component from '@glimmer/component';
66
import { t } from 'ember-intl';
7+
import sortBy from 'lodash/sortBy';
78

89
import ActionsOnUsersRoleInOrganization from '../actions-on-users-role-in-organization';
910

1011
export default class UserOrganizationMemberships extends Component {
1112
@service accessControl;
1213

1314
get orderedOrganizationMemberships() {
14-
return this.args.organizationMemberships.sortBy('organizationName');
15+
return sortBy(this.args.organizationMemberships, 'organizationName');
1516
}
1617

1718
<template>

admin/app/controllers/authenticated/target-profiles/target-profile/details.js

+10-21
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,36 @@
11
import Controller from '@ember/controller';
2+
import sortBy from 'lodash/sortBy';
23

34
export default class TargetProfileDetailsController extends Controller {
45
get areas() {
5-
return this.model.areas.sortBy('frameworkId', 'code').map((area) => this.buildAreaViewModel(area));
6+
return sortBy(this.model.areas, ['frameworkId', 'code']).map((area) => this.buildAreaViewModel(area));
67
}
78

89
buildAreaViewModel(area) {
910
return {
1011
title: `${area.code} · ${area.title}`,
1112
color: area.color,
12-
competences: area
13-
.hasMany('competences')
14-
.value()
15-
.sortBy('index')
16-
.map((competence) => this.buildCompetenceViewModel(competence)),
13+
competences: sortBy(area.hasMany('competences').value(), 'index').map((competence) =>
14+
this.buildCompetenceViewModel(competence),
15+
),
1716
};
1817
}
1918

2019
buildCompetenceViewModel(competence) {
2120
return {
2221
id: competence.id,
2322
title: `${competence.index} ${competence.name}`,
24-
thematics: competence
25-
.hasMany('thematics')
26-
.value()
27-
.sortBy('index')
28-
.map((thematic) => this.buildThematicViewModel(thematic)),
23+
thematics: sortBy(competence.hasMany('thematics').value(), 'index').map((thematic) =>
24+
this.buildThematicViewModel(thematic),
25+
),
2926
};
3027
}
3128

3229
buildThematicViewModel(thematic) {
3330
return {
3431
name: thematic.name,
3532
nbTubes: thematic.hasMany('tubes').value().length,
36-
tubes: thematic
37-
.hasMany('tubes')
38-
.value()
39-
.sortBy('practicalTitle')
40-
.map((tube) => this.buildTubeViewModel(tube)),
33+
tubes: sortBy(thematic.hasMany('tubes').value(), 'practicalTitle').map((tube) => this.buildTubeViewModel(tube)),
4134
};
4235
}
4336

@@ -48,11 +41,7 @@ export default class TargetProfileDetailsController extends Controller {
4841
level: tube.level,
4942
mobile: tube.mobile,
5043
tablet: tube.tablet,
51-
skills: tube
52-
.hasMany('skills')
53-
.value()
54-
.sortBy('difficulty')
55-
.map((skill) => this.buildSkillViewModel(skill)),
44+
skills: sortBy(tube.hasMany('skills').value(), 'difficulty').map((skill) => this.buildSkillViewModel(skill)),
5645
};
5746
}
5847

admin/app/models/area.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import Model, { attr, hasMany } from '@ember-data/model';
2+
import sortBy from 'lodash/sortBy';
23

34
export default class Area extends Model {
45
@attr() title;
@@ -9,6 +10,6 @@ export default class Area extends Model {
910
@hasMany('competence', { async: true, inverse: null }) competences;
1011

1112
get sortedCompetences() {
12-
return this.hasMany('competences').value().sortBy('index');
13+
return sortBy(this.hasMany('competences').value(), 'index');
1314
}
1415
}

admin/app/models/competence.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import Model, { attr, hasMany } from '@ember-data/model';
2+
import sortBy from 'lodash/sortBy';
23

34
export default class Competence extends Model {
45
@attr() name;
@@ -7,6 +8,6 @@ export default class Competence extends Model {
78
@hasMany('thematic', { async: true, inverse: null }) thematics;
89

910
get sortedThematics() {
10-
return this.hasMany('thematics').value().sortBy('index');
11+
return sortBy(this.hasMany('thematics').value(), 'index');
1112
}
1213
}

admin/app/models/training.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import Model, { attr, hasMany } from '@ember-data/model';
2+
import sortBy from 'lodash/sortBy';
23

34
import formatList from '../utils/format-select-options';
45

@@ -54,6 +55,6 @@ export default class Training extends Model {
5455
}
5556

5657
get sortedTargetProfileSummaries() {
57-
return this.hasMany('targetProfileSummaries').value().sortBy('id');
58+
return sortBy(this.hasMany('targetProfileSummaries').value(), 'id');
5859
}
5960
}

admin/tests/integration/components/certification-centers/information-view-test.gjs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { render } from '@1024pix/ember-testing-library';
2-
import ArrayProxy from '@ember/array/proxy';
32
import { t } from 'ember-intl/test-support';
43
import InformationView from 'pix-admin/components/certification-centers/information-view';
54
import { module, test } from 'qunit';
@@ -18,7 +17,7 @@ module('Integration | Component | certification-centers/information-view', funct
1817
label: 'Pix+Droit',
1918
});
2019
const cleaHabilitation = store.createRecord('complementary-certification', { id: 1, key: 'CLEA', label: 'Cléa' });
21-
const availableHabilitations = ArrayProxy.create({ content: [pixDroitHabilitation, cleaHabilitation] });
20+
const availableHabilitations = [pixDroitHabilitation, cleaHabilitation];
2221

2322
const certificationCenter = store.createRecord('certification-center', {
2423
name: 'Centre SCO',

admin/tests/unit/components/users/certification-centers/memberships-test.js

-28
This file was deleted.

0 commit comments

Comments
 (0)