From cb7d018b24ce61f1b0d4ef8d6c0d184b384bbbc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Mon, 14 Sep 2015 19:31:57 +0200 Subject: [PATCH 1/7] changes header main action link --- app/views/layouts/_header.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index 9188bf294..62bb45674 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -52,7 +52,7 @@

<%= t("layouts.header.open_city_title") %>

<%= t("layouts.header.open_city_slogan_html") %>

- <%= link_to t("layouts.header.see_all"), root_path, class: "button radius see-more warning" %> + <%= link_to t("layouts.header.see_all"), highlights_path, class: "button radius see-more warning" %> <%= link_to t("layouts.header.more_information"), "/more_information", class: "more-info" %>
From f48750c4467b1d9c10b01d25f8ba8df841c15547 Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Mon, 14 Sep 2015 19:38:06 +0200 Subject: [PATCH 2/7] Updates texts of more information pages --- app/views/pages/participation_facts.html.erb | 3 ++- app/views/pages/participation_world.html.erb | 2 +- app/views/pages/proposals_info.html.erb | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/views/pages/participation_facts.html.erb b/app/views/pages/participation_facts.html.erb index 1053c0de2..019076022 100644 --- a/app/views/pages/participation_facts.html.erb +++ b/app/views/pages/participation_facts.html.erb @@ -5,6 +5,7 @@ <%= link_to t("debates.show.back_link"), "/more_information", class: 'left back' %>

Hechos sobre participación ciudadana y democracia directa

+

La democracia directa produce gente más informada y con más cultura política.

El poner en marcha mecanismos de participación reales hace que la gente se preocupe por las decisiones que tiene que tomar, y que por lo tanto se informe sobre ellas. Esto se observa sistemáticamente al comparar diferentes regiones de un mismo país con diferentes grados de democracia directa, o en procesos particulares como por ejemplo la votación del Tratado por una Constitución para Europa, comparando los países que lo votaron en referéndum y los que no.

En ocasiones se argumenta que no se deben crear mecanismos de decisión ciudadana, porque un posible bajo nivel cultural o de conocimiento político haría que se tomaran malas decisiones. Esto se ha argumentado tradicionalmente en contra del voto femenino, del voto inmigrante, del voto de la gente sin renta, etc. pero lo que se ha demostrado es que permitir a toda esa gente decidir ha sido precisamente lo que ha permitido que escaparan de su situación de desigualdad cultural y de derechos, o al menos que la mejoraran considerablemente.

@@ -26,7 +27,7 @@

Las decisiones directas de la ciudadanía no sustituyen en ningún lugar del mundo el sistema político representativo, sólo lo amplían y mejoran. Tampoco pretenden ser la solución a todos los problemas, también se toman decisiones equivocadas a través de las decisiones ciudadanas, pero se reduce el número de las decisiones erróneas que se toman teniendo sólo un sistema representativo.

M.D. Waters (2002), «Initiative and referendum in the United States: a primer», Washington: Citizen Lawmaker Press

-

Si los ciudadanos son capaces de elegir entre políticos que toman decisiones buenas o malas para el país, deben ser capaces de elegir directamente entre buenas y malas decisiones.

+

Si los ciudadanos son capaces de elegir entre políticos que toman decisiones buenas o malas para el país, deben ser capaces de elegir directamente entre buenas y malas decisiones.

diff --git a/app/views/pages/participation_world.html.erb b/app/views/pages/participation_world.html.erb index 6faec1fd8..badda5eec 100644 --- a/app/views/pages/participation_world.html.erb +++ b/app/views/pages/participation_world.html.erb @@ -28,7 +28,7 @@

Islandia es uno de los países de referencia al respecto, a través de su plataforma Betri Reykjavík-Betri Hverfi (Better District). Cada año se gastan 1.8 millones de euros en alrededor de 200 proyectos propuestos por la población para los distintos barrios de Reykjavík. Las ciudadanas y ciudadanos pueden participar y seguir el proyecto a través de la plataforma digital betrireykjavik, en Facebook o a través de centros en sus distritos o comités distritales.

-

Otras experiencias de referencia incluyen París, donde los residentes decidirán hasta el 2020 cómo se gastan 426 millones de euros (lo que corresponde al 5% del presupuesto municipal de París); Nueva York, donde el año pasado dedicaron 32 millones de euros a presupuestos participativos; más de 100 ciudades brasileñas donde se han manejado presupuestos participativos que han oscilado entre el 5% y el 15%; entre muchas otras ciudades del mundo.

