diff --git a/CHANGELOG.md b/CHANGELOG.md index ee436fd42a743bf1aecb9f8e3401808487569842..8c131f8769f8f49d97a3d0e58f538100ef3fbcd2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,28 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [1.4.4](https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/compare/v1.4.3...v1.4.4) (2021-11-10) + + +### Features + +* **analysis:** Add new pie chart section ([20ecfec](https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/commit/20ecfec1877039bd0723c30b49cdc1f2ff410c39)) +* **Analysis:** update analysis card ([234109e](https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/commit/234109ef12255768521ea3b848cc0692602b6620)) +* **faq:** Add 2 more answers about data questions ([3af8f80](https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/commit/3af8f808348610148811821e91d396f71f3c4bb6)) +* **HalfHour:** Edited text related to half hour harvest activation ([46dd6f2](https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/commit/46dd6f28175c262d1f6f83c81a203f181c60b707)) +* **profileType:** Now user can choose fuel or wood as warming type ([82457f9](https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/commit/82457f9864c70632d2daca180c2d5e9dd8848803)) +* scaffolding for new analysis page ([8842ba7](https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/commit/8842ba74d51aeac8e57679f92c92f35bd0f8c808)) + + +### Bug Fixes + +* **analysis:** error-modal-horizontal-scroll ([8713da4](https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/commit/8713da476bc378954dcee4d8c007ae1e194b6d29)) +* **Cicd:** rollback dependency proxy due to 403 issue when pulling images ([38607cf](https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/commit/38607cf29034ba4cfed78d3d50e606ad7c0c5508)) +* **conso:** update konnector card if refresh data ([1fdf29d](https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/commit/1fdf29dbd1c3692ac28c22a32845e60029da2d41)) +* **design:** update small design issues ([15c5ab5](https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/commit/15c5ab5c28577ff46d2deca2321f1bbbb34efd30)) +* **Email:** update consumptionAlert link ([8317107](https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/commit/8317107c4c01aa73853b350453f8d5ccb0b4e6ef)) +* **tests:** release notes store tests ([a2b8650](https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/commit/a2b86503de5cac6dc488a04234c2127a62fd79ad)) + ### [1.4.3](https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/compare/v1.4.2...v1.4.3) (2021-11-09) ### Features diff --git a/manifest.webapp b/manifest.webapp index 1f7fc64c4b9bfe6f5f8236024f7f9b72e9209d2e..f7fe1536b7353c7a895e7dca8125fdc4fd931606 100644 --- a/manifest.webapp +++ b/manifest.webapp @@ -3,7 +3,7 @@ "slug": "ecolyo", "icon": "icon.svg", "categories": ["energy"], - "version": "1.4.3", + "version": "1.4.4", "licence": "AGPL-3.0", "editor": "Métropole de Lyon", "default_locale": "fr", diff --git a/package.json b/package.json index 5ca9fc93746c36ed2365cada417cd204ff887d90..d4a01ebffa683aab025cd8e3d80c02bdf8ae3c94 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ecolyo", - "version": "1.4.3", + "version": "1.4.4", "scripts": { "tx": "tx pull --all || true", "lint": "yarn lint:js && yarn lint:styles", diff --git a/src/components/Home/ConsumptionView.spec.tsx b/src/components/Home/ConsumptionView.spec.tsx index 63290850868c1e64f39b8fab138bd3192e73c501..ab185281da6aad34b183cfc72646be1527f3537a 100644 --- a/src/components/Home/ConsumptionView.spec.tsx +++ b/src/components/Home/ConsumptionView.spec.tsx @@ -58,6 +58,7 @@ describe('ConsumptionView component', () => { currentTimeStep: TimeStep.WEEK, loading: false, fluidStatus: mockInitialEcolyoState.global.fluidStatus, + releaseNotes: mockInitialEcolyoState.global.releaseNotes, }) const wrapper = mount( <Provider store={store}> @@ -76,6 +77,7 @@ describe('ConsumptionView component', () => { currentTimeStep: TimeStep.WEEK, loading: true, fluidStatus: mockInitialEcolyoState.global.fluidStatus, + releaseNotes: mockInitialEcolyoState.global.releaseNotes, }) const wrapper = mount( <Provider store={store}> @@ -93,6 +95,7 @@ describe('ConsumptionView component', () => { currentTimeStep: TimeStep.HALF_AN_HOUR, loading: true, fluidStatus: mockInitialEcolyoState.global.fluidStatus, + releaseNotes: mockInitialEcolyoState.global.releaseNotes, }) mount( <Provider store={store}> @@ -107,6 +110,7 @@ describe('ConsumptionView component', () => { currentTimeStep: TimeStep.WEEK, loading: true, fluidStatus: mockInitialEcolyoState.global.fluidStatus, + releaseNotes: mockInitialEcolyoState.global.releaseNotes, }) const wrapper = mount( <Provider store={store}> @@ -124,6 +128,7 @@ describe('ConsumptionView component', () => { currentTimeStep: TimeStep.WEEK, loading: true, fluidStatus: updatedStatus, + releaseNotes: mockInitialEcolyoState.global.releaseNotes, }) const wrapper = mount( <Provider store={store}> @@ -140,6 +145,7 @@ describe('ConsumptionView component', () => { currentTimeStep: TimeStep.WEEK, loading: true, fluidStatus: updatedStatus, + releaseNotes: mockInitialEcolyoState.global.releaseNotes, }) const wrapper = mount( <Provider store={store}> diff --git a/src/components/Konnector/KonnectorViewerCard.tsx b/src/components/Konnector/KonnectorViewerCard.tsx index fc7e7923d409f09fefe5edc972b4b8b7bcb0ee8f..6b7bad4ac7c44242ac7dd3aef8d0eee58c55fd63 100644 --- a/src/components/Konnector/KonnectorViewerCard.tsx +++ b/src/components/Konnector/KonnectorViewerCard.tsx @@ -77,6 +77,9 @@ const KonnectorViewerCard: React.FC<KonnectorViewerCardProps> = ({ const konnector: Konnector | null = fluidStatus.connection.konnector const account: Account | null = fluidStatus.connection.account const trigger: Trigger | null = fluidStatus.connection.trigger + const { fluidStatus: statusArray } = useSelector( + (state: AppStore) => state.ecolyo.global + ) const [openModal, setOpenModal] = useState(false) const [isUpdating, setIsUpdating] = useState(false) @@ -92,6 +95,13 @@ const KonnectorViewerCard: React.FC<KonnectorViewerCardProps> = ({ (state: AppStore) => state.ecolyo.challenge ) + /* eslint-disable @typescript-eslint/no-non-null-assertion */ + + const lastDataDate = + fluidType !== FluidType.MULTIFLUID && statusArray[fluidType].lastDataDate + ? statusArray[fluidType].lastDataDate!.toLocaleString() + : '' + const iconType = getParamPicto(fluidStatus.fluidType) const iconAddType = isParam ? getParamPicto(fluidStatus.fluidType) @@ -200,6 +210,7 @@ const KonnectorViewerCard: React.FC<KonnectorViewerCardProps> = ({ fluidStatus={fluidStatus} handleAccountDeletion={handleAccountDeletion} fluidType={fluidType} + key={lastDataDate} /> ) } else { @@ -209,11 +220,11 @@ const KonnectorViewerCard: React.FC<KonnectorViewerCardProps> = ({ fluidState, isUpdating, account, - openModal, fluidStatus, fluidSlug, handleAccountDeletion, fluidType, + lastDataDate, ]) const callbackResponse = useCallback( diff --git a/src/migrations/migration.data.ts b/src/migrations/migration.data.ts index 06da77d55ebb924f2486556ee120e110659b9368..2a520874d8f68f88644ef054286621230e2e9794 100644 --- a/src/migrations/migration.data.ts +++ b/src/migrations/migration.data.ts @@ -46,8 +46,33 @@ export const migrations: Migration[] = [ 'window_replacement_and_wall_insulation' ) ) { - doc.individualInsulationWork = 'window_replacement' + doc.individualInsulationWork = [ + 'window_replacement', + 'wall_insulation', + ] } + if ( + doc.individualInsulationWork.includes( + 'window_replacement_and_roof_insulation' + ) + ) { + doc.individualInsulationWork = [ + 'window_replacement', + 'roof_insulation', + ] + } + if ( + doc.individualInsulationWork.includes( + 'window_replacement_and_roof_and_wall_insulation' + ) + ) { + doc.individualInsulationWork = [ + 'window_replacement', + 'roof_insulation', + 'wall_insulation', + ] + } + doc.outsideFacingWalls = doc.outsideFacingWalls.toString() doc.area = doc.area.toString() doc.updateDate = doc.cozyMetadata.createdAt @@ -101,7 +126,7 @@ export const migrations: Migration[] = [ baseSchemaVersion: 3, targetSchemaVersion: 4, appVersion: '1.4.3', - description: 'Correction de vos données Eau du Grandlyon journalières.', + description: 'Corrects daily EGL data.', releaseNotes: { title: "Des corrections sur la connexion aux données de consommation d'eau ont été apportées.", @@ -125,7 +150,7 @@ export const migrations: Migration[] = [ baseSchemaVersion: 4, targetSchemaVersion: 5, appVersion: '1.4.3', - description: 'Correction de vos données Eau du Grandlyon mensuelles.', + description: 'Corrects monthly EGL data.', releaseNotes: null, docTypes: EGL_MONTH_DOCTYPE, queryOptions: { @@ -144,7 +169,7 @@ export const migrations: Migration[] = [ baseSchemaVersion: 5, targetSchemaVersion: 6, appVersion: '1.4.3', - description: 'Correction de vos données Eau du Grandlyon annuelles.', + description: 'Corrects yearly EGL data.', releaseNotes: null, docTypes: EGL_YEAR_DOCTYPE, queryOptions: { @@ -159,4 +184,52 @@ export const migrations: Migration[] = [ }) }, }, + { + baseSchemaVersion: 6, + targetSchemaVersion: 7, + appVersion: '1.4.4', + description: 'Corrects individual insulation work field on profileType.', + releaseNotes: null, + docTypes: PROFILETYPE_DOCTYPE, + run: async (_client: Client, docs: any[]): Promise<ProfileType[]> => { + return docs.map(doc => { + if (!Array.isArray(doc.individualInsulationWork)) { + doc.individualInsulationWork = [doc.individualInsulationWork] + } + if ( + doc.individualInsulationWork.includes( + 'window_replacement_and_wall_insulation' + ) + ) { + doc.individualInsulationWork = [ + 'window_replacement', + 'wall_insulation', + ] + } + if ( + doc.individualInsulationWork.includes( + 'window_replacement_and_roof_insulation' + ) + ) { + doc.individualInsulationWork = [ + 'window_replacement', + 'roof_insulation', + ] + } + if ( + doc.individualInsulationWork.includes( + 'window_replacement_and_roof_and_wall_insulation' + ) + ) { + doc.individualInsulationWork = [ + 'window_replacement', + 'roof_insulation', + 'wall_insulation', + ] + } + + return doc + }) + }, + }, ] diff --git a/tests/__mocks__/store.ts b/tests/__mocks__/store.ts index c717c47996f3d1e4bcd02c39d643f36ca448fb28..d389f3f9a98c43c953b32e306b601a22b744255e 100644 --- a/tests/__mocks__/store.ts +++ b/tests/__mocks__/store.ts @@ -33,6 +33,7 @@ export const mockInitialGlobalState: GlobalState = { challengeDuelNotification: false, analysisNotification: false, isLastTermAccepted: false, + releaseNotes: { show: false, notes: [{ description: '', title: '' }] }, fluidStatus: [ { fluidType: FluidType.ELECTRICITY,