diff --git a/app/assets/stylesheets/participation.scss b/app/assets/stylesheets/participation.scss index b1edc246d..8b7390191 100644 --- a/app/assets/stylesheets/participation.scss +++ b/app/assets/stylesheets/participation.scss @@ -310,6 +310,10 @@ .budget-investment-new, .proposal-form, .proposal-edit, +.new_poll_question, +.edit_poll_question, +.new_poll, +.edit_poll, .poll-question-form { @include direct-uploads; } diff --git a/app/controllers/admin/poll/polls_controller.rb b/app/controllers/admin/poll/polls_controller.rb index c95c8ed1f..cce880ed4 100644 --- a/app/controllers/admin/poll/polls_controller.rb +++ b/app/controllers/admin/poll/polls_controller.rb @@ -1,7 +1,7 @@ class Admin::Poll::PollsController < Admin::Poll::BaseController load_and_authorize_resource - before_action :load_search, only: [:search_booths, :search_questions, :search_officers] + before_action :load_search, only: [:search_booths, :search_officers] before_action :load_geozones, only: [:new, :create, :edit, :update] def index @@ -47,25 +47,6 @@ class Admin::Poll::PollsController < Admin::Poll::BaseController redirect_to admin_poll_path(@poll), notice: notice end - def remove_question - question = ::Poll::Question.find(params[:question_id]) - - if @poll.questions.include? question - @poll.questions.delete(question) - notice = t("admin.polls.flash.question_removed") - else - notice = t("admin.polls.flash.error_on_question_removed") - end - redirect_to admin_poll_path(@poll), notice: notice - end - - def search_questions - @questions = ::Poll::Question.where("poll_id IS ? OR poll_id != ?", nil, @poll.id).search(search: @search).order(title: :asc) - respond_to do |format| - format.js - end - end - private def load_geozones @@ -73,7 +54,9 @@ class Admin::Poll::PollsController < Admin::Poll::BaseController end def poll_params - params.require(:poll).permit(:name, :starts_at, :ends_at, :geozone_restricted, geozone_ids: []) + params.require(:poll).permit(:name, :starts_at, :ends_at, :geozone_restricted, :summary, :description, + geozone_ids: [], + image_attributes: [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy]) end def search_params diff --git a/app/controllers/officing/polls_controller.rb b/app/controllers/officing/polls_controller.rb index 5ba94e024..69b65ad23 100644 --- a/app/controllers/officing/polls_controller.rb +++ b/app/controllers/officing/polls_controller.rb @@ -7,7 +7,9 @@ class Officing::PollsController < Officing::BaseController def final @polls = if current_user.poll_officer? - current_user.poll_officer.final_days_assigned_polls.select {|poll| poll.ends_at > 2.weeks.ago && poll.expired?} + current_user.poll_officer.final_days_assigned_polls.select do |poll| + poll.ends_at > 2.weeks.ago && poll.expired? || poll.ends_at.today? + end else [] end diff --git a/app/controllers/officing/results_controller.rb b/app/controllers/officing/results_controller.rb index f517f081a..23ef0b038 100644 --- a/app/controllers/officing/results_controller.rb +++ b/app/controllers/officing/results_controller.rb @@ -93,7 +93,7 @@ class Officing::ResultsController < Officing::BaseController end def load_poll - @poll = ::Poll.expired.includes(:questions).find(params[:poll_id]) + @poll = ::Poll.includes(:questions).find(params[:poll_id]) end def load_officer_assignment diff --git a/app/models/abilities/administrator.rb b/app/models/abilities/administrator.rb index 793f2cbd8..1bc8d5e0c 100644 --- a/app/models/abilities/administrator.rb +++ b/app/models/abilities/administrator.rb @@ -56,7 +56,7 @@ module Abilities can [:index, :create, :edit, :update, :destroy], Geozone - can [:read, :create, :update, :destroy, :add_question, :remove_question, :search_booths, :search_questions, :search_officers], Poll + can [:read, :create, :update, :destroy, :add_question, :search_booths, :search_officers], Poll can [:read, :create, :update, :destroy, :available], Poll::Booth can [:search, :create, :index, :destroy], ::Poll::Officer can [:create, :destroy], ::Poll::BoothAssignment diff --git a/app/models/poll.rb b/app/models/poll.rb index 624cfc704..84349bf0b 100644 --- a/app/models/poll.rb +++ b/app/models/poll.rb @@ -1,4 +1,6 @@ class Poll < ActiveRecord::Base + include Imageable + has_many :booth_assignments, class_name: "Poll::BoothAssignment" has_many :booths, through: :booth_assignments has_many :partial_results, through: :booth_assignments diff --git a/app/views/admin/poll/booth_assignments/show.html.erb b/app/views/admin/poll/booth_assignments/show.html.erb index f01270bd4..fd303d099 100644 --- a/app/views/admin/poll/booth_assignments/show.html.erb +++ b/app/views/admin/poll/booth_assignments/show.html.erb @@ -14,15 +14,15 @@
-
+
<% if @booth_assignment.officers.empty? %>
<%= t("admin.poll_booth_assignments.show.no_officers") %> @@ -43,7 +43,7 @@ <% end %>
-
+