+

Otras experiencias de referencia incluyen París, donde los residentes decidirán hasta el 2020 cómo se gastan 426 millones de euros (lo que corresponde al 5% del presupuesto municipal de París); Nueva York, donde el año pasado dedicaron 32 millones de euros a presupuestos participativos; más de 100 ciudades brasileñas donde se han manejado presupuestos participativos que han oscilado entre el 5% y el 15%; entre muchas otras ciudades del mundo.

Participación ciudadana directa con experiencia

diff --git a/app/views/pages/proposals_info.html.erb b/app/views/pages/proposals_info.html.erb index 11fdcb979..91ffe684f 100644 --- a/app/views/pages/proposals_info.html.erb +++ b/app/views/pages/proposals_info.html.erb @@ -32,8 +32,8 @@
  1. Creación de una propuesta. Cualquier persona (sin necesidad siquiera de estar empadronada en Madrid) puede crear una propuesta. Lo único que hay que hacer es pulsar el botón “Crear una propuesta” y rellenar los campos requeridos. La propuesta puede ser tan sencilla como una simple frase, pero te recomendamos detallarla todo lo posible, incluso añadiendo material adicional, para que sea más completa e interesante. Una vez creada aparecerá en esta web para que cualquiera pueda apoyarla.
  2. Apoyo de propuestas. Para apoyar una de las propuestas que aparece en la web, pulsamos el botón “apoyar esta propuesta” que aparece en cada una. Para este paso tendremos que estar empadronados en Madrid, así que al llevarlo a cabo por primera vez se nos pedirá que verifiquemos nuestra cuenta para estar seguros de este requerimiento. Se nos va a pedir que introduzcamos algunos datos para comprobar nuestra información de empadronamiento, y se nos enviará un código personal para que el proceso sea seguro. Las propuestas necesitan una cierta cantidad de apoyos para pasar a la siguiente fase; concretamente el 2% de los empadronados mayores de 16 años (que suponen 53.726 apoyos).
  3. -
  4. Decisión sobre propuestas. Cuando una propuesta consigue los apoyos necesarios, se anuncia en la web. Desde ese momento se dejan 45 días para que todo el mundo pueda debatir e informarse sobre la propuesta. Todas las otras propuestas que hayan conseguido los apoyos necesarios en los primeros 30 días del tiempo de debate se agruparán junto a la primera para decidir sobre ellas al mismo tiempo. Pasados los 45 días se exponen estas propuestas en un espacio especial de votación de la web, donde durante una semana cualquier persona empadronada en Madrid y mayor de 16 años podrá decidir si está a favor o rechaza la propuesta. Para participar en este paso tendrás que tener tu cuenta de usuario verificada completamente, de tal forma que nos aseguremos que cada persona no tiene más de una cuenta y el proceso es seguro.
  5. -
  6. Realización de las propuestas. En caso de que haya más gente a favor de una propuesta que rechazándola se aceptará como propuesta colectiva de la ciudadanía de Madrid, y el gobierno del Ayuntamiento de Madrid la asumirá como propia y la llevará a cabo. Para ello en un plazo máximo de un mes, se realizarán los informes técnicos correspondientes sobre su legalidad, viabilidad y coste económico, teniendo en cuenta a los sectores afectados y a la persona que haya lanzado la propuesta, para detallar la actuación correspondiente por parte del Ayuntamiento. Se publicarán en la web todos los informes realizados, y un seguimiento de las actuaciones que se lleven a cabo, para asegurar un correcto desarrollo de la propuesta.
  7. +
  8. Decisión sobre propuestas. Cuando una propuesta consigue los apoyos necesarios, se anuncia en la web. Desde ese momento se dejan 45 días para que todo el mundo pueda debatir e informarse sobre la propuesta. Todas las otras propuestas que hayan conseguido los apoyos necesarios en los primeros 30 días del tiempo de debate se agruparán junto a la primera para decidir sobre ellas al mismo tiempo. Pasados los 45 días se exponen estas propuestas en un espacio especial de votación de la web, donde durante una semana cualquier persona empadronada en Madrid y mayor de 16 años podrá decidir si está a favor o rechaza la propuesta. Para participar en este paso tendrás que tener tu cuenta de usuario verificada completamente, de tal forma que nos aseguremos que cada persona no tiene más de una cuenta y el proceso es seguro.
  9. +
  10. Realización de las propuestas. En caso de que haya más gente a favor de una propuesta que rechazándola se aceptará como propuesta colectiva de la ciudadanía de Madrid, y el gobierno del Ayuntamiento de Madrid la asumirá como propia y la llevará a cabo. Para ello en un plazo máximo de un mes, se realizarán los informes técnicos correspondientes sobre su legalidad, viabilidad y coste económico, teniendo en cuenta a los sectores afectados y a la persona que haya lanzado la propuesta, para detallar la actuación correspondiente por parte del Ayuntamiento. Se publicarán en la web todos los informes realizados, y un seguimiento de las actuaciones que se lleven a cabo, para asegurar un correcto desarrollo de la propuesta.

