From 2824d168497c7949fedf10e6b53ead5d41bd9ce1 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 5 Oct 2015 18:08:08 +0200 Subject: [PATCH 1/6] tmp commit manager vote --- .../management/proposals_controller.rb | 18 ++++++++++++++++++ app/helpers/admin_helper.rb | 2 +- app/views/management/proposals/index.html.erb | 1 + app/views/proposals/index.html.erb | 2 +- config/routes.rb | 1 + 5 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 app/controllers/management/proposals_controller.rb create mode 100644 app/views/management/proposals/index.html.erb diff --git a/app/controllers/management/proposals_controller.rb b/app/controllers/management/proposals_controller.rb new file mode 100644 index 000000000..da643d4a4 --- /dev/null +++ b/app/controllers/management/proposals_controller.rb @@ -0,0 +1,18 @@ +class Management::ProposalsController < Management::BaseController + include HasOrders + + has_orders %w{hot_score confidence_score created_at most_commented random}, only: :index + + def index + @proposals = Proposal.all.limit(10).page(params[:page]) + @tag_cloud = [] + set_proposal_votes(@proposals) + end + + private + + def set_proposal_votes(proposals) + @proposal_votes = current_user ? current_user.proposal_votes(proposals) : {} + end + +end \ No newline at end of file diff --git a/app/helpers/admin_helper.rb b/app/helpers/admin_helper.rb index 1c72fedbf..a8711e5d7 100644 --- a/app/helpers/admin_helper.rb +++ b/app/helpers/admin_helper.rb @@ -1,7 +1,7 @@ module AdminHelper def side_menu - render "/#{namespace}/menu" + #render "/#{namespace}/menu" end def official_level_options diff --git a/app/views/management/proposals/index.html.erb b/app/views/management/proposals/index.html.erb new file mode 100644 index 000000000..7c02f6d29 --- /dev/null +++ b/app/views/management/proposals/index.html.erb @@ -0,0 +1 @@ +<%= render template: "proposals/index" %> \ No newline at end of file diff --git a/app/views/proposals/index.html.erb b/app/views/proposals/index.html.erb index 28807d247..c0bbdc009 100644 --- a/app/views/proposals/index.html.erb +++ b/app/views/proposals/index.html.erb @@ -44,7 +44,7 @@ <%= link_to t("proposals.index.start_proposal"), new_proposal_path, class: 'button radius expand' %> - <%= render @proposals %> + <%= render partial: 'proposals/proposal', collection: @proposals %> <%= paginate @proposals %> diff --git a/config/routes.rb b/config/routes.rb index 391bc5415..3c23d5b5d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -169,6 +169,7 @@ Rails.application.routes.draw do get 'sign_in', to: 'sessions#create' resources :sessions, only: :create + resources :proposals, only: :index end # Example of regular route: From f2ab0e6c7210f2b9d7f9a24f2b46272568ee411d Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 5 Oct 2015 18:43:00 +0200 Subject: [PATCH 2/6] basic proposal voting my managers --- .../management/proposals_controller.rb | 19 ++++++++-- .../management/proposals/_proposal.html.erb | 35 +++++++++++++++++++ .../management/proposals/_votes.html.erb | 9 +++++ app/views/management/proposals/index.html.erb | 21 ++++++++++- config/routes.rb | 6 +++- 5 files changed, 86 insertions(+), 4 deletions(-) create mode 100644 app/views/management/proposals/_proposal.html.erb create mode 100644 app/views/management/proposals/_votes.html.erb diff --git a/app/controllers/management/proposals_controller.rb b/app/controllers/management/proposals_controller.rb index da643d4a4..2b0de30d6 100644 --- a/app/controllers/management/proposals_controller.rb +++ b/app/controllers/management/proposals_controller.rb @@ -1,18 +1,33 @@ class Management::ProposalsController < Management::BaseController + skip_before_action :verify_manager include HasOrders + before_action :set_proposal, only: :vote has_orders %w{hot_score confidence_score created_at most_commented random}, only: :index def index @proposals = Proposal.all.limit(10).page(params[:page]) - @tag_cloud = [] - set_proposal_votes(@proposals) + end + + def vote + @proposal.register_vote(current_user, 'yes') + redirect_to management_proposals_url, notice: "Succesfully voted" end private + def set_proposal + @proposal = Proposal.find(params[:id]) + end + def set_proposal_votes(proposals) @proposal_votes = current_user ? current_user.proposal_votes(proposals) : {} end + def current_user + #CHANGE ME + #Should be user being managed + User.first + end + end \ No newline at end of file diff --git a/app/views/management/proposals/_proposal.html.erb b/app/views/management/proposals/_proposal.html.erb new file mode 100644 index 000000000..f91fd2b4f --- /dev/null +++ b/app/views/management/proposals/_proposal.html.erb @@ -0,0 +1,35 @@ +
+
+
+ +
+
+ <%= t("proposals.proposal.proposal") %> + +

