[mb-commits] r11158 - in mb_server/branches/TemplateToolkit: lib/MusicBrainz/Server lib/MusicBrainz/Server/Authentication lib/MusicBrainz/Server/Controller root/components root/moderation root/user

root at musicbrainz.org root at musicbrainz.org
Wed Jan 28 19:09:27 UTC 2009


Author: acid2
Date: 2009-01-28 19:09:27 +0000 (Wed, 28 Jan 2009)
New Revision: 11158

Modified:
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Authentication/Store.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/Editor.pm
   mb_server/branches/TemplateToolkit/root/components/common-macros.tt
   mb_server/branches/TemplateToolkit/root/moderation/list.tt
   mb_server/branches/TemplateToolkit/root/moderation/notes.tt
   mb_server/branches/TemplateToolkit/root/moderation/show.tt
   mb_server/branches/TemplateToolkit/root/user/profile.tt
Log:
Implemented a UserDate plugin

* When a user logs in, their preferences are saved to the session
* Preprocessed template loads the UserDate plugin
* All places a datetime are used have been replaced with UserDate.format

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Authentication/Store.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Authentication/Store.pm	2009-01-28 19:08:43 UTC (rev 11157)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Authentication/Store.pm	2009-01-28 19:09:27 UTC (rev 11158)
@@ -2,7 +2,9 @@
 
 use strict;
 use warnings;
+
 use MusicBrainz::Server::Editor;
+use UserPreference;
 
 sub new
 {
@@ -19,12 +21,14 @@
 sub for_session
 {
     my ($self, $c, $user) = @_;
+
     return {
         'id' => $user->id,
         'privs' => $user->privs,
         'name' => $user->name,
         'edits_accepted' => $user->mods_accepted,
         'has_confirmed_email' => $user->email ? 1 : 0,
+        'prefs' => $user->preferences->{prefs},
     };
 }
 
@@ -37,6 +41,11 @@
     $user->privs($frozen_user->{privs});
     $user->mods_accepted($frozen_user->{edits_accepted});
     $user->{has_confirmed_email} = $frozen_user->{has_confirmed_email};
+    
+    my $prefs = UserPreference->new;
+    $prefs->{prefs} = $frozen_user->{prefs} || {};
+    $user->preferences($prefs);
+
     return $user;
 }
 

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm	2009-01-28 19:08:43 UTC (rev 11157)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm	2009-01-28 19:09:27 UTC (rev 11158)
@@ -168,8 +168,6 @@
     $c->stash->{begin_date_name} = \&MusicBrainz::Server::Artist::begin_date_name;
     $c->stash->{end_date_name  } = \&MusicBrainz::Server::Artist::end_date_name;
 
-    $c->stash->{date} = \&MusicBrainz::Server::Validation::MakeDisplayDateStr;
-    
     $c->stash->{vote} = \&ModDefs::vote_name;
 
     $c->stash->{release_format} = \&MusicBrainz::Server::ReleaseEvent::release_format_name;

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm	2009-01-28 19:08:43 UTC (rev 11157)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm	2009-01-28 19:09:27 UTC (rev 11158)
@@ -585,6 +585,7 @@
     return unless $self->submit_and_validate($c);
 
     $form->update_from_form ($c->req->params);
+    $c->persist_user;
 }
 
 =head2 donate

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Editor.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Editor.pm	2009-01-28 19:08:43 UTC (rev 11157)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Editor.pm	2009-01-28 19:09:27 UTC (rev 11158)
@@ -192,6 +192,19 @@
     }
 }
 
