r10159 - in mb_server/branches/TemplateToolkit: lib/MusicBrainz/Server lib/MusicBrainz/Server/Controller lib/MusicBrainz/Server/Facade lib/MusicBrainz/Server/Model root/components root/label

View: New views
1 Messages — Rating Filter:   Alert me  

r10159 - in mb_server/branches/TemplateToolkit: lib/MusicBrainz/Server lib/MusicBrainz/Server/Controller lib/MusicBrainz/Server/Facade lib/MusicBrainz/Server/Model root/components root/label

by root-97 :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

Author: acid2
Date: 2008-07-24 23:19:32 +0000 (Thu, 24 Jul 2008)
New Revision: 10159

Added:
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Facade/Label.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Model/Label.pm
Modified:
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Label.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Label.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Model/Release.pm
   mb_server/branches/TemplateToolkit/root/components/aliases.tt
   mb_server/branches/TemplateToolkit/root/label/details.tt
   mb_server/branches/TemplateToolkit/root/label/header.tt
   mb_server/branches/TemplateToolkit/root/label/show.tt
Log:
Moved label to use facades too

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Label.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Label.pm 2008-07-24 22:19:33 UTC (rev 10158)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Label.pm 2008-07-24 23:19:32 UTC (rev 10159)
@@ -28,11 +28,7 @@
 {
     my ($self, $c, $mbid) = @_;
 
-    my $label = MusicBrainz::Server::Label->new($c->mb->{DBH});
-    LoadEntity($label, $mbid);
-
-    $c->stash->{_label} = $label;
-    $c->stash->{label}  = $label->ExportStash;
+    $c->stash->{label} = $c->model('Label')->load($mbid);
 }
 
 =head2 perma
@@ -44,7 +40,6 @@
 sub perma : Chained('label')
 {
     my ($self, $c) = @_;
-
     $c->stash->{template} = 'label/perma.tt';
 }
 
@@ -57,23 +52,9 @@
 sub aliases : Chained('label')
 {
     my ($self, $c) = @_;
+    my $label = $c->stash->{label};
 
-    my $label = $c->stash->{_label};
-
-    my $alias   = MusicBrainz::Server::Alias->new($c->mb->{DBH}, "LabelAlias");
-    my @aliases = $alias->GetList($label->GetId);
-
-    my @prettyAliases = ();
-    for my $alias (@aliases)
-    {
-        push @prettyAliases, {
-            name     => $alias->[1],
-            useCount => $alias->[2],
-            used     => !($alias->[3] =~ /^1970-01-01/),
-        }
-    }
-
-    $c->stash->{aliases}  = \@prettyAliases;
+    $c->stash->{aliases}  = $c->model('Alias')->load_for_entity($label);
     $c->stash->{template} = 'label/aliases.tt';
 }
 
@@ -86,14 +67,9 @@
 sub tags : Chained('label')
 {
     my ($self, $c) = @_;
+    my $label = $c->stash->{label};
 
-    my $label = $c->stash->{_label};
-
-    my $t = MusicBrainz::Server::Tag->new($c->mb->{DBH});
-    my $tags = $t->GetTagHashForEntity('label', $label->GetId, 200);
-
-    $c->stash->{tagcloud} = PrepareForTagCloud($tags);
-
+    $c->stash->{tagcloud} = $c->model('Tag')->generate_tag_cloud($label);
     $c->stash->{template} = 'label/tags.tt';
 }
 
@@ -106,10 +82,9 @@
 sub google : Chained('label')
 {
     my ($self, $c) = @_;
+    my $label = $c->stash->{label};
 
-    my $label = $c->stash->{_label};
-
-    $c->response->redirect(Google($label->GetName));
+    $c->response->redirect(Google($label->name));
 }
 
 =head2 relations
