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