<%= t("admin.poll_booth_assignments.show.recounts_list") %>

diff --git a/app/views/admin/poll/booths/_booth.html.erb b/app/views/admin/poll/booths/_booth.html.erb index 80b1ef38f..921361c4a 100644 --- a/app/views/admin/poll/booths/_booth.html.erb +++ b/app/views/admin/poll/booths/_booth.html.erb @@ -6,11 +6,13 @@ <%= booth.location %> - \ No newline at end of file + diff --git a/app/views/admin/poll/booths/index.html.erb b/app/views/admin/poll/booths/index.html.erb index 05044dd0e..95b248b3f 100644 --- a/app/views/admin/poll/booths/index.html.erb +++ b/app/views/admin/poll/booths/index.html.erb @@ -1,7 +1,8 @@

<%= t("admin.booths.index.title") %>

-<%= link_to t("admin.booths.index.add_booth"), new_admin_booth_path, - class: "button success float-right" %> +<% if controller_name == "booths" && action_name != "available" %> + <%= link_to t("admin.booths.index.add_booth"), new_admin_booth_path, class: "button success float-right" %> +<% end %> <% if @booths.empty? %>
diff --git a/app/views/admin/poll/officer_assignments/_search_officers_results.html.erb b/app/views/admin/poll/officer_assignments/_search_officers_results.html.erb index f665c6c0b..ee009f1fa 100644 --- a/app/views/admin/poll/officer_assignments/_search_officers_results.html.erb +++ b/app/views/admin/poll/officer_assignments/_search_officers_results.html.erb @@ -12,29 +12,19 @@
- <% @officers.each do |user| %> - <% end %> diff --git a/app/views/admin/poll/officer_assignments/by_officer.html.erb b/app/views/admin/poll/officer_assignments/by_officer.html.erb index cefe161d9..c9873db96 100644 --- a/app/views/admin/poll/officer_assignments/by_officer.html.erb +++ b/app/views/admin/poll/officer_assignments/by_officer.html.erb @@ -27,30 +27,4 @@ <% end %>
- <%= link_to t("admin.booths.booth.shifts"), - new_admin_booth_shift_path(booth), - class: "button hollow" %> - <%= link_to t("admin.actions.edit"), - edit_admin_booth_path(booth), - class: "button hollow" %> + <% if controller_name == "shifts" || controller_name == "booths" && action_name == "available" %> + <%= link_to t("admin.booths.booth.shifts"), + new_admin_booth_shift_path(booth), + class: "button hollow" %> + <%= link_to t("admin.actions.edit"), + edit_admin_booth_path(booth), + class: "button hollow" %> + <% end %>
<%= t("admin.poll_officer_assignments.index.table_name") %> <%= t("admin.poll_officer_assignments.index.table_email") %><%= t("admin.polls.show.table_assignment") %>
- <%= user.name %> + + <%= link_to user.name, by_officer_admin_poll_officer_assignments_path(@poll, officer_id: user.id) %> + <%= user.email %> - <% if @poll.officer_ids.include?(user.poll_officer.id) %> - <%= link_to t("admin.poll_officer_assignments.index.edit_officer_assignments"), - by_officer_admin_poll_officer_assignments_path(@poll, officer_id: user.poll_officer.id), - class: "button hollow alert" %> - <% else %> - <%= link_to t("admin.poll_officer_assignments.index.add_officer_assignments"), - by_officer_admin_poll_officer_assignments_path(@poll, officer_id: user.poll_officer.id), - class: "button hollow" %> - <% end %> -
- -

