From 6658e489a421956a38f77e6f450cd05930e7d2f5 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Thu, 24 Sep 2015 18:37:47 +0200 Subject: [PATCH 01/10] upgrade newrelic gem version --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 869e687a0..d7fc95f28 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ gem 'rollbar', '~> 2.3.0' gem 'delayed_job_active_record' gem 'daemons' gem 'devise-async' -gem 'newrelic_rpm' +gem 'newrelic_rpm', '~> 3.13.1' gem 'whenever', require: false gem 'ahoy_matey', '~> 1.2.1' diff --git a/Gemfile.lock b/Gemfile.lock index 28149a401..50141cd96 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -228,7 +228,7 @@ GEM net-ssh (>= 2.6.5) net-ssh (2.9.2) netrc (0.10.3) - newrelic_rpm (3.13.0.299) + newrelic_rpm (3.13.1.300) nokogiri (1.6.6.2) mini_portile (~> 0.6.0) nori (2.6.0) @@ -446,7 +446,7 @@ DEPENDENCIES kaminari launchy letter_opener_web (~> 1.3.0) - newrelic_rpm + newrelic_rpm (~> 3.13.1) omniauth omniauth-facebook omniauth-google-oauth2 From 8dd027d974f197181dce360d761cf32aa6ac5e51 Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Fri, 25 Sep 2015 09:40:51 +0200 Subject: [PATCH 02/10] Updates admin and moderation texts --- app/assets/stylesheets/admin.scss | 17 +++++++- app/views/admin/dashboard/index.html.erb | 39 ++++++++++++++----- app/views/moderation/dashboard/index.html.erb | 32 ++++++++++++--- 3 files changed, 73 insertions(+), 15 deletions(-) diff --git a/app/assets/stylesheets/admin.scss b/app/assets/stylesheets/admin.scss index b14b265ed..ffabd35a8 100644 --- a/app/assets/stylesheets/admin.scss +++ b/app/assets/stylesheets/admin.scss @@ -29,7 +29,22 @@ body.admin { } .dashboard { - text-align: justify; + margin-bottom: rem-calc(48); + + ul, ol { + margin-left: rem-calc(12); + + li { + font-size: rem-calc(15); + line-height: rem-calc(30); + margin-bottom: rem-calc(12); + } + } + + p { + font-size: rem-calc(15); + line-height: rem-calc(30); + } h3 { font-weight: bold; diff --git a/app/views/admin/dashboard/index.html.erb b/app/views/admin/dashboard/index.html.erb index 70f8f435b..da64cba15 100644 --- a/app/views/admin/dashboard/index.html.erb +++ b/app/views/admin/dashboard/index.html.erb @@ -4,22 +4,44 @@

Desde aquí puedes administrar el sistema, a través de las siguientes acciones:

Temas de debate

-

Los temas (también llamadas tags, o etiquetas) de debate son palabras que definen los usuarios al crear debates, para catalogarlos (ej: sanidad, movilidad, arganzuela, ...). Aquí se pueden eliminar temas inapropiados, o marcarlos para ser propuestos al crear debates (cada usuario puede definir los que quiera, pero se le sugieren algunos que nos parecen útiles como catalogación por defecto; aquí se puede cambiar cuáles se sugieren)

+

Los temas (también llamadas tags, o etiquetas) de debate son palabras que definen los usuarios al crear debates, para catalogarlos (ej: sanidad, movilidad, arganzuela, ...). Aquí se pueden eliminar temas inapropiados, o marcarlos para ser propuestos al crear debates (cada usuario puede definir los que quiera, pero se le sugieren algunos que nos parecen útiles como catalogación por defecto; aquí se puede cambiar cuáles se sugieren)

-

Debates ocultos

-

Cuando un moderador o un administrador oculta un debate aparecerá en esta lista. De esta forma los administradores pueden revisar que se ha ocultado el debate adecuado. Al pulsar "Confirmar" se acepta el que se haya ocultado, se considera que se ha hecho correctamente. Al pulsar "Volver a mostrar" se revierte la acción de ocultar y vuelve a ser un debate visible, en el caso de que se considere que ha sido una acción errónea el haberlo ocultado. Para facilitar la gestión, arriba encontramos un filtro con las secciones "pendientes" (los debates sobre los que todavía no se ha pulsado "confirmar" o "volver a mostrar", que deberían ser revisados todavía), "confirmados" y "todos". Es recomendable revisar regularmente la sección "pendientes".

+

Propuestas/Debates/Comentarios ocultos

+

Cuando un moderador o un administrador oculta una Propuesta/Debate/Comentario aparecerá en esta lista. De esta forma los administradores pueden revisar que se ha ocultado el elemento adecuado.

-

Comentarios ocultos

-

Cuando un moderador o un administrador oculta un comentario aparecerá en esta lista. De esta forma los administradores pueden revisar que se ha ocultado el comentario adecuado. Al pulsar "Confirmar" se acepta el que se haya ocultado, se considera que se ha hecho correctamente. Al pulsar "Volver a mostrar" se revierte la acción de ocultar y vuelve a ser un comentario visible, en el caso de que se considere que ha sido una acción errónea el haberlo ocultado. Para facilitar la gestión, arriba encontramos un filtro con las secciones "pendientes" (los comentarios sobre los que todavía no se ha pulsado "confirmar" o "volver a mostrar", que deberían ser revisados todavía), "confirmados" y "todos". Es recomendable revisar regularmente la sección "pendientes".

+ + +

Para facilitar la gestión, arriba encontramos un filtro con las secciones: "pendientes" (los elementos sobre los que todavía no se ha pulsado "confirmar" o "volver a mostrar", que deberían ser revisados todavía), "confirmados" y "todos".

+ +

Es recomendable revisar regularmente la sección "pendientes".

Usuarios bloqueados

-

Cuando un moderador o un administrador bloquea a un usuario aparecerá en esta lista. Al bloquear a un usuario, éste deja de poder utilizarlo para ninguna acción de la web. Los administradores pueden desbloquearlos pulsando el botón al lado del nombre del usuario en la lista.

+

Cuando un moderador o un administrador bloquea a un usuario aparecerá en esta lista. Al bloquear a un usuario, éste deja de poder utilizarlo para ninguna acción de la web. Los administradores pueden desbloquearlos pulsando el botón al lado del nombre del usuario en la lista.

Organizaciones

-

En la web hay dos tipos de usuarios: individuales y organizaciones. Cualquier persona puede crear usuarios de un tipo o de otro en la propia web. Los usuarios de organizaciones pueden ser verificados por parte de los administradores, confirmando que quien gestiona el usuario efectivamente representa a esa organización. Una vez se haya realizado el proceso de verificación, por el proceso externo a la web que se haya definido para ello, se pulsa el botón "verificar" para confimarlo; lo que hará que al lado del nombre de la organización aparezca una etiqueta señalando que es una organización verificada. En caso de que el proceso de verificación haya sido negativo, se pulsa el botón "rechazar". Para editar alguno de los datos de la organización, se pulsa el botón "editar". Las organizaciones que no aparecen en la lista pueden ser encontradas para actuar sobre ellas por medio del buscador en la parte superior. Para facilitar la gestión, arriba encontramos un filtro con las secciones "pendientes" (las organizaciones que todavía no han sido verificadas o rechazadas), "verificadas", "rechazadas" y "todas". Es recomendable revisar regularmente la sección "pendientes".

+

En la web hay dos tipos de usuarios: individuales y organizaciones. Cualquier persona puede crear usuarios de un tipo o de otro en la propia web. Los usuarios de organizaciones pueden ser verificados por parte de los administradores, confirmando que quien gestiona el usuario efectivamente representa a esa organización. Una vez se haya realizado el proceso de verificación, por el proceso externo a la web que se haya definido para ello, se pulsa el botón "Verificar" para confimarlo; lo que hará que al lado del nombre de la organización aparezca una etiqueta señalando que es una organización verificada.

+ +

En caso de que el proceso de verificación haya sido negativo, se pulsa el botón "Rechazar". Para editar alguno de los datos de la organización, se pulsa el botón "Editar".

+ +

Las organizaciones que no aparecen en la lista pueden ser encontradas para actuar sobre ellas por medio del buscador en la parte superior. Para facilitar la gestión, arriba + encontramos un filtro con las secciones: "pendientes" (las organizaciones que todavía no han sido verificadas o rechazadas), "verificadas", "rechazadas" y "todas".

+

Es recomendable revisar regularmente la sección "pendientes".

Cargos Públicos

-

En la web, los usuarios individuales pueden ser usuarios normales, o cargos públicos. Estos últimos se diferencian de los primeros únicamente en que al lado de sus nombres aparece una etiqueta que les identifica, y cambia ligeramente el estilo de sus comentarios. Esto permite que los usuarios les identifiquen más fácilmente. Al lado de cada usuario vemos la identificación que aparece en su etiqueta, y su nivel (la manera que internamente usa la web para diferenciar entre un tipo de cargos y otros). Pulsando el botón "editar" al lado del usuario, se puede modificar su información. Los cargos públicos que no aparecen en la lista pueden ser encontrados para actuar sobre ellos por medio del buscador en la parte superior.

+

En la web, los usuarios individuales pueden ser usuarios normales, o cargos públicos. Estos últimos se diferencian de los primeros únicamente en que al lado de sus nombres aparece una etiqueta que les identifica, y cambia ligeramente el estilo de sus comentarios. Esto permite que los usuarios les identifiquen más fácilmente. Al lado de cada usuario vemos la identificación que aparece en su etiqueta, y su nivel (la manera que internamente usa la web para diferenciar entre un tipo de cargos y otros). Pulsando el botón "Editar" al lado del usuario, se puede modificar su información. Los cargos públicos que no aparecen en la lista pueden ser encontrados para actuar sobre ellos por medio del buscador en la parte superior.

+ +

Moderadores

+ +

Mediante el buscador de la parte superior se pueden buscar usuarios, para activarlos o desactivarlos como moderadores de la web. Los moderadores al acceder a la web con su usuario ven en la parte + superior una nueva sección llamada "Moderar"

+ +

Actividad de moderadores

+ +

En esta sección se va guardando todas las acciones que realizan los moderadores o los administradores respecto a la moderación: ocultar/mostrar Propuestas/Debates/Comentarios y bloquear usuarios. En la columna "Acción" comprobamos si la acción corresponde con ocultar o con volver a mostrar (restaurar) elementos o con bloquear usuarios. En las demás columnas tenemos el tipo de elemento, el contenido del elemento y el moderador o administrador que ha realizado la acción. Esta sección permite que los administradores detecten comportamientos irregulares por parte de moderadores específicos y que por lo tanto puedan corregirlos.

Configuración Global

Opciones generales de configuración del sistema.

@@ -27,4 +49,3 @@

Estadísticas

Estadísticas generales del sistema.

- diff --git a/app/views/moderation/dashboard/index.html.erb b/app/views/moderation/dashboard/index.html.erb index 6b3aaadf6..abb3bb905 100644 --- a/app/views/moderation/dashboard/index.html.erb +++ b/app/views/moderation/dashboard/index.html.erb @@ -1,11 +1,33 @@

<%= t("moderation.dashboard.index.title") %>

-

Desde aquí puedes moderar el sistema, a través de las siguientes acciones:

+

Desde aquí puedes moderar el sistema, a través de las siguientes acciones:

-

Debates

-

Cuando un usuario marca en un debate la opción de "denunciar como inapropiado", aparecerá en esta lista. Respecto a cada uno aparecerá el título, fecha y el texto del debate. A la derecha aparece el número de denuncias (cuántos usuarios diferentes han marcado la opción de denuncia), y las posibles acciones para el moderador: "Ocultar" (lo que hará que ese debate deje de mostrarse para los demás usuarios) e "Ignorar" (que implica que el moderador considera que no debe ser ocultado). Para facilitar la gestión, arriba encontramos un filtro con las secciones "pendientes" (los debates sobre los que todavía no se ha pulsado "ocultar" o "ignorar", que deberían ser revisados todavía), "ignorados" y "todos". Es recomendable revisar regularmente la sección "pendientes".

+

Propuestas / Debates / Comentarios

+ +

Cuando un usuario marca en una Propuesta/Debate/Comentario la opción de "denunciar como inapropiado", aparecerá en esta lista. Respecto a cada uno aparecerá el título, fecha, número de denuncias (cuántos usuarios diferentes han marcado la opción de denuncia) y el texto de la Propuesta/Debate/Comentario.

+ +

A la derecha de cada elemento aparece una caja que podemos marcar para seleccionar todos los que queramos de la lista. Una vez seleccionados uno o varios, encontramos al final de la página tres botones para realizar acciones sobre ellos:

+ +
    +
  • Ocultar: hará que esos elementos dejen de mostrarse en la web.
  • +
  • Bloquear autores: hará que el autor de ese elemento deje de poder acceder a la web, y que además todos las Propuestas/Debates/Comentarios de ese usuario dejen de mostrarse en la web.
  • +
  • Marcar como revisados cuando consideramos que esos elementos no deben ser moderados, que su contenido es correcto, y que por lo tanto deben dejar de ser mostrados en esta lista de elementos inapropiados.
  • +
+ +

Para facilitar la gestión, arriba encontramos un filtro con las secciones:

+ +
    +
  • Pendientes: las Propuestas/Debates/Comentarios sobre los que todavía no se ha pulsado "ocultar", "bloquear" o "marcar como revisados", y que por lo tanto deberían ser revisados todavía
  • +
  • Todos: mostrando todos las Propuestas/Debates/Comentarios de la web, y no sólo los marcados como inapropiados.
  • +
  • Marcados como revisados: los que algún moderador ha marcado como revisados y por lo tanto parecen correctos.
  • +
+ +

Es recomendable revisar regularmente la sección "pendientes".

+ +

Bloquear usuarios

+ +

Un buscador nos permite encontrar cualquier usuario introduciendo su nombre de usuario o correo electrónico, y bloquearlo una vez encontrado. Al bloquearlo, el usuario no podrá volver a + acceder a la web, y todas sus Propuestas/Debates/Comentarios serán ocultados y dejarán de ser visibles en la web.

-

Comentarios

-

Cuando un usuario marca en un comentario la opción de "denunciar como inapropiado", aparecerá en esta lista. Respecto a cada uno aparecerá el debate al que pertenece, la fecha y el texto del comentario. A la derecha aparece el número de denuncias (cuántos usuarios diferentes han marcado la opción de denuncia), y las posibles acciones para el moderador: "Ocultar" (lo que hará que ese comentario deje de mostrarse para los demás usuarios) e "Ignorar" (que implica que el moderador considera que no debe ser ocultado). Para facilitar la gestión, arriba encontramos un filtro con las secciones "pendientes" (los comentarios sobre los que todavía no se ha pulsado "ocultar" o "ignorar", que deberían ser revisados todavía), "ignorados" y "todos". Es recomendable revisar regularmente la sección "pendientes".

From e73fe1b71376954b9b25c2feafadeb4ece1176e2 Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Fri, 25 Sep 2015 12:24:14 +0200 Subject: [PATCH 03/10] Changes census error text --- config/locales/verification.es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/verification.es.yml b/config/locales/verification.es.yml index a6a218b2d..021c9ba1e 100644 --- a/config/locales/verification.es.yml +++ b/config/locales/verification.es.yml @@ -21,7 +21,7 @@ es: terms: "los términos de acceso" verify_residence: "Verificar residencia" form_errors: "evitaron verificar tu residencia" - error_verifying_census: "El Padrón de Madrid no pudo verificar tu información. Revisa la información ó ponte en contacto con nosotros." + error_verifying_census: "El Padrón de Madrid no pudo verificar tu información. Por favor, confirma que tus datos de empadronamiento sean correctos llamando al 010 o ponte en contacto con nosotros." error_not_allowed_age: "Hay que tener al menos 16 años" error_not_allowed_postal_code: "Por favor, para verificarte debes estar empadronado en el municipio de Madrid." create: From 03342e164bfccc94c18aec17a5b46dac7f314311 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Fri, 25 Sep 2015 13:24:12 +0200 Subject: [PATCH 04/10] ignores in moderation the admin restored proposals --- app/controllers/admin/proposals_controller.rb | 1 + spec/features/admin/proposals_spec.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/app/controllers/admin/proposals_controller.rb b/app/controllers/admin/proposals_controller.rb index 57e8809e2..e7c4934fa 100644 --- a/app/controllers/admin/proposals_controller.rb +++ b/app/controllers/admin/proposals_controller.rb @@ -14,6 +14,7 @@ class Admin::ProposalsController < Admin::BaseController def restore @proposal.restore + @proposal.ignore_flag Activity.log(current_user, :restore, @proposal) redirect_to request.query_parameters.merge(action: :index) end diff --git a/spec/features/admin/proposals_spec.rb b/spec/features/admin/proposals_spec.rb index a2ac86de7..be859c3e6 100644 --- a/spec/features/admin/proposals_spec.rb +++ b/spec/features/admin/proposals_spec.rb @@ -28,6 +28,7 @@ feature 'Admin proposals' do expect(page).to_not have_content(proposal.title) expect(proposal.reload).to_not be_hidden + expect(proposal).to be_ignored_flag end scenario 'Confirm hide' do From 13fc4e5a3ddd04778298f383c9d630f7c1094ffc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Fri, 25 Sep 2015 13:24:22 +0200 Subject: [PATCH 05/10] ignores in moderation the admin restored debates --- app/controllers/admin/debates_controller.rb | 1 + spec/features/admin/debates_spec.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/app/controllers/admin/debates_controller.rb b/app/controllers/admin/debates_controller.rb index 41e5af848..2bb0cb8fd 100644 --- a/app/controllers/admin/debates_controller.rb +++ b/app/controllers/admin/debates_controller.rb @@ -14,6 +14,7 @@ class Admin::DebatesController < Admin::BaseController def restore @debate.restore + @debate.ignore_flag Activity.log(current_user, :restore, @debate) redirect_to request.query_parameters.merge(action: :index) end diff --git a/spec/features/admin/debates_spec.rb b/spec/features/admin/debates_spec.rb index bccd3429c..f529b4a8f 100644 --- a/spec/features/admin/debates_spec.rb +++ b/spec/features/admin/debates_spec.rb @@ -16,6 +16,7 @@ feature 'Admin debates' do expect(page).to_not have_content(debate.title) expect(debate.reload).to_not be_hidden + expect(debate).to be_ignored_flag end scenario 'Confirm hide' do From 0dc9224ce6db2693691ce3dd060b649c5cbf36ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Fri, 25 Sep 2015 13:24:34 +0200 Subject: [PATCH 06/10] ignores in moderation the admin restored comments --- app/controllers/admin/comments_controller.rb | 1 + spec/features/admin/comments_spec.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/app/controllers/admin/comments_controller.rb b/app/controllers/admin/comments_controller.rb index 3a9c360f5..a0272f367 100644 --- a/app/controllers/admin/comments_controller.rb +++ b/app/controllers/admin/comments_controller.rb @@ -14,6 +14,7 @@ class Admin::CommentsController < Admin::BaseController def restore @comment.restore + @comment.ignore_flag Activity.log(current_user, :restore, @comment) redirect_to request.query_parameters.merge(action: :index) end diff --git a/spec/features/admin/comments_spec.rb b/spec/features/admin/comments_spec.rb index ffb8122d2..d6369272a 100644 --- a/spec/features/admin/comments_spec.rb +++ b/spec/features/admin/comments_spec.rb @@ -35,6 +35,7 @@ feature 'Admin comments' do expect(page).to_not have_content(comment.body) expect(comment.reload).to_not be_hidden + expect(comment).to be_ignored_flag end scenario "Confirm hide" do From 39d1c3d504759ca8e2b872d43380263b66f5c9b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Fri, 25 Sep 2015 13:47:42 +0200 Subject: [PATCH 07/10] fixes i18n error --- app/mailers/mailer.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/mailers/mailer.rb b/app/mailers/mailer.rb index 844f61a87..8ce28060c 100644 --- a/app/mailers/mailer.rb +++ b/app/mailers/mailer.rb @@ -5,7 +5,7 @@ class Mailer < ApplicationMailer def comment(comment) @comment = comment @commentable = comment.commentable - mail(to: @commentable.author.email, subject: t('mailers.comment.subject', commentable: t("activerecord.models.#{@commentable.class.name.downcase}").downcase)) if @commentable.present? && @commentable.author.present? + mail(to: @commentable.author.email, subject: t('mailers.comment.subject', commentable: t("activerecord.models.#{@commentable.class.name.downcase}", count: 1).downcase)) if @commentable.present? && @commentable.author.present? end def reply(reply) From 570d1523b4f1617309a8ff7151bdb142f959f58a Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sat, 26 Sep 2015 13:19:10 +0200 Subject: [PATCH 08/10] upgrades omniauth google gem --- Gemfile | 2 +- Gemfile.lock | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index d7fc95f28..2dcc7344f 100644 --- a/Gemfile +++ b/Gemfile @@ -24,7 +24,7 @@ gem 'devise' gem 'omniauth' gem 'omniauth-twitter' gem 'omniauth-facebook' -gem 'omniauth-google-oauth2' +gem 'omniauth-google-oauth2', '~> 0.2.7' gem 'kaminari' gem 'ancestry' diff --git a/Gemfile.lock b/Gemfile.lock index 50141cd96..7d896567f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -245,9 +245,12 @@ GEM rack (~> 1.0) omniauth-facebook (2.0.1) omniauth-oauth2 (~> 1.2) - omniauth-google-oauth2 (0.2.6) - omniauth (> 1.0) - omniauth-oauth2 (~> 1.1) + omniauth-google-oauth2 (0.2.7) + addressable (~> 2.3) + jwt (~> 1.0) + multi_json (~> 1.3) + omniauth (>= 1.1.1) + omniauth-oauth2 (>= 1.1.1) omniauth-oauth (1.1.0) oauth omniauth (~> 1.0) @@ -449,7 +452,7 @@ DEPENDENCIES newrelic_rpm (~> 3.13.1) omniauth omniauth-facebook - omniauth-google-oauth2 + omniauth-google-oauth2 (~> 0.2.7) omniauth-twitter paranoia pg From 26908d2631241977bf356de2e9f9a463350aba0c Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sat, 26 Sep 2015 13:22:26 +0200 Subject: [PATCH 09/10] upgrades delayed_job gem --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index d7fc95f28..a6237475b 100644 --- a/Gemfile +++ b/Gemfile @@ -44,7 +44,7 @@ gem 'rinku', require: 'rails_rinku' gem 'savon' gem 'dalli' gem 'rollbar', '~> 2.3.0' -gem 'delayed_job_active_record' +gem 'delayed_job_active_record', '~> 4.1.0' gem 'daemons' gem 'devise-async' gem 'newrelic_rpm', '~> 3.13.1' diff --git a/Gemfile.lock b/Gemfile.lock index 50141cd96..e6af5033a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -123,11 +123,11 @@ GEM dalli (2.7.4) database_cleaner (1.5.0) debug_inspector (0.0.2) - delayed_job (4.0.6) + delayed_job (4.1.1) activesupport (>= 3.0, < 5.0) - delayed_job_active_record (4.0.3) - activerecord (>= 3.0, < 5.0) - delayed_job (>= 3.0, < 4.1) + delayed_job_active_record (4.1.0) + activerecord (>= 3.0, < 5) + delayed_job (>= 3.0, < 5) devise (3.5.2) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -430,7 +430,7 @@ DEPENDENCIES daemons dalli database_cleaner - delayed_job_active_record + delayed_job_active_record (~> 4.1.0) devise devise-async email_spec From 545f5b591bdd12e4eb31e4492a66ab4971a2e03a Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sat, 26 Sep 2015 14:13:10 +0200 Subject: [PATCH 10/10] adds resilient locked_until default --- ...50926115929_adds_resilient_locked_until_default.rb | 11 +++++++++++ db/schema.rb | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20150926115929_adds_resilient_locked_until_default.rb diff --git a/db/migrate/20150926115929_adds_resilient_locked_until_default.rb b/db/migrate/20150926115929_adds_resilient_locked_until_default.rb new file mode 100644 index 000000000..8043110cd --- /dev/null +++ b/db/migrate/20150926115929_adds_resilient_locked_until_default.rb @@ -0,0 +1,11 @@ +class AddsResilientLockedUntilDefault < ActiveRecord::Migration + + def up + change_column_default :locks, :locked_until, Time.new(2000, 1, 1, 1, 1, 1) + end + + def down + change_column_default :locks, :locked_until, Time.now + end + +end diff --git a/db/schema.rb b/db/schema.rb index 22b6b730c..0036eef2a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20150921095553) do +ActiveRecord::Schema.define(version: 20150926115929) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -181,7 +181,7 @@ ActiveRecord::Schema.define(version: 20150921095553) do create_table "locks", force: :cascade do |t| t.integer "user_id" t.integer "tries", default: 0 - t.datetime "locked_until", default: '2015-09-15 07:56:29', null: false + t.datetime "locked_until", default: '2000-01-01 00:01:01', null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false end