Per project forums added.

Permissions for forums management can be set in "Admin -> Roles & Permissions".
Forums can be created on the project settings screen ("Forums" tab).
Once a project has a forum, a "Forums" link appears in the project menu.
For now, posting messages in forums requires to be logged in. Files can be attached to messages.

git-svn-id: http://redmine.rubyforge.org/svn/trunk@529 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2007-05-13 17:09:56 +00:00
parent 75582f80f8
commit b90e84b9fe
40 changed files with 706 additions and 1 deletions
+19
View File
@@ -0,0 +1,19 @@
---
boards_001:
name: Help
project_id: 1
topics_count: 1
id: 1
description: Help board
position: 1
last_message_id: 2
messages_count: 2
boards_002:
name: Discussion
project_id: 1
topics_count: 0
id: 2
description: Discussion board
position: 2
last_message_id:
messages_count: 0
+25
View File
@@ -0,0 +1,25 @@
---
messages_001:
created_on: 2007-05-12 17:15:32 +02:00
updated_on: 2007-05-12 17:15:32 +02:00
subject: First post
id: 1
replies_count: 1
last_reply_id: 2
content: "This is the very first post\n\
in the forum"
author_id: 1
parent_id:
board_id: 1
messages_002:
created_on: 2007-05-12 17:18:00 +02:00
updated_on: 2007-05-12 17:18:00 +02:00
subject: First reply
id: 2
replies_count: 0
last_reply_id:
content: "Reply to the first post"
author_id: 1
parent_id: 1
board_id: 1
+30
View File
@@ -0,0 +1,30 @@
require File.dirname(__FILE__) + '/../test_helper'
class BoardTest < Test::Unit::TestCase
fixtures :projects, :boards, :messages
def setup
@project = Project.find(1)
end
def test_create
board = Board.new(:project => @project, :name => 'Test board', :description => 'Test board description')
assert board.save
board.reload
assert_equal 'Test board', board.name
assert_equal 'Test board description', board.description
assert_equal @project, board.project
assert_equal 0, board.topics_count
assert_equal 0, board.messages_count
assert_nil board.last_message
# last position
assert_equal @project.boards.size, board.position
end
def test_destroy
board = Board.find(1)
assert board.destroy
# make sure that the associated messages are removed
assert_equal 0, Message.count(:conditions => {:board_id => 1})
end
end
+44
View File
@@ -0,0 +1,44 @@
require File.dirname(__FILE__) + '/../test_helper'
class MessageTest < Test::Unit::TestCase
fixtures :projects, :boards, :messages
def setup
@board = Board.find(1)
@user = User.find(1)
end
def test_create
topics_count = @board.topics_count
messages_count = @board.messages_count
message = Message.new(:board => @board, :subject => 'Test message', :content => 'Test message content', :author => @user)
assert message.save
@board.reload
# topics count incremented
assert_equal topics_count+1, @board[:topics_count]
# messages count incremented
assert_equal messages_count+1, @board[:messages_count]
assert_equal message, @board.last_message
end
def test_reply
topics_count = @board.topics_count
messages_count = @board.messages_count
@message = Message.find(1)
replies_count = @message.replies_count
reply = Message.new(:board => @board, :subject => 'Test reply', :content => 'Test reply content', :parent => @message, :author => @user)
assert reply.save
@board.reload
# same topics count
assert_equal topics_count, @board[:topics_count]
# messages count incremented
assert_equal messages_count+1, @board[:messages_count]
assert_equal reply, @board.last_message
@message.reload
# replies count incremented
assert_equal replies_count+1, @message[:replies_count]
assert_equal reply, @message.last_reply
end
end