Commit 8eba02a990c0ea29e9bc8b86aec54c0a0cee83d8
1 parent
e8d4ea47
Exists in
master
and in
11 other branches
proposals_discussion: improve proposals list
Showing
6 changed files
with
90 additions
and
42 deletions
Show diff stats
public/images/score.png
public/style.css
| 1 | +.proposals_list .proposal .abstract { | ||
| 2 | + color: rgb(160, 160, 160); | ||
| 3 | + margin-bottom: 15px; | ||
| 4 | + float: left; | ||
| 5 | +} | ||
| 6 | +.proposals_list .proposal .comments-count { | ||
| 7 | + clear: both; | ||
| 8 | + float: right; | ||
| 9 | + color: rgb(162, 162, 162); | ||
| 10 | + font-size: 10px; | ||
| 11 | +} | ||
| 12 | +.proposals_list .proposal .tags { | ||
| 13 | + float: left; | ||
| 14 | + clear: both; | ||
| 15 | +} | ||
| 16 | +.proposal .author { | ||
| 17 | + display: table-cell; | ||
| 18 | + font-size: 10px; | ||
| 19 | + margin-right: 10px; | ||
| 20 | +} | ||
| 21 | +#content #article .proposal .author .profile-link img { | ||
| 22 | + max-width: 70%; | ||
| 23 | +} | ||
| 24 | + | ||
| 1 | .private-proposals .proposal { | 25 | .private-proposals .proposal { |
| 2 | background: url(/images/hachure.png); | 26 | background: url(/images/hachure.png); |
| 3 | opacity: 0.5; | 27 | opacity: 0.5; |
| @@ -6,18 +30,23 @@ | @@ -6,18 +30,23 @@ | ||
| 6 | } | 30 | } |
| 7 | 31 | ||
| 8 | .proposal { | 32 | .proposal { |
| 9 | - width: 100%; | ||
| 10 | - min-width: 272px; | ||
| 11 | vertical-align: top; | 33 | vertical-align: top; |
| 12 | - margin: 12px 13px 12px 0; | 34 | + margin: 15px 0; |
| 35 | + background-color: rgb(236, 236, 236); | ||
| 36 | + border-radius: 5px; | ||
| 37 | + padding: 10px; | ||
| 13 | } | 38 | } |
| 14 | 39 | ||
| 40 | +.article-body-proposals-discussion-plugin_discussion .new-proposal { | ||
| 41 | + clear: both; | ||
| 42 | + margin: 20px 0; | ||
| 43 | +} | ||
| 15 | .article-body-proposals-discussion-plugin_discussion .actions, | 44 | .article-body-proposals-discussion-plugin_discussion .actions, |
| 16 | .article-body-proposals-discussion-plugin_topic .actions { | 45 | .article-body-proposals-discussion-plugin_topic .actions { |
| 17 | margin: 10px 0 25px 0; | 46 | margin: 10px 0 25px 0; |
| 18 | } | 47 | } |
| 19 | 48 | ||
| 20 | -.proposal .content, .proposal .score, .proposal .topic { | 49 | +.proposal .content, .proposal .topic { |
| 21 | display: inline-block; | 50 | display: inline-block; |
| 22 | border-color: rgb(201, 201, 201); | 51 | border-color: rgb(201, 201, 201); |
| 23 | padding: 5px; | 52 | padding: 5px; |
| @@ -32,6 +61,7 @@ | @@ -32,6 +61,7 @@ | ||
| 32 | .proposal .score { | 61 | .proposal .score { |
| 33 | width: 5%; | 62 | width: 5%; |
| 34 | text-align: center; | 63 | text-align: center; |
| 64 | + float: right; | ||
| 35 | } | 65 | } |
| 36 | .proposal .score span { | 66 | .proposal .score span { |
| 37 | background: url(/plugins/proposals_discussion/images/score.png) no-repeat; | 67 | background: url(/plugins/proposals_discussion/images/score.png) no-repeat; |
| @@ -41,19 +71,20 @@ | @@ -41,19 +71,20 @@ | ||
| 41 | position: relative; | 71 | position: relative; |
| 42 | } | 72 | } |
| 43 | 73 | ||
| 44 | -.proposal .content:hover, .proposal .topic:hover { | ||
| 45 | - background: rgb(230, 230, 230); | ||
| 46 | -} | ||
| 47 | - | ||
| 48 | .proposal .title { | 74 | .proposal .title { |
| 49 | font-weight: bold; | 75 | font-weight: bold; |
| 50 | - font-size: 12px; | 76 | + font-size: 14px; |
| 77 | + background-color: rgb(136, 136, 136); | ||
| 78 | + padding: 9px; | ||
| 79 | + border-radius: 5px; | ||
| 51 | } | 80 | } |
| 52 | 81 | ||
| 53 | #article .proposal a:visited, #article .proposal a { | 82 | #article .proposal a:visited, #article .proposal a { |
| 54 | - color: rgb(70, 70, 70); | ||
| 55 | text-decoration: none; | 83 | text-decoration: none; |
| 84 | +} | ||
| 85 | +#article .proposal .title a:visited, #article .proposal .title a { | ||
| 56 | width: 100%; | 86 | width: 100%; |
| 87 | + color: rgb(240, 240, 240); | ||
| 57 | display: inline-block; | 88 | display: inline-block; |
| 58 | } | 89 | } |
| 59 | #article .proposal .private.actions a:visited, #article .proposal .private.actions a { | 90 | #article .proposal .private.actions a:visited, #article .proposal .private.actions a { |
| @@ -61,7 +92,8 @@ | @@ -61,7 +92,8 @@ | ||
| 61 | } | 92 | } |
| 62 | 93 | ||
| 63 | .proposal .content { | 94 | .proposal .content { |
| 64 | - width: 84%; | 95 | + width: 100%; |
| 96 | + display: table-cell; | ||
| 65 | color: rgb(83, 83, 83); | 97 | color: rgb(83, 83, 83); |
| 66 | vertical-align: top; | 98 | vertical-align: top; |
| 67 | position: relative; | 99 | position: relative; |
| @@ -98,6 +130,7 @@ form .proposals-discussion-plugin .body textarea { | @@ -98,6 +130,7 @@ form .proposals-discussion-plugin .body textarea { | ||
| 98 | } | 130 | } |
| 99 | 131 | ||
| 100 | .proposals_list .filters { | 132 | .proposals_list .filters { |
| 133 | + clear: both; | ||
| 101 | float: right; | 134 | float: right; |
| 102 | margin-top: 4px; | 135 | margin-top: 4px; |
| 103 | } | 136 | } |
| @@ -210,7 +243,8 @@ form .proposals-discussion-plugin .body textarea { | @@ -210,7 +243,8 @@ form .proposals-discussion-plugin .body textarea { | ||
| 210 | min-height: 50px; | 243 | min-height: 50px; |
| 211 | } | 244 | } |
| 212 | 245 | ||
| 213 | -.article-body-proposals-discussion-plugin_topic .graph { | 246 | +.article-body-proposals-discussion-plugin_topic .statistics .graph, |
| 247 | +.article-body-proposals-discussion-plugin_discussion .statistics .graph { | ||
| 214 | float: left; | 248 | float: left; |
| 215 | } | 249 | } |
| 216 | .article-body-proposals-discussion-plugin_topic .graph #proposals-time, | 250 | .article-body-proposals-discussion-plugin_topic .graph #proposals-time, |
test/functional/proposals_discussion_plugin_public_controller_test.rb
| @@ -3,21 +3,22 @@ require File.dirname(__FILE__) + '/../test_helper' | @@ -3,21 +3,22 @@ require File.dirname(__FILE__) + '/../test_helper' | ||
| 3 | class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase | 3 | class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase |
| 4 | 4 | ||
| 5 | def setup | 5 | def setup |
| 6 | + @person = fast_create(Person) | ||
| 6 | @profile = fast_create(Community) | 7 | @profile = fast_create(Community) |
| 7 | @discussion = ProposalsDiscussionPlugin::Discussion.create!(:profile => @profile, :allow_topics => true, :name => 'discussion') | 8 | @discussion = ProposalsDiscussionPlugin::Discussion.create!(:profile => @profile, :allow_topics => true, :name => 'discussion') |
| 8 | @topic = fast_create(ProposalsDiscussionPlugin::Topic, :parent_id => @discussion.id, :profile_id => @profile.id) | 9 | @topic = fast_create(ProposalsDiscussionPlugin::Topic, :parent_id => @discussion.id, :profile_id => @profile.id) |
| 9 | end | 10 | end |
| 10 | 11 | ||
| 11 | - attr_reader :profile, :discussion, :topic | 12 | + attr_reader :profile, :discussion, :topic, :person |
| 12 | 13 | ||
| 13 | should 'load proposals' do | 14 | should 'load proposals' do |
| 14 | - proposals = 3.times.map { fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal title', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id)} | 15 | + proposals = 3.times.map { fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal title', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id)} |
| 15 | get :load_proposals, :profile => profile.identifier, :holder_id => topic.id | 16 | get :load_proposals, :profile => profile.identifier, :holder_id => topic.id |
| 16 | assert_equivalent proposals, assigns(:proposals) | 17 | assert_equivalent proposals, assigns(:proposals) |
| 17 | end | 18 | end |
| 18 | 19 | ||
| 19 | should 'add link to next page' do | 20 | should 'add link to next page' do |
| 20 | - proposal = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal title', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) | 21 | + proposal = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal title', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) |
| 21 | get :load_proposals, :profile => profile.identifier, :holder_id => topic.id | 22 | get :load_proposals, :profile => profile.identifier, :holder_id => topic.id |
| 22 | assert_match /href=.*page=2/, response.body | 23 | assert_match /href=.*page=2/, response.body |
| 23 | end | 24 | end |
| @@ -28,17 +29,17 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase | @@ -28,17 +29,17 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase | ||
| 28 | end | 29 | end |
| 29 | 30 | ||
| 30 | should 'load proposals with alphabetical order' do | 31 | should 'load proposals with alphabetical order' do |
| 31 | - proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'z proposal', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) | ||
| 32 | - proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'abc proposal', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) | ||
| 33 | - proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'abd proposal', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) | 32 | + proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'z proposal', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) |
| 33 | + proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'abc proposal', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) | ||
| 34 | + proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'abd proposal', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) | ||
| 34 | get :load_proposals, :profile => profile.identifier, :holder_id => topic.id, :order => 'alphabetical' | 35 | get :load_proposals, :profile => profile.identifier, :holder_id => topic.id, :order => 'alphabetical' |
| 35 | assert_equal [proposal2, proposal3, proposal1], assigns(:proposals) | 36 | assert_equal [proposal2, proposal3, proposal1], assigns(:proposals) |
| 36 | end | 37 | end |
| 37 | 38 | ||
| 38 | should 'load proposals with most commented order' do | 39 | should 'load proposals with most commented order' do |
| 39 | - proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal1', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) | ||
| 40 | - proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal2', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) | ||
| 41 | - proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal3', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) | 40 | + proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal1', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) |
| 41 | + proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal2', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) | ||
| 42 | + proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal3', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) | ||
| 42 | 43 | ||
| 43 | author = fast_create(Person) | 44 | author = fast_create(Person) |
| 44 | Comment.create!(:source => proposal2, :body => 'text', :author => author) | 45 | Comment.create!(:source => proposal2, :body => 'text', :author => author) |
| @@ -50,9 +51,9 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase | @@ -50,9 +51,9 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase | ||
| 50 | end | 51 | end |
| 51 | 52 | ||
| 52 | should 'load proposals with most recent order' do | 53 | should 'load proposals with most recent order' do |
| 53 | - proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'z', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :created_at => Date.today - 2.day) | ||
| 54 | - proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'b', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :created_at => Date.today - 1.day) | ||
| 55 | - proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'k', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :created_at => Date.today) | 54 | + proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'z', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :created_at => Date.today - 2.day, :author_id => person.id) |
| 55 | + proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'b', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :created_at => Date.today - 1.day, :author_id => person.id) | ||
| 56 | + proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'k', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :created_at => Date.today, :author_id => person.id) | ||
| 56 | 57 | ||
| 57 | author = fast_create(Person) | 58 | author = fast_create(Person) |
| 58 | 59 | ||
| @@ -61,9 +62,9 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase | @@ -61,9 +62,9 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase | ||
| 61 | end | 62 | end |
| 62 | 63 | ||
| 63 | should 'load proposals with most recently commented order' do | 64 | should 'load proposals with most recently commented order' do |
| 64 | - proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal1', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) | ||
| 65 | - proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal2', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) | ||
| 66 | - proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal3', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) | 65 | + proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal1', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) |
| 66 | + proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal2', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) | ||
| 67 | + proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal3', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) | ||
| 67 | 68 | ||
| 68 | author = fast_create(Person) | 69 | author = fast_create(Person) |
| 69 | Comment.create!({:source => proposal2, :body => 'text', :author => author, :created_at => 10.days.ago}, :without_protection => true) | 70 | Comment.create!({:source => proposal2, :body => 'text', :author => author, :created_at => 10.days.ago}, :without_protection => true) |
| @@ -82,7 +83,7 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase | @@ -82,7 +83,7 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase | ||
| 82 | profile.add_member(person) | 83 | profile.add_member(person) |
| 83 | profile.update_attribute(:public_profile, false) | 84 | profile.update_attribute(:public_profile, false) |
| 84 | 85 | ||
| 85 | - proposals = 3.times.map { fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal title', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id)} | 86 | + proposals = 3.times.map { fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal title', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id)} |
| 86 | get :load_proposals, :profile => profile.identifier, :holder_id => topic.id | 87 | get :load_proposals, :profile => profile.identifier, :holder_id => topic.id |
| 87 | assert_equivalent proposals, assigns(:proposals) | 88 | assert_equivalent proposals, assigns(:proposals) |
| 88 | end | 89 | end |
| @@ -90,7 +91,7 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase | @@ -90,7 +91,7 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase | ||
| 90 | should 'not load proposals when profile is private and user is not logged' do | 91 | should 'not load proposals when profile is private and user is not logged' do |
| 91 | logout | 92 | logout |
| 92 | profile.update_attribute(:public_profile, false) | 93 | profile.update_attribute(:public_profile, false) |
| 93 | - proposals = 3.times.map { fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal title', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id)} | 94 | + proposals = 3.times.map { fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal title', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id)} |
| 94 | get :load_proposals, :profile => profile.identifier, :holder_id => topic.id | 95 | get :load_proposals, :profile => profile.identifier, :holder_id => topic.id |
| 95 | assert_equal nil, assigns(:proposals) | 96 | assert_equal nil, assigns(:proposals) |
| 96 | end | 97 | end |
views/content_viewer/_proposal_card.html.erb
| 1 | <div class="proposal"> | 1 | <div class="proposal"> |
| 2 | - <div class="score"> | ||
| 3 | - <% if proposal_card.published? %> | ||
| 4 | - <% normalized_score = proposal_card.normalized_score %> | ||
| 5 | - <% pos = 26 * (normalized_score*4 - 1).round %> | ||
| 6 | - <span title="<%= normalized_score %>" style="background-position-y: -<%= pos %>px"> </span> | ||
| 7 | - <% end %> | 2 | + <div class="author"> |
| 3 | + <%= link_to_profile profile_image(proposal_card.author, :minor, :class => 'disable-zoom') + '<br/>' + proposal_card.author.short_name, proposal_card.author.identifier, :class => 'profile-link' %> | ||
| 8 | </div> | 4 | </div> |
| 9 | <div class="content"> | 5 | <div class="content"> |
| 10 | <div class="title"> | 6 | <div class="title"> |
| @@ -22,7 +18,22 @@ | @@ -22,7 +18,22 @@ | ||
| 22 | </div> | 18 | </div> |
| 23 | <% end %> | 19 | <% end %> |
| 24 | <div class="abstract"> | 20 | <div class="abstract"> |
| 25 | - <%= link_to strip_tags(proposal_card.abstract), proposal_card.view_url %> | 21 | + <%= proposal_card.abstract %> |
| 22 | + </div> | ||
| 23 | + <div class="score"> | ||
| 24 | + <% if proposal_card.published? %> | ||
| 25 | + <% normalized_score = proposal_card.normalized_score %> | ||
| 26 | + <% pos = 26 * (normalized_score*4 - 1).round %> | ||
| 27 | + <span title="<%= normalized_score %>" style="background-position-y: -<%= pos %>px"> </span> | ||
| 28 | + <% end %> | ||
| 29 | + </div> | ||
| 30 | + <% if !proposal_card.tags.empty? %> | ||
| 31 | + <div class="tags" id="article-tags"> | ||
| 32 | + <%= proposal_card.tags.map { |t| link_to(t, :controller => 'profile', :profile => @profile.identifier, :action => 'tags', :id => t.name ) }.join("\n") %> | ||
| 33 | + </div> | ||
| 34 | + <% end %> | ||
| 35 | + <div class="comments-count"> | ||
| 36 | + <%= n_("%s comment", "%s comments", proposal_card.comments_count) % proposal_card.comments_count %> | ||
| 26 | </div> | 37 | </div> |
| 27 | </div> | 38 | </div> |
| 28 | </div> | 39 | </div> |
views/content_viewer/_statistics.html.erb
views/content_viewer/discussion.html.erb
| @@ -14,14 +14,16 @@ | @@ -14,14 +14,16 @@ | ||
| 14 | </div> | 14 | </div> |
| 15 | <% end %> | 15 | <% end %> |
| 16 | 16 | ||
| 17 | -<%= link_to url_for({:controller => 'cms', :action => 'new', :type => "ProposalsDiscussionPlugin::Proposal", :parent_id => discussion.id}), :class => 'button with-text icon-add' do %> | ||
| 18 | - <strong><%= _("Send your proposal!") %></strong> | ||
| 19 | -<% end %> | ||
| 20 | - | ||
| 21 | <%= render :partial => 'content_viewer/statistics', :locals => {:holder => discussion} %> | 17 | <%= render :partial => 'content_viewer/statistics', :locals => {:holder => discussion} %> |
| 22 | 18 | ||
| 23 | -<div class="tag_cloud"> | 19 | +<div id="article-tags" class="tag_cloud"> |
| 24 | <%= tag_cloud(discussion.proposal_tags, :tag, {:action => :tag, :controller => 'search'}, :max_size => 18, :min_size => 10) %> | 20 | <%= tag_cloud(discussion.proposal_tags, :tag, {:action => :tag, :controller => 'search'}, :max_size => 18, :min_size => 10) %> |
| 25 | </div> | 21 | </div> |
| 26 | 22 | ||
| 23 | +<div class="new-proposal"> | ||
| 24 | + <%= link_to url_for({:controller => 'cms', :action => 'new', :type => "ProposalsDiscussionPlugin::Proposal", :parent_id => discussion.id}), :class => 'button with-text icon-add' do %> | ||
| 25 | + <strong><%= _("Send your proposal!") %></strong> | ||
| 26 | + <% end %> | ||
| 27 | +</div> | ||
| 28 | + | ||
| 27 | <%= render :partial => 'content_viewer/proposals_list', :locals => {:holder => discussion} %> | 29 | <%= render :partial => 'content_viewer/proposals_list', :locals => {:holder => discussion} %> |