diff --git a/Gemfile b/Gemfile index 869e687a0..2d6e73e38 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' @@ -44,10 +44,10 @@ 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' +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..97163cea6 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) @@ -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) @@ -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) @@ -430,7 +433,7 @@ DEPENDENCIES daemons dalli database_cleaner - delayed_job_active_record + delayed_job_active_record (~> 4.1.0) devise devise-async email_spec @@ -446,10 +449,10 @@ DEPENDENCIES kaminari launchy letter_opener_web (~> 1.3.0) - newrelic_rpm + newrelic_rpm (~> 3.13.1) omniauth omniauth-facebook - omniauth-google-oauth2 + omniauth-google-oauth2 (~> 0.2.7) omniauth-twitter paranoia pg 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/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/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/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/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) 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:
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)
-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".
+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.
-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".
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.
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".
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.
+ +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"
+ +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.
Opciones generales de configuración del sistema.
@@ -27,4 +49,3 @@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 @@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:
-
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".
+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:
+ +Para facilitar la gestión, arriba encontramos un filtro con las secciones:
+ +Es recomendable revisar regularmente la sección "pendientes".
+ +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.
-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".