diff --git a/public/images/score.png b/public/images/score.png index 6cc20f8..aa0ae80 100644 Binary files a/public/images/score.png and b/public/images/score.png differ diff --git a/public/style.css b/public/style.css index ae3990f..54d5e36 100644 --- a/public/style.css +++ b/public/style.css @@ -1,3 +1,27 @@ +.proposals_list .proposal .abstract { + color: rgb(160, 160, 160); + margin-bottom: 15px; + float: left; +} +.proposals_list .proposal .comments-count { + clear: both; + float: right; + color: rgb(162, 162, 162); + font-size: 10px; +} +.proposals_list .proposal .tags { + float: left; + clear: both; +} +.proposal .author { + display: table-cell; + font-size: 10px; + margin-right: 10px; +} +#content #article .proposal .author .profile-link img { + max-width: 70%; +} + .private-proposals .proposal { background: url(/images/hachure.png); opacity: 0.5; @@ -6,18 +30,23 @@ } .proposal { - width: 100%; - min-width: 272px; vertical-align: top; - margin: 12px 13px 12px 0; + margin: 15px 0; + background-color: rgb(236, 236, 236); + border-radius: 5px; + padding: 10px; } +.article-body-proposals-discussion-plugin_discussion .new-proposal { + clear: both; + margin: 20px 0; +} .article-body-proposals-discussion-plugin_discussion .actions, .article-body-proposals-discussion-plugin_topic .actions { margin: 10px 0 25px 0; } -.proposal .content, .proposal .score, .proposal .topic { +.proposal .content, .proposal .topic { display: inline-block; border-color: rgb(201, 201, 201); padding: 5px; @@ -32,6 +61,7 @@ .proposal .score { width: 5%; text-align: center; + float: right; } .proposal .score span { background: url(/plugins/proposals_discussion/images/score.png) no-repeat; @@ -41,19 +71,20 @@ position: relative; } -.proposal .content:hover, .proposal .topic:hover { - background: rgb(230, 230, 230); -} - .proposal .title { font-weight: bold; - font-size: 12px; + font-size: 14px; + background-color: rgb(136, 136, 136); + padding: 9px; + border-radius: 5px; } #article .proposal a:visited, #article .proposal a { - color: rgb(70, 70, 70); text-decoration: none; +} +#article .proposal .title a:visited, #article .proposal .title a { width: 100%; + color: rgb(240, 240, 240); display: inline-block; } #article .proposal .private.actions a:visited, #article .proposal .private.actions a { @@ -61,7 +92,8 @@ } .proposal .content { - width: 84%; + width: 100%; + display: table-cell; color: rgb(83, 83, 83); vertical-align: top; position: relative; @@ -98,6 +130,7 @@ form .proposals-discussion-plugin .body textarea { } .proposals_list .filters { + clear: both; float: right; margin-top: 4px; } @@ -210,7 +243,8 @@ form .proposals-discussion-plugin .body textarea { min-height: 50px; } -.article-body-proposals-discussion-plugin_topic .graph { +.article-body-proposals-discussion-plugin_topic .statistics .graph, +.article-body-proposals-discussion-plugin_discussion .statistics .graph { float: left; } .article-body-proposals-discussion-plugin_topic .graph #proposals-time, diff --git a/test/functional/proposals_discussion_plugin_public_controller_test.rb b/test/functional/proposals_discussion_plugin_public_controller_test.rb index 927e17b..d79aa3f 100644 --- a/test/functional/proposals_discussion_plugin_public_controller_test.rb +++ b/test/functional/proposals_discussion_plugin_public_controller_test.rb @@ -3,21 +3,22 @@ require File.dirname(__FILE__) + '/../test_helper' class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase def setup + @person = fast_create(Person) @profile = fast_create(Community) @discussion = ProposalsDiscussionPlugin::Discussion.create!(:profile => @profile, :allow_topics => true, :name => 'discussion') @topic = fast_create(ProposalsDiscussionPlugin::Topic, :parent_id => @discussion.id, :profile_id => @profile.id) end - attr_reader :profile, :discussion, :topic + attr_reader :profile, :discussion, :topic, :person should 'load proposals' do - proposals = 3.times.map { fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal title', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id)} + 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)} get :load_proposals, :profile => profile.identifier, :holder_id => topic.id assert_equivalent proposals, assigns(:proposals) end should 'add link to next page' do - proposal = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal title', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) + proposal = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal title', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) get :load_proposals, :profile => profile.identifier, :holder_id => topic.id assert_match /href=.*page=2/, response.body end @@ -28,17 +29,17 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase end should 'load proposals with alphabetical order' do - proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'z proposal', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) - proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'abc proposal', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) - proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'abd proposal', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) + proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'z proposal', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) + proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'abc proposal', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) + proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'abd proposal', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) get :load_proposals, :profile => profile.identifier, :holder_id => topic.id, :order => 'alphabetical' assert_equal [proposal2, proposal3, proposal1], assigns(:proposals) end should 'load proposals with most commented order' do - proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal1', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) - proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal2', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) - proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal3', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) + proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal1', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) + proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal2', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) + proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal3', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) author = fast_create(Person) Comment.create!(:source => proposal2, :body => 'text', :author => author) @@ -50,9 +51,9 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase end should 'load proposals with most recent order' do - proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'z', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :created_at => Date.today - 2.day) - proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'b', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :created_at => Date.today - 1.day) - proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'k', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :created_at => Date.today) + 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) + 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) + 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) author = fast_create(Person) @@ -61,9 +62,9 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase end should 'load proposals with most recently commented order' do - proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal1', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) - proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal2', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) - proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal3', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id) + proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal1', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) + proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal2', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) + proposal3 = fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal3', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id, :author_id => person.id) author = fast_create(Person) Comment.create!({:source => proposal2, :body => 'text', :author => author, :created_at => 10.days.ago}, :without_protection => true) @@ -82,7 +83,7 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase profile.add_member(person) profile.update_attribute(:public_profile, false) - proposals = 3.times.map { fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal title', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id)} + 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)} get :load_proposals, :profile => profile.identifier, :holder_id => topic.id assert_equivalent proposals, assigns(:proposals) end @@ -90,7 +91,7 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase should 'not load proposals when profile is private and user is not logged' do logout profile.update_attribute(:public_profile, false) - proposals = 3.times.map { fast_create(ProposalsDiscussionPlugin::Proposal, :name => 'proposal title', :abstract => 'proposal abstract', :profile_id => profile.id, :parent_id => topic.id)} + 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)} get :load_proposals, :profile => profile.identifier, :holder_id => topic.id assert_equal nil, assigns(:proposals) end diff --git a/views/content_viewer/_proposal_card.html.erb b/views/content_viewer/_proposal_card.html.erb index f00fdfd..e8ca6ff 100644 --- a/views/content_viewer/_proposal_card.html.erb +++ b/views/content_viewer/_proposal_card.html.erb @@ -1,10 +1,6 @@
-
- <% if proposal_card.published? %> - <% normalized_score = proposal_card.normalized_score %> - <% pos = 26 * (normalized_score*4 - 1).round %> -   - <% end %> +
+ <%= link_to_profile profile_image(proposal_card.author, :minor, :class => 'disable-zoom') + '
' + proposal_card.author.short_name, proposal_card.author.identifier, :class => 'profile-link' %>
@@ -22,7 +18,22 @@
<% end %>
- <%= link_to strip_tags(proposal_card.abstract), proposal_card.view_url %> + <%= proposal_card.abstract %> +
+
+ <% if proposal_card.published? %> + <% normalized_score = proposal_card.normalized_score %> + <% pos = 26 * (normalized_score*4 - 1).round %> +   + <% end %> +
+ <% if !proposal_card.tags.empty? %> +
+ <%= proposal_card.tags.map { |t| link_to(t, :controller => 'profile', :profile => @profile.identifier, :action => 'tags', :id => t.name ) }.join("\n") %> +
+ <% end %> +
+ <%= n_("%s comment", "%s comments", proposal_card.comments_count) % proposal_card.comments_count %>
diff --git a/views/content_viewer/_statistics.html.erb b/views/content_viewer/_statistics.html.erb index 44773ca..c39c9ac 100644 --- a/views/content_viewer/_statistics.html.erb +++ b/views/content_viewer/_statistics.html.erb @@ -1,4 +1,4 @@ -
+
<%= _('Statistics') %>
diff --git a/views/content_viewer/discussion.html.erb b/views/content_viewer/discussion.html.erb index e9265a6..d11ebf6 100644 --- a/views/content_viewer/discussion.html.erb +++ b/views/content_viewer/discussion.html.erb @@ -14,14 +14,16 @@
<% end %> -<%= link_to url_for({:controller => 'cms', :action => 'new', :type => "ProposalsDiscussionPlugin::Proposal", :parent_id => discussion.id}), :class => 'button with-text icon-add' do %> - <%= _("Send your proposal!") %> -<% end %> - <%= render :partial => 'content_viewer/statistics', :locals => {:holder => discussion} %> -
+
<%= tag_cloud(discussion.proposal_tags, :tag, {:action => :tag, :controller => 'search'}, :max_size => 18, :min_size => 10) %>
+
+ <%= link_to url_for({:controller => 'cms', :action => 'new', :type => "ProposalsDiscussionPlugin::Proposal", :parent_id => discussion.id}), :class => 'button with-text icon-add' do %> + <%= _("Send your proposal!") %> + <% end %> +
+ <%= render :partial => 'content_viewer/proposals_list', :locals => {:holder => discussion} %> -- libgit2 0.21.2