[mb-commits] r10991 - in mb_server/branches/TemplateToolkit: lib lib/MusicBrainz lib/MusicBrainz/Server/Controller lib/MusicBrainz/Server/Model root/moderation

root at musicbrainz.org root at musicbrainz.org
Tue Jan 6 15:19:21 UTC 2009


Author: acid2
Date: 2009-01-06 15:19:20 +0000 (Tue, 06 Jan 2009)
New Revision: 10991

Modified:
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Model/Subscription.pm
   mb_server/branches/TemplateToolkit/lib/UserSubscription.pm
   mb_server/branches/TemplateToolkit/root/moderation/notes.tt
Log:
Support unsubscribing from labels (in groups)

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm	2009-01-02 18:50:56 UTC (rev 10990)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm	2009-01-06 15:19:20 UTC (rev 10991)
@@ -148,29 +148,6 @@
     $c->stash(entity_url => sub { EntityUrl($c, @_); }); 
     $c->stash->{server_details}->{version} = &DBDefs::VERSION;
 
-    # Effectivly a date filter:
-    $c->stash->{user_date} = sub {
-        return unless ('' ne $_[0]);
-
-        use UserPreference;
-
-        my ($date_time_format, $time_zone);
-
-        if ($c->user_exists)
-        {
-            my $prefs = $c->model('User')->get_preferences_hash($c->user);
-            $prefs->load;
-
-            $date_time_format = $prefs->get('datetimeformat');
-            $time_zone        = $prefs->get('timezone');
-        }
-
-        MusicBrainz::Server::DateTime::format_datetime( {
-            datetimeformat => $date_time_format,
-            tz             => $time_zone,
-        }, @_);
-    };
-
     # For displaying release attributes
     $c->stash->{release_attribute}        = \&MusicBrainz::Server::Release::attribute_name;
     $c->stash->{plural_release_attribute} = \&MusicBrainz::Server::Release::attribute_name_as_plural;

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm	2009-01-02 18:50:56 UTC (rev 10990)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm	2009-01-06 15:19:20 UTC (rev 10991)
@@ -445,11 +445,6 @@
 
     $c->forward('/user/login');
 
-    if ($type ne 'artist' || $type ne 'label' || $type ne 'editor')
-    {
-        $type = 'artist';
-    }
-
     $c->stash->{type} = $type;
     $c->stash->{entities} = $c->model('Subscription')->users_subscribed_entities($c->user, $type);
 
@@ -465,13 +460,24 @@
 
     my @entities = map
         {
-            my $artist = MusicBrainz::Server::Artist->new($c->mb->{DBH});
-            $artist->id($_);
+            my $class = "MusicBrainz::Server::" . ucfirst($type);
+            my $obj = $class->new($c->mb->{DBH});
+            $obj->id($_);
 
-            $artist;
+            $obj;
         } @$ids;
 
-    $c->model('Subscription')->unsubscribe_from_entities($c->user, [ @entities ]);
+    use Switch;
+    switch($type)
+    {
+        case ('artist') {
+            $c->model('Subscription')->unsubscribe_from_artists($c->user, [ @entities ]);
+        }
+        
+        case ('label') {
+            $c->model('Subscription')->unsubscribe_from_labels($c->user, [ @entities ]);
+        }
+    }
 
     $c->response->redirect($c->req->uri);
 }

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Model/Subscription.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Model/Subscription.pm	2009-01-02 18:50:56 UTC (rev 10990)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Model/Subscription.pm	2009-01-06 15:19:20 UTC (rev 10991)
@@ -14,7 +14,14 @@
     my $us = UserSubscription->new($self->context->mb->{DBH});
     $us->SetUser($user->id);
 
-    return $us->subscribed_artists;
+    use Switch;
+    switch ($type)
+    {
+        case ('artist') { return $us->subscribed_artists; }
+        case ('label')  { return $us->subscribed_labels; }
+    }
+    
+    return;
 }
 
 sub user_artist_count
@@ -47,7 +54,7 @@
     return $us->GetNumSubscribedEditors;
 }
 
-sub unsubscribe_from_entities
+sub unsubscribe_from_artists
 {
     my ($self, $user, $entities) = @_;
 
@@ -57,6 +64,16 @@
     $us->UnsubscribeArtists(@$entities);
 }
 
+sub unsubscribe_from_labels
+{
+    my ($self, $user, $entities) = @_;
+
+    my $us = UserSubscription->new($self->context->mb->{DBH});
+    $us->SetUser($user->id);
+
+    $us->UnsubscribeLabels(@$entities);
+}
+
 sub is_user_subscribed_to_entity
 {
     my ($self, $user, $entity) = @_;

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server.pm	2009-01-02 18:50:56 UTC (rev 10990)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server.pm	2009-01-06 15:19:20 UTC (rev 10991)
@@ -50,6 +50,7 @@
         },
         RECURSION => 1,
         TEMPLATE_EXTENSION => '.tt',
+        PLUGIN_BASE => 'MusicBrainz::Server::Plugin',
     },
 );
 

Modified: mb_server/branches/TemplateToolkit/lib/UserSubscription.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/UserSubscription.pm	2009-01-02 18:50:56 UTC (rev 10990)
+++ mb_server/branches/TemplateToolkit/lib/UserSubscription.pm	2009-01-06 15:19:20 UTC (rev 10991)
@@ -273,7 +273,7 @@
 	1;
 }
 
-sub GetSubscribedLabels
+sub subscribed_labels
 {
 	my ($self) = @_;
 	my $uid = $self->GetUser or die;
@@ -288,7 +288,16 @@
 		$uid,
 	);
 
-	@$rows = map { $_->[0] }
+	@$rows =
+	    map {
+	        my $label = MusicBrainz::Server::Label->new;
+	        $label->id($_->[0]->{label});
+	        $label->name($_->[0]->{name});
+	        $label->sort_name($_->[0]->{sortname});
+	        $label->resolution($_->[0]->{resolution});
+	        
+	        $label;
+	    }
 		sort { $a->[1] cmp $b->[1] }
 		map {
 			my $row = $_;

Modified: mb_server/branches/TemplateToolkit/root/moderation/notes.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/moderation/notes.tt	2009-01-02 18:50:56 UTC (rev 10990)
+++ mb_server/branches/TemplateToolkit/root/moderation/notes.tt	2009-01-06 15:19:20 UTC (rev 10991)
@@ -1,3 +1,4 @@
+[%- USE UserDate(c.user) -%]
 [% IF moderation.Notes %]
     <table class="edit_notes">
     [% FOR note=moderation.Notes %]
@@ -6,7 +7,7 @@
             <a href="[% c.uri_for('/user/profile', note.user.name) %]">[% note.user.name %]</a>:
             </td>
             <td>
-            <div class="note_date">[% user_date(note.GetNoteTime) %]</div>
+            <div class="note_date">[% UserDate.format(note.GetNoteTime) %]</div>
             [% note.text_as_html %]
             </td>
         </tr>




More information about the MusicBrainz-commits mailing list