Merge pull request #1962 from wairbut-m2c/iagirre-admin-polls-section
Iagirre admin polls section
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -54,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -19,6 +19,22 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="small-12 column">
|
||||
<%=f.text_area :summary, rows: 4%>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="small-12 column">
|
||||
<%=f.text_area :description, rows: 8%>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<%= render 'images/admin_image', imageable: @poll, f: f %>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="small-6 medium-6 column">
|
||||
<%= f.check_box :geozone_restricted, data: { checkbox_toggle: "#geozones" } %>
|
||||
|
||||
45
app/views/images/_admin_image.html.erb
Normal file
45
app/views/images/_admin_image.html.erb
Normal file
@@ -0,0 +1,45 @@
|
||||
<div class="images small-12 column">
|
||||
<div>
|
||||
<%= 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"
|
||||
} %>
|
||||
|
||||
<div id="nested-image">
|
||||
<%= f.fields_for :image do |image_builder| %>
|
||||
|
||||
<div id="<%= dom_id(image_builder.object) %>" class="image direct-upload nested-fields">
|
||||
<%= 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")}" %>
|
||||
|
||||
|
||||
<div class="attachment-actions">
|
||||
<div class="small-12 column action-add attachment-errors image-attachment">
|
||||
<%= render_image_attachment(image_builder, imageable, image_builder.object) %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="small-12 column">
|
||||
<div class="progress-bar-placeholder"><div class="loading-bar"></div></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -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"
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
class AddSummaryAndDescriptionToPolls < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :polls, :summary, :text
|
||||
add_column :polls, :description, :text
|
||||
end
|
||||
end
|
||||
@@ -783,6 +783,8 @@ ActiveRecord::Schema.define(version: 20171003095936) 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
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user