diff --git a/.gitignore b/.gitignore index a320f7b..57f32c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,18 +1,24 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. +# See https://help.github.com/articles/ignoring-files for more about ignoring files. # # If you find yourself ignoring temporary files generated by your text editor # or operating system, you probably want to add a global ignore instead: -# git config --global core.excludesfile ~/.gitignore_global +# git config --global core.excludesfile '~/.gitignore_global' -# Ignore bundler config +# Ignore bundler config. /.bundle -# Ignore the build directory -/build +# Ignore the default SQLite database. +/db/*.sqlite3 +/db/*.sqlite3-journal -# Ignore cache -/.sass-cache -/.cache +# Ignore all logfiles and tempfiles. +/log +/tmp +!/log/.keep +!/tmp/.keep -# Ignore .DS_store file +# Ignore Byebug command history file. +.byebug_history + +# Ignore Desktop Service Store of mac .DS_Store diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..35b1ec6 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,72 @@ +## Contribuyentes + +En el espíritu del [software libre][free-sw], **todos** están invitadísimos +a mejorar este proyecto. + +[free-sw]: http://www.fsf.org/licensing/essays/free-sw.html + +## ¿Cómo puedo contribuir? +Lo interesante de Codeando México es su ecléctica comunidad. +Y como dije anteriormente, todos pueden contribuir, +aún así que no sean programadores. + +Aquí hay algunas formas en las que **tú** puedes contribuir: +* usando el *alpha*, *beta*, o versiones que vayan saliendo +* reportando errores que hayas encontrado en estas versiones +* escribiendo o editando documentación +* escribiendo especificaciones +* escribiendo código (**ninguna contribución es demasiado pequeña**: + arreglar errores ortográficos, *typos*, añadiendo comentarios, + limpiando inconsistencias, etc.) +* *refactoreando* código: (organizar archivos/modulos, crear interfaces, + cambiando a un estilo más limpio, adaptarse a prácticas etc.) +* arreglar [issues][issues] +* dando retroalimentación del código (en pull requests o comentando en commits) +* sugerir cosas que te gustaría que tuviera el proyecto (hazlo levantando un + [issue][issues], o ) +* financiándolo (:beers: cheves pa' la banda) +* dándole publicidad en sus medios, levantar la voz para que se sumen más + esfuerzos, y no dejar esto en puras intenciones. (utiliza el hashtag + #TuPlataformaAbierta) + +[issues]: https://github.com/CodeandoMexico/me-informo/issues/ + +### Necesidades puntuales +- [] Crear el backend de la plataforma (de momento todo es estático). +- [] Construir el API de la plataforma. Aquí hay un API mínimo. +- [] Mejorar el diseño actual. +- [] Agregar información sobre sujetos obligados, organismos garantes, etc. + +## Obteniendo ayuda +Tenemos un [canal de slack][slack], y estamos en #codeandomexico en +`irc.freenode.net`. +También estás invitadísimo a escribirnos a equipo@codeandomexico.org + +## Abriendo un issue +Si eres nuevo en GitHub, en te recomiendo leer la [guía de GitHub][github-guide] +**simple y en español**. + +Por favor, asegúrate de que lo que vayas a poner, no lo haya puesto alguien más. +Si es un error, trata de incluir el cómo replicarlo. +Si es una mejora/sugerencia, argumenta el por qué. + +[github-guide]: https://github.com/MrOutis/GitHub-Simple + +## Contribuyendo con código +`༼ つ ◕_◕ ༽つ Dame tu pull requests!` + +Estos son los pasos para un pull request: + +1. [Forkea el repositorio de Codeando México.][fork] +2. [Crea una branch con tu tópico.][branch] +3. Agrega pruebas (si no estás acostumbrado a escribir pruebas, muy mal, + al menos prueba a mano lo que agregaste antes de enviárnoslo y agrega + una indicación en el pull request de que no tiene pruebas, para que + alguien más las pueda agregar). +5. Implementa tu maravillosa contribución. +8. `add -> commit -> push (a tu fork)` +9. [Mandanos tu pull request.][pr] + +[fork]: http://help.github.com/fork-a-repo/ +[branch]: http://learn.github.com/p/branching.html +[pr]: http://help.github.com/send-pull-requests/ diff --git a/Gemfile b/Gemfile index 959b0c0..0a24a92 100644 --- a/Gemfile +++ b/Gemfile @@ -1,17 +1,57 @@ -# If you do not have OpenSSL installed, change -# the following line to use "http://" -source "https://rubygems.org" +source 'https://rubygems.org' -# Uncomment these gems if you are using Windows -# gem "wdm", "~> 0.1.0", platforms: [:mswin, :mingw] -# gem "tzinfo-data", platforms: [:mswin, :mingw, :jruby] -gem "bourbon", "~> 4.2" -gem "middleman", "~> 4.0" -gem "middleman-autoprefixer", "~> 2.6" -gem "middleman-deploy", "= 2.0.0.pre.alpha" -gem "middleman-livereload", "~> 3.4" -gem "middleman-sprockets", "= 4.0.0.rc.1" +# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' +gem 'rails', '~> 5.0.0' +# Use sqlite3 as the database for Active Record +gem 'sqlite3', :group => :development +# Use Puma as the app server +gem 'puma', '~> 3.0' +# Use SCSS for stylesheets +gem 'sass-rails', '~> 5.0' +# Use Uglifier as compressor for JavaScript assets +gem 'uglifier', '>= 1.3.0' +# Use CoffeeScript for .coffee assets and views +gem 'coffee-rails', '~> 4.2' +# See https://github.com/rails/execjs#readme for more supported runtimes +# gem 'therubyracer', platforms: :ruby + +# Use jquery as the JavaScript library +gem 'jquery-rails' +# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks +gem 'turbolinks', '~> 5' +# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder +gem 'jbuilder', '~> 2.5' +# Use Redis adapter to run Action Cable in production +# gem 'redis', '~> 3.0' +# Use ActiveModel has_secure_password +# gem 'bcrypt', '~> 3.1.7' gem "neat", "~> 1.7" -gem "sassc", "~> 1.8" -gem 'middleman-google-analytics', '~> 2.1' +gem "bourbon", "~> 4.2" + +gem "font-awesome-sass" + +# Use Capistrano for deployment +# gem 'capistrano-rails', group: :development +gem "haml" +gem 'haml-rails', :group => :development + +group :production do + gem 'pg' +end +group :development, :test do + # Call 'byebug' anywhere in the code to stop execution and get a debugger console + gem 'byebug', platform: :mri +end + +group :development do + # Access an IRB console on exception pages or by using <%= console %> anywhere in the code. + gem 'web-console' + gem 'listen', '~> 3.0.5' + # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring + gem 'spring' + gem 'spring-watcher-listen', '~> 2.0.0' +end + +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] diff --git a/Gemfile.lock b/Gemfile.lock index 68507d3..986da52 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,149 +1,206 @@ GEM remote: https://rubygems.org/ specs: - activesupport (4.2.6) + actioncable (5.0.0) + actionpack (= 5.0.0) + nio4r (~> 1.2) + websocket-driver (~> 0.6.1) + actionmailer (5.0.0) + actionpack (= 5.0.0) + actionview (= 5.0.0) + activejob (= 5.0.0) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (5.0.0) + actionview (= 5.0.0) + activesupport (= 5.0.0) + rack (~> 2.0) + rack-test (~> 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (5.0.0) + activesupport (= 5.0.0) + builder (~> 3.1) + erubis (~> 2.7.0) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + activejob (5.0.0) + activesupport (= 5.0.0) + globalid (>= 0.3.6) + activemodel (5.0.0) + activesupport (= 5.0.0) + activerecord (5.0.0) + activemodel (= 5.0.0) + activesupport (= 5.0.0) + arel (~> 7.0) + activesupport (5.0.0) + concurrent-ruby (~> 1.0, >= 1.0.2) i18n (~> 0.7) - json (~> 1.7, >= 1.7.7) minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.4.0) - autoprefixer-rails (6.3.6) - execjs - backports (3.6.8) + arel (7.1.1) bourbon (4.2.7) sass (~> 3.4) thor (~> 0.19) + builder (3.2.2) + byebug (9.0.5) + coffee-rails (4.2.1) + coffee-script (>= 2.2.0) + railties (>= 4.0.0, < 5.2.x) coffee-script (2.4.1) coffee-script-source execjs coffee-script-source (1.10.0) - compass-import-once (1.0.5) - sass (>= 3.2, < 3.5) concurrent-ruby (1.0.2) - contracts (0.13.0) - em-websocket (0.5.1) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) + debug_inspector (0.0.2) erubis (2.7.0) - eventmachine (1.2.0.1) - execjs (2.6.0) - fast_blank (1.0.0) - fastimage (2.0.0) - addressable (~> 2) - ffi (1.9.10) + execjs (2.7.0) + ffi (1.9.14) + font-awesome-sass (4.6.2) + sass (>= 3.2) + globalid (0.3.7) + activesupport (>= 4.1.0) haml (4.0.7) tilt - hamster (3.0.0) - concurrent-ruby (~> 1.0) - hashie (3.4.4) - http_parser.rb (0.6.0) + haml-rails (0.9.0) + actionpack (>= 4.0.1) + activesupport (>= 4.0.1) + haml (>= 4.0.6, < 5.0) + html2haml (>= 1.0.1) + railties (>= 4.0.1) + html2haml (2.0.0) + erubis (~> 2.7.0) + haml (~> 4.0.0) + nokogiri (~> 1.6.0) + ruby_parser (~> 3.5) i18n (0.7.0) - json (1.8.3) - kramdown (1.11.1) - listen (3.0.7) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9.7) - memoist (0.14.0) - middleman (4.1.8) - coffee-script (~> 2.2) - compass-import-once (= 1.0.5) - haml (>= 4.0.5) - kramdown (~> 1.2) - middleman-cli (= 4.1.8) - middleman-core (= 4.1.8) - sass (>= 3.4.0, < 4.0) - middleman-autoprefixer (2.7.0) - autoprefixer-rails (>= 6.3.1, < 7.0.0) - middleman-core (>= 3.3.3) - middleman-cli (4.1.8) - thor (>= 0.17.0, < 2.0) - middleman-core (4.1.8) - activesupport (~> 4.2) - addressable (~> 2.3) - backports (~> 3.6) - bundler (~> 1.1) - contracts (~> 0.13.0) - erubis - execjs (~> 2.0) - fast_blank - fastimage (~> 2.0) - hamster (~> 3.0) - hashie (~> 3.4) - i18n (~> 0.7.0) - listen (~> 3.0.0) - memoist (~> 0.14) - padrino-helpers (~> 0.13.0) - parallel - rack (>= 1.4.5, < 2.0) - sass (>= 3.4) - servolux - tilt (~> 1.4.1) - uglifier (~> 3.0) - middleman-deploy (2.0.0.pre.alpha) - middleman-core (>= 3.2) - net-sftp - ptools - middleman-google-analytics (2.1.1) - activesupport (~> 4.1) - erubis - middleman-core (>= 3.4) - uglifier (>= 2.5, < 4.0) - middleman-livereload (3.4.6) - em-websocket (~> 0.5.1) - middleman-core (>= 3.3) - rack-livereload (~> 0.3.15) - middleman-sprockets (4.0.0.rc.1) - middleman-core (>= 4.0.0.rc.1) - sprockets (~> 3.0) - minitest (5.8.4) + jbuilder (2.6.0) + activesupport (>= 3.0.0, < 5.1) + multi_json (~> 1.2) + jquery-rails (4.1.1) + rails-dom-testing (>= 1, < 3) + railties (>= 4.2.0) + thor (>= 0.14, < 2.0) + listen (3.0.8) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + loofah (2.0.3) + nokogiri (>= 1.5.9) + mail (2.6.4) + mime-types (>= 1.16, < 4) + method_source (0.8.2) + mime-types (3.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2016.0521) + mini_portile2 (2.1.0) + minitest (5.9.0) + multi_json (1.12.1) neat (1.7.4) bourbon (>= 4.0) sass (>= 3.3) - net-sftp (2.1.2) - net-ssh (>= 2.6.5) - net-ssh (3.1.1) - padrino-helpers (0.13.2) - i18n (~> 0.6, >= 0.6.7) - padrino-support (= 0.13.2) - tilt (>= 1.4.1, < 3) - padrino-support (0.13.2) - activesupport (>= 3.1) - parallel (1.8.0) - ptools (1.3.3) - rack (1.6.4) - rack-livereload (0.3.16) - rack + nio4r (1.2.1) + nokogiri (1.6.8) + mini_portile2 (~> 2.1.0) + pkg-config (~> 1.1.7) + pg (0.18.4) + pkg-config (1.1.7) + puma (3.6.0) + rack (2.0.1) + rack-test (0.6.3) + rack (>= 1.0) + rails (5.0.0) + actioncable (= 5.0.0) + actionmailer (= 5.0.0) + actionpack (= 5.0.0) + actionview (= 5.0.0) + activejob (= 5.0.0) + activemodel (= 5.0.0) + activerecord (= 5.0.0) + activesupport (= 5.0.0) + bundler (>= 1.3.0, < 2.0) + railties (= 5.0.0) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.0.1) + activesupport (>= 4.2.0, < 6.0) + nokogiri (~> 1.6.0) + rails-html-sanitizer (1.0.3) + loofah (~> 2.0) + railties (5.0.0) + actionpack (= 5.0.0) + activesupport (= 5.0.0) + method_source + rake (>= 0.8.7) + thor (>= 0.18.1, < 2.0) + rake (11.2.2) rb-fsevent (0.9.7) rb-inotify (0.9.7) ffi (>= 0.5.0) + ruby_parser (3.8.2) + sexp_processor (~> 4.1) sass (3.4.22) - sassc (1.9.0) - bundler - ffi (~> 1.9.6) - sass (>= 3.3.0) - servolux (0.12.0) - sprockets (3.6.0) + sass-rails (5.0.6) + railties (>= 4.0.0, < 6) + sass (~> 3.1) + sprockets (>= 2.8, < 4.0) + sprockets-rails (>= 2.0, < 4.0) + tilt (>= 1.1, < 3) + sexp_processor (4.7.0) + spring (1.7.2) + spring-watcher-listen (2.0.0) + listen (>= 2.7, < 4.0) + spring (~> 1.2) + sprockets (3.7.0) concurrent-ruby (~> 1.0) rack (> 1, < 3) + sprockets-rails (3.1.1) + actionpack (>= 4.0) + activesupport (>= 4.0) + sprockets (>= 3.0.0) + sqlite3 (1.3.11) thor (0.19.1) thread_safe (0.3.5) - tilt (1.4.1) + tilt (2.0.5) + turbolinks (5.0.1) + turbolinks-source (~> 5) + turbolinks-source (5.0.0) tzinfo (1.2.2) thread_safe (~> 0.1) - uglifier (3.0.0) + uglifier (3.0.1) execjs (>= 0.3.0, < 3) + web-console (3.3.1) + actionview (>= 5.0) + activemodel (>= 5.0) + debug_inspector + railties (>= 5.0) + websocket-driver (0.6.4) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.2) PLATFORMS ruby DEPENDENCIES bourbon (~> 4.2) - middleman (~> 4.0) - middleman-autoprefixer (~> 2.6) - middleman-deploy (= 2.0.0.pre.alpha) - middleman-google-analytics (~> 2.1) - middleman-livereload (~> 3.4) - middleman-sprockets (= 4.0.0.rc.1) + byebug + coffee-rails (~> 4.2) + font-awesome-sass + haml + haml-rails + jbuilder (~> 2.5) + jquery-rails + listen (~> 3.0.5) neat (~> 1.7) - sassc (~> 1.8) + pg + puma (~> 3.0) + rails (~> 5.0.0) + sass-rails (~> 5.0) + spring + spring-watcher-listen (~> 2.0.0) + sqlite3 + turbolinks (~> 5) + tzinfo-data + uglifier (>= 1.3.0) + web-console + +BUNDLED WITH + 1.12.5 diff --git a/README.md b/README.md index 01ed1d1..29e0aa4 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,29 @@ -# me-informo-api +# Tu Plataforma Abierta +La versión abierta y comunitaria de la Plataforma Nacional de Transparencia. -En Cívica Digital decidimos dedicar un día completo a enfocarnos en crear el prototipo de lo que pudo haber sido la Plataforma Nacional de Transparencia que recientemente lanzó el INAI. Quedó muy claro que la plataforma oficial dejó mucho que desear, sobre todo por el costo que implicó hacerla, se gastaron 19 millones de pesos en el desarrollo de la página. +## ¿Qué es Tu Plataforma Abierta? -La plataforma que proponemos es lo que creemos que debió haber sido un portal de transparencia apto para un ciudadano común en busca de información pública. Lo hicimos en 2 días de trabajo, un equipo de 12 personas en 4 diferentes ciudades de México, todas enfocadas en crear algo amigable, fácil de usar y con la tecnología más innovadora. +El 5 de mayo el Instituto Nacional de Acceso a la Información (INAI) lanzó la Plataforma Nacional de Transparencia, herramienta central para realizar solicitudes de información pública antes sujetos obligados, según la Ley General de Transparencia y Acceso a información Pública, reemplazando a INFOMEX. -Puedes leer más sobre esto en [Liga al blogpost](http://pendiente.com) +El desarrollo de esta herramienta tuvo un costo total de casi 20 millones de pesos, y contaba con muchas carencias técnicas, funcionales y de usabilidad. +Días después, [Cívica Digital](http://civica.digital) [lanza una propuesta visual](http://blog.civica.digital/2016/05/31/como-mejoramos-la-plataforma-nacional-de-transparencia/) para mejorar la Plataforma Nacional de Transparencia. Partiendo de ahí, Codeando México [hace un llamado nacional](http://blog.codeandomexico.org/2016/06/06/la-plataforma-nacional-de-transparencia-abierta/) a la comunidad tecnológica a colaborar para construir una versión funcional, abierta y ciudadana de la plataforma. -## Accesar el sitio de prueba +El objetivo principal de este proyecto consiste en desarrollar una versión más usable, funcional y amigable para realizar solicitudes de información. -El Estado actual de la página está disponible en: +## Participa -[http://civica-digital.github.io/me-informo/](http://civica-digital.github.io/me-informo/) +* Para contruir con código, hacks, diseño o ideas, revisa la [guía de contribución](/CONTRIBUTING.md) +* Únete a los Hangouts abiertos que tenemos semanalmente, los miércoles a las 6:00pm (GMT-6) en: http://bit.ly/tu-plataforma-abierta +* [Únete al Slack de Codeando México](http://slack.codeandomexico.org). Estaremos en el canal de #tu-plataforma-abierta. +* Utiliza el hashtag #TuPlataformaAbierta. -La documentación sobre los endpoints está en la raiz de la dirección. - - -## ¿Preguntas, problemas, sugerencias o colaborar? - -Mantenemos la conversación del proyecto en nuestra página de problemas [issues] (https://github.com/civica-digital/me-informo/issues). Ahi podrás encontrar los diseños parciales que estamos desarrollando como equipo. - -¡PR bien recibidos! - -## Core Team - -Este proyecto fue iniciado por [Cívica Digital](http://civica.digital) abierto a la comunidad. +## Comunicación +* Contáctanos por correo electrónico en [equipo@codeandomexico.org](mailto:equipo@codeandomexico.org). +* En redes sociales: [Facebook](http://facebook.com/CodeandoMexico), [Twitter](http://twitter.com/CodeandoMexico), o únete al grupo de la [Comunidad Codeando México](http://facebook.com/groups/370710456416676/). ## Licencia _Available under the license: MIT. Read the document [LICENSE](/LICENSE.md) for more information._ -Creado por [Cívica Digital](http://civica.digital), 2016. +Creado por [Cívica Digital](http://civica.digital), impulsado por la comunidad de Codeando México. 2016. diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..e85f913 --- /dev/null +++ b/Rakefile @@ -0,0 +1,6 @@ +# Add your own tasks in files placed in lib/tasks ending in .rake, +# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. + +require_relative 'config/application' + +Rails.application.load_tasks diff --git a/app/assets/config/manifest.js b/app/assets/config/manifest.js new file mode 100644 index 0000000..b16e53d --- /dev/null +++ b/app/assets/config/manifest.js @@ -0,0 +1,3 @@ +//= link_tree ../images +//= link_directory ../javascripts .js +//= link_directory ../stylesheets .css diff --git a/source/assets/fonts/.keep b/app/assets/images/.keep similarity index 100% rename from source/assets/fonts/.keep rename to app/assets/images/.keep diff --git a/app/assets/images/arrow-down.png b/app/assets/images/arrow-down.png new file mode 100644 index 0000000..c1aba67 Binary files /dev/null and b/app/assets/images/arrow-down.png differ diff --git a/source/assets/images/fondo.png b/app/assets/images/fondo.png similarity index 100% rename from source/assets/images/fondo.png rename to app/assets/images/fondo.png diff --git a/app/assets/images/logo-blanco.png b/app/assets/images/logo-blanco.png new file mode 100644 index 0000000..30a2672 Binary files /dev/null and b/app/assets/images/logo-blanco.png differ diff --git a/app/assets/images/logo-blanco.svg b/app/assets/images/logo-blanco.svg new file mode 100644 index 0000000..2f8b12a --- /dev/null +++ b/app/assets/images/logo-blanco.svg @@ -0,0 +1,1821 @@ + + + diff --git a/source/assets/images/mapa-negro.svg b/app/assets/images/mapa-negro.svg similarity index 100% rename from source/assets/images/mapa-negro.svg rename to app/assets/images/mapa-negro.svg diff --git a/source/assets/javascripts/application.js b/app/assets/javascripts/application.js similarity index 75% rename from source/assets/javascripts/application.js rename to app/assets/javascripts/application.js index 1a1cee7..e524a9b 100644 --- a/source/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -53,7 +53,7 @@ function print_bar(max_height, font_size_param, fill_bar, name, container_name){ } }) .attr("y", max_height*0.25) // y position of the text inside bar - .attr("dx", -3) // padding-right + .attr("dx", 5) // padding-right .attr("dy", ".35em") // vertical-align: middle .attr("text-anchor", function(d){ if(x(d)==max_width*0.8 && fill_bar !=100){ @@ -84,7 +84,7 @@ function print_bar(max_height, font_size_param, fill_bar, name, container_name){ chart.append("text") .attr("x", max_width*0.05) .attr("y", max_height*0.25) // y position of the text inside bar - .attr("dx", -3) // padding-right + .attr("dx", 5) // padding-right .attr("dy", ".35em") // vertical-align: middle .attr("text-anchor", "left")// text-align: right .attr("font-size", font_size_param) @@ -94,15 +94,27 @@ function print_bar(max_height, font_size_param, fill_bar, name, container_name){ return null }; -//print_bar(Width px -int , Height px - int, fontsize-string, fill % - int, title -str, container) -print_bar(60, "18px", 62, "","#progressbar"); -print_bar(45, "12px", 65, "Sindicatos","#r1"); -print_bar(45, "12px", 49, "Partido Político","#r2"); -print_bar(45, "12px", 39, "Municipios","#r3"); -print_bar(45, "12px", 39, "Fondos","#r4"); -print_bar(45, "12px", 31, "Ejecutivo","#r5"); -print_bar(45, "12px", 100, "Jalisco","#r6"); -print_bar(45, "12px", 76, "Oaxaca","#r7"); -print_bar(45, "12px", 71, "Puebla","#r8"); -print_bar(45, "12px", 70, "Querétaro","#r9"); -print_bar(45, "12px", 64, "Hidalgo","#r10"); +function printProgressBar() { + //print_bar(Width px -int , Height px - int, fontsize-string, fill % - int, title -str, container) + print_bar(60, "18px", 62, "","#progressbar"); + print_bar(45, "12px", 65, "Sindicatos","#r1"); + print_bar(45, "12px", 49, "Partido Político","#r2"); + print_bar(45, "12px", 39, "Municipios","#r3"); + print_bar(45, "12px", 39, "Fondos","#r4"); + print_bar(45, "12px", 31, "Ejecutivo","#r5"); + print_bar(45, "12px", 100, "Jalisco","#r6"); + print_bar(45, "12px", 76, "Oaxaca","#r7"); + print_bar(45, "12px", 71, "Puebla","#r8"); + print_bar(45, "12px", 70, "Querétaro","#r9"); + print_bar(45, "12px", 64, "Hidalgo","#r10"); +} + +printProgressBar(); + +$(window).resize(function() { + $('#progressbar svg').remove(); + $('#r1 svg, #r2 svg, #r3 svg, #r4 svg, #r5 svg').remove(); + $('#r6 svg, #r7 svg, #r8 svg, #r9 svg, #r10 svg').remove(); + + printProgressBar(); +}); diff --git a/app/assets/javascripts/cable.js b/app/assets/javascripts/cable.js new file mode 100644 index 0000000..71ee1e6 --- /dev/null +++ b/app/assets/javascripts/cable.js @@ -0,0 +1,13 @@ +// Action Cable provides the framework to deal with WebSockets in Rails. +// You can generate new channels where WebSocket features live using the rails generate channel command. +// +//= require action_cable +//= require_self +//= require_tree ./channels + +(function() { + this.App || (this.App = {}); + + App.cable = ActionCable.createConsumer(); + +}).call(this); diff --git a/source/assets/images/.keep b/app/assets/javascripts/channels/.keep similarity index 100% rename from source/assets/images/.keep rename to app/assets/javascripts/channels/.keep diff --git a/app/assets/javascripts/components_interaction.js b/app/assets/javascripts/components_interaction.js new file mode 100644 index 0000000..441d457 --- /dev/null +++ b/app/assets/javascripts/components_interaction.js @@ -0,0 +1,18 @@ +(function() { + 'use strict'; + + $(document).on('ready', function() { + // Principal navigation menu + $('#principal-menu .toggle').click(function() { + $('#principal-menu nav').slideToggle(); + }); + + // Get file and put the selected file name in button + $('.inputfile > label').click(function() { + $('.inputfile > input').trigger('click'); + }); + $('.inputfile > input').change(function() { + $('.inputfile > label').text(this.files[0].name); + }); + }); +})(); diff --git a/app/assets/javascripts/pages.coffee b/app/assets/javascripts/pages.coffee new file mode 100644 index 0000000..24f83d1 --- /dev/null +++ b/app/assets/javascripts/pages.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss new file mode 100644 index 0000000..b778e4b --- /dev/null +++ b/app/assets/stylesheets/application.css.scss @@ -0,0 +1,50 @@ +// -------------------------------------------- +// Sass structure +// -------------------------------------------- + + +// vendor +@import "../../../vendor/assets/stylesheets/normalize"; +@import "font-awesome-sprockets"; +@import "font-awesome"; + +// bourbon +@import "bourbon"; + +// neat +@import "neat"; + +// elements +@import "elements/variables"; + +// functions +@import "functions/grid"; + +// elements +@import "elements/base"; +@import "elements/typography"; +@import "elements/form"; +@import "elements/buttons"; +@import "elements/table"; +@import "elements/images"; +@import "elements/utilities"; + +// components +@import "components/grid"; +@import "components/buttons"; +@import "components/forms"; +@import "components/lists"; +@import "components/tables"; +@import "components/header"; +@import "components/navigation"; +@import "components/footer"; +@import "components/banner"; +@import "components/video"; +@import "components/feed"; +@import "components/progressbar"; +@import "components/dropdown"; + +// views +@import "views/global"; +@import "views/information-granted"; +@import "views/demand"; diff --git a/source/assets/stylesheets/components/_banner.scss b/app/assets/stylesheets/components/_banner.scss similarity index 68% rename from source/assets/stylesheets/components/_banner.scss rename to app/assets/stylesheets/components/_banner.scss index f81b448..ddf3714 100644 --- a/source/assets/stylesheets/components/_banner.scss +++ b/app/assets/stylesheets/components/_banner.scss @@ -10,24 +10,34 @@ background: radial-gradient(ellipse at center, rgba(152,171,212,1) 38%, rgba(136,154,196,1) 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#98ABD4', endColorstr='#899BC0', GradientType=1 ); - .text{ - width: 70%; - color: #fff; + .text { + color: $white; text-align: center; margin: 0 auto; font-size: 18px; - background-image: url(../images/mapa-negro.svg); + background-image: image-url('mapa-negro.svg'); background-size: 100%; background-repeat: no-repeat; background-position: top center; - padding:120px 0 40px 0; + padding: 120px 0 40px 0; + a { + color: $blue-dark; + + &:hover, + &:focus { + color: shade($blue-dark, 25%); + } + } + + @media (max-width: 640px) { width: 100%; } + @media (min-width: 641px) { width: 70%; } h3 { font-size: 30px; font-weight: 400; padding-bottom: 30px; - color: #fff; + color: $white; } p { @@ -35,46 +45,49 @@ font-size: 26px; } - .button{ - color: $light-blue; + .button { + color: $blue; background-color: $lightest-blue; margin: 60px 0; padding: 20px 40px; - border-radius: 30px; + border-radius: 50px; font-size: 18px; font-weight: 400; + white-space: normal; transition: all .5s all; - &:hover{ - background-color: #F1227A; + @include transition(all $base-duration $base-timing); + + &:hover, + &:focus { + text-decoration: none; + background-color: $pink; transition: all .5s all; - color:#fff; + color: $white; } } } } -.banner-bottom{ - overflow: hidden; - background-color: $blue; + +.banner-bottom { + background-color: $blue-dark; padding: 20px 0; font-size: 18px; - .col{ - width: 30%; - float: left; - margin-right: 3%; - text-align: center; - } - h3, p{ + text-align: center; + + h3, p { display: inline-block; margin-bottom: 0; padding-bottom: 0; } - h3{ - color:$light-blue; + + h3 { + color: $blue; font-size: 18px; font-weight: 500; } - p{ - color:#fff; + + p { + color: $white; font-weight: 300; } } diff --git a/app/assets/stylesheets/components/_buttons.scss b/app/assets/stylesheets/components/_buttons.scss new file mode 100644 index 0000000..53b532d --- /dev/null +++ b/app/assets/stylesheets/components/_buttons.scss @@ -0,0 +1,6 @@ +// buttons components +// --------------------------------------- + +.big-button { + padding: 1.4rem 3rem; +} diff --git a/source/assets/stylesheets/components/_dropdown.scss b/app/assets/stylesheets/components/_dropdown.scss similarity index 67% rename from source/assets/stylesheets/components/_dropdown.scss rename to app/assets/stylesheets/components/_dropdown.scss index ad3eef7..cea4f8a 100644 --- a/source/assets/stylesheets/components/_dropdown.scss +++ b/app/assets/stylesheets/components/_dropdown.scss @@ -1,6 +1,6 @@ .dropbtn { - background-color: #fff; - color: $light-blue; + background-color: $white; + color: $blue; padding: 16px; font-size: 16px; border: none; @@ -17,7 +17,7 @@ z-index: 1000; min-width: 80%; margin-top: 10px; - border: 3px solid $light-blue; + border: 3px solid $blue; } .dropdown-content { @@ -25,7 +25,7 @@ position: absolute; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1000; - border: 1px solid $light-blue; + border: 1px solid $blue; } .dropdown-content a { @@ -34,32 +34,32 @@ text-decoration: none; display: block; z-index: 1000; - background-color: #fff; - color: $light-blue;; + background-color: $white; + color: $blue;; } .dropdown-content a:hover { z-index: 1000; - background-color: $light-blue; - color: #fff; + background-color: $blue; + color: $white; } .dropdown:hover .dropdown-content { display: block; - background-color: $light-blue; - color: #fff; + background-color: $blue; + color: $white; z-index: 1000; } .dropdown:hover .dropbtn { - background-color: $light-blue; - color: #fff; + background-color: $blue; + color: $white; z-index: 1000; } .search{ - border: 3px solid $light-blue !important; + border: 3px solid $blue !important; margin-top: 10px; margin-bottom: 10px; z-index: 1000; -} \ No newline at end of file +} diff --git a/source/assets/stylesheets/components/_feed.scss b/app/assets/stylesheets/components/_feed.scss similarity index 58% rename from source/assets/stylesheets/components/_feed.scss rename to app/assets/stylesheets/components/_feed.scss index 925dc01..f6bd0a6 100644 --- a/source/assets/stylesheets/components/_feed.scss +++ b/app/assets/stylesheets/components/_feed.scss @@ -1,43 +1,40 @@ -section.section-feed{ - padding:60px 0; +section.section-feed { + padding: 60px 0; overflow: hidden; background-color: $lightest-blue; - h2{ + h2 { padding-bottom: 20px; } - h4{ - color: $light-blue; - } - p{ + h4 { color: $blue; + font-size: 1.46rem; + font-weight: 300; + padding-bottom: 0.35rem; + } + p { + color: $blue-dark; } - small{ + small { color: $medium-gray; } - a.text-button{ - color: $light-blue; + a.text-button { padding-top: 10px; float: right; display: inline-block; } - .events-wrapper{ - width:48%; - margin-right: 2%; - float: left; - } .event{ padding: 20px 140px 10px 20px; margin-bottom: 20px; - border: 1px solid rgba($light-blue, .3); + border: 1px solid rgba($blue, .3); border-radius: 20px; position: relative; .date{ - background-color: $light-blue; - color: #fff; + background-color: $blue; + color: $white; float: right; width: 120px; border-radius: 10px; @@ -49,15 +46,10 @@ section.section-feed{ font-weight: 300; } } - .news-wrapper{ - width:48%; - margin-left: 2%; - float: right; - } - .new{ + .new { padding: 20px; margin-bottom: 20px; - border: 1px solid rgba($light-blue, .3); + border: 1px solid rgba($blue, .3); border-radius: 20px; } -} \ No newline at end of file +} diff --git a/source/assets/stylesheets/components/_footer.scss b/app/assets/stylesheets/components/_footer.scss similarity index 69% rename from source/assets/stylesheets/components/_footer.scss rename to app/assets/stylesheets/components/_footer.scss index 635764a..c3967c9 100644 --- a/source/assets/stylesheets/components/_footer.scss +++ b/app/assets/stylesheets/components/_footer.scss @@ -1,42 +1,40 @@ footer{ - background-color: $light-blue; - color:$lightest-blue; + background-color: $blue-dark; + color: $lightest-blue; .bottom{ - padding: 40px 0; + padding: 3rem 0; font-size: 14px; overflow: hidden; - h4{ - padding-bottom: 30px; - color:$blue; + h4 { + padding-bottom: 1rem; + color: $blue; font-size: 18px; font-weight: 400; } - a{ + a { color: $lightest-blue; text-decoration: none; font-weight: 300; font-size: 14px; - padding: 5px 0; + padding: 4px 0; display: inline-block; &:hover{ color:$blue; } } - .col{ - width:22%; - margin-right: 4%; - float: left; - } - .col:nth-child(4n+0){ - margin-right: 0; + ul { + margin-bottom: 1rem; + + li { padding: 0; } } + .social{ - a{ + a { margin-right: 5px; - border:1px solid #fff; + border:1px solid $white; padding: 0px; text-align: center; width: 30px; @@ -46,15 +44,15 @@ footer{ border-radius: 30px; margin-bottom: 15px; &:hover{ - color:$blue; - background-color: #fff; + color: $blue; + background-color: $white; } } } .contact{ a{ i{ - color:$blue; + color: $blue; margin-right: 10px; display: inline-block; } @@ -62,15 +60,16 @@ footer{ } } - .copyright{ - background-color: #47525D; + .copyright { + background-color: $blue; padding: 30px 0; font-size: 14px; font-weight: 300; overflow: hidden; - ul{ - float:right; - li{ + + ul { + float: right; + li { float: right; margin-left: 20px; font-size: 14px; @@ -86,4 +85,4 @@ footer{ } } } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/components/_forms.scss b/app/assets/stylesheets/components/_forms.scss new file mode 100644 index 0000000..9ba2a5c --- /dev/null +++ b/app/assets/stylesheets/components/_forms.scss @@ -0,0 +1,79 @@ +// form components +// --------------------------------------- + +.input-icon-left { + position: relative; + + input { + padding-left: 2.8rem; + } + + i { + position: absolute; + left: 1rem; + top: 1.1rem; + color: $blue; + } +} + +.inputfile { + input { + width: 0; + height: 0; + position: absolute; + opacity: 0; + z-index: -1; + } + + label { + @extend button; + + &.big-button { + @extend .big-button; + } + } +} + +.radio { + label { + display: inline-block; + padding-left: 1px; + position: relative; + cursor: pointer; + + &:before { + content: ""; + display: inline-block; + width: 21px; + height: 21px; + border: 1px solid $blue; + border-radius: 50%; + } + + > input[type='radio'] { + display: none; + + &:checked + i.radio-icon { + background-color: $blue; + } + } + + > span { + position: relative; + top: -4px; + margin-left: 5px; + } + + > i.radio-icon { + position: absolute; + display: block; + width: 13px; + height: 13px; + top: 4px; + left: 5px; + margin: 0; + background-color: transparent; + border-radius: 50%; + } + } +} diff --git a/app/assets/stylesheets/components/_grid.scss b/app/assets/stylesheets/components/_grid.scss new file mode 100644 index 0000000..0283220 --- /dev/null +++ b/app/assets/stylesheets/components/_grid.scss @@ -0,0 +1,67 @@ +// grid +// --------------------------------------- + +[class*="-column"] { + float: left; +} + +.container{ + margin: 0 auto; + + @media (min-width: 768px) { + [class*="-column"] { + margin-right: $gutter-size; + + &:last-child { + margin-right: 0; + } + } + + .one-column { width: $column-size; } + .two-columns { width: columnSizer(2); } + .three-columns { width: columnSizer(3); } + .four-columns { width: columnSizer(4); } + .five-columns { width: columnSizer(5); } + .six-columns { width: columnSizer(6); } + .seven-columns { width: columnSizer(7); } + .eight-columns { width: columnSizer(8); } + .nine-columns { width: columnSizer(9); } + .ten-columns { width: columnSizer(10); } + .eleven-columns { width: columnSizer(11); } + .twelve-columns { width: columnSizer(12); } + + .one-column.centered { margin: 0 columnCentered(1); } + .two-columns.centered { margin: 0 columnCentered(2); } + .three-columns.centered { margin: 0 columnCentered(3); } + .four-columns.centered { margin: 0 columnCentered(4); } + .five-columns.centered { margin: 0 columnCentered(5); } + .six-columns.centered { margin: 0 columnCentered(6); } + .seven-columns.centered { margin: 0 columnCentered(7); } + .eight-columns.centered { margin: 0 columnCentered(8); } + .nine-columns.centered { margin: 0 columnCentered(9); } + .ten-columns.centered { margin: 0 columnCentered(10); } + .eleven-columns.centered { margin: 0 columnCentered(11); } + } + + @media (min-width: 1200px) { + width: $max-width; + } + + @media (min-width: 900px) and (max-width: 1199px) { + width: 870px; + } + + @media (min-width: 768px) and (max-width: 899px) { + width: 738px;; + } + + @media (max-width: 767px) { + width: 100%; + padding-left: 1rem; + padding-right: 1rem; + + [class*="-column"] { + margin: 0; + } + } +} diff --git a/app/assets/stylesheets/components/_header.scss b/app/assets/stylesheets/components/_header.scss new file mode 100644 index 0000000..99bf263 --- /dev/null +++ b/app/assets/stylesheets/components/_header.scss @@ -0,0 +1,23 @@ +header { + padding: 20px 0px 20px 0; + color: $white; + overflow: hidden; + box-sizing: border-box; + width: 100%; + background-color: $blue; +} +.index header{ + position: absolute; + background-color: transparent; +} + +.principal-header { + padding: 2rem 0; + text-align: center; + + h1 { margin-bottom: 0; } + + h5 { + font-size: 18px; + } +} diff --git a/source/assets/stylesheets/base/_lists.scss b/app/assets/stylesheets/components/_lists.scss similarity index 100% rename from source/assets/stylesheets/base/_lists.scss rename to app/assets/stylesheets/components/_lists.scss diff --git a/app/assets/stylesheets/components/_navigation.scss b/app/assets/stylesheets/components/_navigation.scss new file mode 100644 index 0000000..933dc6d --- /dev/null +++ b/app/assets/stylesheets/components/_navigation.scss @@ -0,0 +1,107 @@ +// ----------------------------------------------- +// navigation +// ----------------------------------------------- + +.navigation { + z-index: 10; + + margin-bottom: 1.3rem; + + .navigation-header { + > a { + display: block; + width: 70%; + } + + > .toggle { + position: absolute; + top: 2.2rem; + right: 1rem; + width: 44px; + height: 34px; + padding: 6px; + cursor: pointer; + z-index: 15; + + > span { + display: block; + width: 100%; + height: 4px; + margin-bottom: 5px; + background-color: $white; + + &:last-child { margin: 0; } + } + } + } + + .navigation-header, + nav { + float: left; + } + + nav { + > a { + display: inline-block; + color: $white; + font-weight: 300; + font-size: 18px; + + &:active, + &:focus, + &:hover { + color: $blue-dark; + text-decoration: none; + } + + &:last-child { + padding-right: 0; + } + } + } + + @media screen and (min-width: 697px) { + .navigation-header { + width: 40%; + + .toggle { + display: none; + } + } + + nav { + display: block !important; + width: 60%; + text-align: right; + + > a { + padding: 1rem 0.8rem; + } + } + } + + @media screen and (max-width: 696px) { + .navigation-header { + width: 100%; + + > .title { + width: 80%; + } + + .toggle { + display: block; + } + } + + nav { + display: none; + width: 100%; + text-align: left; + + > a { + display: block; + padding: 0.9rem; + } + } + } +} diff --git a/app/assets/stylesheets/components/_progressbar.scss b/app/assets/stylesheets/components/_progressbar.scss new file mode 100644 index 0000000..afbc73e --- /dev/null +++ b/app/assets/stylesheets/components/_progressbar.scss @@ -0,0 +1,31 @@ +#progressbar { + border-radius: 13px; /* (height of inner div) / 2 + padding */ + padding: 3px; + text-align: center; + margin: 30px auto; + clear: both; + + svg { width: 82.2%; } +} + + .chart rect:first-of-type { + color: $chart-color; + stroke: $chart-color; + fill: $chart-color; + } + + text:first-of-type { + fill: $chart-color; + font-family: 'Roboto'; + } + + .chart rect:nth-of-type(2) { + color: $blue; + stroke: transparent; + fill: $blue; + } + + text:nth-of-type(2) { + fill: $white; + font-family: 'Roboto'; + } diff --git a/source/assets/stylesheets/base/_tables.scss b/app/assets/stylesheets/components/_tables.scss similarity index 100% rename from source/assets/stylesheets/base/_tables.scss rename to app/assets/stylesheets/components/_tables.scss diff --git a/source/assets/stylesheets/components/_video.scss b/app/assets/stylesheets/components/_video.scss similarity index 89% rename from source/assets/stylesheets/components/_video.scss rename to app/assets/stylesheets/components/_video.scss index 7b01676..311595c 100644 --- a/source/assets/stylesheets/components/_video.scss +++ b/app/assets/stylesheets/components/_video.scss @@ -1,7 +1,7 @@ section.section-video{ padding:60px 0; text-align: center; - border-bottom: 1px solid #ededed; + border-bottom: 1px solid $border-color; h4{ margin-top: 40px; @@ -13,7 +13,7 @@ section.section-video{ li{ display: inline-block; margin-right: 15px; - border-right: 1px solid $lightest-blue; + border-right: 1px solid $blue; padding-right: 15px; &:last-child{ @@ -41,4 +41,4 @@ section.section-video{ } } } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/elements/_base.scss b/app/assets/stylesheets/elements/_base.scss new file mode 100644 index 0000000..ddfd013 --- /dev/null +++ b/app/assets/stylesheets/elements/_base.scss @@ -0,0 +1,37 @@ +// base +// --------------------------------------- + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +@import url(https://fonts.googleapis.com/css?family=Roboto:400,300,100,500,700,900); + +body { + color: $base-font-color; + font-family: $base-font-family; + font-size: $base-font-size; + line-height: $base-line-height; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary, +div, +form { + display: block; + overflow: hidden; + width: 100%; +} diff --git a/source/assets/stylesheets/base/_buttons.scss b/app/assets/stylesheets/elements/_buttons.scss similarity index 80% rename from source/assets/stylesheets/base/_buttons.scss rename to app/assets/stylesheets/elements/_buttons.scss index 14642b5..6875890 100644 --- a/source/assets/stylesheets/base/_buttons.scss +++ b/app/assets/stylesheets/elements/_buttons.scss @@ -1,9 +1,12 @@ +// buttons elements +// --------------------------------------- + #{$all-buttons} { appearance: none; background-color: $action-color; border: 0; - border-radius: $base-border-radius; - color: #fff; + border-radius: 3rem; + color: $white; cursor: pointer; display: inline-block; font-family: $base-font-family; @@ -17,11 +20,12 @@ user-select: none; vertical-align: middle; white-space: nowrap; + @include appearance(none); &:hover, &:focus { background-color: shade($action-color, 20%); - color: #fff; + color: $white; } &:disabled { @@ -33,6 +37,6 @@ } } } -.button{ +.button { @extend button; } diff --git a/source/assets/stylesheets/base/_forms.scss b/app/assets/stylesheets/elements/_form.scss similarity index 53% rename from source/assets/stylesheets/base/_forms.scss rename to app/assets/stylesheets/elements/_form.scss index 1d90ddf..2e6a9f1 100644 --- a/source/assets/stylesheets/base/_forms.scss +++ b/app/assets/stylesheets/elements/_form.scss @@ -1,67 +1,57 @@ -fieldset { - background-color: transparent; - border: 0; - margin: 0; - padding: 0; -} +// form element +// --------------------------------------- -legend { - font-weight: 600; - margin-bottom: $small-spacing / 2; - padding: 0; + +// form +form { + margin: 1rem 0; + + ::-webkit-input-placeholder { + color: $blue; + } + ::-moz-placeholder { + color: $blue; + } + ::-ms-input-placeholder { + color: $blue; + } + + > label { font-weight: bold; } } label { display: block; - font-weight: 600; margin-bottom: $small-spacing / 2; } -input, +#{$all-text-inputs}, select { - display: block; + width: 100%; + padding: 1rem; + color: $blue; font-family: $base-font-family; font-size: $base-font-size; -} - -#{$all-text-inputs}, -select[multiple] { + margin-bottom: 0.8rem; + border-radius: 6px; + border: 1px solid $blue; background-color: $base-background-color; - border: $base-border; - border-radius: $base-border-radius; - box-shadow: $form-box-shadow; - box-sizing: border-box; - font-family: $base-font-family; - font-size: $base-font-size; - margin-bottom: $small-spacing; - padding: $base-spacing / 3; - transition: border-color $base-duration $base-timing; - width: 100%; + box-shadow: none; + @include transition(all $base-duration $base-timing); - &:hover { - border-color: shade($base-border-color, 20%); - } - - &:focus { - border-color: $action-color; - box-shadow: $form-box-shadow-focus; + &:focus, + &:active { + border: 1px solid $current-input-border; + background-color: $current-input-bkg; + box-shadow: none; outline: none; } &:disabled { background-color: shade($base-background-color, 5%); cursor: not-allowed; - - &:hover { - border: $base-border; - } } } -textarea { - resize: vertical; -} - [type="search"] { appearance: none; } @@ -77,8 +67,31 @@ textarea { width: 100%; } +textarea { + resize: vertical; + width: 100%; + height: 8rem; + resize: none; + overflow: auto; +} + select { + width: auto; margin-bottom: $base-spacing; max-width: 100%; - width: auto; + @include appearance(none); + background: image-url('arrow-down.png') no-repeat 94% 50%; +} + +fieldset { + background-color: transparent; + border: 0; + margin: 0; + padding: 0; +} + +legend { + font-weight: 600; + margin-bottom: $small-spacing / 2; + padding: 0; } diff --git a/app/assets/stylesheets/elements/_images.scss b/app/assets/stylesheets/elements/_images.scss new file mode 100644 index 0000000..745095e --- /dev/null +++ b/app/assets/stylesheets/elements/_images.scss @@ -0,0 +1,9 @@ +// images +// --------------------------------------- + + +img, +picture { + margin: 0; + max-width: 100%; +} diff --git a/app/assets/stylesheets/elements/_table.scss b/app/assets/stylesheets/elements/_table.scss new file mode 100644 index 0000000..bf1bda2 --- /dev/null +++ b/app/assets/stylesheets/elements/_table.scss @@ -0,0 +1,3 @@ +// table +// --------------------------------------- + diff --git a/app/assets/stylesheets/elements/_typography.scss b/app/assets/stylesheets/elements/_typography.scss new file mode 100644 index 0000000..a780e51 --- /dev/null +++ b/app/assets/stylesheets/elements/_typography.scss @@ -0,0 +1,81 @@ +// typhography +// --------------------------------------- + +// Headers + +h1, +h2, +h3, +h4, +h5, +h6 { + color: $header-color; + font-size: 0.875rem; + font-weight: 400; + font-family: $heading-font-family; + font-size: $base-font-size; +} + +h1 { font-size: 2.063rem; } +h2 { font-size: 1.75rem; } +h3 { font-size: 1.375rem; } +h4 { font-size: 1.25rem; } +h5 { font-size: 1rem; } + +.slim-header { font-weight: 300; } +.slim-header-blue { + @extend .slim-header; + color: $blue; +} + + +// Text + +p { + margin: 0 0 $small-spacing; +} + +small { font-size: 0.7rem; } + +address { + font-style: normal; +} + +blockquote { + // +} + +hr { + border-bottom: $base-border; + border-left: 0; + border-right: 0; + border-top: 0; + margin: $base-spacing 0; +} + + +// Lists + +ul { + padding-left: 15px; + + li { + padding: 7px 0; + } +} + + +// Links + +a { + text-decoration: none; + color: $action-color; + @include transition(all $base-duration $base-timing); + + &:active, + &:focus, + &:hover { + text-decoration: underline; + color: shade($action-color, 25%); + } +} diff --git a/app/assets/stylesheets/elements/_utilities.scss b/app/assets/stylesheets/elements/_utilities.scss new file mode 100644 index 0000000..cf064d8 --- /dev/null +++ b/app/assets/stylesheets/elements/_utilities.scss @@ -0,0 +1,6 @@ +// utilities +// --------------------------------------- + +.text-centered { + text-align: center; +} diff --git a/app/assets/stylesheets/elements/_variables.scss b/app/assets/stylesheets/elements/_variables.scss new file mode 100644 index 0000000..607a0c4 --- /dev/null +++ b/app/assets/stylesheets/elements/_variables.scss @@ -0,0 +1,76 @@ +// variables +// --------------------------------------- + + +// Colors +$white: #fff; +$dark: #000; +$blue: #8a9cbf; +$blue-dark: #47525d; +$border-color: #ededed; +$lightest-blue: #f1f8ff; +$gray: #a0aec1; +$dark-gray: #333; +$medium-gray: #999; +$light-gray: #ddd; +$pink: #f1227a; +$chart-color: #f1f5f6; +$current-input-border: #6db0f3; +$current-input-bkg: rgba(234, 245, 255, 0.53); + +$base-font-color: $blue-dark; +$action-color: $blue; +$header-color: $blue-dark; +$base-border-color: $gray; +$base-border: 1px solid $base-border-color; +$base-background-color: $white; +$secondary-background-color: tint($base-border-color, 75%); + + +// Sizes +$base-size: 16px; +$base-font-size: $base-size; +$base-line-height: 1.5; +$heading-line-height: 1.2; +$base-border-radius: 6px; +$base-spacing: $base-line-height * 1em; +$small-spacing: $base-spacing / 2; +$base-z-index: 0; + +$grid-columns: 12 !default; +$max-width: 1200px !default; +$border-box-sizing: true !default; +$column-size: 6.195%; +$gutter-size: 2.323%; + + +// Typography +$base-font-family: "Roboto", Helvetica, sans-serif; +$heading-font-family: $base-font-family; + + +// Forms +$form-box-shadow: inset 0 1px 3px rgba(#000, 0.06); +$form-box-shadow-focus: $form-box-shadow, 0 0 5px adjust-color($action-color, $lightness: -5%, $alpha: -0.3); + + +// Animations +$base-duration: 150ms; +$base-timing: ease; + + +//Fondos +.light-blue-bg{ + background-color: $blue !important; +} + +.white-text{ + color: $white; +} + +.light-blue-text{ + color: $blue; +} +.light-blue{ + color: $blue; +} diff --git a/app/assets/stylesheets/functions/_grid.scss b/app/assets/stylesheets/functions/_grid.scss new file mode 100644 index 0000000..22c3139 --- /dev/null +++ b/app/assets/stylesheets/functions/_grid.scss @@ -0,0 +1,13 @@ +// functions +// --------------------------------------- + + +@function columnSizer($column) { + @return ($column-size * $column) + ($gutter-size * ($column - 1)); +} + +@function columnCentered($column) { + $size-column: columnSizer($column); + + @return (100% - $size-column) / 2; +} diff --git a/app/assets/stylesheets/pages.scss b/app/assets/stylesheets/pages.scss new file mode 100644 index 0000000..0d6878a --- /dev/null +++ b/app/assets/stylesheets/pages.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the pages controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/views/_demand.scss b/app/assets/stylesheets/views/_demand.scss new file mode 100644 index 0000000..abb0aae --- /dev/null +++ b/app/assets/stylesheets/views/_demand.scss @@ -0,0 +1,47 @@ +// demand +// --------------------------------------- + +.demand { + form { + .question { + margin-bottom: 1.7rem; + + > label { + margin-bottom: 1rem; + font-weight: bold; + } + } + } + + .input-inline { + width: 100%; + } + + @media (min-width: 1200px) { + .input-inline { + input { + width: 55%; + } + } + + select { width: 30%; } + } + + @media (min-width: 900px) and (max-width: 1199px) { + .input-inline { + input { + width: 70%; + } + } + + select { width: 50%; } + } + + @media (min-width: 400px) and (max-width: 899px) { + select { width: 60%; } + } + + @media (max-width: 399px) { + select { width: 100%; } + } +} diff --git a/source/assets/stylesheets/_global.scss b/app/assets/stylesheets/views/_global.scss similarity index 100% rename from source/assets/stylesheets/_global.scss rename to app/assets/stylesheets/views/_global.scss diff --git a/app/assets/stylesheets/views/_information-granted.scss b/app/assets/stylesheets/views/_information-granted.scss new file mode 100644 index 0000000..6be65b1 --- /dev/null +++ b/app/assets/stylesheets/views/_information-granted.scss @@ -0,0 +1,66 @@ +.infromation-granted{ + + .blue { color: $blue; } + + hgroup { + h5 { color: $blue; } + } + + h4 { + text-align: center; + } + + form { + padding: 1rem 0; + + select { + width: 100%; + } + } + hr { + clear: both; + } + + .numbers { + padding-bottom: 40px; + + .number { + margin-bottom: 15px; + + .number-content { + border: 1px solid $light-gray; + border-radius: 8px; + padding: 30px 10px; + text-align: center; + height: 100%; + + h2 { + color: $blue; + font-size: 30px; + line-height: 34px; + } + p{ + font-size: 22px; + color: $blue; + font-weight: 300; + margin-bottom: 0; + } + &:hover{ + background-color: $blue; + h2, p{ + color:#fff; + } + } + } + } + } + + .stats{ + overflow: hidden; + padding-bottom: 40px; + + h2 { + margin: 2rem 0; + } + } +} diff --git a/app/channels/application_cable/channel.rb b/app/channels/application_cable/channel.rb new file mode 100644 index 0000000..d672697 --- /dev/null +++ b/app/channels/application_cable/channel.rb @@ -0,0 +1,4 @@ +module ApplicationCable + class Channel < ActionCable::Channel::Base + end +end diff --git a/app/channels/application_cable/connection.rb b/app/channels/application_cable/connection.rb new file mode 100644 index 0000000..0ff5442 --- /dev/null +++ b/app/channels/application_cable/connection.rb @@ -0,0 +1,4 @@ +module ApplicationCable + class Connection < ActionCable::Connection::Base + end +end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb new file mode 100644 index 0000000..1c07694 --- /dev/null +++ b/app/controllers/application_controller.rb @@ -0,0 +1,3 @@ +class ApplicationController < ActionController::Base + protect_from_forgery with: :exception +end diff --git a/app/controllers/concerns/.keep b/app/controllers/concerns/.keep new file mode 100644 index 0000000..e69de29 diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb new file mode 100644 index 0000000..36288b2 --- /dev/null +++ b/app/controllers/pages_controller.rb @@ -0,0 +1,10 @@ +class PagesController < ApplicationController + def index + @page_classes = "index" + end + def informationgranted + @page_classes = "informationgranted informationgranted_index" + end + def demand + end +end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb new file mode 100644 index 0000000..de6be79 --- /dev/null +++ b/app/helpers/application_helper.rb @@ -0,0 +1,2 @@ +module ApplicationHelper +end diff --git a/app/helpers/greeter_helper.rb b/app/helpers/greeter_helper.rb new file mode 100644 index 0000000..79bbf16 --- /dev/null +++ b/app/helpers/greeter_helper.rb @@ -0,0 +1,2 @@ +module GreeterHelper +end diff --git a/app/helpers/pages_helper.rb b/app/helpers/pages_helper.rb new file mode 100644 index 0000000..2c057fd --- /dev/null +++ b/app/helpers/pages_helper.rb @@ -0,0 +1,2 @@ +module PagesHelper +end diff --git a/app/jobs/application_job.rb b/app/jobs/application_job.rb new file mode 100644 index 0000000..a009ace --- /dev/null +++ b/app/jobs/application_job.rb @@ -0,0 +1,2 @@ +class ApplicationJob < ActiveJob::Base +end diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb new file mode 100644 index 0000000..286b223 --- /dev/null +++ b/app/mailers/application_mailer.rb @@ -0,0 +1,4 @@ +class ApplicationMailer < ActionMailer::Base + default from: 'from@example.com' + layout 'mailer' +end diff --git a/app/models/application_record.rb b/app/models/application_record.rb new file mode 100644 index 0000000..10a4cba --- /dev/null +++ b/app/models/application_record.rb @@ -0,0 +1,3 @@ +class ApplicationRecord < ActiveRecord::Base + self.abstract_class = true +end diff --git a/app/models/concerns/.keep b/app/models/concerns/.keep new file mode 100644 index 0000000..e69de29 diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml new file mode 100644 index 0000000..76a0adc --- /dev/null +++ b/app/views/layouts/application.html.haml @@ -0,0 +1,71 @@ +!!! +%html + %head + %meta{charset: "utf-8"} + %meta{content: "IE=edge,chrome=1", http: {equiv: "X-UA-Compatible"}} + %meta{name: "viewport", content: "width=device-width, initial-scale=1"} + %title Plataforma Nacional de Transparencia + = stylesheet_link_tag "application" + + %body{:class => "#{@page_classes}"} + %header#principal-menu.navigation + .container + .navigation-header + = link_to image_tag('logo-blanco.png'), '/' + .toggle + %span + %span + %span + %nav + = link_to 'Sistemas', '#' + = link_to 'Sujetos obligados', '/sujetos' + = link_to 'Crear solicitud', '/solicitud' + + = yield + + %footer + .container + .bottom + .three-columns + %h4 Sistemas de la Plataforma + %ul + %li= link_to "Solicitud de Acceso a la Información", "#" + %li= link_to "Gestión de Medios de Impugnación", "#" + %li= link_to "Portales de Obligaciones de Transparencia", "#" + %li= link_to "Comunicación entre Organismos Garantes", "#" + .three-columns + %h4 Sujetos Obligados + %ul + %li= link_to "Federación", "#" + %li= link_to "Estados", "#" + %li= link_to "Municipios", "#" + %li= link_to "Sindicatos", "#" + %li= link_to "Partidos Políticos", "#" + .three-columns + %h4 Conoce más + %ul + %li= link_to "Sobre la PNT", "#" + %li= link_to "Acerca de la Ley de Transparencia", "#" + %li= link_to "Estadísticas", "#" + .three-columns + %h4 Contáctanos + .social + = link_to "http://github.com/CodeandoMexico/tu-plataforma-abierta", target: "_blank" do + %i.fa.fa-github-alt + .copyright + .container + %small 2016 - Instituto Nacional de Transparencia, Acceso a la Información y Protección de Datos Personales. + %ul + %li + %small= link_to "Aviso de privacidad", "#" + %li + %small= link_to "Términos y condiciones", "#" + + + + / = partial 'olark' + + = javascript_include_tag "https://code.jquery.com/jquery-2.1.1.min.js" + = javascript_include_tag "http://d3js.org/d3.v2.js" + = javascript_include_tag "application" + / = google_analytics_tag diff --git a/app/views/layouts/mailer.html.erb b/app/views/layouts/mailer.html.erb new file mode 100644 index 0000000..cbd34d2 --- /dev/null +++ b/app/views/layouts/mailer.html.erb @@ -0,0 +1,13 @@ + + +
+ + + + + + <%= yield %> + + diff --git a/app/views/layouts/mailer.text.erb b/app/views/layouts/mailer.text.erb new file mode 100644 index 0000000..37f0bdd --- /dev/null +++ b/app/views/layouts/mailer.text.erb @@ -0,0 +1 @@ +<%= yield %> diff --git a/app/views/pages/demand.html.haml b/app/views/pages/demand.html.haml new file mode 100644 index 0000000..c2c90ab --- /dev/null +++ b/app/views/pages/demand.html.haml @@ -0,0 +1,169 @@ +.container.demand + %hgroup.principal-header + %h1 Nueva solicitud de información + %h5 + Pedimos tus datos para poder enviar respuesta sobre tu solicitud, revisa nuestro + =link_to 'aviso de privacidad', '#' + + .eight-columns.centered + %form + .question + .input-inline + %input{type: 'text', placeholder: 'Nombre completo o pseudónimo'} + .input-inline + %input{type: 'text', placeholder: 'Correo electrónico'} + + .question + %label + ¿A qué nivel de gobierno quieres pedirle información? + .radio + %label + %input{type: 'radio', name: 'goverment_level', checked: 'checked'} + %i.radio-icon + %span Federal + .radio + %label + %input{type: 'radio', name: 'goverment_level'} + %i.radio-icon + %span Estatal + .radio + %label + %input{type: 'radio', name: 'goverment_level'} + %i.radio-icon + %span Municipal + + .question + %label + ¿A qué estado y municipio quieres pedirle información? + .select + %select + %option Estado + %option Colima + %option México + .select + %select + %option Municipio + %option Colima + %option Tecomán + + .question + %label + ¿A qué entidad quieres pedirle información? + .radio + %label + %input{type: 'radio', name: 'entities', checked: 'checked'} + %i.radio-icon + %span Ejecitivo + .radio + %label + %input{type: 'radio', name: 'entities'} + %i.radio-icon + %span Fideicomisos y fondos públicos + .radio + %label + %input{type: 'radio', name: 'entities'} + %i.radio-icon + %span Judicial + .radio + %label + %input{type: 'radio', name: 'entities'} + %i.radio-icon + %span Legislativo + .radio + %label + %input{type: 'radio', name: 'entities'} + %i.radio-icon + %span Municipios + .radio + %label + %input{type: 'radio', name: 'entities'} + %i.radio-icon + %span Partidos políticos + .radio + %label + %input{type: 'radio', name: 'entities'} + %i.radio-icon + %span Sindicatos + .radio + %label + %input{type: 'radio', name: 'entities'} + %i.radio-icon + %span Órganos autónomos + + .question + %label Elige uno o varios sujetos a quienes pedirles información: + .input-inline + %textarea{type: 'text'} + + .question + %label Solicitud de información: + =link_to 'Mira nuestro video tutorial para que pidas información como la necesitas', '#' + .input-inline + %textarea{type: 'text'} + + .question + %label Datos que faciliten la búsqueda y eventual localización de la información (opcional): + =link_to 'Mira nuestro video tutorial para que escribas los datos necesarios', '#' + .input-inline + %textarea{type: 'text'} + + .question.text-centered + .inputfile + %input{type: 'file'} + %label.big-button Adjuntar archivo + + .question + %label + ¿Cómo quieres recibir las notificaciones sobre tu solicitud? + .radio + %label + %input{type: 'radio', name: 'status_request', checked: 'checked'} + %i.radio-icon + %span Acudir a la unidad de transparencia + .radio + %label + %input{type: 'radio', name: 'status_request'} + %i.radio-icon + %span Estrados de la unidad de transparencia + .radio + %label + %input{type: 'radio', name: 'status_request'} + %i.radio-icon + %span Correo + .radio + %label + %input{type: 'radio', name: 'status_request'} + %i.radio-icon + %span Domicilio + + .question + %label + ¿Cómo quieres recibir la información resultante de tu solicitud? + .radio + %label + %input{type: 'radio', name: 'result_request', checked: 'checked'} + %i.radio-icon + %span Electrónico através del sistema de PNT + .radio + %label + %input{type: 'radio', name: 'result_request'} + %i.radio-icon + %span Copia simple (con costo) + .radio + %label + %input{type: 'radio', name: 'result_request'} + %i.radio-icon + %span Copia certificada (con costo) + .radio + %label + %input{type: 'radio', name: 'result_request'} + %i.radio-icon + %span Consultas directas + .radio + %label + %input{type: 'radio', name: 'result_request'} + %i.radio-icon + %span Cualquier otro medio + + .question.text-centered + %button.big-button{type: 'submit'} Enviar solicitud diff --git a/app/views/pages/index.html.haml b/app/views/pages/index.html.haml new file mode 100644 index 0000000..2e00584 --- /dev/null +++ b/app/views/pages/index.html.haml @@ -0,0 +1,76 @@ +.banner + .container + .text + %h3 ¡Bienvenido a la Plataforma Nacional de Transparencia! + %p + Con esta plataforma podrás solicitar de manera sencilla + %br/ + información púlblica de tu interés. + =link_to 'Crear nueva solicitud de información','/solicitud', class:'button button-new-request' + %br + =link_to 'Explora el Sistema Nacional de Transparencia','#' + %br + = "Encuentra los estados en proceso de integración a la plataforma" + =link_to 'aquí','#' + +.banner-bottom + .container + .four-columns + %h3 1,300 + %p Sujetos Obligados participando + .four-columns + %h3 3,400 + %p solicitudes concluidas este mes + .four-columns + %h3 450 + %p ciudadanos participando + +%section.section-video + .container + %h1 Transparencia fácilmente. + %h3.slim-header-blue Nunca antes había sido tan sencillo transparentar información de tu gobierno en México. + %h4.slim-header Tutoriales disponibles: + %ul.tutorials + %li + = link_to '#' do + Cómo crear una solicitud de información + %i.fa.fa-question-circle + %li + = link_to '#' do + Cómo presentar una queja + %i.fa.fa-question-circle + .video + .video-wrapper + %iframe{:allowfullscreen => "", :frameborder => "0", :src => "https://www.youtube.com/embed/I0ynMjIhe9I?showinfo=0&iv_load_policy=3&controls=0"} + +%section.section-feed + .container + .six-columns + %h2 Próximos eventos + .event + %h4 Jornada de Gobierno Abierto + %p Nunca antes había sido tan sencillo transparentar información de tu gobierno en México. + .date 8 de septiembre + .event + %h4 Jornada de Gobierno Abierto + %p Nunca antes había sido tan sencillo transparentar información de tu gobierno en México. + .date 8 de septiembre + .event + %h4 Jornada de Gobierno Abierto + %p Nunca antes había sido tan sencillo transparentar información de tu gobierno en México. + .date 8 de septiembre + + .six-columns + %h2 Noticias nacionales + .new + %p Evento de lanzamiento de la Ley General de Transparencia por realizarse el próximo 6 de mayo en las oficinas del Instituto. + %small 11 de mayo 2016 + =link_to "Ver noticia", "#", class: 'text-button' + .new + %p Evento de lanzamiento de la Ley General de Transparencia por realizarse el próximo 6 de mayo en las oficinas del Instituto. + %small 11 de mayo 2016 + =link_to "Ver noticia", "#", class: 'text-button' + .new + %p Evento de lanzamiento de la Ley General de Transparencia por realizarse el próximo 6 de mayo en las oficinas del Instituto. + %small 11 de mayo 2016 + =link_to "Ver noticia", "#", class: 'text-button' diff --git a/app/views/pages/informationgranted.html.haml b/app/views/pages/informationgranted.html.haml new file mode 100644 index 0000000..f88425f --- /dev/null +++ b/app/views/pages/informationgranted.html.haml @@ -0,0 +1,73 @@ +.infromation-granted + .container + %hgroup.principal-header + %h1 Búsqueda de Sujetos Obligados + %h5 Cualquier figura que reciba y ejerza recursos públicos o realice actos de autoridad en el ámbito federal, estatal y municipal + + %form + .six-columns + .input-icon-left + %input{:placeholder => "Busca sujeto por nombre o tipo de información...", :type => "text", :required => true} + %i.fa.fa-search + .three-columns.select + %select + %option ¿Dónde? + %option Lugar1 + %option Lugar1 + .three-columns.select + %select + %option Sector + %option Sector1 + %option Sector1 + %hr + .container + %hgroup + %h1 Sujetos obligados en todo el país + + %h4 + %strong.blue 62% + de los Sujetos Obligados NO se han unido a la plataforma + #progressbar + + .numbers + .three-columns.number + .number-content + %h2 2713 + %p Pendientes de unirse + + .three-columns.number + .number-content + %h2 4272 + %p Sujetos obligados + + .three-columns.number + .number-content + %h2 2400 + %p en la Federación + + .three-columns.number + .number-content + %h2 4300 + %p en Estados y Municipios + + %hr + .container + %hgroup + %h1 Estadísticas de Sujetos Obligados + .stats + .six-columns + %h2 Sector con mayor avance + #r1 + #r2 + #r3 + #r4 + #r5 + = link_to "Todos los sectores", "#" + .six-columns + %h2 Estados con mayor avance + #r6 + #r7 + #r8 + #r9 + #r10 + = link_to "Todos los estados", "#" diff --git a/bin/bundle b/bin/bundle new file mode 100755 index 0000000..66e9889 --- /dev/null +++ b/bin/bundle @@ -0,0 +1,3 @@ +#!/usr/bin/env ruby +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +load Gem.bin_path('bundler', 'bundle') diff --git a/bin/deploy b/bin/deploy deleted file mode 100755 index ccc8677..0000000 --- a/bin/deploy +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh - -# Deploy using Middleman-deploy -middleman deploy diff --git a/bin/rails b/bin/rails new file mode 100755 index 0000000..5badb2f --- /dev/null +++ b/bin/rails @@ -0,0 +1,9 @@ +#!/usr/bin/env ruby +begin + load File.expand_path('../spring', __FILE__) +rescue LoadError => e + raise unless e.message.include?('spring') +end +APP_PATH = File.expand_path('../config/application', __dir__) +require_relative '../config/boot' +require 'rails/commands' diff --git a/bin/rake b/bin/rake new file mode 100755 index 0000000..d87d5f5 --- /dev/null +++ b/bin/rake @@ -0,0 +1,9 @@ +#!/usr/bin/env ruby +begin + load File.expand_path('../spring', __FILE__) +rescue LoadError => e + raise unless e.message.include?('spring') +end +require_relative '../config/boot' +require 'rake' +Rake.application.run diff --git a/bin/server b/bin/server deleted file mode 100755 index 7a4a686..0000000 --- a/bin/server +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh - -# Run the Middleman server -bundle exec middleman diff --git a/bin/setup b/bin/setup index 67209c6..e620b4d 100755 --- a/bin/setup +++ b/bin/setup @@ -1,23 +1,34 @@ -#!/usr/bin/env sh - -# Run this script immediately after cloning the codebase. - -# Make sure Bundler is installed -if [ "$(gem query -i -n bundler)" = "false" ]; then - echo "Installing Bundler..." - gem install bundler -fi - -# Set up Ruby dependencies via Bundler -echo "Installing Dependencies..." -bundle install - -# Remove Git remote if it's still the default repo -if [ "$(git config --get remote.origin.url)" = "git@github.com:thoughtbot/proteus-middleman.git" ]; then - echo "What is your repo url? Enter URL or leave blank" - read url - if [ -z "$url" ]; then - git remote rm origin - git remote add origin "$url" - fi -fi +#!/usr/bin/env ruby +require 'pathname' +require 'fileutils' +include FileUtils + +# path to your application root. +APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) + +def system!(*args) + system(*args) || abort("\n== Command #{args} failed ==") +end + +chdir APP_ROOT do + # This script is a starting point to setup your application. + # Add necessary setup steps to this file. + + puts '== Installing dependencies ==' + system! 'gem install bundler --conservative' + system('bundle check') || system!('bundle install') + + # puts "\n== Copying sample files ==" + # unless File.exist?('config/database.yml') + # cp 'config/database.yml.sample', 'config/database.yml' + # end + + puts "\n== Preparing database ==" + system! 'bin/rails db:setup' + + puts "\n== Removing old logs and tempfiles ==" + system! 'bin/rails log:clear tmp:clear' + + puts "\n== Restarting application server ==" + system! 'bin/rails restart' +end diff --git a/bin/spring b/bin/spring new file mode 100755 index 0000000..7fe232c --- /dev/null +++ b/bin/spring @@ -0,0 +1,15 @@ +#!/usr/bin/env ruby + +# This file loads spring without using Bundler, in order to be fast. +# It gets overwritten when you run the `spring binstub` command. + +unless defined?(Spring) + require 'rubygems' + require 'bundler' + + if (match = Bundler.default_lockfile.read.match(/^GEM$.*?^ (?: )*spring \((.*?)\)$.*?^$/m)) + Gem.paths = { 'GEM_PATH' => [Bundler.bundle_path.to_s, *Gem.path].uniq.join(Gem.path_separator) } + gem 'spring', match[1] + require 'spring/binstub' + end +end diff --git a/bin/update b/bin/update new file mode 100755 index 0000000..a8e4462 --- /dev/null +++ b/bin/update @@ -0,0 +1,29 @@ +#!/usr/bin/env ruby +require 'pathname' +require 'fileutils' +include FileUtils + +# path to your application root. +APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) + +def system!(*args) + system(*args) || abort("\n== Command #{args} failed ==") +end + +chdir APP_ROOT do + # This script is a way to update your development environment automatically. + # Add necessary update steps to this file. + + puts '== Installing dependencies ==' + system! 'gem install bundler --conservative' + system('bundle check') || system!('bundle install') + + puts "\n== Updating database ==" + system! 'bin/rails db:migrate' + + puts "\n== Removing old logs and tempfiles ==" + system! 'bin/rails log:clear tmp:clear' + + puts "\n== Restarting application server ==" + system! 'bin/rails restart' +end diff --git a/config.rb b/config.rb deleted file mode 100644 index aca166d..0000000 --- a/config.rb +++ /dev/null @@ -1,31 +0,0 @@ -activate :directory_indexes -activate :autoprefixer -activate :i18n, :langs => [:es] - -set :relative_links, true -set :css_dir, "assets/stylesheets" -set :js_dir, "assets/javascripts" -set :images_dir, "assets/images" -set :fonts_dir, "assets/fonts" -set :layout, "layouts/application" - -page '/*.xml', layout: false -page '/*.json', layout: false -page '/*.txt', layout: false - -configure :development do - activate :livereload -end - -configure :build do - activate :relative_assets -end - -activate :deploy do |deploy| - deploy.build_before = true - deploy.deploy_method = :git -end - -activate :google_analytics do |ga| - ga.tracking_id = 'UA-69212911-7' -end diff --git a/config.ru b/config.ru new file mode 100644 index 0000000..f7ba0b5 --- /dev/null +++ b/config.ru @@ -0,0 +1,5 @@ +# This file is used by Rack-based servers to start the application. + +require_relative 'config/environment' + +run Rails.application diff --git a/config/application.rb b/config/application.rb new file mode 100644 index 0000000..fda7104 --- /dev/null +++ b/config/application.rb @@ -0,0 +1,15 @@ +require_relative 'boot' + +require 'rails/all' + +# Require the gems listed in Gemfile, including any gems +# you've limited to :test, :development, or :production. +Bundler.require(*Rails.groups) + +module Pnt + class Application < Rails::Application + # Settings in config/environments/* take precedence over those specified here. + # Application configuration should go into files in config/initializers + # -- all .rb files in that directory are automatically loaded. + end +end diff --git a/config/boot.rb b/config/boot.rb new file mode 100644 index 0000000..30f5120 --- /dev/null +++ b/config/boot.rb @@ -0,0 +1,3 @@ +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) + +require 'bundler/setup' # Set up gems listed in the Gemfile. diff --git a/config/cable.yml b/config/cable.yml new file mode 100644 index 0000000..0bbde6f --- /dev/null +++ b/config/cable.yml @@ -0,0 +1,9 @@ +development: + adapter: async + +test: + adapter: async + +production: + adapter: redis + url: redis://localhost:6379/1 diff --git a/config/database.yml b/config/database.yml new file mode 100644 index 0000000..1c1a37c --- /dev/null +++ b/config/database.yml @@ -0,0 +1,25 @@ +# SQLite version 3.x +# gem install sqlite3 +# +# Ensure the SQLite 3 gem is defined in your Gemfile +# gem 'sqlite3' +# +default: &default + adapter: sqlite3 + pool: 5 + timeout: 5000 + +development: + <<: *default + database: db/development.sqlite3 + +# Warning: The database defined as "test" will be erased and +# re-generated from your development database when you run "rake". +# Do not set this db to the same as development or production. +test: + <<: *default + database: db/test.sqlite3 + +production: + <<: *default + database: db/production.sqlite3 diff --git a/config/environment.rb b/config/environment.rb new file mode 100644 index 0000000..426333b --- /dev/null +++ b/config/environment.rb @@ -0,0 +1,5 @@ +# Load the Rails application. +require_relative 'application' + +# Initialize the Rails application. +Rails.application.initialize! diff --git a/config/environments/development.rb b/config/environments/development.rb new file mode 100644 index 0000000..6f71970 --- /dev/null +++ b/config/environments/development.rb @@ -0,0 +1,54 @@ +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # In the development environment your application's code is reloaded on + # every request. This slows down response time but is perfect for development + # since you don't have to restart the web server when you make code changes. + config.cache_classes = false + + # Do not eager load code on boot. + config.eager_load = false + + # Show full error reports. + config.consider_all_requests_local = true + + # Enable/disable caching. By default caching is disabled. + if Rails.root.join('tmp/caching-dev.txt').exist? + config.action_controller.perform_caching = true + + config.cache_store = :memory_store + config.public_file_server.headers = { + 'Cache-Control' => 'public, max-age=172800' + } + else + config.action_controller.perform_caching = false + + config.cache_store = :null_store + end + + # Don't care if the mailer can't send. + config.action_mailer.raise_delivery_errors = false + + config.action_mailer.perform_caching = false + + # Print deprecation notices to the Rails logger. + config.active_support.deprecation = :log + + # Raise an error on page load if there are pending migrations. + config.active_record.migration_error = :page_load + + # Debug mode disables concatenation and preprocessing of assets. + # This option may cause significant delays in view rendering with a large + # number of complex assets. + config.assets.debug = true + + # Suppress logger output for asset requests. + config.assets.quiet = true + + # Raises error for missing translations + # config.action_view.raise_on_missing_translations = true + + # Use an evented file watcher to asynchronously detect changes in source code, + # routes, locales, etc. This feature depends on the listen gem. + config.file_watcher = ActiveSupport::EventedFileUpdateChecker +end diff --git a/config/environments/production.rb b/config/environments/production.rb new file mode 100644 index 0000000..5878c54 --- /dev/null +++ b/config/environments/production.rb @@ -0,0 +1,86 @@ +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # Code is not reloaded between requests. + config.cache_classes = true + + # Eager load code on boot. This eager loads most of Rails and + # your application in memory, allowing both threaded web servers + # and those relying on copy on write to perform better. + # Rake tasks automatically ignore this option for performance. + config.eager_load = true + + # Full error reports are disabled and caching is turned on. + config.consider_all_requests_local = false + config.action_controller.perform_caching = true + + # Disable serving static files from the `/public` folder by default since + # Apache or NGINX already handles this. + config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? + + # Compress JavaScripts and CSS. + config.assets.js_compressor = :uglifier + # config.assets.css_compressor = :sass + + # Do not fallback to assets pipeline if a precompiled asset is missed. + config.assets.compile = false + + # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb + + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + # config.action_controller.asset_host = 'http://assets.example.com' + + # Specifies the header that your server uses for sending files. + # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX + + # Mount Action Cable outside main process or domain + # config.action_cable.mount_path = nil + # config.action_cable.url = 'wss://example.com/cable' + # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] + + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. + # config.force_ssl = true + + # Use the lowest log level to ensure availability of diagnostic information + # when problems arise. + config.log_level = :debug + + # Prepend all log lines with the following tags. + config.log_tags = [ :request_id ] + + # Use a different cache store in production. + # config.cache_store = :mem_cache_store + + # Use a real queuing backend for Active Job (and separate queues per environment) + # config.active_job.queue_adapter = :resque + # config.active_job.queue_name_prefix = "pnt_#{Rails.env}" + config.action_mailer.perform_caching = false + + # Ignore bad email addresses and do not raise email delivery errors. + # Set this to true and configure the email server for immediate delivery to raise delivery errors. + # config.action_mailer.raise_delivery_errors = false + + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to + # the I18n.default_locale when a translation cannot be found). + config.i18n.fallbacks = true + + # Send deprecation notices to registered listeners. + config.active_support.deprecation = :notify + + # Use default logging formatter so that PID and timestamp are not suppressed. + config.log_formatter = ::Logger::Formatter.new + + # Use a different logger for distributed setups. + # require 'syslog/logger' + # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') + + if ENV["RAILS_LOG_TO_STDOUT"].present? + logger = ActiveSupport::Logger.new(STDOUT) + logger.formatter = config.log_formatter + config.logger = ActiveSupport::TaggedLogging.new(logger) + end + + # Do not dump schema after migrations. + config.active_record.dump_schema_after_migration = false +end diff --git a/config/environments/test.rb b/config/environments/test.rb new file mode 100644 index 0000000..30587ef --- /dev/null +++ b/config/environments/test.rb @@ -0,0 +1,42 @@ +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # The test environment is used exclusively to run your application's + # test suite. You never need to work with it otherwise. Remember that + # your test database is "scratch space" for the test suite and is wiped + # and recreated between test runs. Don't rely on the data there! + config.cache_classes = true + + # Do not eager load code on boot. This avoids loading your whole application + # just for the purpose of running a single test. If you are using a tool that + # preloads Rails for running tests, you may have to set it to true. + config.eager_load = false + + # Configure public file server for tests with Cache-Control for performance. + config.public_file_server.enabled = true + config.public_file_server.headers = { + 'Cache-Control' => 'public, max-age=3600' + } + + # Show full error reports and disable caching. + config.consider_all_requests_local = true + config.action_controller.perform_caching = false + + # Raise exceptions instead of rendering exception templates. + config.action_dispatch.show_exceptions = false + + # Disable request forgery protection in test environment. + config.action_controller.allow_forgery_protection = false + config.action_mailer.perform_caching = false + + # Tell Action Mailer not to deliver emails to the real world. + # The :test delivery method accumulates sent emails in the + # ActionMailer::Base.deliveries array. + config.action_mailer.delivery_method = :test + + # Print deprecation notices to the stderr. + config.active_support.deprecation = :stderr + + # Raises error for missing translations + # config.action_view.raise_on_missing_translations = true +end diff --git a/config/initializers/application_controller_renderer.rb b/config/initializers/application_controller_renderer.rb new file mode 100644 index 0000000..51639b6 --- /dev/null +++ b/config/initializers/application_controller_renderer.rb @@ -0,0 +1,6 @@ +# Be sure to restart your server when you modify this file. + +# ApplicationController.renderer.defaults.merge!( +# http_host: 'example.org', +# https: false +# ) diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb new file mode 100644 index 0000000..01ef3e6 --- /dev/null +++ b/config/initializers/assets.rb @@ -0,0 +1,11 @@ +# Be sure to restart your server when you modify this file. + +# Version of your assets, change this if you want to expire all your assets. +Rails.application.config.assets.version = '1.0' + +# Add additional assets to the asset load path +# Rails.application.config.assets.paths << Emoji.images_path + +# Precompile additional assets. +# application.js, application.css, and all non-JS/CSS in app/assets folder are already added. +# Rails.application.config.assets.precompile += %w( search.js ) diff --git a/config/initializers/backtrace_silencers.rb b/config/initializers/backtrace_silencers.rb new file mode 100644 index 0000000..59385cd --- /dev/null +++ b/config/initializers/backtrace_silencers.rb @@ -0,0 +1,7 @@ +# Be sure to restart your server when you modify this file. + +# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. +# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } + +# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. +# Rails.backtrace_cleaner.remove_silencers! diff --git a/config/initializers/cookies_serializer.rb b/config/initializers/cookies_serializer.rb new file mode 100644 index 0000000..5a6a32d --- /dev/null +++ b/config/initializers/cookies_serializer.rb @@ -0,0 +1,5 @@ +# Be sure to restart your server when you modify this file. + +# Specify a serializer for the signed and encrypted cookie jars. +# Valid options are :json, :marshal, and :hybrid. +Rails.application.config.action_dispatch.cookies_serializer = :json diff --git a/config/initializers/filter_parameter_logging.rb b/config/initializers/filter_parameter_logging.rb new file mode 100644 index 0000000..4a994e1 --- /dev/null +++ b/config/initializers/filter_parameter_logging.rb @@ -0,0 +1,4 @@ +# Be sure to restart your server when you modify this file. + +# Configure sensitive parameters which will be filtered from the log file. +Rails.application.config.filter_parameters += [:password] diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb new file mode 100644 index 0000000..ac033bf --- /dev/null +++ b/config/initializers/inflections.rb @@ -0,0 +1,16 @@ +# Be sure to restart your server when you modify this file. + +# Add new inflection rules using the following format. Inflections +# are locale specific, and you may define rules for as many different +# locales as you wish. All of these examples are active by default: +# ActiveSupport::Inflector.inflections(:en) do |inflect| +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' +# inflect.uncountable %w( fish sheep ) +# end + +# These inflection rules are supported but not enabled by default: +# ActiveSupport::Inflector.inflections(:en) do |inflect| +# inflect.acronym 'RESTful' +# end diff --git a/config/initializers/mime_types.rb b/config/initializers/mime_types.rb new file mode 100644 index 0000000..dc18996 --- /dev/null +++ b/config/initializers/mime_types.rb @@ -0,0 +1,4 @@ +# Be sure to restart your server when you modify this file. + +# Add new mime types for use in respond_to blocks: +# Mime::Type.register "text/richtext", :rtf diff --git a/config/initializers/new_framework_defaults.rb b/config/initializers/new_framework_defaults.rb new file mode 100644 index 0000000..0706caf --- /dev/null +++ b/config/initializers/new_framework_defaults.rb @@ -0,0 +1,24 @@ +# Be sure to restart your server when you modify this file. +# +# This file contains migration options to ease your Rails 5.0 upgrade. +# +# Read the Rails 5.0 release notes for more info on each option. + +# Enable per-form CSRF tokens. Previous versions had false. +Rails.application.config.action_controller.per_form_csrf_tokens = true + +# Enable origin-checking CSRF mitigation. Previous versions had false. +Rails.application.config.action_controller.forgery_protection_origin_check = true + +# Make Ruby 2.4 preserve the timezone of the receiver when calling `to_time`. +# Previous versions had false. +ActiveSupport.to_time_preserves_timezone = true + +# Require `belongs_to` associations by default. Previous versions had false. +Rails.application.config.active_record.belongs_to_required_by_default = true + +# Do not halt callback chains when a callback returns false. Previous versions had true. +ActiveSupport.halt_callback_chains_on_return_false = false + +# Configure SSL options to enable HSTS with subdomains. Previous versions had false. +Rails.application.config.ssl_options = { hsts: { subdomains: true } } diff --git a/config/initializers/session_store.rb b/config/initializers/session_store.rb new file mode 100644 index 0000000..1ac3ac7 --- /dev/null +++ b/config/initializers/session_store.rb @@ -0,0 +1,3 @@ +# Be sure to restart your server when you modify this file. + +Rails.application.config.session_store :cookie_store, key: '_pnt_session' diff --git a/config/initializers/wrap_parameters.rb b/config/initializers/wrap_parameters.rb new file mode 100644 index 0000000..bbfc396 --- /dev/null +++ b/config/initializers/wrap_parameters.rb @@ -0,0 +1,14 @@ +# Be sure to restart your server when you modify this file. + +# This file contains settings for ActionController::ParamsWrapper which +# is enabled by default. + +# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. +ActiveSupport.on_load(:action_controller) do + wrap_parameters format: [:json] +end + +# To enable root element in JSON for ActiveRecord objects. +# ActiveSupport.on_load(:active_record) do +# self.include_root_in_json = true +# end diff --git a/config/locales/en.yml b/config/locales/en.yml new file mode 100644 index 0000000..0653957 --- /dev/null +++ b/config/locales/en.yml @@ -0,0 +1,23 @@ +# Files in the config/locales directory are used for internationalization +# and are automatically loaded by Rails. If you want to use locales other +# than English, add the necessary files in this directory. +# +# To use the locales, use `I18n.t`: +# +# I18n.t 'hello' +# +# In views, this is aliased to just `t`: +# +# <%= t('hello') %> +# +# To use a different locale, set it with `I18n.locale`: +# +# I18n.locale = :es +# +# This would use the information in config/locales/es.yml. +# +# To learn more, please read the Rails Internationalization guide +# available at http://guides.rubyonrails.org/i18n.html. + +en: + hello: "Hello world" diff --git a/config/puma.rb b/config/puma.rb new file mode 100644 index 0000000..c7f311f --- /dev/null +++ b/config/puma.rb @@ -0,0 +1,47 @@ +# Puma can serve each request in a thread from an internal thread pool. +# The `threads` method setting takes two numbers a minimum and maximum. +# Any libraries that use thread pools should be configured to match +# the maximum value specified for Puma. Default is set to 5 threads for minimum +# and maximum, this matches the default thread size of Active Record. +# +threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i +threads threads_count, threads_count + +# Specifies the `port` that Puma will listen on to receive requests, default is 3000. +# +port ENV.fetch("PORT") { 3000 } + +# Specifies the `environment` that Puma will run in. +# +environment ENV.fetch("RAILS_ENV") { "development" } + +# Specifies the number of `workers` to boot in clustered mode. +# Workers are forked webserver processes. If using threads and workers together +# the concurrency of the application would be max `threads` * `workers`. +# Workers do not work on JRuby or Windows (both of which do not support +# processes). +# +# workers ENV.fetch("WEB_CONCURRENCY") { 2 } + +# Use the `preload_app!` method when specifying a `workers` number. +# This directive tells Puma to first boot the application and load code +# before forking the application. This takes advantage of Copy On Write +# process behavior so workers use less memory. If you use this option +# you need to make sure to reconnect any threads in the `on_worker_boot` +# block. +# +# preload_app! + +# The code in the `on_worker_boot` will be called if you are using +# clustered mode by specifying a number of `workers`. After each worker +# process is booted this block will be run, if you are using `preload_app!` +# option you will want to use this block to reconnect to any threads +# or connections that may have been created at application boot, Ruby +# cannot share connections between processes. +# +# on_worker_boot do +# ActiveRecord::Base.establish_connection if defined?(ActiveRecord) +# end + +# Allow puma to be restarted by `rails restart` command. +plugin :tmp_restart diff --git a/config/routes.rb b/config/routes.rb new file mode 100644 index 0000000..6b27a5d --- /dev/null +++ b/config/routes.rb @@ -0,0 +1,6 @@ +Rails.application.routes.draw do + get '/sujetos' => 'pages#informationgranted' + get '/solicitud' => 'pages#demand' + root 'pages#index' + # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html +end diff --git a/config/secrets.yml b/config/secrets.yml new file mode 100644 index 0000000..f72d0ec --- /dev/null +++ b/config/secrets.yml @@ -0,0 +1,22 @@ +# Be sure to restart your server when you modify this file. + +# Your secret key is used for verifying the integrity of signed cookies. +# If you change this key, all old signed cookies will become invalid! + +# Make sure the secret is at least 30 characters and all random, +# no regular words or you'll be exposed to dictionary attacks. +# You can use `rails secret` to generate a secure secret key. + +# Make sure the secrets in this file are kept private +# if you're sharing your code publicly. + +development: + secret_key_base: a9ebbd041bd475ed816258a2d833313ea5f19fbab8738aaccf80beaf6a7bb76a887e5047fdeee1fb0018744ac55115d0910609335df6d9f4a829a47a7fe837cb + +test: + secret_key_base: 00454ffdb0fa16ff934ece1d4d6213423797157927b010871f69577a12f65542dc02222990830967e2845258c512362a2a481c476fcc5440b64873a365f8a681 + +# Do not keep production secrets in the repository, +# instead read values from the environment. +production: + secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> diff --git a/config/spring.rb b/config/spring.rb new file mode 100644 index 0000000..c9119b4 --- /dev/null +++ b/config/spring.rb @@ -0,0 +1,6 @@ +%w( + .ruby-version + .rbenv-vars + tmp/restart.txt + tmp/caching-dev.txt +).each { |path| Spring.watch(path) } diff --git a/db/seeds.rb b/db/seeds.rb new file mode 100644 index 0000000..1beea2a --- /dev/null +++ b/db/seeds.rb @@ -0,0 +1,7 @@ +# This file should contain all the record creation needed to seed the database with its default values. +# The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup). +# +# Examples: +# +# movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }]) +# Character.create(name: 'Luke', movie: movies.first) diff --git a/lib/assets/.keep b/lib/assets/.keep new file mode 100644 index 0000000..e69de29 diff --git a/lib/tasks/.keep b/lib/tasks/.keep new file mode 100644 index 0000000..e69de29 diff --git a/locales/en.yml b/locales/en.yml deleted file mode 100644 index 157c54b..0000000 --- a/locales/en.yml +++ /dev/null @@ -1,2 +0,0 @@ -en: - \ No newline at end of file diff --git a/locales/es.yml b/locales/es.yml deleted file mode 100644 index 4d7dc6c..0000000 --- a/locales/es.yml +++ /dev/null @@ -1,15 +0,0 @@ -es: - title: "¡Bienvenido a la Plataforma Nacional de Transparencia!" - subtitle_html: "Con esta plataforma podrás solicitar de manera sencillaYou may have mistyped the address or the page may have moved.
+If you are the application owner check the logs for more information.
+Maybe you tried to change something you didn't have access to.
+If you are the application owner check the logs for more information.
+If you are the application owner check the logs for more information.
+- <%= link_to "Read Documentation Online", "https://middlemanapp.com", target: "_blank" %> -
-