<%= t("admin.poll_officer_assignments.by_officer.total_recounts") %>

- - - - - - - - - - <% @officer_assignments.each do |officer_assignment| %> - - - - - - <% end %> - -
<%= t("admin.poll_officer_assignments.by_officer.date") %><%= t("admin.poll_officer_assignments.by_officer.booth") %><%= t("admin.poll_officer_assignments.by_officer.total_recount") %>
<%= l(officer_assignment.date.to_date) %><%= booth_name_with_location(officer_assignment.booth_assignment.booth) %> - <% if officer_assignment.recounts.any? %> - <%= officer_assignment.recounts.to_a.sum(&:total_amount) %> - <% else %> - - - <% end %> -
<% end %> diff --git a/app/views/admin/poll/officers/_officer.html.erb b/app/views/admin/poll/officers/_officer.html.erb index 80434f385..3562b4a90 100644 --- a/app/views/admin/poll/officers/_officer.html.erb +++ b/app/views/admin/poll/officers/_officer.html.erb @@ -16,7 +16,7 @@ <% if officer.persisted? %> <%= link_to t('admin.poll_officers.officer.delete'), - admin_poll_officer_path(officer), + admin_officer_path(officer), method: :delete, class: "button hollow alert" %> <% else %> diff --git a/app/views/admin/poll/polls/_form.html.erb b/app/views/admin/poll/polls/_form.html.erb index 0b99ea9f5..aff19d9d7 100644 --- a/app/views/admin/poll/polls/_form.html.erb +++ b/app/views/admin/poll/polls/_form.html.erb @@ -19,6 +19,22 @@
+
+
+ <%=f.text_area :summary, rows: 4%> +
+
+ +
+
+ <%=f.text_area :description, rows: 8%> +
+
+ +
+ <%= render 'images/admin_image', imageable: @poll, f: f %> +
+
<%= f.check_box :geozone_restricted, data: { checkbox_toggle: "#geozones" } %> diff --git a/app/views/admin/poll/polls/_questions.html.erb b/app/views/admin/poll/polls/_questions.html.erb index e41d2017e..fb92a4e43 100644 --- a/app/views/admin/poll/polls/_questions.html.erb +++ b/app/views/admin/poll/polls/_questions.html.erb @@ -9,7 +9,6 @@ <%= t('admin.polls.show.table_title') %> - <%= t('admin.polls.show.table_assignment') %> <% @poll.questions.each do |question| %> @@ -19,12 +18,6 @@ <%= link_to question.title, admin_question_path(question) %> - - <%= link_to t('admin.polls.show.remove_question'), - remove_question_admin_poll_path(poll_id: @poll.id, question_id: question.id), - class: "button hollow alert", - method: :patch %> - <% end %> diff --git a/app/views/admin/poll/polls/_search_questions.html.erb b/app/views/admin/poll/polls/_search_questions.html.erb deleted file mode 100644 index 659cdcd37..000000000 --- a/app/views/admin/poll/polls/_search_questions.html.erb +++ /dev/null @@ -1,17 +0,0 @@ -
-
- <%= form_tag(search_questions_admin_poll_path(@poll), method: :get, remote: true) do |f| %> -
- <%= text_field_tag :search, - @search, - placeholder: t("admin.shared.poll_questions_search.placeholder"), id: "search-questions" %> - -
- <%= submit_tag t("admin.shared.poll_questions_search.button"), class: "button" %> -
-
- <% end %> -
-
- -
diff --git a/app/views/admin/poll/polls/_search_questions_results.html.erb b/app/views/admin/poll/polls/_search_questions_results.html.erb deleted file mode 100644 index f6f11e1f1..000000000 --- a/app/views/admin/poll/polls/_search_questions_results.html.erb +++ /dev/null @@ -1,33 +0,0 @@ -<% if @questions.blank? %> -
- <%= t('admin.shared.no_search_results') %> -
-<% else %> -

