[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