+sub preferences
+{
+    my $self = shift;
+    if (@_) { $self->{preferences} = shift; }
+    unless ($self->{preferences})
+    {
+        my $prefs = UserPreference->newFromUser($self->dbh, $self->id);
+        $prefs->load;
+        $self->{preferences} = $prefs;
+    }
+    return $self->{preferences};
+}
+
 sub _id_cache_key
 {
 	my ($class, $id) = @_;

Modified: mb_server/branches/TemplateToolkit/root/components/common-macros.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/components/common-macros.tt	2009-01-28 19:08:43 UTC (rev 11157)
+++ mb_server/branches/TemplateToolkit/root/components/common-macros.tt	2009-01-28 19:09:27 UTC (rev 11158)
@@ -1,3 +1,5 @@
+[% USE UserDate(user.preferences) %]
+
 [%- MACRO doc_link(to, text) BLOCK -%]
     <a href="/doc/[% to %]">[% (text or to) %]</a>
 [%- END -%]

Modified: mb_server/branches/TemplateToolkit/root/moderation/list.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/moderation/list.tt	2009-01-28 19:08:43 UTC (rev 11157)
+++ mb_server/branches/TemplateToolkit/root/moderation/list.tt	2009-01-28 19:09:27 UTC (rev 11158)
@@ -27,7 +27,7 @@
 
         <tr>
             <th>Expired:</th>
-            <td>[% user_date(moderation.expire_time) %]</td>
+            <td>[% UserDate.format(moderation.expire_time) %]</td>
         </tr>
         </table>
         </td>

Modified: mb_server/branches/TemplateToolkit/root/moderation/notes.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/moderation/notes.tt	2009-01-28 19:08:43 UTC (rev 11157)
+++ mb_server/branches/TemplateToolkit/root/moderation/notes.tt	2009-01-28 19:09:27 UTC (rev 11158)
@@ -6,7 +6,7 @@
             <a href="[% c.uri_for('/user/profile', note.user.name) %]">[% note.user.name %]</a>:
             </td>
             <td>
-            <div class="note_date">[% note.GetNoteTime %]</div>
+            <div class="note_date">[% UserDate.format(note.GetNoteTime) %]</div>
             [% note.text_as_html %]
             </td>
         </tr>

Modified: mb_server/branches/TemplateToolkit/root/moderation/show.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/moderation/show.tt	2009-01-28 19:08:43 UTC (rev 11157)
+++ mb_server/branches/TemplateToolkit/root/moderation/show.tt	2009-01-28 19:09:27 UTC (rev 11158)
@@ -19,18 +19,18 @@
 
     <tr>
         <th>Opened:</th>
-        <td>[% user_date(moderation.open_time) %]</td>
+        <td>[% UserDate.format(moderation.open_time) %]</td>
     </tr>
 
     <tr>
         <th>Expires:</th>
-        <td>[% user_date(moderation.expire_time) %]</td>
+        <td>[% UserDate.format(moderation.expire_time) %]</td>
     </tr>
 
     <tr>
         <th>Closed:</th>
         [% moderation.close_time %]
-        <td>[% user_date(moderation.close_time || "-") %]</td>
+        <td>[% UserDate.format(moderation.close_time || "-") %]</td>
     </tr>
 
     <tr>

Modified: mb_server/branches/TemplateToolkit/root/user/profile.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/user/profile.tt	2009-01-28 19:08:43 UTC (rev 11157)
+++ mb_server/branches/TemplateToolkit/root/user/profile.tt	2009-01-28 19:09:27 UTC (rev 11158)
@@ -1,4 +1,3 @@
-[% USE date %]
 [% extra_css = "user.css" %]
 
 [% WRAPPER "layout.tt" title="Editor \"$user.name\"" %]
@@ -14,7 +13,7 @@
     { link => c.uri_for("/review/$user.name/edits/open"), text => "Open Edits" },
     { link => c.uri_for("/review/$user.name/edits/failed"), text => "Failed Edits" },
     { link => c.uri_for("/review/$user.name/edits/cancelled"), text => "Cancelled Edits" },
-    { link => c.uri_for('/user/subscriptions'), text => "Subscriptions", hide => not (viewing_own_profile or user.public_subscriptions) },
+    { link => c.uri_for('/user/subscriptions'), text => "Subscriptions", hide => not (viewing_own_profile or preferences.get('subscriptionspublic')) },
 ] %]
 
 [% edit_account_options = [
@@ -60,7 +59,7 @@
 
         [% IF user.email %]
             [% IF user.email_confirmation_date %]
-                (verified [% user.email_confirmation_date %])
+                (verified [% UserDate.format(user.email_confirmation_date) %])
             [% ELSE %]
                 [% IF viewing_own_profile %]
                     (<em>unverified!</em>)
@@ -102,7 +101,7 @@
         [% ELSIF user.charter %]
             charter member
         [% ELSE %]
-            [% user.member_since %]
+            [% UserDate.format(user.member_since) %]
         [% END %]
     [% END %]
     




More information about the MusicBrainz-commits mailing list