[mb-commits] r10406 - in mb_server/branches/TemplateToolkit: lib/MusicBrainz/Server/Controller lib/MusicBrainz/Server/Form root/releases

root at musicbrainz.org root at musicbrainz.org
Tue Sep 30 16:30:51 UTC 2008


Author: acid2
Date: 2008-09-30 16:30:51 +0000 (Tue, 30 Sep 2008)
New Revision: 10406

Added:
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/MoveRelease.pm
   mb_server/branches/TemplateToolkit/root/releases/confirm_move.tt
   mb_server/branches/TemplateToolkit/root/releases/move.tt
Modified:
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Release.pm
Log:
Move release form

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Release.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Release.pm	2008-09-30 15:38:12 UTC (rev 10405)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Release.pm	2008-09-30 16:30:51 UTC (rev 10406)
@@ -204,6 +204,75 @@
     $c->stash->{template} = 'releases/edit-title.tt';
 }
 
+sub move : Chained('release')
+{
+    my ($self, $c) = @_;
+
+    $c->forward('/user/login');
+
+    my $release = $c->stash->{release};
+
+    use MusicBrainz::Server::Form::Search::Query;
+    my $form = new MusicBrainz::Server::Form::Search::Query;
+
+    if ($c->form_posted && $form->validate($c->req->params))
+    {
+        my $artists = $c->model('Artist')->direct_search($form->value('query'));
+        $c->stash->{artists} = $artists;
+    }
+
+    $c->stash->{form    } = $form;
+    $c->stash->{template} = 'releases/move.tt';
+}
+
+sub move_to : Chained('release') Args(1)
+{
+    my ($self, $c, $new_artist) = @_;
+
+    $c->forward('/user/login');
+
+    my $release = $c->stash->{release};
+
+    my $new_artist = $c->model('Artist')->load($new_artist);
+    $c->stash->{new_artist} = $new_artist;
+
+    use MusicBrainz::Server::Form::MoveRelease;
+    my $form = new MusicBrainz::Server::Form::MoveRelease($release);
+    $form->context($c);
+
+    if ($c->form_posted && $form->validate($c->req->params))
+    {
+        my $user       = $c->user;
+        my $old_artist = $c->model('Artist')->load($release->artist);
+
+        my @mods = Moderation->InsertModeration(
+            DBH   => $c->mb->{DBH},
+            uid   => $user->id,
+            privs => $user->privs,
+            type  => ModDefs::MOD_MOVE_RELEASE,
+
+            album              => $release,
+            oldartist          => $old_artist,
+            artistname         => $new_artist->name,
+            artistsortname     => $new_artist->sort_name,
+            artistid           => $new_artist->id,
+            movetracks         => $form->value('move_tracks'),
+        );
+
+        if (scalar @mods)
+        {
+            $mods[0]->InsertNote($user->id, $form->value('edit_note'))
+                if $mods[0] and $form->value('edit_note') =~ /\S/;
+
+            $c->response->redirect($c->entity_url($release, 'show'));
+            $c->detach;
+        }
+    }
+
+    $c->stash->{form    } = $form;
+    $c->stash->{template} = 'releases/confirm_move.tt';
+}
+
 =head1 LICENSE
 
 This software is provided "as is", without warranty of any kind, express or

Added: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/MoveRelease.pm

Added: mb_server/branches/TemplateToolkit/root/releases/confirm_move.tt

Added: mb_server/branches/TemplateToolkit/root/releases/move.tt




More information about the MusicBrainz-commits mailing list