From 9f4688a08a5fac7efdf8db81ca5e294e557d657d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Miedes=20Garc=C3=A9s?= Date: Tue, 29 Nov 2016 23:45:21 +0100 Subject: [PATCH 01/31] Styled docs with markdown syntax --- CUSTOMIZE_ES.md | 65 +++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/CUSTOMIZE_ES.md b/CUSTOMIZE_ES.md index f7af01649..09fdfe62c 100644 --- a/CUSTOMIZE_ES.md +++ b/CUSTOMIZE_ES.md @@ -1,6 +1,6 @@ # Personalización -Puedes modificar consul y ponerle tu propia imagen, para esto debes primero hacer un fork de https://github.com/consul/consul creando un repositorio nuevo en Github. Puedes usar otro servicio como Gitlab, pero no te olvides de poner el enlace en el footer a tu repositorio en cumplimiento con la licencia de este proyecto (GPL Affero 3). +Puedes modificar consul y ponerle tu propia imagen, para esto debes primero hacer un fork de [https://github.com/consul/consul](https://github.com/consul/consul) creando un repositorio nuevo en Github. Puedes usar otro servicio como Gitlab, pero no te olvides de poner el enlace en el footer a tu repositorio en cumplimiento con la licencia de este proyecto (GPL Affero 3). Hemos creado una estructura específica donde puedes sobreescribir y personalizar la aplicación para que puedas actualizar sin que tengas problemas al hacer merge y se sobreescriban por error tus cambios. Intentamos que Consul sea una aplicación Ruby on Rails lo más plain vanilla posible para facilitar el acceso de nuevas desarrolladoras. @@ -8,31 +8,32 @@ Hemos creado una estructura específica donde puedes sobreescribir y personaliza Para adaptarlo puedes hacerlo a través de los directorios que están en custom dentro de: -* config/locales/custom/ -* app/assets/images/custom/ -* app/views/custom/ -* app/controllers/custom/ -* app/models/custom/ +* `config/locales/custom/` +* `app/assets/images/custom/` +* `app/views/custom/` +* `app/controllers/custom/` +* `app/models/custom/` Aparte de estos directorios también cuentas con ciertos ficheros para: -* app/assets/stylesheets/custom.css -* app/assets/javascripts/custom.js -* Gemfile_custom -* config/application.custom.rb +* `app/assets/stylesheets/custom.css` +* `app/assets/javascripts/custom.js` +* `Gemfile_custom` +* `config/application.custom.rb` ### Internacionalización -Si quieres modificar algún texto de la web deberías encontrarlos en los ficheros formato YML disponibles en *config/locales/*. Puedes leer la [guía de internacionalización](http://guides.rubyonrails.org/i18n.html) de Ruby on Rails sobre como funciona este sistema. +Si quieres modificar algún texto de la web deberías encontrarlos en los ficheros formato YML disponibles en `config/locales/`. Puedes leer la [guía de internacionalización](http://guides.rubyonrails.org/i18n.html) de Ruby on Rails sobre como funciona este sistema. -Las adaptaciones los debes poner en el directorio *config/locales/custom/*, recomendamos poner solo los textos que quieras personalizar. Por ejemplo si quieres personalizar el texto de "Ayuntamiento de Madrid, 2016" que se encuentra en el footer en todas las páginas, primero debemos ubicar en que plantilla se encuentra (app/views/layouts/_footer.html.erb), vemos que en el código pone lo siguiente: -``` +Las adaptaciones los debes poner en el directorio `config/locales/custom/`, recomendamos poner solo los textos que quieras personalizar. Por ejemplo si quieres personalizar el texto de "Ayuntamiento de Madrid, 2016" que se encuentra en el footer en todas las páginas, primero debemos ubicar en que plantilla se encuentra (`app/views/layouts/_footer.html.erb`), vemos que en el código pone lo siguiente: + +```ruby <%= t("layouts.footer.copyright", year: Time.current.year) %> ``` -Y que en el fichero config/locales/es.yml sigue esta estructura (solo ponemos lo relevante para este caso): +Y que en el fichero `config/locales/es.yml` sigue esta estructura (solo ponemos lo relevante para este caso): -``` +```yml es: layouts: footer: @@ -40,11 +41,11 @@ es: ``` -Si creamos el fichero config/locales/custom/es.yml y modificamos "Ayuntamiento de Madrid" por el nombre de la organización que se este haciendo la modificación. Recomendamos directamente copiar los ficheros config/locales/ e ir revisando y corrigiendo las que querramos, borrando las líneas que no querramos traducir. +Si creamos el fichero `config/locales/custom/es.yml` y modificamos "Ayuntamiento de Madrid" por el nombre de la organización que se este haciendo la modificación. Recomendamos directamente copiar los ficheros `config/locales/` e ir revisando y corrigiendo las que querramos, borrando las líneas que no querramos traducir. ### Imágenes -Si quieres sobreescribir alguna imagen debes primero fijarte el nombre que tiene, por defecto se encuentran en *app/assets/images*. Por ejemplo si quieres modificar *app/assets/images/logo_header.png* debes poner otra con ese mismo nombre en el directorio app/assets/images/custom. Los iconos que seguramente quieras modificar son: +Si quieres sobreescribir alguna imagen debes primero fijarte el nombre que tiene, por defecto se encuentran en `app/assets/images`. Por ejemplo si quieres modificar `app/assets/images/logo_header.png` debes poner otra con ese mismo nombre en el directorio `app/assets/images/custom`. Los iconos que seguramente quieras modificar son: * apple-touch-icon-200.png * icon_home.png @@ -55,13 +56,13 @@ Si quieres sobreescribir alguna imagen debes primero fijarte el nombre que tiene ### Vistas (HTML) -Si quieres modificar el HTML de alguna página puedes hacerlo copiando el HTML de *app/views* y poniendolo en *app/views/custom* respetando los subdirectorios que encuentres ahí. Por ejemplo si quieres modificar *app/views/pages/conditions.html* debes copiarlo y modificarla en app/views/custom/pages/conditions.html.erb +Si quieres modificar el HTML de alguna página puedes hacerlo copiando el HTML de `app/views` y poniendolo en `app/views/custom` respetando los subdirectorios que encuentres ahí. Por ejemplo si quieres modificar `app/views/pages/conditions.html` debes copiarlo y modificarla en `app/views/custom/pages/conditions.html.erb` ### CSS -Si quieres cambiar algun selector CSS (de las hojas de estilo) puedes hacerlo en el fichero *app/assets/stylesheets/custom.scss*. Por ejemplo si quieres cambiar el color del header (.top-links) puedes hacerlo agregando: +Si quieres cambiar algun selector CSS (de las hojas de estilo) puedes hacerlo en el fichero `app/assets/stylesheets/custom.scss`. Por ejemplo si quieres cambiar el color del header (`.top-links`) puedes hacerlo agregando: -``` +```css .top-links { background: red; } @@ -71,9 +72,9 @@ Usamos un preprocesador de CSS, [SASS, con la sintaxis SCSS](http://sass-lang.co ### Javascript -Si quieres agregar código Javascript puedes hacerlo en el fichero *app/assets/javascripts/custom.js". Por ejemplo si quieres que salga una alerta puedes poner lo siguiente: +Si quieres agregar código Javascript puedes hacerlo en el fichero `app/assets/javascripts/custom.js`. Por ejemplo si quieres que salga una alerta puedes poner lo siguiente: -``` +```js $(function(){ alert('foobar'); }); @@ -81,11 +82,11 @@ $(function(){ ### Modelos -Si quieres agregar modelos nuevos, o modificar o agregar métodos a uno ya existente puedes hacerlo en *app/models/custom*. En el caso de los modelos antiguos debes primero hacer un require de la dependencia. +Si quieres agregar modelos nuevos, o modificar o agregar métodos a uno ya existente puedes hacerlo en `app/models/custom`. En el caso de los modelos antiguos debes primero hacer un require de la dependencia. -Por ejemplo en el caso del Ayuntamiento de Madrid se requiere comprobar que el código postal durante la verificación sigue un cierto formato (empieza con 280). Esto se realiza creando este fichero en *app/models/custom/verification/residence.rb*: +Por ejemplo en el caso del Ayuntamiento de Madrid se requiere comprobar que el código postal durante la verificación sigue un cierto formato (empieza con 280). Esto se realiza creando este fichero en `app/models/custom/verification/residence.rb`: -``` +```ruby require_dependency Rails.root.join('app', 'models', 'verification', 'residence').to_s class Verification::Residence @@ -116,10 +117,10 @@ class Verification::Residence end ``` -No olvides poner los tests relevantes en *spec/models/custom*, siguiendo con el ejemplo pondriamos lo siguiente en *spec/models/custom/residence_spec.rb*: +No olvides poner los tests relevantes en `spec/models/custom`, siguiendo con el ejemplo pondriamos lo siguiente en `spec/models/custom/residence_spec.rb`: -``` +```ruby require 'rails_helper' describe Verification::Residence do @@ -162,20 +163,20 @@ TODO ### Gemfile -Para agregar librerías (gems) nuevas puedes hacerlo en el fichero *Gemfile_custom*. Por ejemplo si quieres agregar la gema [rails-footnotes](https://github.com/josevalim/rails-footnotes) debes hacerlo agregandole +Para agregar librerías (gems) nuevas puedes hacerlo en el fichero `Gemfile_custom`. Por ejemplo si quieres agregar la gema [rails-footnotes](https://github.com/josevalim/rails-footnotes) debes hacerlo agregandole -``` +```ruby gem 'rails-footnotes', '~> 4.0' ``` -Y siguiendo el flujo clásico en Ruby on Rails (bundle install y seguir con los pasos específicos de la gema en la documentación) +Y siguiendo el flujo clásico en Ruby on Rails (`bundle install` y seguir con los pasos específicos de la gema en la documentación) ### application.rb -Cuando necesites extender o modificar el *config/application.rb* puedes hacerlo a través del fichero *config/application_custom.rb*. Por ejemplo si quieres modificar el idioma por defecto al inglés pondrías lo siguiente: +Cuando necesites extender o modificar el `config/application.rb` puedes hacerlo a través del fichero `config/application_custom.rb`. Por ejemplo si quieres modificar el idioma por defecto al inglés pondrías lo siguiente: -``` +```ruby module Consul class Application < Rails::Application config.i18n.default_locale = :en From a175b5bc9bb6bccaf2ca83a4cd4221f54ac8cd74 Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Fri, 2 Dec 2016 11:26:46 +0100 Subject: [PATCH 02/31] add gem sitemap_generator --- Gemfile | 1 + Gemfile.lock | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/Gemfile b/Gemfile index 1ce218638..b50540b5f 100644 --- a/Gemfile +++ b/Gemfile @@ -55,6 +55,7 @@ gem 'devise-async' gem 'newrelic_rpm', '~> 3.17.0.325' gem 'whenever', require: false gem 'pg_search' +gem 'sitemap_generator' gem 'ahoy_matey', '~> 1.4.2' gem 'groupdate', '~> 3.1.0' # group temporary data diff --git a/Gemfile.lock b/Gemfile.lock index 50ab5bb9d..d787b4a81 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -381,6 +381,8 @@ GEM json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.0) + sitemap_generator (5.2.0) + builder (~> 3.0) social-share-button (0.3.1) coffee-rails sass-rails @@ -511,6 +513,7 @@ DEPENDENCIES rvm1-capistrano3 sass-rails (~> 5.0, >= 5.0.4) savon + sitemap_generator social-share-button spring spring-commands-rspec @@ -522,3 +525,6 @@ DEPENDENCIES unicorn (~> 5.1.0) web-console (= 3.3.0) whenever + +BUNDLED WITH + 1.13.6 From bb61d73c04998ba0fefee35bc2f924ff7e16a10d Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Fri, 2 Dec 2016 11:28:39 +0100 Subject: [PATCH 03/31] add sitemap generator --- config/sitemap.rb | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 config/sitemap.rb diff --git a/config/sitemap.rb b/config/sitemap.rb new file mode 100644 index 000000000..73990620c --- /dev/null +++ b/config/sitemap.rb @@ -0,0 +1,30 @@ +# default host +SitemapGenerator::Sitemap.default_host = "https://decide.madrid.es" + +# sitemap generator +SitemapGenerator::Sitemap.create do + pages = Dir.entries(File.join(Rails.root,"app","views","pages")) + pages.each do |page| + page_name = page.split(".").first + add page_name if page_name.present? + end + + add "help_translate" + + add debates_path, priority: 0.7, changefreq: "daily" + Debate.find_each do |debate| + add debate_path(debate), lastmod: debate.updated_at + end + + add proposals_path, priority: 0.7, changefreq: "daily" + Proposal.find_each do |proposal| + add proposal_path(proposal), lastmod: proposal.updated_at + end + + add proposal_ballots_path + + add spending_proposals_path, priority: 0.7, changefreq: "daily" + SpendingProposal.find_each do |spending_proposal| + add spending_proposal_path(spending_proposal), lastmod: spending_proposal.updated_at + end +end From 39401656424bf9f1d5e2ca9ef7405fb3e818b971 Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Fri, 2 Dec 2016 11:29:35 +0100 Subject: [PATCH 04/31] don't compress the sitemap --- config/sitemap.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/config/sitemap.rb b/config/sitemap.rb index 73990620c..9e60f483f 100644 --- a/config/sitemap.rb +++ b/config/sitemap.rb @@ -1,3 +1,9 @@ +# not use compression +class SitemapGenerator::FileAdapter + def gzip(stream, data); stream.write(data); stream.close end +end +SitemapGenerator::Sitemap.namer = SitemapGenerator::SimpleNamer.new(:sitemap, extension: '.xml') + # default host SitemapGenerator::Sitemap.default_host = "https://decide.madrid.es" From fec84c47103d56e8b41d7fc8c9151b3a6562d0a6 Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Fri, 2 Dec 2016 11:30:12 +0100 Subject: [PATCH 05/31] include public/sitemap to gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index f4b9c99fb..35f5651a4 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,5 @@ # Mac finder artifacts .DS_Store .ruby-gemset + +public/sitemap.xml \ No newline at end of file From 0c09d1016c06504bcb0670a9e81181b6eb54ac8d Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Fri, 2 Dec 2016 11:30:57 +0100 Subject: [PATCH 06/31] generate a new sitemap everyday at 5:00am --- config/schedule.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config/schedule.rb b/config/schedule.rb index 308cdc69c..f4c03fd61 100644 --- a/config/schedule.rb +++ b/config/schedule.rb @@ -22,3 +22,7 @@ every 1.minute do command "date > ~/cron-test.txt" end + +every 1.day, at: '5:00 am' do + rake "-s sitemap:refresh" +end From 9a2b049ec88626aa0a91a6f0a2346b2eee5c7e50 Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Sat, 3 Dec 2016 12:19:58 +0100 Subject: [PATCH 07/31] take default host from settings --- config/sitemap.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/sitemap.rb b/config/sitemap.rb index 9e60f483f..11ec9fb09 100644 --- a/config/sitemap.rb +++ b/config/sitemap.rb @@ -5,7 +5,7 @@ end SitemapGenerator::Sitemap.namer = SitemapGenerator::SimpleNamer.new(:sitemap, extension: '.xml') # default host -SitemapGenerator::Sitemap.default_host = "https://decide.madrid.es" +SitemapGenerator::Sitemap.default_host = Setting["url"] # sitemap generator SitemapGenerator::Sitemap.create do From 5d6c083f6716e43d128930cf01ac82617eef618e Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sun, 4 Dec 2016 19:57:10 +0100 Subject: [PATCH 08/31] updates sitemap daily in all servers --- config/deploy.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/deploy.rb b/config/deploy.rb index acce83b3c..30b08c56d 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -38,7 +38,7 @@ set(:config_files, %w( unicorn.rb )) -set :whenever_roles, -> { :cron } +set :whenever_roles, -> { :app } namespace :deploy do before :starting, 'rvm1:install:rvm' # install/update RVM From ae12848e230588ed43ffbde02cce663a8b46f400 Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Mon, 5 Dec 2016 14:26:54 +0100 Subject: [PATCH 09/31] adds text for screen readers on toggle comments --- app/assets/javascripts/comments.js.coffee | 1 + app/views/comments/_comment.html.erb | 3 ++- config/locales/en.yml | 1 + config/locales/es.yml | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/comments.js.coffee b/app/assets/javascripts/comments.js.coffee index 876a89b20..fefe85544 100644 --- a/app/assets/javascripts/comments.js.coffee +++ b/app/assets/javascripts/comments.js.coffee @@ -52,5 +52,6 @@ App.Comments = children_container_id = "#{$(this).data().id}_children" $("##{children_container_id}").toggle('slow') App.Comments.toggle_arrow(children_container_id) + $(this).children('.js-child-toggle').toggle() false ) diff --git a/app/views/comments/_comment.html.erb b/app/views/comments/_comment.html.erb index bf8bfb50d..3424e6fcc 100644 --- a/app/views/comments/_comment.html.erb +++ b/app/views/comments/_comment.html.erb @@ -74,7 +74,8 @@ <% if comment.children.size > 0 %> <%= link_to "", class: "js-toggle-children relative", data: {'id': "#{dom_id(comment)}"} do %> - <%= t("shared.show") %> + + <%= t("shared.hide") %> <%= t("comments.comment.responses", count: comment.children.size) %> <% end %> <% else %> diff --git a/config/locales/en.yml b/config/locales/en.yml index db2b3b1c5..cd713df7e 100755 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -426,6 +426,7 @@ en: check_none: None collective: Collective flag: Flag as inappropriate + hide: Hide print: print_button: Print this info show: Show diff --git a/config/locales/es.yml b/config/locales/es.yml index fea817454..6f1ca30b9 100755 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -426,6 +426,7 @@ es: check_none: Ninguno collective: Colectivo flag: Denunciar como inapropiado + hide: Ocultar print: print_button: Imprimir esta información show: Mostrar From 3b2fe1e184bd028f0fd610af1a6d52a0a146da5c Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Mon, 5 Dec 2016 17:02:42 +0100 Subject: [PATCH 10/31] improves headings and outline structure --- app/assets/stylesheets/layout.scss | 2 +- app/assets/stylesheets/participation.scss | 8 ++++++-- app/views/debates/show.html.erb | 4 ++-- app/views/kaminari/_paginator.html.erb | 2 +- app/views/proposal_ballots/index.html.erb | 2 +- app/views/proposals/_categories.html.erb | 2 +- app/views/proposals/_geozones.html.erb | 2 +- app/views/proposals/_popular.html.erb | 2 +- app/views/proposals/_retired.html.erb | 2 +- app/views/proposals/show.html.erb | 4 ++-- app/views/shared/_tag_cloud.html.erb | 2 +- app/views/spending_proposals/_sidebar.html.erb | 2 +- 12 files changed, 19 insertions(+), 15 deletions(-) diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index 6c6d739af..947349674 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -577,7 +577,7 @@ footer { } } -h3.sidebar-title { +h2.sidebar-title { border-top: 2px solid $brand; display: inline-block; font-size: rem-calc(16); diff --git a/app/assets/stylesheets/participation.scss b/app/assets/stylesheets/participation.scss index 6dbaac394..11d4c97a1 100644 --- a/app/assets/stylesheets/participation.scss +++ b/app/assets/stylesheets/participation.scss @@ -383,7 +383,7 @@ aside { - h3 { + h2 { border-top: 2px solid $brand; display: inline-block; font-size: rem-calc(16); @@ -844,11 +844,15 @@ } p { - margin-bottom: 0; &.title { color: #FFD200; } + + &.title-date { + font-size: rem-calc(24); + font-weight: bold; + } } .info { diff --git a/app/views/debates/show.html.erb b/app/views/debates/show.html.erb index dca39677e..7a528ffa7 100644 --- a/app/views/debates/show.html.erb +++ b/app/views/debates/show.html.erb @@ -44,12 +44,12 @@