From a97cd092fc481f558b26e3c33d856c8fdb6ad84e Mon Sep 17 00:00:00 2001 From: Isaac Hill <71404865+isaachilly@users.noreply.github.com> Date: Thu, 29 Jan 2026 12:30:29 +0100 Subject: [PATCH 1/3] [O2B-1523] Remove GAQ summary from overiew Eliminated GAQ summary fetching and display from RunsPerDataPass and adjusted tests. --- .../RunsPerDataPassOverviewModel.js | 21 ------------------- .../RunsPerDataPassOverviewPage.js | 13 +++--------- .../runs/runsPerDataPass.overview.test.js | 19 ----------------- 3 files changed, 3 insertions(+), 50 deletions(-) diff --git a/lib/public/views/Runs/RunPerDataPass/RunsPerDataPassOverviewModel.js b/lib/public/views/Runs/RunPerDataPass/RunsPerDataPassOverviewModel.js index c8a48b9228..863840d869 100644 --- a/lib/public/views/Runs/RunPerDataPass/RunsPerDataPassOverviewModel.js +++ b/lib/public/views/Runs/RunPerDataPass/RunsPerDataPassOverviewModel.js @@ -55,9 +55,6 @@ export class RunsPerDataPassOverviewModel extends FixedPdpBeamTypeRunsOverviewMo this.registerDetectorsForQcFlagsDataExport(this._detectors$); this.registerObervablesQcSummaryDependesOn([this._detectors$]); - this._gaqSummary$ = new ObservableData(RemoteData.notAsked()); - this._gaqSummary$.bubbleTo(this); - this._markAsSkimmableRequestResult$ = new ObservableData(RemoteData.notAsked()); this._markAsSkimmableRequestResult$.bubbleTo(this); @@ -119,7 +116,6 @@ export class RunsPerDataPassOverviewModel extends FixedPdpBeamTypeRunsOverviewMo return; } - this._fetchGaqSummary(); await this._fetchDataPass().then(() => this._dataPass$.getCurrent().match({ Success: ({ skimmingStage, pdpBeamTypes }) => { @@ -325,23 +321,6 @@ export class RunsPerDataPassOverviewModel extends FixedPdpBeamTypeRunsOverviewMo } } - /** - * Fetch GAQ summary for given data pass - * @return {Promise} resolves once data are fetched - */ - async _fetchGaqSummary() { - this._gaqSummary$.setCurrent(RemoteData.loading()); - try { - const { data: gaqSummary } = await getRemoteData(buildUrl('/api/qcFlags/summary/gaq', { - dataPassId: this._dataPassId, - mcReproducibleAsNotBad: this._mcReproducibleAsNotBad, - })); - this._gaqSummary$.setCurrent(RemoteData.success(gaqSummary)); - } catch (error) { - this._gaqSummary$.setCurrent(RemoteData.failure(error)); - } - } - /** * Fetch skimmable runs for given data pass * @return {Promise} resolves once data are fetched diff --git a/lib/public/views/Runs/RunPerDataPass/RunsPerDataPassOverviewPage.js b/lib/public/views/Runs/RunPerDataPass/RunsPerDataPassOverviewPage.js index e9aa823d24..964d8669da 100644 --- a/lib/public/views/Runs/RunPerDataPass/RunsPerDataPassOverviewPage.js +++ b/lib/public/views/Runs/RunPerDataPass/RunsPerDataPassOverviewPage.js @@ -25,7 +25,6 @@ import { runNumbersFilter } from '../../../components/Filters/RunsFilter/runNumb import { qcSummaryLegendTooltip } from '../../../components/qcFlags/qcSummaryLegendTooltip.js'; import { isRunNotSubjectToQc } from '../../../components/qcFlags/isRunNotSubjectToQc.js'; import { frontLink } from '../../../components/common/navigation/frontLink.js'; -import { getQcSummaryDisplay } from '../ActiveColumns/getQcSummaryDisplay.js'; import errorAlert from '../../../components/common/errorAlert.js'; import { switchInput } from '../../../components/common/form/switchInput.js'; import { PdpBeamType } from '../../../domain/enums/PdpBeamType.js'; @@ -103,7 +102,6 @@ export const RunsPerDataPassOverviewPage = ({ detectors: remoteDetectors, dataPass: remoteDataPass, qcSummary: remoteQcSummary, - gaqSummary: remoteGaqSummary, displayOptions, dataPassId, sortModel, @@ -120,10 +118,10 @@ export const RunsPerDataPassOverviewPage = ({ return h( '.intermediate-flex-column', - mergeRemoteData([remoteDataPass, remoteRuns, remoteDetectors, remoteQcSummary, remoteGaqSummary]).match({ + mergeRemoteData([remoteDataPass, remoteRuns, remoteDetectors, remoteQcSummary]).match({ NotAsked: () => null, Failure: (errors) => errorAlert(errors), - Success: ([dataPass, runs, detectors, qcSummary, gaqSummary]) => { + Success: ([dataPass, runs, detectors, qcSummary]) => { const activeColumns = { ...runsActiveColumns, ...getInelasticInteractionRateColumns(pdpBeamTypes), @@ -162,12 +160,7 @@ export const RunsPerDataPassOverviewPage = ({ ), visible: true, format: (_, { runNumber }) => { - const runGaqSummary = gaqSummary[runNumber]; - - const gaqDisplay = runGaqSummary?.undefinedQualityPeriodsCount === 0 - ? getQcSummaryDisplay(runGaqSummary) - : h('button.btn.btn-primary.w-100', 'GAQ'); - + const gaqDisplay = h('button.btn.btn-primary.w-100', 'GAQ'); return frontLink(gaqDisplay, 'gaq-flags', { dataPassId, runNumber }); }, filter: ({ filteringModel }) => numericalComparisonFilter( diff --git a/test/public/runs/runsPerDataPass.overview.test.js b/test/public/runs/runsPerDataPass.overview.test.js index e8ea387b87..f4a9b91df0 100644 --- a/test/public/runs/runsPerDataPass.overview.test.js +++ b/test/public/runs/runsPerDataPass.overview.test.js @@ -147,9 +147,6 @@ module.exports = () => { await expectInnerText(page, '#row106-globalAggregatedQuality', 'GAQ'); - await expectInnerText(page, '#row107-globalAggregatedQuality', '76'); - expect(await getPopoverInnerText(await page.waitForSelector('#row107-globalAggregatedQuality .popover-trigger'))) - .to.be.equal('Missing 3 verifications'); }); it('should ignore QC flags created by services in QC summaries of AOT and MUON ', async () => { @@ -471,23 +468,7 @@ module.exports = () => { }); } - it('should successfully apply gaqNotBadFraction filters', async () => { - await navigateToRunsPerDataPass(page, 2, 1, 3); - - await pressElement(page, '#openFilterToggle', true); - - await page.waitForSelector('#gaqNotBadFraction-operator'); - await page.select('#gaqNotBadFraction-operator', '<='); - await fillInput(page, '#gaqNotBadFraction-operand', '80', ['change']); - await expectColumnValues(page, 'runNumber', ['107']); - - await pressElement(page, '#mcReproducibleAsNotBadToggle input', true); - await expectColumnValues(page, 'runNumber', []); - await pressElement(page, '#openFilterToggle', true); - await pressElement(page, '#reset-filters', true); - await expectColumnValues(page, 'runNumber', ['108', '107', '106']); - }); it('should successfully apply detectors notBadFraction filters', async () => { await page.waitForSelector('#detectorsQc-for-1-notBadFraction-operator'); From d54b26c3c8fd1393b19d28e5a1918c079bffbf8a Mon Sep 17 00:00:00 2001 From: Isaac Hill <71404865+isaachilly@users.noreply.github.com> Date: Thu, 29 Jan 2026 12:45:44 +0100 Subject: [PATCH 2/3] [O2B-1523] unnecessarily removed gaqNotBadFraction filter --- .../public/runs/runsPerDataPass.overview.test.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/public/runs/runsPerDataPass.overview.test.js b/test/public/runs/runsPerDataPass.overview.test.js index f4a9b91df0..bc16db4ee5 100644 --- a/test/public/runs/runsPerDataPass.overview.test.js +++ b/test/public/runs/runsPerDataPass.overview.test.js @@ -468,7 +468,23 @@ module.exports = () => { }); } + it('should successfully apply gaqNotBadFraction filters', async () => { + await navigateToRunsPerDataPass(page, 2, 1, 3); + + await pressElement(page, '#openFilterToggle', true); + + await page.waitForSelector('#gaqNotBadFraction-operator'); + await page.select('#gaqNotBadFraction-operator', '<='); + await fillInput(page, '#gaqNotBadFraction-operand', '80', ['change']); + await expectColumnValues(page, 'runNumber', ['107']); + + await pressElement(page, '#mcReproducibleAsNotBadToggle input', true); + await expectColumnValues(page, 'runNumber', []); + await pressElement(page, '#openFilterToggle', true); + await pressElement(page, '#reset-filters', true); + await expectColumnValues(page, 'runNumber', ['108', '107', '106']); + }); it('should successfully apply detectors notBadFraction filters', async () => { await page.waitForSelector('#detectorsQc-for-1-notBadFraction-operator'); From 2c6dc204119daf720b011862a11ddcefeb2dbf6a Mon Sep 17 00:00:00 2001 From: Isaac Hill <71404865+isaachilly@users.noreply.github.com> Date: Thu, 29 Jan 2026 12:59:52 +0100 Subject: [PATCH 3/3] [O2B1523] Fix indentation in gaqNotBadFraction filter test --- test/public/runs/runsPerDataPass.overview.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/public/runs/runsPerDataPass.overview.test.js b/test/public/runs/runsPerDataPass.overview.test.js index bc16db4ee5..4e7bdedcdf 100644 --- a/test/public/runs/runsPerDataPass.overview.test.js +++ b/test/public/runs/runsPerDataPass.overview.test.js @@ -468,7 +468,7 @@ module.exports = () => { }); } - it('should successfully apply gaqNotBadFraction filters', async () => { + it('should successfully apply gaqNotBadFraction filters', async () => { await navigateToRunsPerDataPass(page, 2, 1, 3); await pressElement(page, '#openFilterToggle', true);