<%= link_to proposal.title, "#" %>

+ +

+   +  •  + <%= l proposal.created_at.to_date %> +  •  + + <%= proposal.try(:author).try(:name) %> + +

+ +
+

<%= proposal.summary %>

+
+
+ + <%= render "shared/tags", taggable: proposal, limit: 5 %> +
+
+ +
+ <%= render 'votes', proposal: proposal %> +
+
+
+
\ No newline at end of file diff --git a/app/views/management/proposals/_votes.html.erb b/app/views/management/proposals/_votes.html.erb new file mode 100644 index 000000000..7ef6fd6e3 --- /dev/null +++ b/app/views/management/proposals/_votes.html.erb @@ -0,0 +1,9 @@ +
+
+ <%= link_to vote_management_proposal_path(proposal, value: 'yes'), + class: "button button-support tiny radius expand", + title: t('proposals.proposal.support_title'), method: "post" do %> + <%= t("proposals.proposal.support") %> + <% end %> +
+
diff --git a/app/views/management/proposals/index.html.erb b/app/views/management/proposals/index.html.erb index 7c02f6d29..2aa28c219 100644 --- a/app/views/management/proposals/index.html.erb +++ b/app/views/management/proposals/index.html.erb @@ -1 +1,20 @@ -<%= render template: "proposals/index" %> \ No newline at end of file +
+
+
+ +
+
+ <% if @search_terms %> +

+ <%= page_entries_info @proposals %> + <%= t("proposals.index.search_results", count: @proposals.size, search_term: @search_terms) %> +