@@ -121,7 +96,6 @@
 sub relations : Chained('label')
 {
     my ($self, $c) = @_;
-
     my $label = $c->stash->{_label};
   
     $c->stash->{relations} = load_relations($label);
@@ -139,58 +113,11 @@
 sub show : PathPart('') Chained('label')
 {
     my ($self, $c) = @_;
+    my $label = $c->stash->{label};
 
-    my $label = $c->stash->{_label};
+    $c->stash->{releases}  = $c->model('Release')->load_for_label($label);
+    $c->stash->{relations} = $c->model('Relation')->load_relations($label);
 
-    # Load releases
-    my @releases = $label->GetReleases;
-
-    for my $release (@releases)
-    {
-        # Munge name for sorting
- use Encode qw( decode );
-
- $release->{_name_sort_} = lc decode "utf-8", $release->GetName;
- $release->{_disc_max_}  = 0;
- $release->{_disc_no_}   = 0;
-
- # Attempt to sort "disc x [of y]" correctly
- if ($release->{_name_sort_} =~
- /^(.*) # $1 <main title>
- (?:[(]disc\ (\d+) # $2 (disc x
- (?:\ of\ (\d+))? # $3 [of y]
- (?::[^()]* #    [: <disc title>
- (?:[(][^()]*[)][^()]*)* #     [<1 level of nested par.>]
- )?                          #    ]
- [)] #    )
- )
- (.*)$ # $4 [<rest of main title>]
- /xi)
- {
- $release->{_name_sort_} = "$1 $4";
- $release->{_disc_no_}   = $2;
- $release->{_disc_max_}  = $3 || 0;
- }
-
- # Sort albums with no release last
- $release->{_releasedate_} = ($release->{releasedate} || "9999-99-99");
-    }
-
-    use Switch;
-    switch($c->req->params->{order})
-    {
-        case('title')   { @releases = sort sort_title @releases; }
-        case('catno')   { @releases = sort sort_catalog @releases; }
-        case('artist')  { @releases = sort sort_artist @releases; }
-        case('date')    { @releases = sort sort_date @releases; }
-
-        else            { @releases = sort sort_date @releases; }
-    }
-
-    # Export releases to stash
-    $c->stash->{releases}  = [ map { export_release($_) } @releases ];
-    $c->stash->{relations} = load_relations($label);
-
     $c->stash->{template} = 'label/show.tt';
 }
 
@@ -203,28 +130,11 @@
 sub details : Chained('label')
 {
     my ($self, $c) = @_;
-
-    my $label = $c->stash->{_label};
-
-    $c->stash->{label}->{subscribers} = scalar $label->GetSubscribers;
-
     $c->stash->{template} = 'label/details.tt';
 }
 
 =head2 INTERNAL METHODS
 
-=head2 load_relations
-
-Load relations of this label for store in the stash.
-
-=cut
-
-sub load_relations
-{
-    return LoadRelations(shift, 'label');
-}
-
-
 # All of these sort routines use the same predicates *except* the first -
 # and should probably be refactored.
 

Added: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Facade/Label.pm

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Label.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Label.pm 2008-07-24 22:19:33 UTC (rev 10158)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Label.pm 2008-07-24 23:19:32 UTC (rev 10159)
@@ -198,28 +198,6 @@
    $_[0]->{enddate} = $_[1];
 }
 
-sub ExportStash
-{
-    my ($self, @data) = @_;
-
-    my %stash;
-
-    $stash{name} = $self->GetName;
-    $stash{mbid} = $self->GetMBId;
-    $stash{link_type} = 'label';
-
-    use Switch;
-    for (@data)
-    {
-        switch($_)
-        {
-
-        }
-    }
-
-    return \%stash;
-}
-
 # Insert an label into the DB and return the label id. Returns undef
 # on error. The name of this label must be set via the accesor
 # functions.

Added: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Model/Label.pm

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Model/Release.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Model/Release.pm 2008-07-24 22:19:33 UTC (rev 10158)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Model/Release.pm 2008-07-24 23:19:32 UTC (rev 10159)
@@ -16,11 +16,36 @@
     bless { _dbh => $c->mb->{DBH} }, ref $self;
 }
 
