[mb-commits] r9767 - in mb_server/branches/ReleaseTrack: cgi-bin/MusicBrainz/Server cgi-bin/MusicBrainz/Server/Moderation t
root at musicbrainz.org
root at musicbrainz.org
Tue Mar 11 14:47:32 UTC 2008
Author: luks
Date: 2008-03-11 14:47:32 +0000 (Tue, 11 Mar 2008)
New Revision: 9767
Modified:
mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Moderation/MOD_CHANGE_TRACK_ARTIST.pm
mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Moderation/MOD_EDIT_TRACKNUM.pm
mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/ReleaseTrack.pm
mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Track.pm
mb_server/branches/ReleaseTrack/t/release-track.t
Log:
Move UpdateSequence to from Track to ReleaseTrack
Modified: mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Moderation/MOD_CHANGE_TRACK_ARTIST.pm
===================================================================
--- mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Moderation/MOD_CHANGE_TRACK_ARTIST.pm 2008-03-11 14:28:10 UTC (rev 9766)
+++ mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Moderation/MOD_CHANGE_TRACK_ARTIST.pm 2008-03-11 14:47:32 UTC (rev 9767)
@@ -72,14 +72,14 @@
# Check the old artist
$ar->SetId($self->{artist});
- if (0 && $ar->LoadFromId())
+ if ($ar->LoadFromId())
{
$level = $ar->GetQuality() > $level ? $ar->GetQuality() : $level;
return $level if ($level == &ModDefs::QUALITY_HIGH);
}
# Check the new artist
$ar->SetId($self->{'new.id'});
- if (0 && $ar->LoadFromId())
+ if ($ar->LoadFromId())
{
$level = $ar->GetQuality() > $level ? $ar->GetQuality() : $level;
return $level if ($level == &ModDefs::QUALITY_HIGH);
Modified: mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Moderation/MOD_EDIT_TRACKNUM.pm
===================================================================
--- mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Moderation/MOD_EDIT_TRACKNUM.pm 2008-03-11 14:28:10 UTC (rev 9766)
+++ mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Moderation/MOD_EDIT_TRACKNUM.pm 2008-03-11 14:47:32 UTC (rev 9767)
@@ -100,19 +100,20 @@
sub ApprovedAction
{
- my $this = shift;
+ my $self = shift;
- require MusicBrainz::Server::Track;
- my $track = MusicBrainz::Server::Track->new($this->{DBH});
- unless ($track->LoadFromAlbumJoin($this->GetRowId))
+ require MusicBrainz::Server::ReleaseTrack;
+ my $track = MusicBrainz::Server::ReleaseTrack->new($self->{DBH});
+ $track->SetId($self->GetRowId);
+ unless ($track->LoadFromId)
{
- $this->InsertNote(MODBOT_MODERATOR, "This track has been deleted");
+ $self->InsertNote(MODBOT_MODERATOR, "This track has been deleted");
return STATUS_FAILEDPREREQ;
}
- unless ($track->GetSequence == $this->GetPrev)
+ unless ($track->GetSequence == $self->GetPrev)
{
- $this->InsertNote(MODBOT_MODERATOR, "This track has already been renumbered");
+ $self->InsertNote(MODBOT_MODERATOR, "This track has already been renumbered");
return STATUS_FAILEDDEP;
}
@@ -120,7 +121,7 @@
# (but if you do that, it makes it very hard to swap/rotate
# tracks within an album).
- $track->SetSequence($this->GetNew);
+ $track->SetSequence($self->GetNew);
$track->UpdateSequence;
STATUS_APPLIED;
Modified: mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/ReleaseTrack.pm
===================================================================
--- mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/ReleaseTrack.pm 2008-03-11 14:28:10 UTC (rev 9766)
+++ mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/ReleaseTrack.pm 2008-03-11 14:47:32 UTC (rev 9767)
@@ -47,6 +47,28 @@
sub GetSequence { return $_[0]->{sequence} }
sub SetSequence { $_[0]->{sequence} = $_[1] }
+sub LoadFromId {
+ my ($self) = @_;
+
+ my $id = $self->GetId;
+ if (!$id) {
+ carp "No ID specified";
+ return undef;
+ }
+
+ my $sql = Sql->new($self->{DBH});
+ my $row = $sql->SelectSingleRowHash("
+ SELECT id, album, track, sequence, modpending
+ FROM albumjoin WHERE id = ?", $id);
+
+ if (!defined($row)) {
+ return undef;
+ }
+
+ $self->LoadFromRow($row);
+ return 1;
+}
+
# Load this object from a database row
sub LoadFromRow {
my ($self, $row) = @_;
@@ -58,6 +80,14 @@
$self->SetModPending($row->{modpending});
}
+sub UpdateSequence
+{
+ my $self = shift;
+ my $sql = Sql->new($self->{DBH});
+ $sql->Do("UPDATE albumjoin SET sequence = ? WHERE id = ?",
+ $self->GetSequence, $self->GetId);
+}
+
# Find all tracks by a release ID
sub FindByReleaseId {
my ($class, $dbh, $releaseid) = @_;
Modified: mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Track.pm
===================================================================
--- mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Track.pm 2008-03-11 14:28:10 UTC (rev 9766)
+++ mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Track.pm 2008-03-11 14:47:32 UTC (rev 9767)
@@ -457,18 +457,6 @@
);
}
-sub UpdateSequence
-{
- my $self = shift;
- my $sql = Sql->new($self->{DBH});
-
- $sql->Do(
- "UPDATE albumjoin SET sequence = ? WHERE id = ?",
- $self->GetSequence,
- $self->GetSequenceId,
- );
-}
-
sub RemoveFromAlbum
{
my $self = shift;
Modified: mb_server/branches/ReleaseTrack/t/release-track.t
===================================================================
--- mb_server/branches/ReleaseTrack/t/release-track.t 2008-03-11 14:28:10 UTC (rev 9766)
+++ mb_server/branches/ReleaseTrack/t/release-track.t 2008-03-11 14:47:32 UTC (rev 9767)
@@ -12,7 +12,7 @@
plan skip_all => 'No testing database.';
}
else {
- plan tests => 18;
+ plan tests => 25;
}
my $mb = MusicBrainz->new();
@@ -35,8 +35,9 @@
END
my $sql = Sql->new($mb->{DBH});
-$sql->AutoCommit;
+$sql->Begin;
$sql->Do($sqldata);
+$sql->Commit;
my ($tracks, $releases);
@@ -66,4 +67,20 @@
is $releases->[0]->GetSequence, 2;
is $releases->[0]->GetRelease->GetName, "Release 1";
+my $track = MusicBrainz::Server::ReleaseTrack->new($mb->{DBH});
+$track->SetId(10);
+ok $track->LoadFromId;
+is $track->GetSequence, 1;
+$track->SetSequence(3);
+$sql->Begin;
+$track->UpdateSequence;
+$sql->Commit;
+
+$tracks = MusicBrainz::Server::ReleaseTrack->FindByReleaseId($mb->{DBH}, 10);
+is scalar(@$tracks), 2;
+is $tracks->[0]->GetSequence, 2;
+is $tracks->[0]->GetTrack->GetName, "Track 2";
+is $tracks->[1]->GetSequence, 3;
+is $tracks->[1]->GetTrack->GetName, "Track 1";
+
$mb->Logout;
More information about the MusicBrainz-commits
mailing list