<%= t('admin.shared.search_results') %>

-<% end %> - -<% if @questions.any? %> - - - - - - - - - <% @questions.each do |question| %> - - - - - <% end %> - -
<%= t("admin.polls.show.table_name") %><%= t("admin.polls.show.table_assignment") %>
- <%= question.title %> - - <%= link_to t("admin.polls.show.add_question"), - add_question_admin_poll_path(poll_id: @poll.id, question_id: question.id), - method: :patch, - class: "button hollow" %> -
-<% end %> diff --git a/app/views/admin/poll/polls/search_questions.js.erb b/app/views/admin/poll/polls/search_questions.js.erb deleted file mode 100644 index 05f5c5167..000000000 --- a/app/views/admin/poll/polls/search_questions.js.erb +++ /dev/null @@ -1 +0,0 @@ -$("#search-questions-results").html("<%= j render 'search_questions_results' %>"); \ No newline at end of file diff --git a/app/views/admin/poll/polls/show.html.erb b/app/views/admin/poll/polls/show.html.erb index 93ce52e47..be45eeb31 100644 --- a/app/views/admin/poll/polls/show.html.erb +++ b/app/views/admin/poll/polls/show.html.erb @@ -3,6 +3,5 @@
<%= render "subnav" %> - <%= render "search_questions" %> <%= render "questions" %>
diff --git a/app/views/images/_admin_image.html.erb b/app/views/images/_admin_image.html.erb new file mode 100644 index 000000000..a782b743b --- /dev/null +++ b/app/views/images/_admin_image.html.erb @@ -0,0 +1,45 @@ +
+
+ <%= f.label :image, t("images.form.admin_title") %> + + + <%= link_to_add_association t('images.form.add_new_image'), f, :image, + force_non_association_create: true, + partial: "images/image_fields", + id: "new_image_link", + class: "button hollow", + render_options: { + locals: { imageable: imageable } + }, + data: { + association_insertion_node: "#nested-image", + association_insertion_method: "append" + } %> + +
+ <%= f.fields_for :image do |image_builder| %> + +
+ <%= image_builder.hidden_field :id %> + <%= image_builder.hidden_field :user_id, value: current_user.id %> + <%= image_builder.hidden_field :cached_attachment %> + + <%= image_builder.text_field :title, placeholder: t("images.form.title_placeholder"), label: "#{t("images.form.admin_alt_text")}" %> + + +
+
+ <%= render_image_attachment(image_builder, imageable, image_builder.object) %> +
+
+ +
+
+
+ +
+ + <% end %> +
+
+
diff --git a/config/locales/en/activerecord.yml b/config/locales/en/activerecord.yml index 1e3f62b1a..8bb2c3286 100644 --- a/config/locales/en/activerecord.yml +++ b/config/locales/en/activerecord.yml @@ -152,6 +152,8 @@ en: starts_at: "Start Date" ends_at: "Closing Date" geozone_restricted: "Restricted by geozone" + summary: "Summary" + description: "Description" poll/question: title: "Question" valid_answers: "Posibles answers" diff --git a/config/locales/en/admin.yml b/config/locales/en/admin.yml index 0545e6af5..a3751615a 100644 --- a/config/locales/en/admin.yml +++ b/config/locales/en/admin.yml @@ -489,15 +489,11 @@ en: no_officers: "There are no officers assigned to this poll." table_name: "Name" table_email: "Email" - add_officer_assignments: "Add shifts as officer" - edit_officer_assignments: "Edit officing shifts" by_officer: date: "Date" booth: "Booth" assignments: "Officing shifts in this poll" no_assignments: "This user has no officing shifts in this poll." - total_recounts: "Total recounts" - total_recount: "Total recount (by officer)" poll_shifts: new: add_shift: "Add shift" @@ -570,16 +566,10 @@ en: results_tab: Results no_questions: "There are no questions assigned to this poll." questions_title: "List of questions" - remove_question: "Remove question from poll" - add_question: "Include question" table_title: "Title" - table_assignment: "Assignment" - table_name: "Name" flash: question_added: "Question added to this poll" error_on_question_added: "Question could not be assigned to this poll" - question_removed: "Question removed from this poll" - error_on_question_removed: "Question could not be removed from this poll" questions: index: title: "Questions" @@ -606,7 +596,6 @@ en: description: Description video_url: External video documents: Documents (1) - preview: View on website recounts: index: title: "Recounts" diff --git a/config/locales/en/general.yml b/config/locales/en/general.yml index 67d8eef2c..ff8a77014 100644 --- a/config/locales/en/general.yml +++ b/config/locales/en/general.yml @@ -494,7 +494,7 @@ en: create_question: "Create question" default_valid_answers: "Yes, No" show: - answer_this_question: "Answer this question" + answer_this_question: "Go to voting page" original_proposal: "Original proposal" author: "Created by" dates_title: "Participation dates" diff --git a/config/locales/en/images.yml b/config/locales/en/images.yml index 6f16061fa..afd8b2308 100644 --- a/config/locales/en/images.yml +++ b/config/locales/en/images.yml @@ -9,6 +9,9 @@ en: delete_button: Remove image note: "You can upload one image of following content types: %{accepted_content_types}, up to %{max_file_size} MB." add_new_image: Add image + title_placeholder: Add a descriptive title for the image + admin_title: "Main image of the poll" + admin_alt_text: "Alternative text for the image" actions: destroy: diff --git a/config/locales/es/activerecord.yml b/config/locales/es/activerecord.yml index 108f19fcf..415e81bed 100644 --- a/config/locales/es/activerecord.yml +++ b/config/locales/es/activerecord.yml @@ -146,6 +146,8 @@ es: starts_at: "Fecha de apertura" ends_at: "Fecha de cierre" geozone_restricted: "Restringida por zonas" + summary: "Resumen" + description: "Descripción" poll/question: title: "Pregunta" valid_answers: "Posibles respuestas" diff --git a/config/locales/es/admin.yml b/config/locales/es/admin.yml index 816cadd57..f95c2d39f 100644 --- a/config/locales/es/admin.yml +++ b/config/locales/es/admin.yml @@ -489,15 +489,11 @@ es: no_officers: "No hay presidentes de mesa asignados a esta votación." table_name: "Nombre" table_email: "Email" - add_officer_assignments: "Añadir turnos como presidente de mesa" - edit_officer_assignments: "Editar turnos" by_officer: date: "Fecha" booth: "Urna" assignments: "Turnos como presidente de mesa en esta votación" no_assignments: "No tiene turnos como presidente de mesa en esta votación." - total_recounts: "Recuentos totales" - total_recount: "Recuento total (presidente de mesa)" poll_shifts: new: add_shift: "Añadir turno" @@ -570,16 +566,10 @@ es: results_tab: Resultados no_questions: "No hay preguntas asignadas a esta votación." questions_title: "Listado de preguntas asignadas" - remove_question: "Desasignar pregunta" - add_question: "Incluir pregunta" table_title: "Título" - table_assignment: "Asignación" - table_name: "Nombre" flash: question_added: "Pregunta añadida a esta votación" error_on_question_added: "No se pudo asignar la pregunta" - question_removed: "Pregunta eliminada de esta votación" - error_on_question_removed: "No se pudo quitar la pregunta" questions: index: title: "Preguntas ciudadanas" @@ -606,7 +596,6 @@ es: description: Descripción video_url: Video externo documents: Documentos (1) - preview: Ver en la web recounts: index: title: "Recuentos" diff --git a/config/locales/es/images.yml b/config/locales/es/images.yml index 869a0824e..e842f3f5c 100644 --- a/config/locales/es/images.yml +++ b/config/locales/es/images.yml @@ -9,6 +9,8 @@ es: note: "Puedes subir una imagen en los formatos: %{accepted_content_types}, y de hasta %{max_file_size} MB por archivo." add_new_image: Añadir imagen title_placeholder: Añade un título descriptivo para la imagen + admin_title: "Imagen principal de la votación" + admin_alt_text: "Texto alternativo para la imagen" actions: destroy: diff --git a/config/routes.rb b/config/routes.rb index 9e7c8d307..2b9c4250c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -273,9 +273,7 @@ Rails.application.routes.draw do scope module: :poll do resources :polls do - get :search_questions, on: :member patch :add_question, on: :member - patch :remove_question, on: :member resources :booth_assignments, only: [:index, :show, :create, :destroy] do get :search_booths, on: :collection diff --git a/db/migrate/20170928132402_add_summary_and_description_to_polls.rb b/db/migrate/20170928132402_add_summary_and_description_to_polls.rb new file mode 100644 index 000000000..6fb965346 --- /dev/null +++ b/db/migrate/20170928132402_add_summary_and_description_to_polls.rb @@ -0,0 +1,6 @@ +class AddSummaryAndDescriptionToPolls < ActiveRecord::Migration + def change + add_column :polls, :summary, :text + add_column :polls, :description, :text + end +end diff --git a/db/schema.rb b/db/schema.rb index 9381f8e2c..3ef7c33cc 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -782,6 +782,8 @@ ActiveRecord::Schema.define(version: 20171003170029) do t.datetime "ends_at" t.boolean "published", default: false t.boolean "geozone_restricted", default: false + t.text "summary" + t.text "description" end add_index "polls", ["starts_at", "ends_at"], name: "index_polls_on_starts_at_and_ends_at", using: :btree diff --git a/spec/features/admin/poll/booths_spec.rb b/spec/features/admin/poll/booths_spec.rb index 13f3af2ff..22b77b397 100644 --- a/spec/features/admin/poll/booths_spec.rb +++ b/spec/features/admin/poll/booths_spec.rb @@ -87,9 +87,11 @@ feature 'Admin booths' do end scenario "Edit" do + poll = create(:poll, :current) booth = create(:poll_booth) + assignment = create(:poll_booth_assignment, poll: poll, booth: booth) - visit admin_booths_path + visit available_admin_booths_path within("#booth_#{booth.id}") do click_link "Edit" @@ -109,4 +111,4 @@ feature 'Admin booths' do end end -end \ No newline at end of file +end diff --git a/spec/features/admin/poll/polls_spec.rb b/spec/features/admin/poll/polls_spec.rb index 8d30dc5eb..be987df2d 100644 --- a/spec/features/admin/poll/polls_spec.rb +++ b/spec/features/admin/poll/polls_spec.rb @@ -58,6 +58,8 @@ feature 'Admin polls' do fill_in "poll_name", with: "Upcoming poll" fill_in 'poll_starts_at', with: start_date.strftime("%d/%m/%Y") fill_in 'poll_ends_at', with: end_date.strftime("%d/%m/%Y") + fill_in 'poll_summary', with: "Upcoming poll's summary. This poll..." + fill_in 'poll_description', with: "Upcomming poll's description. This poll..." click_button "Create poll" expect(page).to have_content "Poll created successfully" @@ -181,54 +183,6 @@ feature 'Admin polls' do expect(page).to_not have_content "There are no questions assigned to this poll" end - scenario 'Add question to poll', :js do - poll = create(:poll) - question = create(:poll_question, title: 'Should we rebuild the city?') - - visit admin_poll_path(poll) - - expect(page).to have_content 'Questions (0)' - expect(page).to have_content 'There are no questions assigned to this poll' - - fill_in 'search-questions', with: 'rebuild' - click_button 'Search' - - within('#search-questions-results') do - click_link 'Include question' - end - - expect(page).to have_content 'Question added to this poll' - - visit admin_poll_path(poll) - - expect(page).to have_content 'Questions (1)' - expect(page).to_not have_content 'There are no questions assigned to this poll' - expect(page).to have_content question.title - end - - scenario 'Remove question from poll', :js do - poll = create(:poll) - question = create(:poll_question, poll: poll) - - visit admin_poll_path(poll) - - expect(page).to have_content 'Questions (1)' - expect(page).to_not have_content 'There are no questions assigned to this poll' - expect(page).to have_content question.title - - within("#poll_question_#{question.id}") do - click_link 'Remove question from poll' - end - - expect(page).to have_content 'Question removed from this poll' - - visit admin_poll_path(poll) - - expect(page).to have_content 'Questions (0)' - expect(page).to have_content 'There are no questions assigned to this poll' - expect(page).to_not have_content question.title - end - end end diff --git a/spec/features/admin/poll/shifts_spec.rb b/spec/features/admin/poll/shifts_spec.rb index 2e957ef11..1804735de 100644 --- a/spec/features/admin/poll/shifts_spec.rb +++ b/spec/features/admin/poll/shifts_spec.rb @@ -31,13 +31,14 @@ feature 'Admin shifts' do end scenario "Create Vote Collection Shift and Recount & Scrutiny Shift on same date", :js do - poll = create(:poll) + poll = create(:poll, :current) booth = create(:poll_booth) + assignment = create(:poll_booth_assignment, poll: poll, booth: booth) officer = create(:poll_officer) vote_collection_dates = (poll.starts_at.to_date..poll.ends_at.to_date).to_a.map { |date| I18n.l(date, format: :long) } recount_scrutiny_dates = (poll.ends_at.to_date..poll.ends_at.to_date + 1.week).to_a.map { |date| I18n.l(date, format: :long) } - visit admin_booths_path + visit available_admin_booths_path within("#booth_#{booth.id}") do click_link "Manage shifts" @@ -61,7 +62,7 @@ feature 'Admin shifts' do expect(page).to have_content(officer.name) end - visit admin_booths_path + visit available_admin_booths_path within("#booth_#{booth.id}") do click_link "Manage shifts" @@ -89,11 +90,12 @@ feature 'Admin shifts' do end scenario "Error on create", :js do - poll = create(:poll) + poll = create(:poll, :current) booth = create(:poll_booth) + assignment = create(:poll_booth_assignment, poll: poll, booth: booth) officer = create(:poll_officer) - visit admin_booths_path + visit available_admin_booths_path within("#booth_#{booth.id}") do click_link "Manage shifts" @@ -108,13 +110,14 @@ feature 'Admin shifts' do end scenario "Destroy" do - poll = create(:poll) + poll = create(:poll, :current) booth = create(:poll_booth) + assignment = create(:poll_booth_assignment, poll: poll, booth: booth) officer = create(:poll_officer) shift = create(:poll_shift, officer: officer, booth: booth) - visit admin_booths_path + visit available_admin_booths_path within("#booth_#{booth.id}") do click_link "Manage shifts" diff --git a/spec/features/polls/voter_spec.rb b/spec/features/polls/voter_spec.rb index 08bc6f963..c12a9f0e4 100644 --- a/spec/features/polls/voter_spec.rb +++ b/spec/features/polls/voter_spec.rb @@ -12,7 +12,7 @@ feature "Voter" do login_as user visit question_path(question) - click_link 'Answer this question' + click_link 'Go to voting page' click_link 'Yes' expect(page).to_not have_link('Yes') @@ -81,7 +81,7 @@ feature "Voter" do login_as user visit question_path(question) - click_link 'Answer this question' + click_link 'Go to voting page' expect(page).to_not have_link('Yes') expect(page).to have_content "You have already participated in a booth for this poll." @@ -91,4 +91,4 @@ feature "Voter" do end -end \ No newline at end of file +end diff --git a/spec/support/common_actions.rb b/spec/support/common_actions.rb index 97f05294c..eda55986f 100644 --- a/spec/support/common_actions.rb +++ b/spec/support/common_actions.rb @@ -301,7 +301,7 @@ module CommonActions def vote_for_poll_via_web visit question_path(question) - click_link 'Answer this question' + click_link 'Go to voting page' click_link 'Yes' expect(page).to_not have_link('Yes')