Merge pull request #1079 from MaiteHdezRivas/select-featured-debates

Select featured debates
This commit is contained in:
Alberto García Cabeza
2016-04-21 11:54:18 +02:00
13 changed files with 31 additions and 53 deletions

View File

@@ -9,6 +9,7 @@ module CommentableActions
@resources = @resources.tagged_with(@tag_filter) if @tag_filter
@resources = @resources.page(params[:page]).for_render.send("sort_by_#{@current_order}")
index_customization if index_customization.present?
featured_debates if featured_debates.present?
@tag_cloud = tag_cloud
set_resource_votes(@resources)
@@ -152,4 +153,9 @@ module CommentableActions
def index_customization
nil
end
def featured_debates
nil
end
end

View File

@@ -1,31 +0,0 @@
class DebateLinksController < ApplicationController
include FeatureFlags
include CommentableActions
before_action :authenticate_user!, except: [:show]
load_and_authorize_resource class: "Debate"
feature_flag :debates
respond_to :html, :js
private
def create_params
params.require(:debate).permit(:title, :external_link, :tag_list, :terms_of_service, :captcha, :captcha_key).merge(link_required: true)
end
def debate_params
params.require(:debate).permit(:title, :external_link, :tag_list, :terms_of_service, :captcha, :captcha_key).merge(link_required: true)
end
def after_create_path
debate_path(@resource)
end
def resource_model
Debate
end
end

View File

@@ -28,16 +28,20 @@ class DebatesController < ApplicationController
set_debate_votes(@debate)
end
def remove_feature
def unmark_featured
@debate.update_attribute(:featured_at, nil)
redirect_to request.query_parameters.merge(action: :index)
end
def feature
def mark_featured
@debate.update_attribute(:featured_at, Time.now)
redirect_to request.query_parameters.merge(action: :index)
end
def featured_debates
@featured_debates = @debates.featured
end
private
def debate_params

View File

@@ -1,6 +1,6 @@
module DebatesHelper
def has_featured
def has_featured?
Debate.all.featured.count > 0
end
end

View File

@@ -30,9 +30,8 @@ module Abilities
can :confirm_hide, User
cannot :confirm_hide, User, hidden_at: nil
can :feature, Debate
can :remove_feature, Debate
can :mark_featured, Debate
can :unmark_featured, Debate
can :comment_as_administrator, [Debate, Comment, Proposal]

View File

@@ -134,7 +134,7 @@ class Debate < ActiveRecord::Base
end
def featured?
! self.featured_at.nil?
self.featured_at.present?
end
end

View File

@@ -9,13 +9,13 @@
method: :put, data: { confirm: t('admin.actions.confirm') } %>
<% end %>
<% if can? :feature, debate %>
&nbsp;|&nbsp;
<% if can? :mark_featured, debate %>
&nbsp;|&nbsp;
<% if debate.featured? %>
<%= link_to t("admin.actions.remove_feature").capitalize, remove_feature_debate_path(debate),
<%= link_to t("admin.actions.unmark_featured").capitalize, unmark_featured_debate_path(debate),
method: :put, data: { confirm: t('admin.actions.confirm') } %>
<% else %>
<%= link_to t("admin.actions.feature").capitalize, feature_debate_path(debate),
<%= link_to t("admin.actions.mark_featured").capitalize, mark_featured_debate_path(debate),
method: :put, data: { confirm: t('admin.actions.confirm') } %>
<% end %>
<% end %>

View File

@@ -4,7 +4,7 @@
<h2><%= t("debates.index.featured_debates") %></h2>
</div>
<% @debates.featured.each do |debate| %>
<% @featured_debates.each do |debate| %>
<div class="small-12 medium-6 column end">
<h3><%= link_to debate.title, debate %></h3>
<%= link_to debate.author.name, user_path(debate.author)%>

View File

@@ -25,8 +25,8 @@
<% end %>
</div>
<% unless @tag_filter || @search_terms || !has_featured %>
<%= render "featured_debates", debate: @debates.featured %>
<% unless @tag_filter || @search_terms || !has_featured? %>
<%= render "featured_debates" %>
<% end %>
<%= render "shared/advanced_search", search_path: debates_path(page: 1) %>

View File

@@ -7,8 +7,8 @@ en:
hide: Hide
hide_author: Hide author
restore: Restore
feature: Feature
remove_feature: Remove feature
mark_featured: Featured
unmark_featured: Unmark featured
activity:
show:
action: Action

View File

@@ -7,8 +7,8 @@ es:
hide: Ocultar
hide_author: Bloquear al autor
restore: Volver a mostrar
feature: Destacar
remove_feature: Quitar destacado
mark_featured: Destacar
unmark_featured: Quitar destacado
activity:
show:
action: Acción

View File

@@ -36,8 +36,8 @@ Rails.application.routes.draw do
post :vote
put :flag
put :unflag
put :remove_feature
put :feature
put :mark_featured
put :unmark_featured
end
collection do
get :map

View File

@@ -1017,10 +1017,10 @@ feature 'Debates' do
debate2 = create(:debate, featured_at: Time.now)
visit debate_path(debate1)
expect(page).to have_content("Feature")
expect(page).to have_content("Featured")
visit debate_path(debate2)
expect(page).to have_content("Remove feature")
expect(page).to have_content("Unmark featured")
end