[Jifty-commit] r3231 - in jifty/trunk: . lib/Jifty/Plugin/SiteNews
lib/Jifty/Plugin/SiteNews/Mixin
lib/Jifty/Plugin/SiteNews/View lib/Jifty/View/Declare
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Fri May 11 23:07:27 EDT 2007
Author: jesse
Date: Fri May 11 23:07:26 2007
New Revision: 3231
Added:
jifty/trunk/lib/Jifty/Plugin/SiteNews/
jifty/trunk/lib/Jifty/Plugin/SiteNews/Dispatcher.pm
jifty/trunk/lib/Jifty/Plugin/SiteNews/Mixin/
jifty/trunk/lib/Jifty/Plugin/SiteNews/Mixin/Model/
jifty/trunk/lib/Jifty/Plugin/SiteNews/Mixin/Model/News.pm (contents, props changed)
jifty/trunk/lib/Jifty/Plugin/SiteNews/View/
jifty/trunk/lib/Jifty/Plugin/SiteNews/View/News.pm
Modified:
jifty/trunk/ (props changed)
jifty/trunk/lib/Jifty/View/Declare/CRUD.pm
Log:
r56801 at pinglin: jesse | 2007-05-11 23:06:58 -0400
* nonworking draft of a new 'site news' plugin that uses the new crud view.
This plugin doesn't work because T::D alias semantics seem a little screwy.
Added: jifty/trunk/lib/Jifty/Plugin/SiteNews/Dispatcher.pm
==============================================================================
--- (empty file)
+++ jifty/trunk/lib/Jifty/Plugin/SiteNews/Dispatcher.pm Fri May 11 23:07:26 2007
@@ -0,0 +1,10 @@
+use warnings;
+use strict;
+
+package Jifty::Plugin::SiteNews::Dispatcher;
+use base 'Jifty::Dispatcher';
+
+
+
+
+1;
Added: jifty/trunk/lib/Jifty/Plugin/SiteNews/Mixin/Model/News.pm
==============================================================================
--- (empty file)
+++ jifty/trunk/lib/Jifty/Plugin/SiteNews/Mixin/Model/News.pm Fri May 11 23:07:26 2007
@@ -0,0 +1,81 @@
+use strict;
+use warnings;
+
+package Jifty::Plugin::SiteNews::Mixin::Model::News;
+use Jifty::DBI::Schema;
+use base 'Jifty::DBI::Record::Plugin';
+
+our @EXPORT = qw();
+
+use Jifty::Plugin::SiteNews::Record schema {
+
+ my $user_class = Jifty->app_class('Model', 'User');
+
+column author_id =>
+ refers_to $user_class;
+ label is 'Author';
+column created =>
+ type is 'timestamp',
+ filters are qw( Jifty::Filter::DateTime Jifty::DBI::Filter::DateTime),
+ label is 'Created on';
+column title =>
+ type is 'text',
+ label is 'Title';
+column content =>
+ type is 'text',
+ label is 'Article',
+ render_as is 'Textarea';
+};
+
+
+sub create {
+ my $self = shift;
+ my %args = (
+ author_id => $self->current_user->id,
+ created => DateTime->now->iso8601,
+ title => undef,
+ content => undef,
+ @_
+ );
+
+ $self->SUPER::create(%args);
+}
+
+=head2 current_user_can
+
+Anyone can read news articles, only administrators can create, update,
+or delete them.
+
+=cut
+
+sub current_user_can {
+ my $self = shift;
+ my $right = shift;
+
+ # Anyone can read
+ return 1 if ($right eq "read");
+
+ # Only admins can do other things
+ return $self->current_user->user_object->access_level eq "staff";
+}
+
+=head2 as_atom_entry
+
+Returns the task as an L<XML::Atom::Entry> object.
+
+=cut
+
+sub as_atom_entry {
+ my $self = shift;
+
+ my $author = XML::Atom::Person->new;
+ $author->name($self->author->name);
+
+ my $entry = XML::Atom::Entry->new;
+ $entry->author( $author );
+ $entry->title( $self->title );
+ $entry->content( $self->content);
+ return $entry;
+}
+
+1;
Added: jifty/trunk/lib/Jifty/Plugin/SiteNews/View/News.pm
==============================================================================
--- (empty file)
+++ jifty/trunk/lib/Jifty/Plugin/SiteNews/View/News.pm Fri May 11 23:07:26 2007
@@ -0,0 +1,33 @@
+use warnings;
+use strict;
+
+package Jifty::Plugin::SiteNews::View::News;
+use Jifty::View::Declare -base;
+use Jifty::View::Declare::CRUD;
+
+template 'index.html' => page {
+
+
+ h1 { 'This is your site news'};
+ form {
+ show('list');
+ }
+
+};
+
+
+
+
+template '/edit' => page {
+ h1 {'foo'};
+
+};
+
+
+alias Jifty::View::Declare::CRUD under '.', { object_type => 'News', base_path => '/news',
+ fragment_for_list => '/news/list',
+ fragment_for_view => '/news/view'
+
+};
+
+1;
Modified: jifty/trunk/lib/Jifty/View/Declare/CRUD.pm
==============================================================================
--- jifty/trunk/lib/Jifty/View/Declare/CRUD.pm (original)
+++ jifty/trunk/lib/Jifty/View/Declare/CRUD.pm Fri May 11 23:07:26 2007
@@ -11,7 +11,8 @@
sub fragment_for {
my $self = shift;
- return ($self->package_variable('base_path')|| '/crud')."/". shift;
+ my $fragment = shift;
+ return ($self->package_variable('fragment_for_'.$fragment)||$self->package_variable('base_path')|| '/crud')."/". $fragment;
}
sub get_record {
More information about the Jifty-commit
mailing list