+sub load_for_label
+{
+    my ($self, $label) = @_;
+
+    my @releases = $label->get_label->GetReleases;
+
+    for (@releases) { _build_sort_keys($_); }
+    
+    return [
+        map {
+            my $export = MusicBrainz::Server::Facade::Release->new_from_release($_);
+
+            $export->{artist} = MusicBrainz::Server::Facade::Artist->new({
+                name => $_->{artistname},
+                mbid => $_->GetArtist
+            });
+
+            $export->{catalog_number} = $_->{catno};
+
+            $export;
+        }
+            sort _sort_albums @releases
+    ];
+}
+
 sub load_for_artist
 {
     my ($self, $artist, $show_all) = @_;
 
-    my @releases = $artist->{_a}->GetReleases(!$show_all, 1);
+    my @releases = $artist->get_artist->GetReleases(!$show_all, 1);
 
     if (!$show_all)
     {

Modified: mb_server/branches/TemplateToolkit/root/components/aliases.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/components/aliases.tt 2008-07-24 22:19:33 UTC (rev 10158)
+++ mb_server/branches/TemplateToolkit/root/components/aliases.tt 2008-07-24 23:19:32 UTC (rev 10159)
@@ -19,6 +19,6 @@
     </tbody>
   </table>
   [%- ELSE -%]
-    <p>[% entity.link_type | ucfirst %] has no aliases</p>
+    <p>[% INCLUDE "components/entity-link.tt" %] has no aliases</p>
   [%- END -%]
 [%- END -%]

Modified: mb_server/branches/TemplateToolkit/root/label/details.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/label/details.tt 2008-07-24 22:19:33 UTC (rev 10158)
+++ mb_server/branches/TemplateToolkit/root/label/details.tt 2008-07-24 23:19:32 UTC (rev 10159)
@@ -1,6 +1,6 @@
 [%- WRAPPER 'label/layout.tt' title="Details" -%]
 [%- WRAPPER "components/box.tt" header="Details" -%]
-<table>
+<table class="details">
   <tr>
     <th>[%- INCLUDE "components/doc-link.tt" to="LabelName" text="Name" -%]:</th>
     <td>[%- INCLUDE "components/entity-link.tt" entity=label -%]</td>
@@ -21,7 +21,7 @@
 
   <tr>
     <th>Subscribers:</th>
-    <td>[% label.subscribers %]</td>
+    <td>[% label.subscriber_count %]</td>
   </tr>
 </table>
 [% END %]

Modified: mb_server/branches/TemplateToolkit/root/label/header.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/label/header.tt 2008-07-24 22:19:33 UTC (rev 10158)
+++ mb_server/branches/TemplateToolkit/root/label/header.tt 2008-07-24 23:19:32 UTC (rev 10159)
@@ -14,12 +14,12 @@
     [% IF label.resolution; "(${label.resolution})" | html; END %]
   </div>
   <div class="info">
-    [%- IF label.datespan.complete -%]
-      [% label.datespan.start %] - [% label.datespan.end %]<br/>
-    [%- ELSIF label.datespan.start -%]
-      Began: [% label.datespan.start -%]<br />
-    [%- ELSIF label.datespan.end -%]
-      End: [% label.datespan.end -%]<br />
+    [%- IF label.has_complete_date -%]
+      [% label.founded %] - [% label.dissolved %]<br/>
+    [%- ELSIF label.founded -%]
+      Founded: [% label.founded -%]<br />
+    [%- ELSIF label.dissolved -%]
+      Dissolved: [% label.dissolved -%]<br />
     [%- END -%]
   </div>
   <div class="infoLinks"> Info: [% INCLUDE "components/piped-list.tt" list=info_links %]</div>

Modified: mb_server/branches/TemplateToolkit/root/label/show.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/label/show.tt 2008-07-24 22:19:33 UTC (rev 10158)
+++ mb_server/branches/TemplateToolkit/root/label/show.tt 2008-07-24 23:19:32 UTC (rev 10159)
@@ -19,10 +19,10 @@
   [%- FOREACH release=releases -%]
     <tr[% ' class="odd"' IF loop.count % 2 == 0 %]>
       <td class="tracks">[% release.track_count %] <img src="/static/images/notes.gif" alt="Tracks" /></td>
-      <td class="status">[% release.status %]</td>
+      <td class="status">[% release.release_status_name %]</td>
       <td class="language">
-        <abbr title="[% release.language.language %] / [% release.language.script %]">
-          [% release.language.shortLanguage %]
+        <abbr title="[% release.language %] / [% release.script %]">
+          [% release.language_code %]
         </abbr>
       </td>
       <td class="date">


_______________________________________________
MusicBrainz-commits mailing list
MusicBrainz-commits@...
http://lists.musicbrainz.org/mailman/listinfo/musicbrainz-commits
 
Creative Commons EFF GPL LGPL
Original Design|vacubomb.com Contact Details Server Version: RELEASE-20060712