Todas las acciones relacionadas con el proceso de propuestas ciudadanas pueden realizarse a través del portal de gobierno abierto, o presencialmente en cualquiera de las 26 Oficinas de Atención al Ciudadano existentes en Madrid. Ver la lista completa de oficinas y su ubicación.

From b199ad233c7080179a4ffa7e11ef07bec60eef7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Mon, 14 Sep 2015 19:47:02 +0200 Subject: [PATCH 3/7] removes unused i18n keys --- config/locales/en.yml | 2 -- config/locales/es.yml | 2 -- 2 files changed, 4 deletions(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 442952e51..b7d079df3 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -299,8 +299,6 @@ en: manage: all: "You are not authorized to %{action} %{subject}." welcome: - last_debates: Last debates - last_proposals: Last proposals signed_in_home_title: Recent activity signed_in_home_title: Actividad reciente debates: diff --git a/config/locales/es.yml b/config/locales/es.yml index 9bd4294fa..b6ed1aef1 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -299,8 +299,6 @@ es: manage: all: "No tienes permiso para realizar la acción '%{action}' sobre %{subject}." welcome: - last_debates: Últimos debates - last_proposals: Últimas propuestas signed_in_home_title: Actividad reciente debates: title: "Debates" From d2e97924bd6fb68ab8eb050362efb35dcf95adb7 Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Mon, 14 Sep 2015 19:47:15 +0200 Subject: [PATCH 4/7] Changes not logged div for proposals --- app/assets/stylesheets/proposals.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/proposals.scss b/app/assets/stylesheets/proposals.scss index ba737596f..96e12a991 100644 --- a/app/assets/stylesheets/proposals.scss +++ b/app/assets/stylesheets/proposals.scss @@ -82,7 +82,7 @@ } .not-logged { - background: rgba(22,99,135,.9); + background: rgba(255,164,45,.9); color: white; height: 100%; left: 0; From e5531aba87a3877f7cb643e1b101378c6d4acdb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Mon, 14 Sep 2015 19:49:09 +0200 Subject: [PATCH 5/7] moves highlights and default home page --- app/controllers/welcome_controller.rb | 2 +- config/locales/es.yml | 2 +- spec/features/admin_spec.rb | 4 ++-- spec/features/debates_spec.rb | 4 ++-- spec/features/highlights_spec.rb | 25 +++++++++++++++++++++++++ spec/features/home_spec.rb | 17 ++--------------- spec/features/moderation_spec.rb | 2 +- spec/features/proposals_spec.rb | 4 ++-- spec/features/welcome_spec.rb | 8 ++++---- 9 files changed, 40 insertions(+), 28 deletions(-) create mode 100644 spec/features/highlights_spec.rb diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index fa716a520..9211f1082 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -5,7 +5,7 @@ class WelcomeController < ApplicationController def index if current_user - redirect_to :highlights + redirect_to :proposals end end diff --git a/config/locales/es.yml b/config/locales/es.yml index b6ed1aef1..497be25de 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -27,7 +27,7 @@ es: locale: "Idioma:" administration: Administrar moderation: Moderar - highlights: "Destacados" + highlights: "Portada" more_information: "Más información" debates: Debates proposals: Propuestas ciudadanas diff --git a/spec/features/admin_spec.rb b/spec/features/admin_spec.rb index 63f27b7db..ec991e388 100644 --- a/spec/features/admin_spec.rb +++ b/spec/features/admin_spec.rb @@ -16,7 +16,7 @@ feature 'Admin' do visit admin_root_path expect(current_path).not_to eq(admin_root_path) - expect(current_path).to eq(highlights_path) + expect(current_path).to eq(proposals_path) expect(page).to have_content "not authorized" end @@ -25,7 +25,7 @@ feature 'Admin' do visit admin_root_path expect(current_path).not_to eq(admin_root_path) - expect(current_path).to eq(highlights_path) + expect(current_path).to eq(proposals_path) expect(page).to have_content "not authorized" end diff --git a/spec/features/debates_spec.rb b/spec/features/debates_spec.rb index 928d8e887..934a602c9 100644 --- a/spec/features/debates_spec.rb +++ b/spec/features/debates_spec.rb @@ -238,7 +238,7 @@ feature 'Debates' do visit edit_debate_path(debate) expect(current_path).not_to eq(edit_debate_path(debate)) - expect(current_path).to eq(highlights_path) + expect(current_path).to eq(proposals_path) expect(page).to have_content 'not authorized' end @@ -251,7 +251,7 @@ feature 'Debates' do visit edit_debate_path(debate) expect(current_path).not_to eq(edit_debate_path(debate)) - expect(current_path).to eq(highlights_path) + expect(current_path).to eq(proposals_path) expect(page).to have_content 'not authorized' end diff --git a/spec/features/highlights_spec.rb b/spec/features/highlights_spec.rb new file mode 100644 index 000000000..20ca7a0ec --- /dev/null +++ b/spec/features/highlights_spec.rb @@ -0,0 +1,25 @@ +require 'rails_helper' + +feature "Highlights" do + + scenario 'Debates and proposals order by hot_score' do + create(:debate, title: 'best debate 100').update_column(:hot_score, 100) + create(:debate, title: 'worst debate 50').update_column(:hot_score, 50) + create(:debate, title: 'medium debate 70').update_column(:hot_score, 70) + + create(:proposal, title: 'best proposal 90').update_column(:hot_score, 90) + create(:proposal, title: 'worst proposal 60').update_column(:hot_score, 60) + create(:proposal, title: 'medium proposal 80').update_column(:hot_score, 80) + + login_as(create(:user)) + + visit highlights_path + + expect('best debate 100').to appear_before('best proposal 90') + expect('best proposal 90').to appear_before('medium proposal 80') + expect('medium proposal 80').to appear_before('medium debate 70') + expect('medium debate 70').to appear_before('worst proposal 60') + expect('worst proposal 60').to appear_before('worst debate 50') + end + +end \ No newline at end of file diff --git a/spec/features/home_spec.rb b/spec/features/home_spec.rb index 62e80b241..2c99a7083 100644 --- a/spec/features/home_spec.rb +++ b/spec/features/home_spec.rb @@ -11,24 +11,11 @@ feature "Home" do end feature "For signed in users" do - scenario 'Debates and proposals order by hot_score' do - create(:debate, title: 'best debate 100').update_column(:hot_score, 100) - create(:debate, title: 'worst debate 50').update_column(:hot_score, 50) - create(:debate, title: 'medium debate 70').update_column(:hot_score, 70) - - create(:proposal, title: 'best proposal 90').update_column(:hot_score, 90) - create(:proposal, title: 'worst proposal 60').update_column(:hot_score, 60) - create(:proposal, title: 'medium proposal 80').update_column(:hot_score, 80) - + scenario 'Redirect to proposals' do login_as(create(:user)) - visit root_path - expect('best debate 100').to appear_before('best proposal 90') - expect('best proposal 90').to appear_before('medium proposal 80') - expect('medium proposal 80').to appear_before('medium debate 70') - expect('medium debate 70').to appear_before('worst proposal 60') - expect('worst proposal 60').to appear_before('worst debate 50') + expect(current_path).to eq proposals_path end end diff --git a/spec/features/moderation_spec.rb b/spec/features/moderation_spec.rb index 9fe3f1e7a..9cb2ff19d 100644 --- a/spec/features/moderation_spec.rb +++ b/spec/features/moderation_spec.rb @@ -11,7 +11,7 @@ feature 'Admin' do visit moderation_root_path expect(current_path).not_to eq(moderation_root_path) - expect(current_path).to eq(highlights_path) + expect(current_path).to eq(proposals_path) expect(page).to have_content "not authorized" end diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb index d8a545a5d..0d2234359 100644 --- a/spec/features/proposals_spec.rb +++ b/spec/features/proposals_spec.rb @@ -303,7 +303,7 @@ feature 'Proposals' do visit edit_proposal_path(proposal) expect(current_path).not_to eq(edit_proposal_path(proposal)) - expect(current_path).to eq(highlights_path) + expect(current_path).to eq(proposals_path) expect(page).to have_content 'not authorized' end @@ -318,7 +318,7 @@ feature 'Proposals' do visit edit_proposal_path(proposal) expect(current_path).not_to eq(edit_proposal_path(proposal)) - expect(current_path).to eq(highlights_path) + expect(current_path).to eq(proposals_path) expect(page).to have_content 'not authorized' end diff --git a/spec/features/welcome_spec.rb b/spec/features/welcome_spec.rb index 7ce50b529..cef26e035 100644 --- a/spec/features/welcome_spec.rb +++ b/spec/features/welcome_spec.rb @@ -15,7 +15,7 @@ feature "Welcome screen" do login_through_form_as(user) - expect(current_path).to eq(highlights_path) + expect(current_path).to eq(proposals_path) end scenario 'is not shown to organizations' do @@ -23,7 +23,7 @@ feature "Welcome screen" do login_through_form_as(organization.user) - expect(current_path).to eq(highlights_path) + expect(current_path).to eq(proposals_path) end scenario 'it is not shown to level-2 users' do @@ -31,7 +31,7 @@ feature "Welcome screen" do login_through_form_as(user) - expect(current_path).to eq(highlights_path) + expect(current_path).to eq(proposals_path) end scenario 'it is not shown to level-3 users' do @@ -39,7 +39,7 @@ feature "Welcome screen" do login_through_form_as(user) - expect(current_path).to eq(highlights_path) + expect(current_path).to eq(proposals_path) end end From 23fee748fecbb9d39273af3cc6bcb20516e2765c Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Mon, 14 Sep 2015 19:56:45 +0200 Subject: [PATCH 6/7] Fixes votes styles on comments --- app/assets/stylesheets/debates.scss | 4 ++-- app/assets/stylesheets/proposals.scss | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/debates.scss b/app/assets/stylesheets/debates.scss index e2b32577e..cfd0fc323 100644 --- a/app/assets/stylesheets/debates.scss +++ b/app/assets/stylesheets/debates.scss @@ -639,7 +639,7 @@ .comment-votes { color: $text-medium; font-weight: lighter; - margin: rem-calc(15) rem-calc(6) 0; + margin: rem-calc(8) rem-calc(12) rem-calc(6) 0; a { color: $text-light; @@ -653,7 +653,7 @@ [class^="icon-"] { font-size: rem-calc(20); - vertical-align: top; + vertical-align: middle; } } diff --git a/app/assets/stylesheets/proposals.scss b/app/assets/stylesheets/proposals.scss index 96e12a991..6a38a4efe 100644 --- a/app/assets/stylesheets/proposals.scss +++ b/app/assets/stylesheets/proposals.scss @@ -594,7 +594,7 @@ .comment-votes { color: $text-medium; font-weight: lighter; - margin: rem-calc(15) rem-calc(6) 0; + margin: rem-calc(8) rem-calc(12) rem-calc(6) 0; a { color: $text-light; @@ -608,7 +608,7 @@ [class^="icon-"] { font-size: rem-calc(20); - vertical-align: top; + vertical-align: middle; } } From 325893e06e02cc4f892ffb19cf52ae431ed60881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Mon, 14 Sep 2015 19:59:46 +0200 Subject: [PATCH 7/7] adds code to proposal's show --- app/views/proposals/show.html.erb | 2 ++ spec/features/proposals_spec.rb | 1 + 2 files changed, 3 insertions(+) diff --git a/app/views/proposals/show.html.erb b/app/views/proposals/show.html.erb index a98ca1d69..f5628ec0a 100644 --- a/app/views/proposals/show.html.erb +++ b/app/views/proposals/show.html.erb @@ -53,6 +53,8 @@   <%= link_to t("proposals.show.comments", count: @proposal.comments_count), "#comments" %>  •  + <%= @proposal.code %> +  •  <%= render 'proposals/flag_actions', proposal: @proposal %> diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb index 0d2234359..7efe5d940 100644 --- a/spec/features/proposals_spec.rb +++ b/spec/features/proposals_spec.rb @@ -40,6 +40,7 @@ feature 'Proposals' do visit proposal_path(proposal) expect(page).to have_content proposal.title + expect(page).to have_content proposal.code expect(page).to have_content "Proposal question" expect(page).to have_content "Proposal description" expect(page).to have_content "http://external_documention.es"