added model Comment.

comments can now be added on news.

git-svn-id: http://redmine.rubyforge.org/svn/trunk@81 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2006-12-10 18:35:48 +00:00
parent 28c6aa4e6d
commit 55ed70529a
17 changed files with 153 additions and 5 deletions
+16
View File
@@ -27,7 +27,23 @@ class NewsController < ApplicationController
flash[:notice] = l(:notice_successful_update)
redirect_to :action => 'show', :id => @news
end
end
def add_comment
@comment = Comment.new(params[:comment])
@comment.author = logged_in_user
if @news.comments << @comment
flash[:notice] = l(:label_comment_added)
redirect_to :action => 'show', :id => @news
else
render :action => 'show'
end
end
def destroy_comment
@news.comments.find(params[:comment_id]).destroy
redirect_to :action => 'show', :id => @news
end
def destroy
@news.destroy
+6
View File
@@ -0,0 +1,6 @@
class Comment < ActiveRecord::Base
belongs_to :commented, :polymorphic => true, :counter_cache => true
belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
validates_presence_of :commented, :author, :comment
end
+1
View File
@@ -18,6 +18,7 @@
class News < ActiveRecord::Base
belongs_to :project
belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
has_many :comments, :as => :commented, :dependent => true, :order => "created_on"
validates_presence_of :title, :description
+23 -1
View File
@@ -13,4 +13,26 @@
<% end %>
</div>
<%= link_to_if_authorized l(:button_edit), :controller => 'news', :action => 'edit', :id => @news %>
<p><%= link_to_if_authorized l(:button_edit), :controller => 'news', :action => 'edit', :id => @news %></p>
<div id="comments" style="margin-bottom:16px;">
<h3><%= l(:label_comment_plural) %></h3>
<% @news.comments.each do |comment| %>
<% next if comment.new_record? %>
<h4><%= format_time(comment.created_on) %> - <%= comment.author.name %></h4>
<div style="float:right;">
<small><%= link_to_if_authorized l(:button_delete), {:controller => 'news', :action => 'destroy_comment', :id => @news, :comment_id => comment}, :confirm => l(:text_are_you_sure), :post => true %></small>
</div>
<%= simple_format(auto_link(h comment.comment))%>
<% end if @news.comments_count > 0 %>
</div>
<% if authorize_for 'news', 'add_comment' %>
<h3><%= l(:label_comment_add) %></h3>
<%= start_form_tag :action => 'add_comment', :id => @news %>
<%= error_messages_for 'comment' %>
<p><label for="comment_comment"><%= l(:field_comment) %></label><br />
<%= text_area 'comment', 'comment', :cols => 60, :rows => 6 %></p>
<%= submit_tag l(:button_add) %>
<%= end_form_tag %>
<% end %>
+2 -1
View File
@@ -6,7 +6,8 @@
<% for news in @news %>
<li><%= link_to news.title, :controller => 'news', :action => 'show', :id => news %><br />
<% unless news.summary.empty? %><%= news.summary %><br /><% end %>
<em><%= news.author.name %>, <%= format_time(news.created_on) %></em><br />&nbsp;
<em><%= news.author.name %>, <%= format_time(news.created_on) %></em><br />
<%= news.comments_count %> <%= lwr(:label_comment, news.comments_count).downcase %><br />&nbsp;
</li>
<% end %>
</ul>