Skip to content

Commit 3e32523

Browse files
authored
MBS-11689: Report for pseudo-releases marked as the original tracklist (metabrainz#2174)
1 parent 00e722d commit 3e32523

File tree

5 files changed

+84
-0
lines changed

5 files changed

+84
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package MusicBrainz::Server::Report::MislinkedPseudoReleases;
2+
use Moose;
3+
4+
with 'MusicBrainz::Server::Report::ReleaseReport',
5+
'MusicBrainz::Server::Report::FilterForEditor::ReleaseID';
6+
7+
sub query {<<~'EOSQL'}
8+
SELECT r.id AS release_id,
9+
row_number() OVER (ORDER BY ac.name COLLATE musicbrainz, r.name COLLATE musicbrainz)
10+
FROM release r
11+
JOIN l_release_release lrr ON r.id = lrr.entity0
12+
JOIN link l ON l.id = lrr.link
13+
JOIN link_type lt ON l.link_type = lt.id
14+
JOIN artist_credit ac ON r.artist_credit = ac.id
15+
WHERE lt.gid = 'fc399d47-23a7-4c28-bfcf-0607a562b644' --transl(iter)ation
16+
AND r.status = 4 --pseudo-release
17+
EOSQL
18+
19+
__PACKAGE__->meta->make_immutable;
20+
no Moose;
21+
1;
22+
23+
=head1 COPYRIGHT AND LICENSE
24+
25+
Copyright (C) 2021 MetaBrainz Foundation
26+
27+
This file is part of MusicBrainz, the open internet music database,
28+
and is licensed under the GPL version 2, or (at your option) any
29+
later version: http://www.gnu.org/licenses/gpl-2.0.txt
30+
31+
=cut

lib/MusicBrainz/Server/ReportFactory.pm

+2
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ use MusicBrainz::Server::PagedReport;
6060
LimitedEditors
6161
LinksWithMultipleEntities
6262
MediumsWithSequenceIssues
63+
MislinkedPseudoReleases
6364
MultipleASINs
6465
MultipleDiscogsLinks
6566
NoLanguage
@@ -153,6 +154,7 @@ use MusicBrainz::Server::Report::LabelsDisambiguationSameName;
153154
use MusicBrainz::Server::Report::LimitedEditors;
154155
use MusicBrainz::Server::Report::LinksWithMultipleEntities;
155156
use MusicBrainz::Server::Report::MediumsWithSequenceIssues;
157+
use MusicBrainz::Server::Report::MislinkedPseudoReleases;
156158
use MusicBrainz::Server::Report::MultipleASINs;
157159
use MusicBrainz::Server::Report::MultipleDiscogsLinks;
158160
use MusicBrainz::Server::Report::NoLanguage;
+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* @flow strict-local
3+
* Copyright (C) 2021 MetaBrainz Foundation
4+
*
5+
* This file is part of MusicBrainz, the open internet music database,
6+
* and is licensed under the GPL version 2, or (at your option) any
7+
* later version: http://www.gnu.org/licenses/gpl-2.0.txt
8+
*/
9+
10+
import * as React from 'react';
11+
12+
import ReleaseList from './components/ReleaseList';
13+
import ReportLayout from './components/ReportLayout';
14+
import type {ReportDataT, ReportReleaseT} from './types';
15+
16+
const MislinkedPseudoReleases = ({
17+
canBeFiltered,
18+
filtered,
19+
generated,
20+
items,
21+
pager,
22+
}: ReportDataT<ReportReleaseT>): React.Element<typeof ReportLayout> => (
23+
<ReportLayout
24+
canBeFiltered={canBeFiltered}
25+
description={l(
26+
`This report shows releases with status Pseudo-Release that are
27+
marked as the original version of a translation/transliteration
28+
relationship. The pseudo-release should be the one marked as a
29+
translated/transliterated version instead. If both releases
30+
are pseudo-releases, consider linking both to an official release
31+
rather than to each other.`,
32+
)}
33+
entityType="release"
34+
filtered={filtered}
35+
generated={generated}
36+
title={l('Translated/transliterated pseudo-releases marked as original')}
37+
totalEntries={pager.total_entries}
38+
>
39+
<ReleaseList items={items} pager={pager} />
40+
</ReportLayout>
41+
);
42+
43+
export default MislinkedPseudoReleases;

root/report/ReportsIndex.js

+7
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,13 @@ const ReportsIndex = ({$c}: Props): React.Element<typeof Layout> => (
325325
)}
326326
reportName="CatNoLooksLikeLabelCode"
327327
/>
328+
<ReportsIndexEntry
329+
content={l(
330+
`Translated/Transliterated Pseudo-Releases
331+
marked as the original version`,
332+
)}
333+
reportName="MislinkedPseudoReleases"
334+
/>
328335
<ReportsIndexEntry
329336
content={l(
330337
`Translated/Transliterated Pseudo-Releases

root/server/components.js

+1
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ module.exports = {
204204
'report/LimitedEditors': require('../report/LimitedEditors'),
205205
'report/LinksWithMultipleEntities': require('../report/LinksWithMultipleEntities'),
206206
'report/MediumsWithSequenceIssues': require('../report/MediumsWithSequenceIssues'),
207+
'report/MislinkedPseudoReleases': require('../report/MislinkedPseudoReleases'),
207208
'report/MultipleAsins': require('../report/MultipleAsins'),
208209
'report/MultipleDiscogsLinks': require('../report/MultipleDiscogsLinks'),
209210
'report/NoLanguage': require('../report/NoLanguage'),

0 commit comments

Comments
 (0)