+ <% end %> +
+ + <%= render @proposals %> + <%= paginate @proposals %> +
+
+
+
\ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 3c23d5b5d..afb421ac5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -169,7 +169,11 @@ Rails.application.routes.draw do get 'sign_in', to: 'sessions#create' resources :sessions, only: :create - resources :proposals, only: :index + resources :proposals, only: :index do + member do + post :vote + end + end end # Example of regular route: From 4458de508982ffe1c0717c2bda3ef34a2f716f85 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 5 Oct 2015 18:56:18 +0200 Subject: [PATCH 3/6] bringing back admin side menu --- app/helpers/admin_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/admin_helper.rb b/app/helpers/admin_helper.rb index a8711e5d7..1c72fedbf 100644 --- a/app/helpers/admin_helper.rb +++ b/app/helpers/admin_helper.rb @@ -1,7 +1,7 @@ module AdminHelper def side_menu - #render "/#{namespace}/menu" + render "/#{namespace}/menu" end def official_level_options From 1bbafba24ef9e09e729fb9391473c24fca0ce14d Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 5 Oct 2015 18:56:33 +0200 Subject: [PATCH 4/6] adds search for proposals --- app/controllers/management/proposals_controller.rb | 11 +++++++---- app/views/admin/shared/_proposal_search.html.erb | 10 ++++++++++ app/views/management/proposals/index.html.erb | 2 ++ config/locales/admin.en.yml | 3 +++ config/locales/admin.es.yml | 3 +++ 5 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 app/views/admin/shared/_proposal_search.html.erb diff --git a/app/controllers/management/proposals_controller.rb b/app/controllers/management/proposals_controller.rb index 2b0de30d6..283aa9428 100644 --- a/app/controllers/management/proposals_controller.rb +++ b/app/controllers/management/proposals_controller.rb @@ -1,13 +1,12 @@ class Management::ProposalsController < Management::BaseController skip_before_action :verify_manager include HasOrders + include CommentableActions before_action :set_proposal, only: :vote - has_orders %w{hot_score confidence_score created_at most_commented random}, only: :index + before_action :parse_search_terms, only: :index - def index - @proposals = Proposal.all.limit(10).page(params[:page]) - end + has_orders %w{hot_score confidence_score created_at most_commented random}, only: :index def vote @proposal.register_vote(current_user, 'yes') @@ -30,4 +29,8 @@ class Management::ProposalsController < Management::BaseController User.first end + def resource_model + Proposal + end + end \ No newline at end of file diff --git a/app/views/admin/shared/_proposal_search.html.erb b/app/views/admin/shared/_proposal_search.html.erb new file mode 100644 index 000000000..9604edf34 --- /dev/null +++ b/app/views/admin/shared/_proposal_search.html.erb @@ -0,0 +1,10 @@ +<%= form_for(Proposal.new, url: url, as: :proposal, method: :get) do |f| %> +
+
+ <%= text_field_tag :search, "", placeholder: t("admin.shared.proposal_search.placeholder") %> +
+
+ <%= f.submit t("admin.shared.proposal_search.button"), class: "button radius success" %> +
+
+<% end %> \ No newline at end of file diff --git a/app/views/management/proposals/index.html.erb b/app/views/management/proposals/index.html.erb index 2aa28c219..f6044265c 100644 --- a/app/views/management/proposals/index.html.erb +++ b/app/views/management/proposals/index.html.erb @@ -1,4 +1,6 @@
+ <%= render 'admin/shared/proposal_search', url: management_proposals_path %> +
diff --git a/config/locales/admin.en.yml b/config/locales/admin.en.yml index d298f8250..a70329132 100644 --- a/config/locales/admin.en.yml +++ b/config/locales/admin.en.yml @@ -26,6 +26,9 @@ en: user_search: placeholder: 'Search user by name or email' button: 'Search' + proposal_search: + placeholder: 'Search proposals by title, description or question' + button: 'Search' organizations: index: title: Organizations diff --git a/config/locales/admin.es.yml b/config/locales/admin.es.yml index b9845c21e..40aef5f24 100644 --- a/config/locales/admin.es.yml +++ b/config/locales/admin.es.yml @@ -26,6 +26,9 @@ es: user_search: placeholder: 'Buscar usuario por nombre o email' button: 'Buscar' + proposal_search: + placeholder: 'Buscar propuestas por título, descripción o pregunta' + button: 'Buscar' organizations: index: title: Organizaciones From a884219cc9fd4fea52f934dc7425a4c5b848c192 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 5 Oct 2015 19:12:56 +0200 Subject: [PATCH 5/6] adds creation of proposals by managers --- app/controllers/management/proposals_controller.rb | 4 ++-- app/views/management/proposals/new.html.erb | 1 + app/views/proposals/_form.html.erb | 2 +- app/views/proposals/edit.html.erb | 2 +- app/views/proposals/new.html.erb | 2 +- config/routes.rb | 2 +- 6 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 app/views/management/proposals/new.html.erb diff --git a/app/controllers/management/proposals_controller.rb b/app/controllers/management/proposals_controller.rb index 283aa9428..1681fb004 100644 --- a/app/controllers/management/proposals_controller.rb +++ b/app/controllers/management/proposals_controller.rb @@ -19,8 +19,8 @@ class Management::ProposalsController < Management::BaseController @proposal = Proposal.find(params[:id]) end - def set_proposal_votes(proposals) - @proposal_votes = current_user ? current_user.proposal_votes(proposals) : {} + def proposal_params + params.require(:proposal).permit(:title, :question, :summary, :description, :external_url, :video_url, :responsible_name, :tag_list, :terms_of_service, :captcha, :captcha_key) end def current_user diff --git a/app/views/management/proposals/new.html.erb b/app/views/management/proposals/new.html.erb new file mode 100644 index 000000000..2641331a0 --- /dev/null +++ b/app/views/management/proposals/new.html.erb @@ -0,0 +1 @@ +<%= render template: 'proposals/new', form_url: management_proposals_url %> \ No newline at end of file diff --git a/app/views/proposals/_form.html.erb b/app/views/proposals/_form.html.erb index 40b0e5b52..4c14730fe 100644 --- a/app/views/proposals/_form.html.erb +++ b/app/views/proposals/_form.html.erb @@ -1,4 +1,4 @@ -<%= form_for(@proposal) do |f| %> +<%= form_for(@proposal, url: form_url) do |f| %> <%= render 'shared/errors', resource: @proposal %>
diff --git a/app/views/proposals/edit.html.erb b/app/views/proposals/edit.html.erb index 7d7ce413b..1ed03d533 100644 --- a/app/views/proposals/edit.html.erb +++ b/app/views/proposals/edit.html.erb @@ -12,6 +12,6 @@

<%= t("proposals.edit.editing") %>

- <%= render "form" %> + <%= render "form", form_url: proposal_url(@proposal) %>
diff --git a/app/views/proposals/new.html.erb b/app/views/proposals/new.html.erb index 0bda9fd56..a24a31e77 100644 --- a/app/views/proposals/new.html.erb +++ b/app/views/proposals/new.html.erb @@ -11,7 +11,7 @@ <%= t("proposals.new.more_info")%> <% end %>
- <%= render "form" %> + <%= render "proposals/form", form_url: proposals_url %>
diff --git a/config/routes.rb b/config/routes.rb index afb421ac5..5b62b5494 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -169,7 +169,7 @@ Rails.application.routes.draw do get 'sign_in', to: 'sessions#create' resources :sessions, only: :create - resources :proposals, only: :index do + resources :proposals, only: [:index, :new, :create] do member do post :vote end From aba255dbd3d2a7e9565a62e8918db554020105f7 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 6 Oct 2015 14:27:34 +0200 Subject: [PATCH 6/6] adds print of new proposals --- .../management/proposals_controller.rb | 12 ++++++- .../management/proposals/_votes.html.erb | 36 +++++++++++++++---- app/views/management/proposals/print.html.erb | 33 +++++++++++++++++ config/routes.rb | 4 +++ 4 files changed, 77 insertions(+), 8 deletions(-) create mode 100644 app/views/management/proposals/print.html.erb diff --git a/app/controllers/management/proposals_controller.rb b/app/controllers/management/proposals_controller.rb index 1681fb004..3b630a5ae 100644 --- a/app/controllers/management/proposals_controller.rb +++ b/app/controllers/management/proposals_controller.rb @@ -1,18 +1,23 @@ class Management::ProposalsController < Management::BaseController skip_before_action :verify_manager + include HasOrders include CommentableActions before_action :set_proposal, only: :vote before_action :parse_search_terms, only: :index - has_orders %w{hot_score confidence_score created_at most_commented random}, only: :index + has_orders %w{hot_score confidence_score created_at most_commented random}, only: [:index, :print] def vote @proposal.register_vote(current_user, 'yes') redirect_to management_proposals_url, notice: "Succesfully voted" end + def print + @proposals = Proposal.all.page(params[:page]).for_render.send("sort_by_#{@current_order}") + end + private def set_proposal @@ -33,4 +38,9 @@ class Management::ProposalsController < Management::BaseController Proposal end + #Duplicated in application_controller. Move to a concenrn. + def set_proposal_votes(proposals) + @proposal_votes = current_user ? current_user.proposal_votes(proposals) : {} + end + end \ No newline at end of file diff --git a/app/views/management/proposals/_votes.html.erb b/app/views/management/proposals/_votes.html.erb index 7ef6fd6e3..ac0c93b09 100644 --- a/app/views/management/proposals/_votes.html.erb +++ b/app/views/management/proposals/_votes.html.erb @@ -1,9 +1,31 @@
-
- <%= link_to vote_management_proposal_path(proposal, value: 'yes'), - class: "button button-support tiny radius expand", - title: t('proposals.proposal.support_title'), method: "post" do %> - <%= t("proposals.proposal.support") %> - <% end %> -
+ + <% if action_name == 'print' %> +
+ + + <%= supports_percentage(proposal) %> / <%= t("proposals.proposal.total_percent") %> + +
+ + + <%= t("proposals.proposal.supports", count: proposal.total_votes) %>  + + "> + <%= t("proposals.proposal.supports_necessary") %> + + + + <% else %> + +
+ <%= link_to vote_management_proposal_path(proposal, value: 'yes'), + class: "button button-support tiny radius expand", + title: t('proposals.proposal.support_title'), method: "post" do %> + <%= t("proposals.proposal.support") %> + <% end %> +
+ + <% end %> +
diff --git a/app/views/management/proposals/print.html.erb b/app/views/management/proposals/print.html.erb new file mode 100644 index 000000000..c223dbd4c --- /dev/null +++ b/app/views/management/proposals/print.html.erb @@ -0,0 +1,33 @@ +
+ <%= t("manage.create_user.print") %> +
+
+ +
+
+
+

+ <%= t("proposals.index.select_order_long") %> +

+ <%= render 'shared/order_selector', i18n_namespace: "proposals.index" %> +
+
+
+ + <%= render @proposals %> + <%= paginate @proposals %> +
+
+
+ + + \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 5b62b5494..b3a2a5476 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -173,6 +173,10 @@ Rails.application.routes.draw do member do post :vote end + + collection do + get :print + end end end