Merge branch 'master' into polls
4
Capfile
@@ -12,6 +12,10 @@ require 'capistrano/delayed_job'
|
|||||||
require 'whenever/capistrano'
|
require 'whenever/capistrano'
|
||||||
require 'rvm1/capistrano3'
|
require 'rvm1/capistrano3'
|
||||||
|
|
||||||
|
#SCM: Git
|
||||||
|
require "capistrano/scm/git"
|
||||||
|
install_plugin Capistrano::SCM::Git
|
||||||
|
|
||||||
# Load custom tasks from `lib/capistrano/tasks` if you have any defined
|
# Load custom tasks from `lib/capistrano/tasks` if you have any defined
|
||||||
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
|
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
|
||||||
Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }
|
Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }
|
||||||
|
|||||||
54
Gemfile
@@ -1,20 +1,20 @@
|
|||||||
source 'https://rubygems.org'
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
||||||
gem 'rails', '4.2.7.1'
|
gem 'rails', '4.2.8'
|
||||||
# Use PostgreSQL
|
# Use PostgreSQL
|
||||||
gem 'pg', '~> 0.19.0'
|
gem 'pg', '~> 0.20.0'
|
||||||
# Use SCSS for stylesheets
|
# Use SCSS for stylesheets
|
||||||
gem 'sass-rails', '~> 5.0', '>= 5.0.4'
|
gem 'sass-rails', '~> 5.0', '>= 5.0.4'
|
||||||
# Use Uglifier as compressor for JavaScript assets
|
# Use Uglifier as compressor for JavaScript assets
|
||||||
gem 'uglifier', '>= 3.0.4'
|
gem 'uglifier', '~> 3.1.9'
|
||||||
# Use CoffeeScript for .coffee assets and views
|
# Use CoffeeScript for .coffee assets and views
|
||||||
gem 'coffee-rails', '~> 4.2.1'
|
gem 'coffee-rails', '~> 4.2.1'
|
||||||
# See https://github.com/rails/execjs#readme for more supported runtimes
|
# See https://github.com/rails/execjs#readme for more supported runtimes
|
||||||
# gem 'therubyracer', platforms: :ruby
|
# gem 'therubyracer', platforms: :ruby
|
||||||
|
|
||||||
# Use jquery as the JavaScript library
|
# Use jquery as the JavaScript library
|
||||||
gem 'jquery-rails', '~> 4.2.2'
|
gem 'jquery-rails', '~> 4.3.1'
|
||||||
gem 'jquery-ui-rails'
|
gem 'jquery-ui-rails'
|
||||||
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
|
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
|
||||||
gem 'turbolinks'
|
gem 'turbolinks'
|
||||||
@@ -28,10 +28,10 @@ gem 'devise_security_extension'
|
|||||||
# gem 'bcrypt', '~> 3.1.7'
|
# gem 'bcrypt', '~> 3.1.7'
|
||||||
gem 'omniauth'
|
gem 'omniauth'
|
||||||
gem 'omniauth-twitter'
|
gem 'omniauth-twitter'
|
||||||
gem 'omniauth-facebook', '~> 3.0.0'
|
gem 'omniauth-facebook', '~> 4.0.0'
|
||||||
gem 'omniauth-google-oauth2', '~> 0.4.0'
|
gem 'omniauth-google-oauth2', '~> 0.4.0'
|
||||||
|
|
||||||
gem 'kaminari'
|
gem 'kaminari', '~> 1.0.1'
|
||||||
gem 'ancestry', '~> 2.2.2'
|
gem 'ancestry', '~> 2.2.2'
|
||||||
gem 'acts-as-taggable-on'
|
gem 'acts-as-taggable-on'
|
||||||
gem 'responders', '~> 2.3.0'
|
gem 'responders', '~> 2.3.0'
|
||||||
@@ -40,30 +40,30 @@ gem 'foundation_rails_helper', '~> 2.0.0'
|
|||||||
gem 'acts_as_votable'
|
gem 'acts_as_votable'
|
||||||
gem 'ckeditor', '~> 4.2.2'
|
gem 'ckeditor', '~> 4.2.2'
|
||||||
gem 'invisible_captcha', '~> 0.9.2'
|
gem 'invisible_captcha', '~> 0.9.2'
|
||||||
gem 'cancancan'
|
gem 'cancancan', '~> 1.16.0'
|
||||||
gem 'social-share-button'
|
gem 'social-share-button', '~> 0.10'
|
||||||
gem 'initialjs-rails', '0.2.0.4'
|
gem 'initialjs-rails', '0.2.0.4'
|
||||||
gem 'unicorn', '~> 5.2.0'
|
gem 'unicorn', '~> 5.2.0'
|
||||||
gem 'paranoia', '~> 2.2.0'
|
gem 'paranoia', '~> 2.2.1'
|
||||||
gem 'rinku', '~> 2.0.2', require: 'rails_rinku'
|
gem 'rinku', '~> 2.0.2', require: 'rails_rinku'
|
||||||
gem 'savon'
|
gem 'savon'
|
||||||
gem 'dalli'
|
gem 'dalli'
|
||||||
gem 'rollbar', '~> 2.14.0'
|
gem 'rollbar', '~> 2.14.1'
|
||||||
gem 'delayed_job_active_record', '~> 4.1.0'
|
gem 'delayed_job_active_record', '~> 4.1.0'
|
||||||
gem 'daemons'
|
gem 'daemons'
|
||||||
gem 'devise-async'
|
gem 'devise-async'
|
||||||
gem 'newrelic_rpm', '~> 3.17.2.327'
|
gem 'newrelic_rpm', '~> 4.0.0.332'
|
||||||
gem 'whenever', require: false
|
gem 'whenever', require: false
|
||||||
gem 'pg_search'
|
gem 'pg_search'
|
||||||
gem 'sitemap_generator'
|
gem 'sitemap_generator', '~> 5.3.1'
|
||||||
|
|
||||||
gem 'ahoy_matey', '~> 1.5.3'
|
gem 'ahoy_matey', '~> 1.5.5'
|
||||||
gem 'groupdate', '~> 3.1.0' # group temporary data
|
gem 'groupdate', '~> 3.2.0' # group temporary data
|
||||||
gem 'tolk', '~> 2.0.0' # Web interface for translations
|
gem 'tolk', '~> 2.0.0' # Web interface for translations
|
||||||
|
|
||||||
gem 'browser'
|
gem 'browser'
|
||||||
gem 'turnout', '~> 2.4.0'
|
gem 'turnout', '~> 2.4.0'
|
||||||
gem 'redcarpet'
|
gem 'redcarpet', '~> 3.4.0'
|
||||||
|
|
||||||
group :development, :test do
|
group :development, :test do
|
||||||
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
|
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
|
||||||
@@ -72,28 +72,28 @@ group :development, :test do
|
|||||||
gem 'spring'
|
gem 'spring'
|
||||||
gem 'spring-commands-rspec'
|
gem 'spring-commands-rspec'
|
||||||
gem 'rspec-rails', '~> 3.5'
|
gem 'rspec-rails', '~> 3.5'
|
||||||
gem 'capybara'
|
gem 'capybara', '~> 2.13.0'
|
||||||
gem 'factory_girl_rails'
|
gem 'factory_girl_rails', '~> 4.8.0'
|
||||||
gem 'fuubar'
|
gem 'fuubar'
|
||||||
gem 'launchy'
|
gem 'launchy'
|
||||||
gem 'quiet_assets'
|
gem 'quiet_assets'
|
||||||
gem 'letter_opener_web', '~> 1.3.0'
|
gem 'letter_opener_web', '~> 1.3.1'
|
||||||
gem 'i18n-tasks'
|
gem 'i18n-tasks', '~> 0.9.12'
|
||||||
gem 'capistrano', '3.5.0', require: false
|
gem 'capistrano', '~> 3.8.0', require: false
|
||||||
gem 'capistrano-bundler', '~> 1.2', require: false
|
gem 'capistrano-bundler', '~> 1.2', require: false
|
||||||
gem "capistrano-rails", '1.1.8', require: false
|
gem "capistrano-rails", '~> 1.2.3', require: false
|
||||||
gem 'rvm1-capistrano3', require: false
|
gem 'rvm1-capistrano3', require: false
|
||||||
gem 'capistrano3-delayed-job', '~> 1.0'
|
gem 'capistrano3-delayed-job', '~> 1.7.3'
|
||||||
gem "bullet"
|
gem "bullet", '~> 5.5.1'
|
||||||
gem "faker"
|
gem "faker", '~> 1.7.3'
|
||||||
gem 'rubocop', '~> 0.45.0', require: false
|
gem 'rubocop', '~> 0.47.1', require: false
|
||||||
gem 'knapsack'
|
gem 'knapsack'
|
||||||
end
|
end
|
||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
gem 'database_cleaner'
|
gem 'database_cleaner'
|
||||||
gem 'poltergeist'
|
gem 'poltergeist', '~> 1.14.0'
|
||||||
gem 'coveralls', require: false
|
gem 'coveralls', '~> 0.8.19', require: false
|
||||||
gem 'email_spec'
|
gem 'email_spec'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
288
Gemfile.lock
@@ -1,46 +1,46 @@
|
|||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
actionmailer (4.2.7.1)
|
actionmailer (4.2.8)
|
||||||
actionpack (= 4.2.7.1)
|
actionpack (= 4.2.8)
|
||||||
actionview (= 4.2.7.1)
|
actionview (= 4.2.8)
|
||||||
activejob (= 4.2.7.1)
|
activejob (= 4.2.8)
|
||||||
mail (~> 2.5, >= 2.5.4)
|
mail (~> 2.5, >= 2.5.4)
|
||||||
rails-dom-testing (~> 1.0, >= 1.0.5)
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
||||||
actionpack (4.2.7.1)
|
actionpack (4.2.8)
|
||||||
actionview (= 4.2.7.1)
|
actionview (= 4.2.8)
|
||||||
activesupport (= 4.2.7.1)
|
activesupport (= 4.2.8)
|
||||||
rack (~> 1.6)
|
rack (~> 1.6)
|
||||||
rack-test (~> 0.6.2)
|
rack-test (~> 0.6.2)
|
||||||
rails-dom-testing (~> 1.0, >= 1.0.5)
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
||||||
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
||||||
actionview (4.2.7.1)
|
actionview (4.2.8)
|
||||||
activesupport (= 4.2.7.1)
|
activesupport (= 4.2.8)
|
||||||
builder (~> 3.1)
|
builder (~> 3.1)
|
||||||
erubis (~> 2.7.0)
|
erubis (~> 2.7.0)
|
||||||
rails-dom-testing (~> 1.0, >= 1.0.5)
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
||||||
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
||||||
activejob (4.2.7.1)
|
activejob (4.2.8)
|
||||||
activesupport (= 4.2.7.1)
|
activesupport (= 4.2.8)
|
||||||
globalid (>= 0.3.0)
|
globalid (>= 0.3.0)
|
||||||
activemodel (4.2.7.1)
|
activemodel (4.2.8)
|
||||||
activesupport (= 4.2.7.1)
|
activesupport (= 4.2.8)
|
||||||
builder (~> 3.1)
|
builder (~> 3.1)
|
||||||
activerecord (4.2.7.1)
|
activerecord (4.2.8)
|
||||||
activemodel (= 4.2.7.1)
|
activemodel (= 4.2.8)
|
||||||
activesupport (= 4.2.7.1)
|
activesupport (= 4.2.8)
|
||||||
arel (~> 6.0)
|
arel (~> 6.0)
|
||||||
activesupport (4.2.7.1)
|
activesupport (4.2.8)
|
||||||
i18n (~> 0.7)
|
i18n (~> 0.7)
|
||||||
json (~> 1.7, >= 1.7.7)
|
|
||||||
minitest (~> 5.1)
|
minitest (~> 5.1)
|
||||||
thread_safe (~> 0.3, >= 0.3.4)
|
thread_safe (~> 0.3, >= 0.3.4)
|
||||||
tzinfo (~> 1.1)
|
tzinfo (~> 1.1)
|
||||||
acts-as-taggable-on (3.5.0)
|
acts-as-taggable-on (4.0.0)
|
||||||
activerecord (>= 3.2, < 5)
|
activerecord (>= 4.0)
|
||||||
acts_as_votable (0.10.0)
|
acts_as_votable (0.10.0)
|
||||||
addressable (2.4.0)
|
addressable (2.5.0)
|
||||||
ahoy_matey (1.5.3)
|
public_suffix (~> 2.0, >= 2.0.2)
|
||||||
|
ahoy_matey (1.5.5)
|
||||||
addressable
|
addressable
|
||||||
browser (~> 2.0)
|
browser (~> 2.0)
|
||||||
geocoder
|
geocoder
|
||||||
@@ -51,14 +51,14 @@ GEM
|
|||||||
safely_block (>= 0.1.1)
|
safely_block (>= 0.1.1)
|
||||||
user_agent_parser
|
user_agent_parser
|
||||||
uuidtools
|
uuidtools
|
||||||
airbrussh (1.1.1)
|
airbrussh (1.1.2)
|
||||||
sshkit (>= 1.6.1, != 1.7.0)
|
sshkit (>= 1.6.1, != 1.7.0)
|
||||||
akami (1.3.1)
|
akami (1.3.1)
|
||||||
gyoku (>= 0.4.0)
|
gyoku (>= 0.4.0)
|
||||||
nokogiri
|
nokogiri
|
||||||
ancestry (2.2.2)
|
ancestry (2.2.2)
|
||||||
activerecord (>= 3.0.0)
|
activerecord (>= 3.0.0)
|
||||||
arel (6.0.3)
|
arel (6.0.4)
|
||||||
ast (2.3.0)
|
ast (2.3.0)
|
||||||
babel-source (5.8.35)
|
babel-source (5.8.35)
|
||||||
babel-transpiler (0.7.0)
|
babel-transpiler (0.7.0)
|
||||||
@@ -66,28 +66,27 @@ GEM
|
|||||||
execjs (~> 2.0)
|
execjs (~> 2.0)
|
||||||
bcrypt (3.1.11)
|
bcrypt (3.1.11)
|
||||||
browser (2.3.0)
|
browser (2.3.0)
|
||||||
builder (3.2.2)
|
builder (3.2.3)
|
||||||
bullet (5.4.2)
|
bullet (5.5.1)
|
||||||
activesupport (>= 3.0.0)
|
activesupport (>= 3.0.0)
|
||||||
uniform_notifier (~> 1.10.0)
|
uniform_notifier (~> 1.10.0)
|
||||||
byebug (9.0.6)
|
byebug (9.0.6)
|
||||||
cancancan (1.15.0)
|
cancancan (1.16.0)
|
||||||
capistrano (3.5.0)
|
capistrano (3.8.0)
|
||||||
airbrussh (>= 1.0.0)
|
airbrussh (>= 1.0.0)
|
||||||
capistrano-harrow
|
|
||||||
i18n
|
i18n
|
||||||
rake (>= 10.0.0)
|
rake (>= 10.0.0)
|
||||||
sshkit (>= 1.9.0)
|
sshkit (>= 1.9.0)
|
||||||
capistrano-bundler (1.2.0)
|
capistrano-bundler (1.2.0)
|
||||||
capistrano (~> 3.1)
|
capistrano (~> 3.1)
|
||||||
sshkit (~> 1.2)
|
sshkit (~> 1.2)
|
||||||
capistrano-harrow (0.5.3)
|
capistrano-rails (1.2.3)
|
||||||
capistrano-rails (1.1.8)
|
|
||||||
capistrano (~> 3.1)
|
capistrano (~> 3.1)
|
||||||
capistrano-bundler (~> 1.1)
|
capistrano-bundler (~> 1.1)
|
||||||
capistrano3-delayed-job (1.7.2)
|
capistrano3-delayed-job (1.7.3)
|
||||||
capistrano (~> 3.0, >= 3.0.0)
|
capistrano (~> 3.0, >= 3.0.0)
|
||||||
capybara (2.7.1)
|
daemons (~> 1.2.4)
|
||||||
|
capybara (2.13.0)
|
||||||
addressable
|
addressable
|
||||||
mime-types (>= 1.16)
|
mime-types (>= 1.16)
|
||||||
nokogiri (>= 1.3.3)
|
nokogiri (>= 1.3.3)
|
||||||
@@ -109,9 +108,9 @@ GEM
|
|||||||
coffee-script (2.4.1)
|
coffee-script (2.4.1)
|
||||||
coffee-script-source
|
coffee-script-source
|
||||||
execjs
|
execjs
|
||||||
coffee-script-source (1.10.0)
|
coffee-script-source (1.12.2)
|
||||||
concurrent-ruby (1.0.4)
|
concurrent-ruby (1.0.5)
|
||||||
coveralls (0.8.17)
|
coveralls (0.8.19)
|
||||||
json (>= 1.8, < 3)
|
json (>= 1.8, < 3)
|
||||||
simplecov (~> 0.12.0)
|
simplecov (~> 0.12.0)
|
||||||
term-ansicolor (~> 1.3)
|
term-ansicolor (~> 1.3)
|
||||||
@@ -151,14 +150,14 @@ GEM
|
|||||||
errbase (0.0.3)
|
errbase (0.0.3)
|
||||||
erubis (2.7.0)
|
erubis (2.7.0)
|
||||||
execjs (2.7.0)
|
execjs (2.7.0)
|
||||||
factory_girl (4.7.0)
|
factory_girl (4.8.0)
|
||||||
activesupport (>= 3.0.0)
|
activesupport (>= 3.0.0)
|
||||||
factory_girl_rails (4.7.0)
|
factory_girl_rails (4.8.0)
|
||||||
factory_girl (~> 4.7.0)
|
factory_girl (~> 4.8.0)
|
||||||
railties (>= 3.0.0)
|
railties (>= 3.0.0)
|
||||||
faker (1.6.6)
|
faker (1.7.3)
|
||||||
i18n (~> 0.5)
|
i18n (~> 0.5)
|
||||||
faraday (0.9.2)
|
faraday (0.11.0)
|
||||||
multipart-post (>= 1.2, < 3)
|
multipart-post (>= 1.2, < 3)
|
||||||
foundation-rails (6.2.4.0)
|
foundation-rails (6.2.4.0)
|
||||||
railties (>= 3.1.0)
|
railties (>= 3.1.0)
|
||||||
@@ -173,20 +172,20 @@ GEM
|
|||||||
fuubar (2.2.0)
|
fuubar (2.2.0)
|
||||||
rspec-core (~> 3.0)
|
rspec-core (~> 3.0)
|
||||||
ruby-progressbar (~> 1.4)
|
ruby-progressbar (~> 1.4)
|
||||||
geocoder (1.4.1)
|
geocoder (1.4.3)
|
||||||
globalid (0.3.7)
|
globalid (0.3.7)
|
||||||
activesupport (>= 4.1.0)
|
activesupport (>= 4.1.0)
|
||||||
groupdate (3.1.1)
|
groupdate (3.2.0)
|
||||||
activesupport (>= 3)
|
activesupport (>= 3)
|
||||||
gyoku (1.3.1)
|
gyoku (1.3.1)
|
||||||
builder (>= 2.1.2)
|
builder (>= 2.1.2)
|
||||||
hashie (3.4.6)
|
hashie (3.5.5)
|
||||||
highline (1.7.8)
|
highline (1.7.8)
|
||||||
htmlentities (4.3.4)
|
htmlentities (4.3.4)
|
||||||
httpi (2.4.1)
|
httpi (2.4.1)
|
||||||
rack
|
rack
|
||||||
i18n (0.7.0)
|
i18n (0.8.1)
|
||||||
i18n-tasks (0.9.6)
|
i18n-tasks (0.9.12)
|
||||||
activesupport (>= 4.0.2)
|
activesupport (>= 4.0.2)
|
||||||
ast (>= 2.1.0)
|
ast (>= 2.1.0)
|
||||||
easy_translate (>= 0.5.0)
|
easy_translate (>= 0.5.0)
|
||||||
@@ -200,26 +199,35 @@ GEM
|
|||||||
railties (>= 3.1, < 6.0)
|
railties (>= 3.1, < 6.0)
|
||||||
invisible_captcha (0.9.2)
|
invisible_captcha (0.9.2)
|
||||||
rails (>= 3.2.0)
|
rails (>= 3.2.0)
|
||||||
jquery-rails (4.2.2)
|
jquery-rails (4.3.1)
|
||||||
rails-dom-testing (>= 1, < 3)
|
rails-dom-testing (>= 1, < 3)
|
||||||
railties (>= 4.2.0)
|
railties (>= 4.2.0)
|
||||||
thor (>= 0.14, < 2.0)
|
thor (>= 0.14, < 2.0)
|
||||||
jquery-ui-rails (5.0.5)
|
jquery-ui-rails (6.0.1)
|
||||||
railties (>= 3.2.16)
|
railties (>= 3.2.16)
|
||||||
json (1.8.3)
|
json (2.0.3)
|
||||||
jwt (1.5.4)
|
jwt (1.5.6)
|
||||||
kaminari (0.17.0)
|
kaminari (1.0.1)
|
||||||
actionpack (>= 3.0.0)
|
activesupport (>= 4.1.0)
|
||||||
activesupport (>= 3.0.0)
|
kaminari-actionview (= 1.0.1)
|
||||||
|
kaminari-activerecord (= 1.0.1)
|
||||||
|
kaminari-core (= 1.0.1)
|
||||||
|
kaminari-actionview (1.0.1)
|
||||||
|
actionview
|
||||||
|
kaminari-core (= 1.0.1)
|
||||||
|
kaminari-activerecord (1.0.1)
|
||||||
|
activerecord
|
||||||
|
kaminari-core (= 1.0.1)
|
||||||
|
kaminari-core (1.0.1)
|
||||||
kgio (2.11.0)
|
kgio (2.11.0)
|
||||||
knapsack (1.13.1)
|
knapsack (1.13.2)
|
||||||
rake
|
rake
|
||||||
timecop (>= 0.1.0)
|
timecop (>= 0.1.0)
|
||||||
launchy (2.4.3)
|
launchy (2.4.3)
|
||||||
addressable (~> 2.3)
|
addressable (~> 2.3)
|
||||||
letter_opener (1.4.1)
|
letter_opener (1.4.1)
|
||||||
launchy (~> 2.2)
|
launchy (~> 2.2)
|
||||||
letter_opener_web (1.3.0)
|
letter_opener_web (1.3.1)
|
||||||
actionmailer (>= 3.2)
|
actionmailer (>= 3.2)
|
||||||
letter_opener (~> 1.0)
|
letter_opener (~> 1.0)
|
||||||
railties (>= 3.2)
|
railties (>= 3.2)
|
||||||
@@ -233,26 +241,26 @@ GEM
|
|||||||
mini_portile2 (2.1.0)
|
mini_portile2 (2.1.0)
|
||||||
minitest (5.10.1)
|
minitest (5.10.1)
|
||||||
multi_json (1.12.1)
|
multi_json (1.12.1)
|
||||||
multi_xml (0.5.5)
|
multi_xml (0.6.0)
|
||||||
multipart-post (2.0.0)
|
multipart-post (2.0.0)
|
||||||
net-scp (1.2.1)
|
net-scp (1.2.1)
|
||||||
net-ssh (>= 2.6.5)
|
net-ssh (>= 2.6.5)
|
||||||
net-ssh (3.2.0)
|
net-ssh (4.1.0)
|
||||||
newrelic_rpm (3.17.2.327)
|
newrelic_rpm (4.0.0.332)
|
||||||
nokogiri (1.6.8.1)
|
nokogiri (1.7.1)
|
||||||
mini_portile2 (~> 2.1.0)
|
mini_portile2 (~> 2.1.0)
|
||||||
nori (2.6.0)
|
nori (2.6.0)
|
||||||
oauth (0.5.0)
|
oauth (0.5.1)
|
||||||
oauth2 (1.0.0)
|
oauth2 (1.3.1)
|
||||||
faraday (>= 0.8, < 0.10)
|
faraday (>= 0.8, < 0.12)
|
||||||
jwt (~> 1.0)
|
jwt (~> 1.0)
|
||||||
multi_json (~> 1.3)
|
multi_json (~> 1.3)
|
||||||
multi_xml (~> 0.5)
|
multi_xml (~> 0.5)
|
||||||
rack (~> 1.2)
|
rack (>= 1.2, < 3)
|
||||||
omniauth (1.3.1)
|
omniauth (1.6.1)
|
||||||
hashie (>= 1.2, < 4)
|
hashie (>= 3.4.6, < 3.6.0)
|
||||||
rack (>= 1.0, < 3)
|
rack (>= 1.6.2, < 3)
|
||||||
omniauth-facebook (3.0.0)
|
omniauth-facebook (4.0.0)
|
||||||
omniauth-oauth2 (~> 1.2)
|
omniauth-oauth2 (~> 1.2)
|
||||||
omniauth-google-oauth2 (0.4.1)
|
omniauth-google-oauth2 (0.4.1)
|
||||||
jwt (~> 1.5.2)
|
jwt (~> 1.5.2)
|
||||||
@@ -265,24 +273,25 @@ GEM
|
|||||||
omniauth-oauth2 (1.4.0)
|
omniauth-oauth2 (1.4.0)
|
||||||
oauth2 (~> 1.0)
|
oauth2 (~> 1.0)
|
||||||
omniauth (~> 1.2)
|
omniauth (~> 1.2)
|
||||||
omniauth-twitter (1.2.1)
|
omniauth-twitter (1.4.0)
|
||||||
json (~> 1.3)
|
|
||||||
omniauth-oauth (~> 1.1)
|
omniauth-oauth (~> 1.1)
|
||||||
|
rack
|
||||||
orm_adapter (0.5.0)
|
orm_adapter (0.5.0)
|
||||||
paranoia (2.2.0)
|
paranoia (2.2.1)
|
||||||
activerecord (>= 4.0, < 5.1)
|
activerecord (>= 4.0, < 5.1)
|
||||||
parser (2.3.3.1)
|
parser (2.4.0.0)
|
||||||
ast (~> 2.2)
|
ast (~> 2.2)
|
||||||
pg (0.19.0)
|
pg (0.20.0)
|
||||||
pg_search (1.0.6)
|
pg_search (2.0.1)
|
||||||
activerecord (>= 3.1)
|
activerecord (>= 4.2)
|
||||||
activesupport (>= 3.1)
|
activesupport (>= 4.2)
|
||||||
arel
|
arel (>= 6)
|
||||||
poltergeist (1.10.0)
|
poltergeist (1.14.0)
|
||||||
capybara (~> 2.1)
|
capybara (~> 2.1)
|
||||||
cliver (~> 0.3.1)
|
cliver (~> 0.3.1)
|
||||||
websocket-driver (>= 0.2.0)
|
websocket-driver (>= 0.2.0)
|
||||||
powerpack (0.1.1)
|
powerpack (0.1.1)
|
||||||
|
public_suffix (2.0.5)
|
||||||
quiet_assets (1.1.0)
|
quiet_assets (1.1.0)
|
||||||
railties (>= 3.1, < 5.0)
|
railties (>= 3.1, < 5.0)
|
||||||
rack (1.6.5)
|
rack (1.6.5)
|
||||||
@@ -292,40 +301,40 @@ GEM
|
|||||||
rack
|
rack
|
||||||
rack-test (0.6.3)
|
rack-test (0.6.3)
|
||||||
rack (>= 1.0)
|
rack (>= 1.0)
|
||||||
rails (4.2.7.1)
|
rails (4.2.8)
|
||||||
actionmailer (= 4.2.7.1)
|
actionmailer (= 4.2.8)
|
||||||
actionpack (= 4.2.7.1)
|
actionpack (= 4.2.8)
|
||||||
actionview (= 4.2.7.1)
|
actionview (= 4.2.8)
|
||||||
activejob (= 4.2.7.1)
|
activejob (= 4.2.8)
|
||||||
activemodel (= 4.2.7.1)
|
activemodel (= 4.2.8)
|
||||||
activerecord (= 4.2.7.1)
|
activerecord (= 4.2.8)
|
||||||
activesupport (= 4.2.7.1)
|
activesupport (= 4.2.8)
|
||||||
bundler (>= 1.3.0, < 2.0)
|
bundler (>= 1.3.0, < 2.0)
|
||||||
railties (= 4.2.7.1)
|
railties (= 4.2.8)
|
||||||
sprockets-rails
|
sprockets-rails
|
||||||
rails-deprecated_sanitizer (1.0.3)
|
rails-deprecated_sanitizer (1.0.3)
|
||||||
activesupport (>= 4.2.0.alpha)
|
activesupport (>= 4.2.0.alpha)
|
||||||
rails-dom-testing (1.0.7)
|
rails-dom-testing (1.0.8)
|
||||||
activesupport (>= 4.2.0.beta, < 5.0)
|
activesupport (>= 4.2.0.beta, < 5.0)
|
||||||
nokogiri (~> 1.6.0)
|
nokogiri (~> 1.6)
|
||||||
rails-deprecated_sanitizer (>= 1.0.1)
|
rails-deprecated_sanitizer (>= 1.0.1)
|
||||||
rails-html-sanitizer (1.0.3)
|
rails-html-sanitizer (1.0.3)
|
||||||
loofah (~> 2.0)
|
loofah (~> 2.0)
|
||||||
railties (4.2.7.1)
|
railties (4.2.8)
|
||||||
actionpack (= 4.2.7.1)
|
actionpack (= 4.2.8)
|
||||||
activesupport (= 4.2.7.1)
|
activesupport (= 4.2.8)
|
||||||
rake (>= 0.8.7)
|
rake (>= 0.8.7)
|
||||||
thor (>= 0.18.1, < 2.0)
|
thor (>= 0.18.1, < 2.0)
|
||||||
rainbow (2.1.0)
|
rainbow (2.2.1)
|
||||||
raindrops (0.17.0)
|
raindrops (0.17.0)
|
||||||
rake (12.0.0)
|
rake (12.0.0)
|
||||||
redcarpet (3.3.4)
|
redcarpet (3.4.0)
|
||||||
referer-parser (0.3.0)
|
referer-parser (0.3.0)
|
||||||
request_store (1.3.1)
|
request_store (1.3.2)
|
||||||
responders (2.3.0)
|
responders (2.3.0)
|
||||||
railties (>= 4.2.0, < 5.1)
|
railties (>= 4.2.0, < 5.1)
|
||||||
rinku (2.0.2)
|
rinku (2.0.2)
|
||||||
rollbar (2.14.0)
|
rollbar (2.14.1)
|
||||||
multi_json
|
multi_json
|
||||||
rspec-core (3.5.4)
|
rspec-core (3.5.4)
|
||||||
rspec-support (~> 3.5.0)
|
rspec-support (~> 3.5.0)
|
||||||
@@ -344,8 +353,8 @@ GEM
|
|||||||
rspec-mocks (~> 3.5.0)
|
rspec-mocks (~> 3.5.0)
|
||||||
rspec-support (~> 3.5.0)
|
rspec-support (~> 3.5.0)
|
||||||
rspec-support (3.5.0)
|
rspec-support (3.5.0)
|
||||||
rubocop (0.45.0)
|
rubocop (0.47.1)
|
||||||
parser (>= 2.3.1.1, < 3.0)
|
parser (>= 2.3.3.1, < 3.0)
|
||||||
powerpack (~> 0.1)
|
powerpack (~> 0.1)
|
||||||
rainbow (>= 1.99.1, < 3.0)
|
rainbow (>= 1.99.1, < 3.0)
|
||||||
ruby-progressbar (~> 1.7)
|
ruby-progressbar (~> 1.7)
|
||||||
@@ -355,9 +364,9 @@ GEM
|
|||||||
capistrano (~> 3.0)
|
capistrano (~> 3.0)
|
||||||
sshkit (>= 1.2)
|
sshkit (>= 1.2)
|
||||||
safe_yaml (1.0.4)
|
safe_yaml (1.0.4)
|
||||||
safely_block (0.1.1)
|
safely_block (0.2.0)
|
||||||
errbase
|
errbase
|
||||||
sass (3.4.22)
|
sass (3.4.23)
|
||||||
sass-rails (5.0.6)
|
sass-rails (5.0.6)
|
||||||
railties (>= 4.0.0, < 6)
|
railties (>= 4.0.0, < 6)
|
||||||
sass (~> 3.1)
|
sass (~> 3.1)
|
||||||
@@ -377,12 +386,12 @@ GEM
|
|||||||
json (>= 1.8, < 3)
|
json (>= 1.8, < 3)
|
||||||
simplecov-html (~> 0.10.0)
|
simplecov-html (~> 0.10.0)
|
||||||
simplecov-html (0.10.0)
|
simplecov-html (0.10.0)
|
||||||
sitemap_generator (5.2.0)
|
sitemap_generator (5.3.1)
|
||||||
builder (~> 3.0)
|
builder (~> 3.0)
|
||||||
social-share-button (0.3.1)
|
social-share-button (0.10.0)
|
||||||
coffee-rails
|
coffee-rails
|
||||||
sass-rails
|
spring (2.0.1)
|
||||||
spring (1.7.2)
|
activesupport (>= 4.2)
|
||||||
spring-commands-rspec (1.0.4)
|
spring-commands-rspec (1.0.4)
|
||||||
spring (>= 0.9.1)
|
spring (>= 0.9.1)
|
||||||
sprockets (3.7.1)
|
sprockets (3.7.1)
|
||||||
@@ -396,7 +405,7 @@ GEM
|
|||||||
actionpack (>= 4.0)
|
actionpack (>= 4.0)
|
||||||
activesupport (>= 4.0)
|
activesupport (>= 4.0)
|
||||||
sprockets (>= 3.0.0)
|
sprockets (>= 3.0.0)
|
||||||
sshkit (1.11.4)
|
sshkit (1.12.0)
|
||||||
net-scp (>= 1.1.2)
|
net-scp (>= 1.1.2)
|
||||||
net-ssh (>= 2.8.0)
|
net-ssh (>= 2.8.0)
|
||||||
term-ansicolor (1.4.0)
|
term-ansicolor (1.4.0)
|
||||||
@@ -405,10 +414,10 @@ GEM
|
|||||||
unicode-display_width (~> 1.1.1)
|
unicode-display_width (~> 1.1.1)
|
||||||
thor (0.19.4)
|
thor (0.19.4)
|
||||||
thread (0.2.2)
|
thread (0.2.2)
|
||||||
thread_safe (0.3.5)
|
thread_safe (0.3.6)
|
||||||
tilt (2.0.5)
|
tilt (2.0.7)
|
||||||
timecop (0.8.1)
|
timecop (0.8.1)
|
||||||
tins (1.13.0)
|
tins (1.13.2)
|
||||||
tolk (2.0.0)
|
tolk (2.0.0)
|
||||||
rails (>= 4.0)
|
rails (>= 4.0)
|
||||||
safe_yaml (>= 0.8.6)
|
safe_yaml (>= 0.8.6)
|
||||||
@@ -421,9 +430,9 @@ GEM
|
|||||||
tilt (>= 1.4, < 3)
|
tilt (>= 1.4, < 3)
|
||||||
tzinfo (1.2.2)
|
tzinfo (1.2.2)
|
||||||
thread_safe (~> 0.1)
|
thread_safe (~> 0.1)
|
||||||
uglifier (3.0.4)
|
uglifier (3.1.9)
|
||||||
execjs (>= 0.3.0, < 3)
|
execjs (>= 0.3.0, < 3)
|
||||||
unicode-display_width (1.1.1)
|
unicode-display_width (1.1.3)
|
||||||
unicorn (5.2.0)
|
unicorn (5.2.0)
|
||||||
kgio (~> 2.6)
|
kgio (~> 2.6)
|
||||||
raindrops (~> 0.7)
|
raindrops (~> 0.7)
|
||||||
@@ -439,7 +448,7 @@ GEM
|
|||||||
activemodel (>= 4.2)
|
activemodel (>= 4.2)
|
||||||
debug_inspector
|
debug_inspector
|
||||||
railties (>= 4.2)
|
railties (>= 4.2)
|
||||||
websocket-driver (0.6.4)
|
websocket-driver (0.6.5)
|
||||||
websocket-extensions (>= 0.1.0)
|
websocket-extensions (>= 0.1.0)
|
||||||
websocket-extensions (0.1.2)
|
websocket-extensions (0.1.2)
|
||||||
whenever (0.9.7)
|
whenever (0.9.7)
|
||||||
@@ -453,20 +462,20 @@ PLATFORMS
|
|||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
acts-as-taggable-on
|
acts-as-taggable-on
|
||||||
acts_as_votable
|
acts_as_votable
|
||||||
ahoy_matey (~> 1.5.3)
|
ahoy_matey (~> 1.5.5)
|
||||||
ancestry (~> 2.2.2)
|
ancestry (~> 2.2.2)
|
||||||
browser
|
browser
|
||||||
bullet
|
bullet (~> 5.5.1)
|
||||||
byebug
|
byebug
|
||||||
cancancan
|
cancancan (~> 1.16.0)
|
||||||
capistrano (= 3.5.0)
|
capistrano (~> 3.8.0)
|
||||||
capistrano-bundler (~> 1.2)
|
capistrano-bundler (~> 1.2)
|
||||||
capistrano-rails (= 1.1.8)
|
capistrano-rails (~> 1.2.3)
|
||||||
capistrano3-delayed-job (~> 1.0)
|
capistrano3-delayed-job (~> 1.7.3)
|
||||||
capybara
|
capybara (~> 2.13.0)
|
||||||
ckeditor (~> 4.2.2)
|
ckeditor (~> 4.2.2)
|
||||||
coffee-rails (~> 4.2.1)
|
coffee-rails (~> 4.2.1)
|
||||||
coveralls
|
coveralls (~> 0.8.19)
|
||||||
daemons
|
daemons
|
||||||
dalli
|
dalli
|
||||||
database_cleaner
|
database_cleaner
|
||||||
@@ -475,50 +484,53 @@ DEPENDENCIES
|
|||||||
devise-async
|
devise-async
|
||||||
devise_security_extension
|
devise_security_extension
|
||||||
email_spec
|
email_spec
|
||||||
factory_girl_rails
|
factory_girl_rails (~> 4.8.0)
|
||||||
faker
|
faker (~> 1.7.3)
|
||||||
foundation-rails (~> 6.2.4.0)
|
foundation-rails (~> 6.2.4.0)
|
||||||
foundation_rails_helper (~> 2.0.0)
|
foundation_rails_helper (~> 2.0.0)
|
||||||
fuubar
|
fuubar
|
||||||
groupdate (~> 3.1.0)
|
groupdate (~> 3.2.0)
|
||||||
i18n-tasks
|
i18n-tasks (~> 0.9.12)
|
||||||
initialjs-rails (= 0.2.0.4)
|
initialjs-rails (= 0.2.0.4)
|
||||||
invisible_captcha (~> 0.9.2)
|
invisible_captcha (~> 0.9.2)
|
||||||
jquery-rails (~> 4.2.2)
|
jquery-rails (~> 4.3.1)
|
||||||
jquery-ui-rails
|
jquery-ui-rails
|
||||||
kaminari
|
kaminari (~> 1.0.1)
|
||||||
knapsack
|
knapsack
|
||||||
launchy
|
launchy
|
||||||
letter_opener_web (~> 1.3.0)
|
letter_opener_web (~> 1.3.1)
|
||||||
newrelic_rpm (~> 3.17.2.327)
|
newrelic_rpm (~> 4.0.0.332)
|
||||||
omniauth
|
omniauth
|
||||||
omniauth-facebook (~> 3.0.0)
|
omniauth-facebook (~> 4.0.0)
|
||||||
omniauth-google-oauth2 (~> 0.4.0)
|
omniauth-google-oauth2 (~> 0.4.0)
|
||||||
omniauth-twitter
|
omniauth-twitter
|
||||||
paranoia (~> 2.2.0)
|
paranoia (~> 2.2.1)
|
||||||
pg (~> 0.19.0)
|
pg (~> 0.20.0)
|
||||||
pg_search
|
pg_search
|
||||||
poltergeist
|
poltergeist (~> 1.14.0)
|
||||||
quiet_assets
|
quiet_assets
|
||||||
rails (= 4.2.7.1)
|
rails (= 4.2.8)
|
||||||
redcarpet
|
redcarpet (~> 3.4.0)
|
||||||
responders (~> 2.3.0)
|
responders (~> 2.3.0)
|
||||||
rinku (~> 2.0.2)
|
rinku (~> 2.0.2)
|
||||||
rollbar (~> 2.14.0)
|
rollbar (~> 2.14.1)
|
||||||
rspec-rails (~> 3.5)
|
rspec-rails (~> 3.5)
|
||||||
rubocop (~> 0.45.0)
|
rubocop (~> 0.47.1)
|
||||||
rvm1-capistrano3
|
rvm1-capistrano3
|
||||||
sass-rails (~> 5.0, >= 5.0.4)
|
sass-rails (~> 5.0, >= 5.0.4)
|
||||||
savon
|
savon
|
||||||
sitemap_generator
|
sitemap_generator (~> 5.3.1)
|
||||||
social-share-button
|
social-share-button (~> 0.10)
|
||||||
spring
|
spring
|
||||||
spring-commands-rspec
|
spring-commands-rspec
|
||||||
sprockets (~> 3.7.1)
|
sprockets (~> 3.7.1)
|
||||||
tolk (~> 2.0.0)
|
tolk (~> 2.0.0)
|
||||||
turbolinks
|
turbolinks
|
||||||
turnout (~> 2.4.0)
|
turnout (~> 2.4.0)
|
||||||
uglifier (>= 3.0.4)
|
uglifier (~> 3.1.9)
|
||||||
unicorn (~> 5.2.0)
|
unicorn (~> 5.2.0)
|
||||||
web-console (= 3.3.0)
|
web-console (= 3.3.0)
|
||||||
whenever
|
whenever
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
1.13.7
|
||||||
|
|||||||
10
README.md
@@ -1,15 +1,19 @@
|
|||||||
![Logo of Consul]
|

|
||||||
(https://raw.githubusercontent.com/consul/consul/master/public/consul_logo.png)
|
|
||||||
|
|
||||||
# Consul
|
# Consul
|
||||||
|
|
||||||
Citizen Participation and Open Government Application
|
Citizen Participation and Open Government Application
|
||||||
|
|
||||||
[](https://gitter.im/consul/consul?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
|
||||||
[](https://travis-ci.org/consul/consul)
|
[](https://travis-ci.org/consul/consul)
|
||||||
[](https://codeclimate.com/github/consul/consul)
|
[](https://codeclimate.com/github/consul/consul)
|
||||||
[](https://gemnasium.com/consul/consul)
|
[](https://gemnasium.com/consul/consul)
|
||||||
[](https://coveralls.io/github/consul/consul?branch=master)
|
[](https://coveralls.io/github/consul/consul?branch=master)
|
||||||
|
[](http://www.gnu.org/licenses/agpl-3.0)
|
||||||
|
|
||||||
|
[](https://www.w3.org/WAI/eval/Overview)
|
||||||
|
[](https://rocketvalidator.com/opensource)
|
||||||
|
|
||||||
|
[](https://gitter.im/consul/consul?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
|
|
||||||
This is the opensource code repository of the eParticipation website originally developed for the Madrid City government eParticipation website
|
This is the opensource code repository of the eParticipation website originally developed for the Madrid City government eParticipation website
|
||||||
|
|
||||||
|
|||||||
11
README_ES.md
@@ -1,15 +1,20 @@
|
|||||||
![Logotipo de Consul]
|

|
||||||
(https://raw.githubusercontent.com/consul/consul/master/public/consul_logo.png)
|
|
||||||
|
|
||||||
# Consul
|
# Consul
|
||||||
|
|
||||||
Aplicación de Participación Ciudadana y Gobierno Abierto
|
Aplicación de Participación Ciudadana y Gobierno Abierto
|
||||||
|
|
||||||
[](https://gitter.im/consul/consul?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
|
||||||
[](https://travis-ci.org/consul/consul)
|
[](https://travis-ci.org/consul/consul)
|
||||||
[](https://codeclimate.com/github/consul/consul)
|
[](https://codeclimate.com/github/consul/consul)
|
||||||
[](https://gemnasium.com/consul/consul)
|
[](https://gemnasium.com/consul/consul)
|
||||||
[](https://coveralls.io/github/consul/consul?branch=master)
|
[](https://coveralls.io/github/consul/consul?branch=master)
|
||||||
|
[](http://www.gnu.org/licenses/agpl-3.0)
|
||||||
|
|
||||||
|
[](https://www.w3.org/WAI/eval/Overview)
|
||||||
|
[](https://rocketvalidator.com/opensource)
|
||||||
|
|
||||||
|
[](https://gitter.im/consul/consul?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
|
|
||||||
|
|
||||||
Este es el repositorio de código abierto de la Aplicación de Participación Ciudadana Consul, creada originariamente por el Ayuntamiento de Madrid.
|
Este es el repositorio de código abierto de la Aplicación de Participación Ciudadana Consul, creada originariamente por el Ayuntamiento de Madrid.
|
||||||
|
|
||||||
|
|||||||
@@ -56,6 +56,9 @@
|
|||||||
<glyph glyph-name="arrow-right" unicode="U" d="M329 256c0-5-2-9-5-13l-128-128c-4-3-8-5-13-5-5 0-9 2-13 5-4 4-5 8-5 13l0 256c0 5 1 9 5 13 4 3 8 5 13 5 5 0 9-2 13-5l128-128c3-4 5-8 5-13z"/>
|
<glyph glyph-name="arrow-right" unicode="U" d="M329 256c0-5-2-9-5-13l-128-128c-4-3-8-5-13-5-5 0-9 2-13 5-4 4-5 8-5 13l0 256c0 5 1 9 5 13 4 3 8 5 13 5 5 0 9-2 13-5l128-128c3-4 5-8 5-13z"/>
|
||||||
<glyph glyph-name="check-circle" unicode="V" d="M256 480c-124 0-224-100-224-224 0-124 100-224 224-224 124 0 224 100 224 224 0 124-100 224-224 224z m115-149l-139-179c-1-1-3-3-5-3-3 0-4 1-5 3-2 1-79 76-79 76l-2 1c0 1-1 2-1 3 0 2 1 3 1 4 1 0 1 0 1 1 8 8 24 24 25 25 1 2 2 3 4 3 3 0 5-2 6-3 1-1 45-43 45-43l111 143c1 0 2 1 4 1 1 0 2 0 3-1l31-24c0-1 1-3 1-4 0-1 0-2-1-3z"/>
|
<glyph glyph-name="check-circle" unicode="V" d="M256 480c-124 0-224-100-224-224 0-124 100-224 224-224 124 0 224 100 224 224 0 124-100 224-224 224z m115-149l-139-179c-1-1-3-3-5-3-3 0-4 1-5 3-2 1-79 76-79 76l-2 1c0 1-1 2-1 3 0 2 1 3 1 4 1 0 1 0 1 1 8 8 24 24 25 25 1 2 2 3 4 3 3 0 5-2 6-3 1-1 45-43 45-43l111 143c1 0 2 1 4 1 1 0 2 0 3-1l31-24c0-1 1-3 1-4 0-1 0-2-1-3z"/>
|
||||||
<glyph glyph-name="arrow-top" unicode="W" d="M402 165c0-5-2-10-5-13-4-4-8-6-13-6l-256 0c-5 0-9 2-13 6-3 3-5 8-5 13 0 5 2 9 5 12l128 128c4 4 8 6 13 6 5 0 9-2 13-6l128-128c3-3 5-7 5-12z"/>
|
<glyph glyph-name="arrow-top" unicode="W" d="M402 165c0-5-2-10-5-13-4-4-8-6-13-6l-256 0c-5 0-9 2-13 6-3 3-5 8-5 13 0 5 2 9 5 12l128 128c4 4 8 6 13 6 5 0 9-2 13-6l128-128c3-3 5-7 5-12z"/>
|
||||||
<glyph glyph-name="help-1" unicode="X" d="M345 435c-27 21-58 28-98 28-29 0-55-6-75-20-30-20-44-54-44-108l77 0c0 14-2 30 7 43 8 13 20 24 40 24 20 0 31-6 41-18 8-11 11-23 11-36 0-12-5-22-12-32-4-5-9-10-15-15 0 0-42-25-56-48-11-18-15-40-16-66 0-2 0-5 7-5 7 0 56 0 62 0 6 0 7 4 7 6 0 9 2 24 3 29 4 11 10 20 20 28l21 14c18 15 33 26 40 36 11 15 19 34 19 57 0 36-13 64-39 83z m-103-293c-26 1-47-17-48-46-1-28 19-46 45-47 27-1 48 17 49 45 1 28-19 47-46 48z"/>
|
|
||||||
<glyph glyph-name="checkmark-circle" unicode="Y" d="M171 296l-29-30 93-93 208 208-29 29-179-178z m251-40c0-92-74-166-166-166-92 0-166 74-166 166 0 92 74 166 166 166 16 0 31-2 46-6l32 32c-24 11-50 16-78 16-114 0-208-94-208-208 0-114 94-208 208-208 114 0 208 94 208 208z"/>
|
<glyph glyph-name="checkmark-circle" unicode="Y" d="M171 296l-29-30 93-93 208 208-29 29-179-178z m251-40c0-92-74-166-166-166-92 0-166 74-166 166 0 92 74 166 166 166 16 0 31-2 46-6l32 32c-24 11-50 16-78 16-114 0-208-94-208-208 0-114 94-208 208-208 114 0 208 94 208 208z"/>
|
||||||
|
<glyph glyph-name="minus-square" unicode="X" d="M357 402c17 0 32-6 45-18 12-13 19-28 19-46l0-201c0-17-7-32-19-45-13-13-28-19-45-19l-202 0c-17 0-32 6-45 19-12 13-19 28-19 45l0 201c0 18 7 33 19 46 13 12 28 18 45 18z m27-265l0 201c0 8-3 14-8 20-5 5-12 8-19 8l-202 0c-7 0-14-3-19-8-5-6-8-12-8-20l0-201c0-7 3-14 8-19 5-6 12-8 19-8l202 0c7 0 14 2 19 8 5 5 8 12 8 19z m-46 119c3 0 5-1 7-3 2-1 2-3 2-6l0-18c0-3 0-5-2-7-2-2-4-3-7-3l-164 0c-3 0-5 1-7 3-2 2-2 4-2 7l0 18c0 3 0 5 2 6 2 2 4 3 7 3z"/>
|
||||||
|
<glyph glyph-name="plus-square" unicode="Z" d="M347 247l0-18c0-3 0-5-2-7-2-2-4-3-7-3l-64 0 0-64c0-2-1-4-2-6-2-2-4-3-7-3l-18 0c-3 0-5 1-7 3-1 2-2 4-2 6l0 64-64 0c-3 0-5 1-7 3-2 2-2 4-2 7l0 18c0 3 0 5 2 6 2 2 4 3 7 3l64 0 0 64c0 3 1 5 2 7 2 1 4 2 7 2l18 0c3 0 5-1 7-2 1-2 2-4 2-7l0-64 64 0c3 0 5-1 7-3 2-1 2-3 2-6z m37-110l0 201c0 8-3 14-8 20-5 5-12 8-19 8l-202 0c-7 0-14-3-19-8-5-6-8-12-8-20l0-201c0-7 3-14 8-19 5-6 12-8 19-8l202 0c7 0 14 2 19 8 5 5 8 12 8 19z m37 201l0-201c0-17-7-32-19-45-13-13-28-19-45-19l-202 0c-17 0-32 6-45 19-12 13-19 28-19 45l0 201c0 18 7 33 19 46 13 12 28 18 45 18l202 0c17 0 32-6 45-18 12-13 19-28 19-46z"/>
|
||||||
|
<glyph glyph-name="expand" unicode="0" d="M26 168l-26-158c0-2 1-5 3-7 0 0 0 0 0 0 2-2 5-3 7-3l158 27c3 0 6 3 7 6 1 3 0 7-3 9l-30 31 82 82c4 4 4 9 0 13l-57 57c-3 3-9 3-12 0l-83-83-31 31c-2 2-5 3-9 2-3-1-5-4-6-7z m460 176l26 158c0 2-1 5-3 7 0 0 0 0 0 0-2 2-5 3-7 3l-158-27c-3 0-6-3-7-6-1-3 0-7 3-9l30-31-82-82c-4-4-4-9 0-13l57-57c3-3 9-3 12 0l83 83 31-31c2-2 5-3 9-2 3 1 5 4 6 7z"/>
|
||||||
|
<glyph glyph-name="telegram" unicode="1" d="M504 509c6-5 9-11 8-18l-73-439c-1-6-4-10-10-13-2-2-5-2-8-2-3 0-5 0-7 1l-130 53-69-84c-3-5-8-7-14-7-2 0-4 0-6 1-4 1-7 4-9 7-2 3-3 6-3 10l0 100 247 303-306-265-113 47c-7 2-10 7-11 15 0 8 3 14 9 17l476 274c2 2 5 3 9 3 4 0 7-1 10-3z"/>
|
||||||
</font></defs></svg>
|
</font></defs></svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 28 KiB |
BIN
app/assets/images/more_info/budgets_en.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
app/assets/images/more_info/budgets_es.png
Normal file
|
After Width: | Height: | Size: 9.6 KiB |
BIN
app/assets/images/more_info/budgets_fr.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
app/assets/images/more_info/budgets_pt-BR.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
app/assets/images/more_info/debates.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
app/assets/images/more_info/proposals_en.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
app/assets/images/more_info/proposals_es.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
app/assets/images/more_info/proposals_fr.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
app/assets/images/more_info/proposals_pt-BR.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
@@ -12,8 +12,8 @@
|
|||||||
//
|
//
|
||||||
//= require jquery
|
//= require jquery
|
||||||
//= require jquery_ujs
|
//= require jquery_ujs
|
||||||
//= require jquery-ui/datepicker
|
//= require jquery-ui/widgets/datepicker
|
||||||
//= require jquery-ui/datepicker-es
|
//= require jquery-ui/i18n/datepicker-es
|
||||||
//= require foundation
|
//= require foundation
|
||||||
//= require turbolinks
|
//= require turbolinks
|
||||||
//= require ckeditor/loader
|
//= require ckeditor/loader
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
@import "admin";
|
@import "admin";
|
||||||
@import "layout";
|
@import "layout";
|
||||||
@import "participation";
|
@import "participation";
|
||||||
|
@import "pages";
|
||||||
@import "custom";
|
@import "custom";
|
||||||
@import "c3";
|
@import "c3";
|
||||||
@import "annotator.min";
|
@import "annotator.min";
|
||||||
|
|||||||
@@ -190,3 +190,6 @@
|
|||||||
.icon-checkmark-circle:before {
|
.icon-checkmark-circle:before {
|
||||||
content: "\59";
|
content: "\59";
|
||||||
}
|
}
|
||||||
|
.icon-telegram:before {
|
||||||
|
content: "\31";
|
||||||
|
}
|
||||||
|
|||||||
@@ -70,6 +70,11 @@ a {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.button.hollow {
|
||||||
|
border: 1px solid $link;
|
||||||
|
color: $link;
|
||||||
|
}
|
||||||
|
|
||||||
.postfix.button {
|
.postfix.button {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
@@ -1128,11 +1133,12 @@ img.avatar, img.admin-avatar, img.moderator-avatar, img.initialjs-avatar {
|
|||||||
// --------------------
|
// --------------------
|
||||||
|
|
||||||
[class^="level-"] {
|
[class^="level-"] {
|
||||||
color: white;
|
color: black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.is-author {
|
.is-author {
|
||||||
background: #008CCF;
|
background: #00A5F1;
|
||||||
|
color: black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.is-association {
|
.is-association {
|
||||||
@@ -1190,7 +1196,11 @@ table {
|
|||||||
|
|
||||||
.button.button-twitter,
|
.button.button-twitter,
|
||||||
.button.button-facebook,
|
.button.button-facebook,
|
||||||
.button.button-google {
|
.button.button-google,
|
||||||
|
.button.button-telegram {
|
||||||
|
background: white;
|
||||||
|
color: $text;
|
||||||
|
font-weight: bold;
|
||||||
height: $line-height*2;
|
height: $line-height*2;
|
||||||
line-height: $line-height*2;
|
line-height: $line-height*2;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@@ -1198,9 +1208,11 @@ table {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.button.button-twitter {
|
.button.button-twitter {
|
||||||
background: #45B0E3;
|
background: #ECF7FC;
|
||||||
|
border-left: 3px solid #45B0E3;
|
||||||
|
|
||||||
&:before {
|
&:before {
|
||||||
|
color: #45B0E3;
|
||||||
content: "f";
|
content: "f";
|
||||||
font-family: "icons" !important;
|
font-family: "icons" !important;
|
||||||
font-size: rem-calc(24);
|
font-size: rem-calc(24);
|
||||||
@@ -1238,9 +1250,11 @@ table {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.button.button-facebook {
|
.button.button-facebook {
|
||||||
background: #3B5998;
|
background: #EBEEF4;
|
||||||
|
border-left: 3px solid #3B5998;
|
||||||
|
|
||||||
&:before {
|
&:before {
|
||||||
|
color: #3B5998;
|
||||||
content: "A";
|
content: "A";
|
||||||
font-family: "icons" !important;
|
font-family: "icons" !important;
|
||||||
font-size: rem-calc(24);
|
font-size: rem-calc(24);
|
||||||
@@ -1278,9 +1292,11 @@ table {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.button.button-google {
|
.button.button-google {
|
||||||
background: #DE4C34;
|
background: #FCEDEA;
|
||||||
|
border-left: 3px solid #DE4C34;
|
||||||
|
|
||||||
&:before {
|
&:before {
|
||||||
|
color: #DE4C34;
|
||||||
content: "B";
|
content: "B";
|
||||||
font-family: "icons" !important;
|
font-family: "icons" !important;
|
||||||
font-size: rem-calc(24);
|
font-size: rem-calc(24);
|
||||||
@@ -1317,6 +1333,48 @@ table {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.button.button-telegram {
|
||||||
|
background: #ECF7FC;
|
||||||
|
border-left: 3px solid #0088cc;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
color: #0088cc;
|
||||||
|
content: "1";
|
||||||
|
font-family: "icons" !important;
|
||||||
|
font-size: rem-calc(24);
|
||||||
|
left: 0;
|
||||||
|
line-height: $line-height*2;
|
||||||
|
padding: 0 rem-calc(20);
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ssb-telegram {
|
||||||
|
background: #0088cc;
|
||||||
|
background-image: none !important;
|
||||||
|
color: white;
|
||||||
|
height: $line-height*2 !important;
|
||||||
|
position: relative;
|
||||||
|
width: $line-height*2 !important;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: "1";
|
||||||
|
font-family: "icons" !important;
|
||||||
|
font-size: rem-calc(24);
|
||||||
|
left: 50%;
|
||||||
|
line-height: $line-height*2;
|
||||||
|
margin-left: rem-calc(-11);
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover, &:focus {
|
||||||
|
background: white;
|
||||||
|
color: #40A2D1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.social {
|
.social {
|
||||||
|
|
||||||
a {
|
a {
|
||||||
@@ -1408,6 +1466,30 @@ table {
|
|||||||
color: #CE3E26;
|
color: #CE3E26;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ssb-telegram {
|
||||||
|
background: #0088cc;
|
||||||
|
color: white;
|
||||||
|
height: $line-height;
|
||||||
|
position: relative;
|
||||||
|
width: $line-height*2;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: "A";
|
||||||
|
font-family: "icons" !important;
|
||||||
|
font-size: rem-calc(24);
|
||||||
|
left: 50%;
|
||||||
|
line-height: $line-height*2;
|
||||||
|
margin-left: rem-calc(-11);
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover, &:focus {
|
||||||
|
background: white;
|
||||||
|
color: #40A2D1;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 13. Pages
|
// 13. Pages
|
||||||
|
|||||||
111
app/assets/stylesheets/pages.scss
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
// Table of Contents
|
||||||
|
//
|
||||||
|
// 01. Header
|
||||||
|
// 02. Navigation
|
||||||
|
// 03. Content
|
||||||
|
// 04. Sidebar
|
||||||
|
//
|
||||||
|
|
||||||
|
// 01. Header
|
||||||
|
// ----------------------
|
||||||
|
|
||||||
|
.jumbo {
|
||||||
|
margin-bottom: $line-height;
|
||||||
|
margin-top: rem-calc(-24);
|
||||||
|
padding-bottom: $line-height;
|
||||||
|
padding-top: $line-height;
|
||||||
|
|
||||||
|
&.light {
|
||||||
|
background: #ECF0F1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lead {
|
||||||
|
font-size: rem-calc(24);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 03. Navigation
|
||||||
|
// ----------------------
|
||||||
|
|
||||||
|
.menu-pages {
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
li {
|
||||||
|
display: block;
|
||||||
|
|
||||||
|
@include breakpoint(medium) {
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: $line-height/2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 03. Content
|
||||||
|
// ----------------------
|
||||||
|
|
||||||
|
.more-info-content {
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
color: $brand;
|
||||||
|
}
|
||||||
|
|
||||||
|
.additional-info {
|
||||||
|
margin-bottom: $line-height;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:not(.button) {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure {
|
||||||
|
margin: 0;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
figcaption {
|
||||||
|
font-size: $small-font-size;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.features {
|
||||||
|
list-style-type: circle;
|
||||||
|
margin-left: $line-height;
|
||||||
|
|
||||||
|
@include breakpoint(medium) {
|
||||||
|
margin: $line-height 0 $line-height $line-height*2.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin-bottom: $line-height
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-content {
|
||||||
|
border-top: 1px solid $medium-gray;
|
||||||
|
padding-bottom: $line-height*2;
|
||||||
|
padding-top: $line-height*2;
|
||||||
|
|
||||||
|
&:first-child {
|
||||||
|
border-top: 0;
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 04. Sidebar
|
||||||
|
// ----------------------
|
||||||
|
|
||||||
|
.more-info-sidebar {
|
||||||
|
|
||||||
|
.sidebar-card {
|
||||||
|
border: 1px solid $border;
|
||||||
|
margin-bottom: $line-height;
|
||||||
|
padding: $line-height/2;
|
||||||
|
|
||||||
|
&.light {
|
||||||
|
background: #ECF0F1;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -457,7 +457,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.bullet {
|
.bullet {
|
||||||
color: $border;
|
color: $text;
|
||||||
}
|
}
|
||||||
|
|
||||||
.investment-project-show p, .budget-investment-show p {
|
.investment-project-show p, .budget-investment-show p {
|
||||||
@@ -976,6 +976,10 @@
|
|||||||
&.social-share-button-google_plus:hover {
|
&.social-share-button-google_plus:hover {
|
||||||
color: #CE3E26;
|
color: #CE3E26;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.social-share-button-telegram:hover {
|
||||||
|
color: #CE3E26;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ module Budgets
|
|||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
investment.destroy
|
@investment.destroy
|
||||||
redirect_to user_path(current_user, filter: 'budget_investments'), notice: t('flash.actions.destroy.budget_investment')
|
redirect_to user_path(current_user, filter: 'budget_investments'), notice: t('flash.actions.destroy.budget_investment')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -129,16 +129,16 @@ module CommentableActions
|
|||||||
when '4'
|
when '4'
|
||||||
1.year.ago
|
1.year.ago
|
||||||
else
|
else
|
||||||
Date.parse(params[:advanced_search][:date_min]) rescue nil
|
Date.parse(params[:advanced_search][:date_min]) rescue 100.years.ago
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def search_finish_date
|
def search_finish_date
|
||||||
params[:advanced_search][:date_max].try(:to_date) || Date.today
|
(params[:advanced_search][:date_max].to_date rescue Date.today) || Date.today
|
||||||
end
|
end
|
||||||
|
|
||||||
def search_date_range
|
def search_date_range
|
||||||
search_start_date.beginning_of_day..search_finish_date.end_of_day
|
[100.years.ago, search_start_date].max.beginning_of_day..[search_finish_date, Date.today].min.end_of_day
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_search_order
|
def set_search_order
|
||||||
|
|||||||
@@ -7,6 +7,11 @@ class Management::BudgetsController < Management::BaseController
|
|||||||
|
|
||||||
def create_investments
|
def create_investments
|
||||||
@budgets = Budget.accepting.order(created_at: :desc).page(params[:page])
|
@budgets = Budget.accepting.order(created_at: :desc).page(params[:page])
|
||||||
|
|
||||||
|
if current_manager_administrator?
|
||||||
|
@budgets += Budget.reviewing.order(created_at: :desc) +
|
||||||
|
Budget.selecting.order(created_at: :desc)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def support_investments
|
def support_investments
|
||||||
@@ -23,4 +28,8 @@ class Management::BudgetsController < Management::BaseController
|
|||||||
check_verified_user t("management.budget_investments.alert.unverified_user")
|
check_verified_user t("management.budget_investments.alert.unverified_user")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def current_manager_administrator?
|
||||||
|
session[:manager]["login"].match("admin")
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ class Management::UsersController < Management::BaseController
|
|||||||
private
|
private
|
||||||
|
|
||||||
def user_params
|
def user_params
|
||||||
params.require(:user).permit(:document_type, :document_number, :username, :email)
|
params.require(:user).permit(:document_type, :document_number, :username, :email, :date_of_birth)
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy_session
|
def destroy_session
|
||||||
|
|||||||
@@ -38,4 +38,8 @@ module BudgetsHelper
|
|||||||
def current_ballot
|
def current_ballot
|
||||||
Budget::Ballot.where(user: current_user, budget: @budget).first
|
Budget::Ballot.where(user: current_user, budget: @budget).first
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def investment_tags_select_options
|
||||||
|
Budget::Investment.tags_on(:valuation).order(:name).select(:name).distinct
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ module EmbedVideosHelper
|
|||||||
|
|
||||||
def embedded_video_code
|
def embedded_video_code
|
||||||
link = @proposal.video_url
|
link = @proposal.video_url
|
||||||
|
title = t('proposals.show.embed_video_title', proposal: @proposal.title)
|
||||||
if link.match(/vimeo.*/)
|
if link.match(/vimeo.*/)
|
||||||
server = "Vimeo"
|
server = "Vimeo"
|
||||||
elsif link.match(/youtu*.*/)
|
elsif link.match(/youtu*.*/)
|
||||||
@@ -21,7 +22,7 @@ module EmbedVideosHelper
|
|||||||
end
|
end
|
||||||
|
|
||||||
if match and match[2]
|
if match and match[2]
|
||||||
'<iframe src="' + src + match[2] + '" frameborder="0" allowfullscreen></iframe>'
|
'<iframe src="' + src + match[2] + '" style="border:0;" allowfullscreen title="' + title + '"></iframe>'
|
||||||
else
|
else
|
||||||
''
|
''
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ module SignatureSheetsHelper
|
|||||||
|
|
||||||
def signable_options
|
def signable_options
|
||||||
[[t("activerecord.models.proposal", count: 1), Proposal],
|
[[t("activerecord.models.proposal", count: 1), Proposal],
|
||||||
[t("activerecord.models.spending_proposal", count: 1), SpendingProposal]]
|
[t("activerecord.models.budget/investment", count: 1), Budget::Investment]]
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -46,6 +46,7 @@ module Abilities
|
|||||||
can :create, SpendingProposal
|
can :create, SpendingProposal
|
||||||
|
|
||||||
can :create, Budget::Investment, budget: { phase: "accepting" }
|
can :create, Budget::Investment, budget: { phase: "accepting" }
|
||||||
|
can :destroy, Budget::Investment, budget: { phase: ["accepting", "reviewing"] }, author_id: user.id
|
||||||
can :vote, Budget::Investment, budget: { phase: "selecting" }
|
can :vote, Budget::Investment, budget: { phase: "selecting" }
|
||||||
can [:show, :create], Budget::Ballot, budget: { phase: "balloting" }
|
can [:show, :create], Budget::Ballot, budget: { phase: "balloting" }
|
||||||
can [:create, :destroy], Budget::Ballot::Line, budget: { phase: "balloting" }
|
can [:create, :destroy], Budget::Ballot::Line, budget: { phase: "balloting" }
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ class Budget
|
|||||||
validates :description, presence: true
|
validates :description, presence: true
|
||||||
validates :heading_id, presence: true
|
validates :heading_id, presence: true
|
||||||
validates_presence_of :unfeasibility_explanation, if: :unfeasibility_explanation_required?
|
validates_presence_of :unfeasibility_explanation, if: :unfeasibility_explanation_required?
|
||||||
|
validates_presence_of :price, if: :price_required?
|
||||||
|
|
||||||
validates :title, length: { in: 4..Budget::Investment.title_max_length }
|
validates :title, length: { in: 4..Budget::Investment.title_max_length }
|
||||||
validates :description, length: { maximum: Budget::Investment.description_max_length }
|
validates :description, length: { maximum: Budget::Investment.description_max_length }
|
||||||
@@ -136,6 +137,10 @@ class Budget
|
|||||||
unfeasible? && valuation_finished?
|
unfeasible? && valuation_finished?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def price_required?
|
||||||
|
feasible? && valuation_finished?
|
||||||
|
end
|
||||||
|
|
||||||
def unfeasible_email_pending?
|
def unfeasible_email_pending?
|
||||||
unfeasible_email_sent_at.blank? && unfeasible? && valuation_finished?
|
unfeasible_email_sent_at.blank? && unfeasible? && valuation_finished?
|
||||||
end
|
end
|
||||||
@@ -225,7 +230,7 @@ class Budget
|
|||||||
def should_show_aside?
|
def should_show_aside?
|
||||||
(budget.selecting? && !unfeasible?) ||
|
(budget.selecting? && !unfeasible?) ||
|
||||||
(budget.balloting? && feasible?) ||
|
(budget.balloting? && feasible?) ||
|
||||||
(budget.valuating? && feasible?)
|
(budget.valuating? && !unfeasible?)
|
||||||
end
|
end
|
||||||
|
|
||||||
def should_show_votes?
|
def should_show_votes?
|
||||||
@@ -259,7 +264,7 @@ class Budget
|
|||||||
private
|
private
|
||||||
|
|
||||||
def set_denormalized_ids
|
def set_denormalized_ids
|
||||||
self.group_id ||= self.heading.try(:group_id)
|
self.group_id = self.heading.try(:group_id) if self.heading_id_changed?
|
||||||
self.budget_id ||= self.heading.try(:group).try(:budget_id)
|
self.budget_id ||= self.heading.try(:group).try(:budget_id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -12,35 +12,30 @@ class Signature < ActiveRecord::Base
|
|||||||
|
|
||||||
before_validation :clean_document_number
|
before_validation :clean_document_number
|
||||||
|
|
||||||
def verified?
|
|
||||||
user_exists? || in_census?
|
|
||||||
end
|
|
||||||
|
|
||||||
def verify
|
def verify
|
||||||
if verified?
|
|
||||||
assign_vote
|
|
||||||
mark_as_verified
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def assign_vote
|
|
||||||
if user_exists?
|
if user_exists?
|
||||||
assign_vote_to_user
|
assign_vote_to_user
|
||||||
else
|
mark_as_verified
|
||||||
|
elsif in_census?
|
||||||
create_user
|
create_user
|
||||||
assign_vote_to_user
|
assign_vote_to_user
|
||||||
|
mark_as_verified
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def assign_vote_to_user
|
def assign_vote_to_user
|
||||||
set_user
|
set_user
|
||||||
signable.register_vote(user, "yes")
|
if signable.is_a? Budget::Investment
|
||||||
|
signable.vote_by(voter: user, vote: 'yes') if [nil, :no_selecting_allowed].include?(signable.reason_for_not_being_selectable_by(user))
|
||||||
|
else
|
||||||
|
signable.register_vote(user, "yes")
|
||||||
|
end
|
||||||
assign_signature_to_vote
|
assign_signature_to_vote
|
||||||
end
|
end
|
||||||
|
|
||||||
def assign_signature_to_vote
|
def assign_signature_to_vote
|
||||||
vote = Vote.where(votable: signable, voter: user).first
|
vote = Vote.where(votable: signable, voter: user).first
|
||||||
vote.update(signature: self)
|
vote.update(signature: self) if vote
|
||||||
end
|
end
|
||||||
|
|
||||||
def user_exists?
|
def user_exists?
|
||||||
@@ -55,7 +50,10 @@ class Signature < ActiveRecord::Base
|
|||||||
erased_at: Time.current,
|
erased_at: Time.current,
|
||||||
password: random_password,
|
password: random_password,
|
||||||
terms_of_service: '1',
|
terms_of_service: '1',
|
||||||
email: nil
|
email: nil,
|
||||||
|
date_of_birth: @census_api_response.date_of_birth,
|
||||||
|
gender: @census_api_response.gender,
|
||||||
|
geozone: Geozone.where(census_code: @census_api_response.district_code).first
|
||||||
}
|
}
|
||||||
User.create!(user_params)
|
User.create!(user_params)
|
||||||
end
|
end
|
||||||
@@ -70,10 +68,17 @@ class Signature < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def in_census?
|
def in_census?
|
||||||
response = document_types.detect do |document_type|
|
document_types.detect do |document_type|
|
||||||
CensusApi.new.call(document_type, document_number).valid?
|
response = CensusApi.new.call(document_type, document_number)
|
||||||
|
if response.valid?
|
||||||
|
@census_api_response = response
|
||||||
|
true
|
||||||
|
else
|
||||||
|
false
|
||||||
|
end
|
||||||
end
|
end
|
||||||
response.present?
|
|
||||||
|
@census_api_response.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_user
|
def set_user
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ class SignatureSheet < ActiveRecord::Base
|
|||||||
belongs_to :signable, polymorphic: true
|
belongs_to :signable, polymorphic: true
|
||||||
belongs_to :author, class_name: 'User', foreign_key: 'author_id'
|
belongs_to :author, class_name: 'User', foreign_key: 'author_id'
|
||||||
|
|
||||||
VALID_SIGNABLES = %w( Proposal SpendingProposal )
|
VALID_SIGNABLES = %w( Proposal Budget::Investment SpendingProposal )
|
||||||
|
|
||||||
has_many :signatures
|
has_many :signatures
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
<div class="small-12 medium-3 column">
|
<div class="small-12 medium-3 column">
|
||||||
<%= select_tag :tag_name,
|
<%= select_tag :tag_name,
|
||||||
options_for_select(spending_proposal_tags_select_options, params[:tag_name]),
|
options_for_select(investment_tags_select_options, params[:tag_name]),
|
||||||
{ prompt: t("admin.budget_investments.index.tags_filter_all"),
|
{ prompt: t("admin.budget_investments.index.tags_filter_all"),
|
||||||
label: false,
|
label: false,
|
||||||
class: "js-submit-on-change" } %>
|
class: "js-submit-on-change" } %>
|
||||||
|
|||||||
@@ -7,23 +7,24 @@
|
|||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<% if headings.blank? %>
|
<% if headings.blank? %>
|
||||||
<tbody>
|
</thead>
|
||||||
<tr>
|
<tbody>
|
||||||
<td colspan="3">
|
<tr>
|
||||||
<div class="callout primary">
|
<td colspan="3">
|
||||||
<%= t("admin.budgets.form.no_heading") %>
|
<div class="callout primary">
|
||||||
</div>
|
<%= t("admin.budgets.form.no_heading") %>
|
||||||
</td>
|
</div>
|
||||||
</tr>
|
</td>
|
||||||
<% else %>
|
</tr>
|
||||||
<tr>
|
<% else %>
|
||||||
<th><%= t("admin.budgets.form.table_heading") %></th>
|
<tr>
|
||||||
<th><%= t("admin.budgets.form.table_amount") %></th>
|
<th><%= t("admin.budgets.form.table_heading") %></th>
|
||||||
</tr>
|
<th><%= t("admin.budgets.form.table_amount") %></th>
|
||||||
</thead>
|
</tr>
|
||||||
<tbody>
|
</thead>
|
||||||
<% end %>
|
<tbody>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<!-- new heading form -->
|
<!-- new heading form -->
|
||||||
<tr id="group-<%= group.id %>-new-heading-form" style="display:none">
|
<tr id="group-<%= group.id %>-new-heading-form" style="display:none">
|
||||||
@@ -52,16 +53,15 @@
|
|||||||
<!-- /. new heading form -->
|
<!-- /. new heading form -->
|
||||||
<!-- headings list -->
|
<!-- headings list -->
|
||||||
<% headings.each do |heading| %>
|
<% headings.each do |heading| %>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<%= heading.name %>
|
<%= heading.name %>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<%= heading.price %>
|
<%= heading.price %>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
<!-- /. headings list -->
|
<!-- /. headings list -->
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
|
||||||
|
|||||||
@@ -10,8 +10,10 @@
|
|||||||
<div class="small-12 medium-9 column">
|
<div class="small-12 medium-9 column">
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<th><%= Budget.human_attribute_name(:name) %></th>
|
<tr>
|
||||||
<th><%= Budget.human_attribute_name(:phase) %></th>
|
<th scope="col"><%= Budget.human_attribute_name(:name) %></th>
|
||||||
|
<th scope="col"><%= Budget.human_attribute_name(:phase) %></th>
|
||||||
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<% @budgets.each do |budget| %>
|
<% @budgets.each do |budget| %>
|
||||||
|
|||||||
@@ -103,8 +103,9 @@
|
|||||||
<div class="social-share-full">
|
<div class="social-share-full">
|
||||||
<%= social_share_button_tag("#{investment.title} #{setting['twitter_hashtag']}") %>
|
<%= social_share_button_tag("#{investment.title} #{setting['twitter_hashtag']}") %>
|
||||||
<% if browser.device.mobile? %>
|
<% if browser.device.mobile? %>
|
||||||
<a href="whatsapp://send?text=<%= investment.title %> <%= budget_investment_url(budget_id: investment.budget_id, id: investment.id) %>" data-action="share/whatsapp/share">
|
<a href="whatsapp://send?text=<%= investment.title.gsub(/\s/, ' ') %> <%= budget_investment_url(budget_id: investment.budget_id, id: investment.id) %>" data-action="share/whatsapp/share">
|
||||||
<span class="icon-whatsapp whatsapp"></span>
|
<span class="icon-whatsapp whatsapp"></span>
|
||||||
|
<span class="sr-only"><%= t("social.whatsapp") %></span>
|
||||||
</a>
|
</a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<div data-alert class="callout primary">
|
<div data-alert class="callout primary">
|
||||||
<%= t("debates.new.info",
|
<%= t("debates.new.info",
|
||||||
info_link: link_to(t("debates.new.info_link"), new_proposal_path )).html_safe %>
|
info_link: link_to(t("debates.new.info_link"), new_proposal_path )).html_safe %>
|
||||||
<%= link_to "/more_information", title: t('shared.target_blank_html'), target: "_blank" do %>
|
<%= link_to more_info_path, title: t('shared.target_blank_html'), target: "_blank" do %>
|
||||||
<strong><%= t("debates.new.more_info") %></strong>
|
<strong><%= t("debates.new.more_info") %></strong>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -53,8 +53,9 @@
|
|||||||
<div class="social-share-full">
|
<div class="social-share-full">
|
||||||
<%= social_share_button_tag("#{@debate.title} #{setting['twitter_hashtag']}") %>
|
<%= social_share_button_tag("#{@debate.title} #{setting['twitter_hashtag']}") %>
|
||||||
<% if browser.device.mobile? %>
|
<% if browser.device.mobile? %>
|
||||||
<a href="whatsapp://send?text=<%= @debate.title %> <%= debate_url(@debate) %>" data-action="share/whatsapp/share">
|
<a href="whatsapp://send?text=<%= @debate.title.gsub(/\s/, ' ') %> <%= debate_url(@debate) %>" data-action="share/whatsapp/share">
|
||||||
<span class="icon-whatsapp whatsapp"></span>
|
<span class="icon-whatsapp whatsapp"></span>
|
||||||
|
<span class="sr-only"><%= t("social.whatsapp") %></span>
|
||||||
</a>
|
</a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
<%= f.submit(t("devise_views.confirmations.new.submit"), class: "button expanded") %>
|
<%= f.submit(t("devise_views.confirmations.new.submit"), class: "button expanded") %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= render "devise/shared/links" %>
|
<%= render "devise/shared/links" %>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<% if user_signed_in? %>
|
<% if user_signed_in? %>
|
||||||
<li>
|
<li>
|
||||||
<%= link_to notifications_path, class: "notifications", accesskey: "n" do %>
|
<%= link_to notifications_path, class: "notifications" do %>
|
||||||
<span class="sr-only"><%= t("layouts.header.notifications") %></span>
|
<span class="sr-only"><%= t("layouts.header.notifications") %></span>
|
||||||
<% if current_user.notifications_count > 0 %>
|
<% if current_user.notifications_count > 0 %>
|
||||||
<span class="icon-circle" aria-hidden="true"></span>
|
<span class="icon-circle" aria-hidden="true"></span>
|
||||||
@@ -12,19 +12,19 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<%= link_to(t("layouts.header.my_activity_link"), user_path(current_user), accesskey: "a") %>
|
<%= link_to t("layouts.header.my_activity_link"), user_path(current_user) %>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<%= link_to(t("layouts.header.my_account_link"), account_path, accesskey: "m") %>
|
<%= link_to t("layouts.header.my_account_link"), account_path %>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<%= link_to(t("devise_views.menu.login_items.logout"), destroy_user_session_path, method: :delete) %>
|
<%= link_to t("devise_views.menu.login_items.logout"), destroy_user_session_path, method: :delete %>
|
||||||
</li>
|
</li>
|
||||||
<% else %>
|
<% else %>
|
||||||
<li>
|
<li>
|
||||||
<%= link_to(t("devise_views.menu.login_items.login"), new_user_session_path) %>
|
<%= link_to t("devise_views.menu.login_items.login"), new_user_session_path %>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<%= link_to(t("devise_views.menu.login_items.signup"), new_user_registration_path, class: "button") %>
|
<%= link_to t("devise_views.menu.login_items.signup"), new_user_registration_path, class: "button" %>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
<%= f.submit t("devise_views.passwords.new.send_submit"), class: "button expanded" %>
|
<%= f.submit t("devise_views.passwords.new.send_submit"), class: "button expanded" %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= render "devise/shared/links" %>
|
<%= render "devise/shared/links" %>
|
||||||
|
|||||||
@@ -11,18 +11,18 @@
|
|||||||
<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
|
<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="small-12 column">
|
<div class="small-12 column">
|
||||||
<%= f.email_field :email, autofocus: true, placeholder: t("devise_views.sessions.new.email_label"), tabindex: "1" %>
|
<%= f.email_field :email, autofocus: true, placeholder: t("devise_views.sessions.new.email_label") %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="small-12 column">
|
<div class="small-12 column">
|
||||||
<%= link_to t("devise_views.shared.links.new_password"), new_password_path(resource_name), class: "float-right", tabindex: "3" %>
|
<%= f.password_field :password, autocomplete: "off", placeholder: t("devise_views.sessions.new.password_label") %>
|
||||||
<%= f.password_field :password, autocomplete: "off", placeholder: t("devise_views.sessions.new.password_label"), tabindex: "2" %>
|
<%= link_to t("devise_views.shared.links.new_password"), new_password_path(resource_name), class: "float-right" %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<% if devise_mapping.rememberable? -%>
|
<% if devise_mapping.rememberable? -%>
|
||||||
<div class="small-12 column">
|
<div class="small-12 column">
|
||||||
<%= f.label :remember_me do %>
|
<%= f.label :remember_me do %>
|
||||||
<%= f.check_box :remember_me, title: t('devise_views.sessions.new.remember_me'), label: false, tabindex: "4" %>
|
<%= f.check_box :remember_me, title: t('devise_views.sessions.new.remember_me'), label: false %>
|
||||||
<span class="checkbox"><%= t("devise_views.sessions.new.remember_me") %></span>
|
<span class="checkbox"><%= t("devise_views.sessions.new.remember_me") %></span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
@@ -35,5 +35,3 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= render "devise/shared/links" %>
|
<%= render "devise/shared/links" %>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,6 @@
|
|||||||
<div class="small-12 medium-8 column">
|
<div class="small-12 medium-8 column">
|
||||||
<%= t("layouts.footer.copyright", year: Time.current.year) %> |
|
<%= t("layouts.footer.copyright", year: Time.current.year) %> |
|
||||||
<ul class="no-bullet inline-block">
|
<ul class="no-bullet inline-block">
|
||||||
<li class="inline-block"><%= link_to t("layouts.footer.more_info"), page_path('more_information') %> |</li>
|
|
||||||
<li class="inline-block"><%= link_to t("layouts.footer.privacy"), page_path('privacy') %> |</li>
|
<li class="inline-block"><%= link_to t("layouts.footer.privacy"), page_path('privacy') %> |</li>
|
||||||
<li class="inline-block"><%= link_to t("layouts.footer.conditions"), page_path('conditions') %> |</li>
|
<li class="inline-block"><%= link_to t("layouts.footer.conditions"), page_path('conditions') %> |</li>
|
||||||
<li class="inline-block"><%= link_to t("layouts.footer.accessibility"), page_path('accessibility') %></li>
|
<li class="inline-block"><%= link_to t("layouts.footer.accessibility"), page_path('accessibility') %></li>
|
||||||
@@ -85,6 +84,14 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% if setting['telegram_handle'] %>
|
||||||
|
<li class="inline-block">
|
||||||
|
<%= link_to "https://www.telegram.me/#{setting['telegram_handle']}", target: "_blank", title: t("social.telegram") + t('shared.target_blank_html') do %>
|
||||||
|
<span class="sr-only"><%= t("social.telegram") %></span>
|
||||||
|
<span class="icon-telegram" aria-hidden="true"></span>
|
||||||
|
<% end %>
|
||||||
|
</li>
|
||||||
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
<div id="responsive-menu">
|
<div id="responsive-menu">
|
||||||
<div class="top-bar-title">
|
<div class="top-bar-title">
|
||||||
<%= link_to root_path, class: "hide-for-small-only", accesskey: "/" do %>
|
<%= link_to root_path, class: "hide-for-small-only", accesskey: "0" do %>
|
||||||
<%= image_tag('logo_header.png', class: 'hide-for-small-only float-left', size: '80x80', alt: t("layouts.header.logo")) %>
|
<%= image_tag('logo_header.png', class: 'hide-for-small-only float-left', size: '80x80', alt: t("layouts.header.logo")) %>
|
||||||
<%= setting['org_name'] %>
|
<%= setting['org_name'] %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -20,9 +20,11 @@
|
|||||||
type: "image/png" %>
|
type: "image/png" %>
|
||||||
<%= content_for :social_media_meta_tags %>
|
<%= content_for :social_media_meta_tags %>
|
||||||
|
|
||||||
<%= setting['per_page_code'].try(:html_safe) %>
|
<%= setting['per_page_code_head'].try(:html_safe) %>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<%= setting['per_page_code_body'].try(:html_safe) %>
|
||||||
|
|
||||||
<h1 class="sr-only"><%= setting['org_name'] %></h1>
|
<h1 class="sr-only"><%= setting['org_name'] %></h1>
|
||||||
|
|
||||||
<div class="wrapper <%= yield (:wrapper_class) %>">
|
<div class="wrapper <%= yield (:wrapper_class) %>">
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
message: t("management.document_verifications.in_census_has_following_permissions"),
|
message: t("management.document_verifications.in_census_has_following_permissions"),
|
||||||
permissions: [:debates, :create_proposals, :support_proposals, :vote_proposals] %>
|
permissions: [:debates, :create_proposals, :support_proposals, :vote_proposals] %>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row verification account">
|
||||||
<div class="small-12 medium-6 column">
|
<div class="small-12 medium-6 column">
|
||||||
<%= form_for @user, url: management_users_path do |f| %>
|
<%= form_for @user, url: management_users_path do |f| %>
|
||||||
<%= f.hidden_field :document_type %>
|
<%= f.hidden_field :document_type %>
|
||||||
@@ -15,7 +15,13 @@
|
|||||||
<%= f.text_field :email,
|
<%= f.text_field :email,
|
||||||
label: t('management.email_label'),
|
label: t('management.email_label'),
|
||||||
placeholder: t('management.email_label') %>
|
placeholder: t('management.email_label') %>
|
||||||
|
<div class="date-of-birth">
|
||||||
|
<%= f.label t("management.date_of_birth") %>
|
||||||
|
<%= f.date_select :date_of_birth,
|
||||||
|
prompt: true,
|
||||||
|
start_year: 1900, end_year: 16.years.ago.year,
|
||||||
|
label: false %>
|
||||||
|
</div>
|
||||||
<%= f.submit t("management.users.create_user_submit"), class: "button success" %>
|
<%= f.submit t("management.users.create_user_submit"), class: "button success" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -19,45 +19,34 @@
|
|||||||
|
|
||||||
<div class="small-12 medium-6">
|
<div class="small-12 medium-6">
|
||||||
<table>
|
<table>
|
||||||
|
<caption class="sr-only">Atajos de teclado para el menú de navegación</caption>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="text-center">Tecla</th>
|
<th scope="col" class="text-center">Tecla</th>
|
||||||
<th>Página</th>
|
<th scope="col">Página</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-center">/</td>
|
<td class="text-center">0</td>
|
||||||
<td>Inicio</td>
|
<td>Inicio</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-center">D</td>
|
<td class="text-center">1</td>
|
||||||
<td>Debates</td>
|
<td>Debates</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-center">P</td>
|
<td class="text-center">2</td>
|
||||||
<td>Propuestas</td>
|
<td>Propuestas</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-center">S</td>
|
<td class="text-center">3</td>
|
||||||
|
<td>Votaciones</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="text-center">4</td>
|
||||||
<td>Presupuestos participativos</td>
|
<td>Presupuestos participativos</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td class="text-center">I</td>
|
|
||||||
<td>Más información</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">N</td>
|
|
||||||
<td>Notificaciones</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">A</td>
|
|
||||||
<td>Mi actividad</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">M</td>
|
|
||||||
<td>Mi cuenta</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@@ -66,10 +55,11 @@
|
|||||||
|
|
||||||
<div class="small-12 medium-6">
|
<div class="small-12 medium-6">
|
||||||
<table>
|
<table>
|
||||||
|
<caption class="sr-only">Combinación de teclas dependiendo del sistema operativo y navegador</caption>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Navegador</th>
|
<th scope="col">Navegador</th>
|
||||||
<th>Combinación de teclas</th>
|
<th scope="col">Combinación de teclas</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@@ -104,8 +94,8 @@
|
|||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Navegador</th>
|
<th scope="col">Navegador</th>
|
||||||
<th>Acción a realizar </th>
|
<th scope="col">Acción a realizar </th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
<div class="row margin-top">
|
|
||||||
<div class="small-12 medium-3 column">
|
|
||||||
<%= render "shared/back_link" %>
|
|
||||||
|
|
||||||
<ul class="menu vertical margin-top">
|
|
||||||
<li>
|
|
||||||
<a href="#i"><strong>I. <%= t('pages.more_information.how_it_works.i') %></strong></a>
|
|
||||||
<ul class="nested vertical menu">
|
|
||||||
<li><a href="#i1"><strong>I.1. <%= t('pages.more_information.how_it_works.i1') %></strong></a></li>
|
|
||||||
<li><a href="#i2"><strong>I.2. <%= t('pages.more_information.how_it_works.i2') %></strong></a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="small-12 medium-9 column">
|
|
||||||
<h1><%= t('pages.more_information.titles.how_it_works') %></h1>
|
|
||||||
<%= markdown t('pages.more_information.how_it_works.text') %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
<div class="row margin-top">
|
|
||||||
<div class="text small-12 column">
|
|
||||||
<%= render "shared/back_link" %>
|
|
||||||
|
|
||||||
<h1><%= t('pages.more_information.titles.how_to_use') %></h1>
|
|
||||||
|
|
||||||
<%= markdown t('pages.more_information.how_to_use.text') %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
26
app/views/pages/more_info/_budgets.html.erb
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<div class="row section-content">
|
||||||
|
<div class="small-12 column">
|
||||||
|
<h3 id="budgets" data-magellan-target="budgets">
|
||||||
|
<%= t("pages.more_info.budgets.title") %>
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
<%= link_to t("pages.more_info.budgets.detail"), more_info_budgets_path, class: "small" %>
|
||||||
|
</p>
|
||||||
|
<p><%= t("pages.more_info.budgets.description") %></p>
|
||||||
|
<ul class="features">
|
||||||
|
<li>
|
||||||
|
<%= t("pages.more_info.budgets.feature_1",
|
||||||
|
link: link_to(t("pages.more_info.budgets.feature_1_link", org_name: setting['org_name']),
|
||||||
|
new_user_registration_path)).html_safe %>
|
||||||
|
</li>
|
||||||
|
<li><%= t("pages.more_info.budgets.feature_2_html") %></li>
|
||||||
|
<li><%= t("pages.more_info.budgets.feature_3_html") %></li>
|
||||||
|
<li><%= t("pages.more_info.budgets.feature_4_html") %></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<figure>
|
||||||
|
<%= image_tag "more_info/budgets_#{I18n.locale}.png", alt: t("pages.more_info.budgets.image_alt") %>
|
||||||
|
<figcaption><%= t("pages.more_info.budgets.figcaption_html") %></figcaption>
|
||||||
|
</figure>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
21
app/views/pages/more_info/_debates.html.erb
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<div class="row section-content">
|
||||||
|
<div class="small-12 column">
|
||||||
|
<h3 id="debates" data-magellan-target="debates">
|
||||||
|
<%= t("pages.more_info.debates.title") %>
|
||||||
|
</h3>
|
||||||
|
<p><%= t("pages.more_info.debates.description") %></p>
|
||||||
|
<ul class="features">
|
||||||
|
<li>
|
||||||
|
<%= t("pages.more_info.debates.feature_1",
|
||||||
|
link: link_to(t("pages.more_info.debates.feature_1_link", org_name: setting['org_name']),
|
||||||
|
new_user_registration_path)).html_safe %>
|
||||||
|
</li>
|
||||||
|
<li><%= t("pages.more_info.debates.feature_2_html") %></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<figure>
|
||||||
|
<%= image_tag "more_info/debates.png", alt: t("pages.more_info.debates.image_alt") %>
|
||||||
|
<figcaption><%= t("pages.more_info.debates.figcaption") %></figcaption>
|
||||||
|
</figure>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
22
app/views/pages/more_info/_menu.html.erb
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<div class="row">
|
||||||
|
<div class="small-12 column">
|
||||||
|
<ul class="menu-pages" data-magellan>
|
||||||
|
<% if feature?(:debates) %>
|
||||||
|
<li>
|
||||||
|
<%= link_to t("pages.more_info.menu.debates"), "#debates", class: "button hollow expanded" %>
|
||||||
|
</li>
|
||||||
|
<% end %>
|
||||||
|
<li>
|
||||||
|
<%= link_to t("pages.more_info.menu.proposals"), "#proposals", class: "button hollow expanded" %>
|
||||||
|
</li>
|
||||||
|
<% if feature?(:budgets) %>
|
||||||
|
<li>
|
||||||
|
<%= link_to t("pages.more_info.menu.budgets"), "#budgets", class: "button hollow expanded" %>
|
||||||
|
</li>
|
||||||
|
<% end %>
|
||||||
|
<li>
|
||||||
|
<%= link_to t("pages.more_info.menu.other"), "#other", class: "button hollow expanded" %>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
7
app/views/pages/more_info/_other.html.erb
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<h3 id="other" data-magellan-target="other">Otra información de interés</h3>
|
||||||
|
|
||||||
|
<ul class="features">
|
||||||
|
<li><%= link_to t("pages.more_info.other.how_to_use", org_name: setting['org_name']), faq_path %></li>
|
||||||
|
<li><%= link_to t("pages.more_info.other.facts"), participation_facts_path %></li>
|
||||||
|
<li><%= link_to t("pages.more_info.other.world"), participation_world_path %></li>
|
||||||
|
</ul>
|
||||||
25
app/views/pages/more_info/_proposals.html.erb
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<div class="row section-content">
|
||||||
|
<div class="small-12 column">
|
||||||
|
<h3 id="proposals" data-magellan-target="proposals">
|
||||||
|
<%= t("pages.more_info.proposals.title") %>
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
<%= link_to t("pages.more_info.proposals.detail"), more_info_proposals_path, class: "small" %>
|
||||||
|
</p>
|
||||||
|
<p><%= t("pages.more_info.proposals.description") %></p>
|
||||||
|
<ul class="features">
|
||||||
|
<li>
|
||||||
|
<%= t("pages.more_info.proposals.feature_1",
|
||||||
|
link: link_to(t("pages.more_info.proposals.feature_1_link", org_name: setting['org_name']),
|
||||||
|
new_user_registration_path)).html_safe %>
|
||||||
|
</li>
|
||||||
|
<li><%= t("pages.more_info.proposals.feature_2_html") %></li>
|
||||||
|
<li><%= t("pages.more_info.proposals.feature_3_html") %></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<figure>
|
||||||
|
<%= image_tag "more_info/proposals_#{I18n.locale}.png", alt: t("pages.more_info.proposals.image_alt") %>
|
||||||
|
<figcaption><%= t("pages.more_info.proposals.figcaption_html") %></figcaption>
|
||||||
|
</figure>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
5
app/views/pages/more_info/_sidebar.html.erb
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<div class="sidebar-card">
|
||||||
|
<h3><%= t("pages.more_info.faq.title") %></h3>
|
||||||
|
<p><%= t("pages.more_info.faq.description") %></p>
|
||||||
|
<%= link_to t("pages.more_info.faq.button"), faq_path, class: "button expanded" %>
|
||||||
|
</div>
|
||||||
9
app/views/pages/more_info/how_to_use/index.html.erb
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<div class="row margin-top">
|
||||||
|
<div class="text small-12 column">
|
||||||
|
<%= render "shared/back_link" %>
|
||||||
|
|
||||||
|
<h1><%= t('pages.more_info.titles.how_to_use') %></h1>
|
||||||
|
|
||||||
|
<%= markdown t('pages.more_info.how_to_use.text') %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
39
app/views/pages/more_info/index.html.erb
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<% provide :title do %><%= t("pages.titles.more_info", org_name: setting['org_name']) %><% end %>
|
||||||
|
|
||||||
|
<div class="jumbo light">
|
||||||
|
<div class="row">
|
||||||
|
<div class="small-12 column">
|
||||||
|
<h2><%= t("pages.more_info.title", org_name: setting['org_name']) %></h2>
|
||||||
|
<p class="lead"><%= t("pages.more_info.subtitle") %></p>
|
||||||
|
<p><%= t("pages.more_info.guide", org_name: setting['org_name']) %></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= render "pages/more_info/menu" %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="more-info" class="more-info-content">
|
||||||
|
<div class="row">
|
||||||
|
<div class="small-12 medium-7 large-8 column">
|
||||||
|
<% if feature?(:debates) %>
|
||||||
|
<%= render "pages/more_info/debates" %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<%= render "pages/more_info/proposals" %>
|
||||||
|
|
||||||
|
<% if feature?(:budgets) %>
|
||||||
|
<%= render "pages/more_info/budgets" %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<div class="small-12 medium-4 large-3 column more-info-sidebar">
|
||||||
|
<%= render "pages/more_info/sidebar" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<hr>
|
||||||
|
<div class="small-12 column">
|
||||||
|
<%= render "pages/more_info/other" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
<% provide :title do %><%= t('pages.titles.more_information') %><% end %>
|
|
||||||
<div class="row">
|
|
||||||
<div class="more-information small-12 medium-9 large-7 column">
|
|
||||||
<h1><%= t('pages.titles.more_information') %></h1>
|
|
||||||
<ul class="no-bullet">
|
|
||||||
<li>
|
|
||||||
<%= link_to page_path('how_it_works') do %>
|
|
||||||
<%= t('pages.more_information.titles.how_it_works') %>
|
|
||||||
<br>
|
|
||||||
<span><%= t('pages.more_information.description.how_it_works') %></span>
|
|
||||||
<% end %>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<%= link_to page_path('how_to_use') do %>
|
|
||||||
<%= t('pages.more_information.titles.how_to_use') %>
|
|
||||||
<br>
|
|
||||||
<span><%= t('pages.more_information.description.how_to_use') %></span>
|
|
||||||
<% end %>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<%= link_to page_path('participation') do %>
|
|
||||||
<%= t('pages.more_information.titles.participation') %>
|
|
||||||
<br>
|
|
||||||
<span><%= t('pages.more_information.description.participation') %></span>
|
|
||||||
<% end %>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<%= link_to page_path('proposals_info') do %>
|
|
||||||
<%= t('pages.more_information.titles.proposals_info') %>
|
|
||||||
<br>
|
|
||||||
<span><%= t('pages.more_information.description.proposals_info') %></span>
|
|
||||||
<% end %>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<%= link_to page_path('spending_proposals_info') do %>
|
|
||||||
<%= t('pages.more_information.titles.spending_proposals_info') %>
|
|
||||||
<br>
|
|
||||||
<span><%= t('pages.more_information.description.spending_proposals_info') %></span>
|
|
||||||
<% end %>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<%= link_to page_path('participation_world') do %>
|
|
||||||
<%= t('pages.more_information.titles.participation_world') %>
|
|
||||||
<br>
|
|
||||||
<span><%= t('pages.more_information.description.participation_world') %></span>
|
|
||||||
<% end %>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<%= link_to page_path('participation_facts') do %>
|
|
||||||
<%= t('pages.more_information.titles.participation_facts') %>
|
|
||||||
<br>
|
|
||||||
<span><%= t('pages.more_information.description.participation_facts') %></span>
|
|
||||||
<% end %>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<%= link_to page_path('faq') do %>
|
|
||||||
<%= t('pages.more_information.titles.faq') %>
|
|
||||||
<br>
|
|
||||||
<span><%= t('pages.more_information.description.faq') %></span>
|
|
||||||
<% end %>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<%= link_to page_path('proposals_info', :anchor => "iii") do %>
|
|
||||||
<%= t('pages.more_information.titles.signature_sheet') %>
|
|
||||||
<br>
|
|
||||||
<span><%= t('pages.more_information.description.signature_sheet') %></span>
|
|
||||||
<% end %>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
<% provide :title do %><%= t('pages.titles.opendata') %><% end %>
|
|
||||||
|
|
||||||
<div class="expanded highlight no-margin-top">
|
|
||||||
<div class="row padding margin">
|
|
||||||
<div class="small-12 medium-7 column">
|
|
||||||
<h1><%= t("pages.opendata.title") %></h1>
|
|
||||||
<p><%= t("pages.opendata.slogan") %></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="show-for-medium small-12 medium-5 column text-center">
|
|
||||||
<%= image_tag("icon_home.png", size: "330x240", alt:"") %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
<div class="row margin-top">
|
|
||||||
<div class="small-12 medium-3 column">
|
|
||||||
<%= render "shared/back_link" %>
|
|
||||||
|
|
||||||
<ul class="menu vertical margin-top hide-for-small-only">
|
|
||||||
<li>
|
|
||||||
<a href="#i"><strong>I. Participación</strong></a>
|
|
||||||
<ul class="nested vertical menu">
|
|
||||||
<li><a href="#i1"><strong>I.1. Participación</strong></a></li>
|
|
||||||
<li><a href="#i2"><strong>I.2. Participación</strong></a></li>
|
|
||||||
<li><a href="#i3"><strong>I.3. Participación</strong></a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#ii"><strong>II. Transparencia</strong></a>
|
|
||||||
<ul class="nested vertical menu">
|
|
||||||
<li><a href="#ii1"><strong>II.1. Transparencia</strong></a></li>
|
|
||||||
<li><a href="#ii2"><strong>II.2. Transparencia</strong></a></li>
|
|
||||||
<li><a href="#ii3"><strong>II.3. Transparencia</strong></a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="small-12 medium-9 column">
|
|
||||||
<h1>Participación y Transparencia</h1>
|
|
||||||
|
|
||||||
<p>Página de información sobre Participación y Transparencia.</p>
|
|
||||||
|
|
||||||
<h3 id="i">I. Participación.</h3>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li id="i1"><strong>I.1. Participación.</strong> Información sobre Participación</li>
|
|
||||||
<li id="i2"><strong>I.1. Participación.</strong> Información sobre Participación</li>
|
|
||||||
<li id="i3"><strong>I.1. Participación.</strong> Información sobre Participación</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3 id="ii">II. Transparencia</h3>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li id="ii1"><strong>II.1. Transparencia</strong> Información sobre Transparencia</li>
|
|
||||||
<li id="ii2"><strong>II.1. Transparencia</strong> Información sobre Transparencia</li>
|
|
||||||
<li id="ii3"><strong>II.1. Transparencia</strong> Información sobre Transparencia</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="small-12 column">
|
<div class="small-12 column">
|
||||||
<ul class="tabs" data-tabs id="example-tabs">
|
<ul class="tabs" data-tabs id="proposals-tabs">
|
||||||
<li class="tabs-title is-active">
|
<li class="tabs-title is-active">
|
||||||
<%= link_to "#tab-comments" do %>
|
<%= link_to "#tab-comments" do %>
|
||||||
<h3>
|
<h3>
|
||||||
|
|||||||
@@ -132,8 +132,9 @@
|
|||||||
<div class="social-share-full">
|
<div class="social-share-full">
|
||||||
<%= social_share_button_tag("#{@proposal.title} #{setting['twitter_hashtag']}") %>
|
<%= social_share_button_tag("#{@proposal.title} #{setting['twitter_hashtag']}") %>
|
||||||
<% if browser.device.mobile? %>
|
<% if browser.device.mobile? %>
|
||||||
<a href="whatsapp://send?text=<%= @proposal.title %> <%= proposal_url(@proposal) %>" data-action="share/whatsapp/share">
|
<a href="whatsapp://send?text=<%= @proposal.title.gsub(/\s/, ' ') %> <%= proposal_url(@proposal) %>" data-action="share/whatsapp/share">
|
||||||
<span class="icon-whatsapp whatsapp"></span>
|
<span class="icon-whatsapp whatsapp"></span>
|
||||||
|
<span class="sr-only"><%= t("social.whatsapp") %></span>
|
||||||
</a>
|
</a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
@@ -142,7 +143,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="tabs-content" data-tabs-content="example-tabs">
|
<div class="tabs-content" data-tabs-content="proposals-tabs" role="tablist">
|
||||||
<%= render "proposals/filter_subnav" %>
|
<%= render "proposals/filter_subnav" %>
|
||||||
<%= render "proposals/notifications" %>
|
<%= render "proposals/notifications" %>
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% if feature?(:spending_proposals) && (current_user.administrator? || current_user.valuator?) %>
|
<% if (feature?(:spending_proposals) || feature?(:budgets)) &&
|
||||||
|
(current_user.administrator? || current_user.valuator?) %>
|
||||||
<li>
|
<li>
|
||||||
<%= link_to t("layouts.header.valuation"), valuation_root_path %>
|
<%= link_to t("layouts.header.valuation"), valuation_root_path %>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -36,8 +36,6 @@
|
|||||||
</label>
|
</label>
|
||||||
<%= text_field_tag 'advanced_search[date_min]',
|
<%= text_field_tag 'advanced_search[date_min]',
|
||||||
params[:advanced_search].try(:[], :date_min),
|
params[:advanced_search].try(:[], :date_min),
|
||||||
type: "date",
|
|
||||||
placeholder: t("shared.advanced_search.date_placeholder"),
|
|
||||||
class: 'js-calendar' %>
|
class: 'js-calendar' %>
|
||||||
</div>
|
</div>
|
||||||
<div class='small-12 large-6 column'>
|
<div class='small-12 large-6 column'>
|
||||||
@@ -46,8 +44,6 @@
|
|||||||
</label>
|
</label>
|
||||||
<%= text_field_tag 'advanced_search[date_max]',
|
<%= text_field_tag 'advanced_search[date_max]',
|
||||||
params[:advanced_search].try(:[], :date_max),
|
params[:advanced_search].try(:[], :date_max),
|
||||||
type: "date",
|
|
||||||
placeholder: t("shared.advanced_search.date_placeholder"),
|
|
||||||
class: 'js-calendar' %>
|
class: 'js-calendar' %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,23 +3,23 @@
|
|||||||
<% if feature?(:debates) %>
|
<% if feature?(:debates) %>
|
||||||
<li>
|
<li>
|
||||||
<%= layout_menu_link_to t("layouts.header.debates"),
|
<%= layout_menu_link_to t("layouts.header.debates"),
|
||||||
debates_path,
|
debates_path,
|
||||||
controller_name == 'debates',
|
controller_name == 'debates',
|
||||||
accesskey: "d" %>
|
accesskey: "1" %>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
<li>
|
<li>
|
||||||
<%= layout_menu_link_to t("layouts.header.proposals"),
|
<%= layout_menu_link_to t("layouts.header.proposals"),
|
||||||
proposals_path,
|
proposals_path,
|
||||||
controller_name == 'proposals',
|
controller_name == 'proposals',
|
||||||
accesskey: "p" %>
|
accesskey: "2" %>
|
||||||
</li>
|
</li>
|
||||||
<% if feature?(:polls) %>
|
<% if feature?(:polls) %>
|
||||||
<li>
|
<li>
|
||||||
<%= layout_menu_link_to t("layouts.header.poll_questions"),
|
<%= layout_menu_link_to t("layouts.header.poll_questions"),
|
||||||
polls_path,
|
polls_path,
|
||||||
controller_name == "polls",
|
controller_name == "polls",
|
||||||
accesskey: "v" %>
|
accesskey: "3" %>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if feature?(:spending_proposals) %>
|
<% if feature?(:spending_proposals) %>
|
||||||
@@ -35,8 +35,14 @@
|
|||||||
<%= layout_menu_link_to t("layouts.header.budgets"),
|
<%= layout_menu_link_to t("layouts.header.budgets"),
|
||||||
budgets_path,
|
budgets_path,
|
||||||
controller_name == "budgets" || controller_name == "investments",
|
controller_name == "budgets" || controller_name == "investments",
|
||||||
accesskey: "b" %>
|
accesskey: "4" %>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<li>
|
||||||
|
<%= link_to t("layouts.header.more_info"),
|
||||||
|
more_info_path,
|
||||||
|
accesskey: "5",
|
||||||
|
class: ("active" if current_page?(more_info_path)) %>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,8 +5,7 @@
|
|||||||
<% taggable.tag_list_with_limit(limit).each do |tag| %>
|
<% taggable.tag_list_with_limit(limit).each do |tag| %>
|
||||||
<li class="inline-block">
|
<li class="inline-block">
|
||||||
<%= link_to sanitize(tag.name),
|
<%= link_to sanitize(tag.name),
|
||||||
taggables_path(taggable.class.name.underscore, tag.name),
|
taggables_path(taggable.class.name.underscore, tag.name) %></li>
|
||||||
search: tag.name %></li>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% if taggable.tags_count_out_of_limit(limit) > 0 %>
|
<% if taggable.tags_count_out_of_limit(limit) > 0 %>
|
||||||
|
|||||||
@@ -1,10 +1,4 @@
|
|||||||
<ul class="no-bullet external-links">
|
<ul class="no-bullet external-links">
|
||||||
<li>
|
|
||||||
<%= link_to t("layouts.header.more_information"),
|
|
||||||
page_path('more_information'),
|
|
||||||
class: ("selected" if current_page?("/more_information")),
|
|
||||||
accesskey: "i" %>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<%= link_to t("layouts.header.external_link_transparency"),
|
<%= link_to t("layouts.header.external_link_transparency"),
|
||||||
t("layouts.header.external_link_transparency_url"),
|
t("layouts.header.external_link_transparency_url"),
|
||||||
|
|||||||
@@ -45,8 +45,9 @@
|
|||||||
<div class="social-share-full">
|
<div class="social-share-full">
|
||||||
<%= social_share_button_tag("#{@spending_proposal.title} #{setting['twitter_hashtag']}") %>
|
<%= social_share_button_tag("#{@spending_proposal.title} #{setting['twitter_hashtag']}") %>
|
||||||
<% if browser.device.mobile? %>
|
<% if browser.device.mobile? %>
|
||||||
<a href="whatsapp://send?text=<%= @spending_proposal.title %> <%= spending_proposal_url(@spending_proposal) %>" data-action="share/whatsapp/share">
|
<a href="whatsapp://send?text=<%= @spending_proposal.title.gsub(/\s/, ' ') %> <%= spending_proposal_url(@spending_proposal) %>" data-action="share/whatsapp/share">
|
||||||
<span class="icon-whatsapp whatsapp"></span>
|
<span class="icon-whatsapp whatsapp"></span>
|
||||||
|
<span class="sr-only"><%= t("social.whatsapp") %></span>
|
||||||
</a>
|
</a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,6 +4,12 @@
|
|||||||
<td>
|
<td>
|
||||||
<%= link_to budget_investment.title, budget_investment_path(budget_investment.budget, budget_investment) %>
|
<%= link_to budget_investment.title, budget_investment_path(budget_investment.budget, budget_investment) %>
|
||||||
</td>
|
</td>
|
||||||
|
<td class="text-right">
|
||||||
|
<% if can? :destroy, budget_investment %>
|
||||||
|
<%= link_to t('shared.delete'), budget_investment_path(budget_investment.budget, budget_investment),
|
||||||
|
method: :delete, class: "button hollow alert" %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<%= f.label :username %>
|
<%= f.label :username %>
|
||||||
<p class="note"><%= t("devise_views.users.registrations.new.username_note") %></p>
|
<p class="note"><%= t("devise_views.users.registrations.new.username_note") %></p>
|
||||||
<%= f.text_field :username, maxlength: User.username_max_length, placeholder: t("devise_views.users.registrations.new.username_label"), label: false %>
|
<%= f.text_field :username, autofocus: true, maxlength: User.username_max_length, placeholder: t("devise_views.users.registrations.new.username_label"), label: false %>
|
||||||
|
|
||||||
<%= f.invisible_captcha :family_name %>
|
<%= f.invisible_captcha :family_name %>
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<h1><%= t("layouts.header.open_city_title") %></h1>
|
<h1><%= t("layouts.header.open_city_title") %></h1>
|
||||||
<p>
|
<p>
|
||||||
<%= t("layouts.header.open_city_slogan_html") %>
|
<%= t("layouts.header.open_city_slogan_html") %>
|
||||||
<%= link_to t("layouts.header.more_information"), page_path('more_information') %>
|
<%= link_to t("layouts.header.more_info"), more_info_path %>
|
||||||
</p>
|
</p>
|
||||||
<div class="small-12 medium-6">
|
<div class="small-12 medium-6">
|
||||||
<%= link_to t("layouts.header.see_all"), proposals_path, class: "button see-more expanded" %>
|
<%= link_to t("layouts.header.see_all"), proposals_path, class: "button see-more expanded" %>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# config valid only for current version of Capistrano
|
# config valid only for current version of Capistrano
|
||||||
lock '3.5.0'
|
lock '3.8.0'
|
||||||
|
|
||||||
def deploysecret(key)
|
def deploysecret(key)
|
||||||
@deploy_secrets_yml ||= YAML.load_file('config/deploy-secrets.yml')[fetch(:stage).to_s]
|
@deploy_secrets_yml ||= YAML.load_file('config/deploy-secrets.yml')[fetch(:stage).to_s]
|
||||||
@@ -15,7 +15,6 @@ set :full_app_name, deploysecret(:full_app_name)
|
|||||||
set :server_name, deploysecret(:server_name)
|
set :server_name, deploysecret(:server_name)
|
||||||
set :repo_url, 'https://github.com/consul/consul.git'
|
set :repo_url, 'https://github.com/consul/consul.git'
|
||||||
|
|
||||||
set :scm, :git
|
|
||||||
set :revision, `git rev-parse --short #{fetch(:branch)}`.strip
|
set :revision, `git rev-parse --short #{fetch(:branch)}`.strip
|
||||||
|
|
||||||
set :log_level, :info
|
set :log_level, :info
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ data:
|
|||||||
## Another gem (replace %#= with %=):
|
## Another gem (replace %#= with %=):
|
||||||
# - "<%#= %x[bundle show vagrant].chomp %>/templates/locales/%{locale}.yml"
|
# - "<%#= %x[bundle show vagrant].chomp %>/templates/locales/%{locale}.yml"
|
||||||
- config/locales/%{locale}.yml
|
- config/locales/%{locale}.yml
|
||||||
|
- config/locales/activerecord.%{locale}.yml
|
||||||
|
- config/locales/activemodel.%{locale}.yml
|
||||||
- config/locales/admin.%{locale}.yml
|
- config/locales/admin.%{locale}.yml
|
||||||
- config/locales/moderation.%{locale}.yml
|
- config/locales/moderation.%{locale}.yml
|
||||||
- config/locales/valuation.%{locale}.yml
|
- config/locales/valuation.%{locale}.yml
|
||||||
|
|||||||
@@ -8,50 +8,3 @@ Kaminari.configure do |config|
|
|||||||
# config.page_method_name = :page
|
# config.page_method_name = :page
|
||||||
# config.param_name = :page
|
# config.param_name = :page
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# Overrides for making Kaminari handle i18n pluralization correctly
|
|
||||||
#
|
|
||||||
# Remove everything below once https://github.com/amatsuda/kaminari/pull/694 is
|
|
||||||
# merged in Kaminari and we have updated
|
|
||||||
module Kaminari
|
|
||||||
|
|
||||||
module ActionViewExtension
|
|
||||||
def page_entries_info(collection, options = {})
|
|
||||||
entry_name = if options[:entry_name]
|
|
||||||
options[:entry_name].pluralize(collection.size)
|
|
||||||
else
|
|
||||||
collection.entry_name(:count => collection.size).downcase
|
|
||||||
end
|
|
||||||
|
|
||||||
if collection.total_pages < 2
|
|
||||||
t('helpers.page_entries_info.one_page.display_entries', entry_name: entry_name, count: collection.total_count)
|
|
||||||
else
|
|
||||||
first = collection.offset_value + 1
|
|
||||||
last = collection.last_page? ? collection.total_count : collection.offset_value + collection.limit_value
|
|
||||||
t('helpers.page_entries_info.more_pages.display_entries', entry_name: entry_name, first: first, last: last, total: collection.total_count)
|
|
||||||
end.html_safe
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
module ActiveRecordRelationMethods
|
|
||||||
def entry_name(options = {})
|
|
||||||
model_name.human(options.reverse_merge(default: model_name.human.pluralize(options[:count])))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
module MongoidCriteriaMethods
|
|
||||||
def entry_name(options = {})
|
|
||||||
model_name.human(options.reverse_merge(default: model_name.human.pluralize(options[:count])))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
class PaginatableArray < Array
|
|
||||||
ENTRY = 'entry'.freeze
|
|
||||||
|
|
||||||
def entry_name(options = {})
|
|
||||||
I18n.t('helpers.page_entries_info.entry', options.reverse_merge(default: ENTRY.pluralize(options[:count])))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
SocialShareButton.configure do |config|
|
SocialShareButton.configure do |config|
|
||||||
config.allow_sites = %w(twitter facebook google_plus)
|
config.allow_sites = %w(twitter facebook google_plus telegram)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ es:
|
|||||||
one: "Presupuesto participativo"
|
one: "Presupuesto participativo"
|
||||||
other: "Presupuestos participativos"
|
other: "Presupuestos participativos"
|
||||||
budget/investment:
|
budget/investment:
|
||||||
one: "Propuesta de inversión"
|
one: "Proyecto de inversión"
|
||||||
other: "Propuestas de inversión"
|
other: "Proyectos de inversión"
|
||||||
comment:
|
comment:
|
||||||
one: "Comentario"
|
one: "Comentario"
|
||||||
other: "Comentarios"
|
other: "Comentarios"
|
||||||
@@ -49,13 +49,13 @@ es:
|
|||||||
attributes:
|
attributes:
|
||||||
budget:
|
budget:
|
||||||
name: "Nombre"
|
name: "Nombre"
|
||||||
description_accepting: "Descripción durante la fase de aceptación"
|
description_accepting: "Descripción durante la fase de presentación de proyectos"
|
||||||
description_reviewing: "Descripción durante la fase de revisión"
|
description_reviewing: "Descripción durante la fase de revisión interna"
|
||||||
description_selecting: "Descripción durante la fase de selección"
|
description_selecting: "Descripción durante la fase de apoyos"
|
||||||
description_valuating: "Descripción durante la fase de evaluación"
|
description_valuating: "Descripción durante la fase de evaluación"
|
||||||
description_balloting: "Descripción durante la fase de votación"
|
description_balloting: "Descripción durante la fase de votación"
|
||||||
description_reviewing_ballots: "Descripción durante la fase de revisión de votos"
|
description_reviewing_ballots: "Descripción durante la fase de revisión de votos"
|
||||||
description_finished: "Descripción cuando el presupuesto ha finalizado"
|
description_finished: "Descripción cuando el presupuesto ha finalizado / Resultados"
|
||||||
phase: "Fase"
|
phase: "Fase"
|
||||||
currency_symbol: "Divisa"
|
currency_symbol: "Divisa"
|
||||||
budget/investment:
|
budget/investment:
|
||||||
@@ -138,6 +138,10 @@ es:
|
|||||||
attributes:
|
attributes:
|
||||||
tag_list:
|
tag_list:
|
||||||
less_than_or_equal_to: "los temas deben ser menor o igual que %{count}"
|
less_than_or_equal_to: "los temas deben ser menor o igual que %{count}"
|
||||||
|
budget/investment:
|
||||||
|
attributes:
|
||||||
|
tag_list:
|
||||||
|
less_than_or_equal_to: "los temas deben ser menor o igual que %{count}"
|
||||||
proposal_notification:
|
proposal_notification:
|
||||||
attributes:
|
attributes:
|
||||||
minimum_interval:
|
minimum_interval:
|
||||||
|
|||||||
@@ -25,11 +25,11 @@ en:
|
|||||||
unfeasible_title: Unfeasible investments
|
unfeasible_title: Unfeasible investments
|
||||||
unfeasible: See unfeasible investments
|
unfeasible: See unfeasible investments
|
||||||
phase:
|
phase:
|
||||||
accepting: Accepting proposals
|
accepting: Accepting projects
|
||||||
reviewing: Reviewing proposals
|
reviewing: Reviewing projects
|
||||||
selecting: Selecting proposals
|
selecting: Selecting projects
|
||||||
valuating: Valuating proposals
|
valuating: Valuating projects
|
||||||
balloting: Balloting proposals
|
balloting: Balloting projects
|
||||||
reviewing_ballots: Reviewing Ballots
|
reviewing_ballots: Reviewing Ballots
|
||||||
finished: Finished budget
|
finished: Finished budget
|
||||||
index:
|
index:
|
||||||
|
|||||||
@@ -25,13 +25,13 @@ es:
|
|||||||
unfeasible_title: Propuestas inviables
|
unfeasible_title: Propuestas inviables
|
||||||
unfeasible: Ver propuestas inviables
|
unfeasible: Ver propuestas inviables
|
||||||
phase:
|
phase:
|
||||||
accepting: Aceptando propuestas
|
accepting: Presentación de proyectos
|
||||||
reviewing: Revisando propuestas
|
reviewing: Revisión interna de proyectos
|
||||||
selecting: Selección de propuestas
|
selecting: Fase de apoyos
|
||||||
valuating: Evaluación de propuestas
|
valuating: Evaluación de proyectos
|
||||||
balloting: Votación de propuestas
|
balloting: Votación final
|
||||||
reviewing_ballots: Contando resultados
|
reviewing_ballots: Votación finalizada
|
||||||
finished: Presupuesto terminado
|
finished: Resultados
|
||||||
index:
|
index:
|
||||||
title: Presupuestos participativos
|
title: Presupuestos participativos
|
||||||
investments:
|
investments:
|
||||||
|
|||||||
@@ -175,7 +175,6 @@ en:
|
|||||||
copyright: Consul, %{year}
|
copyright: Consul, %{year}
|
||||||
description: This portal uses the %{consul} which is %{open_source}.
|
description: This portal uses the %{consul} which is %{open_source}.
|
||||||
faq: technical assistance
|
faq: technical assistance
|
||||||
more_info: More information
|
|
||||||
open_data_text: Every detail about the City Council is yours to access.
|
open_data_text: Every detail about the City Council is yours to access.
|
||||||
open_data_title: Open data
|
open_data_title: Open data
|
||||||
open_source: open-source software
|
open_source: open-source software
|
||||||
@@ -192,16 +191,16 @@ en:
|
|||||||
debates: Debates
|
debates: Debates
|
||||||
external_link_blog: Blog
|
external_link_blog: Blog
|
||||||
external_link_opendata: Open data
|
external_link_opendata: Open data
|
||||||
external_link_opendata_url: "/opendata"
|
external_link_opendata_url: https://opendata.consul
|
||||||
external_link_transparency: Transparency
|
external_link_transparency: Transparency
|
||||||
external_link_transparency_url: https://transparency.consul
|
external_link_transparency_url: https://transparency.consul
|
||||||
locale: 'Language:'
|
locale: 'Language:'
|
||||||
logo: Consul
|
logo: Consul logo
|
||||||
management: Management
|
management: Management
|
||||||
moderation: Moderation
|
moderation: Moderation
|
||||||
valuation: Valuation
|
valuation: Valuation
|
||||||
officing: Polling officers
|
officing: Polling officers
|
||||||
more_information: More information
|
more_info: More information
|
||||||
my_account_link: My account
|
my_account_link: My account
|
||||||
my_activity_link: My activity
|
my_activity_link: My activity
|
||||||
notifications: Notifications
|
notifications: Notifications
|
||||||
@@ -388,6 +387,7 @@ en:
|
|||||||
share: Share
|
share: Share
|
||||||
send_notification: Send notification
|
send_notification: Send notification
|
||||||
no_notifications: "This proposal has any notifications."
|
no_notifications: "This proposal has any notifications."
|
||||||
|
embed_video_title: "Video on %{proposal}"
|
||||||
update:
|
update:
|
||||||
form:
|
form:
|
||||||
submit_button: Save changes
|
submit_button: Save changes
|
||||||
@@ -481,6 +481,7 @@ en:
|
|||||||
search: 'Filter'
|
search: 'Filter'
|
||||||
title: 'Advanced search'
|
title: 'Advanced search'
|
||||||
to: 'To'
|
to: 'To'
|
||||||
|
delete: Delete
|
||||||
author_info:
|
author_info:
|
||||||
author_deleted: User deleted
|
author_deleted: User deleted
|
||||||
back: Go back
|
back: Go back
|
||||||
@@ -525,6 +526,8 @@ en:
|
|||||||
facebook: Facebook
|
facebook: Facebook
|
||||||
twitter: Twitter
|
twitter: Twitter
|
||||||
youtube: YouTube
|
youtube: YouTube
|
||||||
|
whatsapp: WhatsApp
|
||||||
|
telegram: Telegram
|
||||||
spending_proposals:
|
spending_proposals:
|
||||||
form:
|
form:
|
||||||
association_name_label: 'If you propose in name of an assocation or collective add the name here'
|
association_name_label: 'If you propose in name of an assocation or collective add the name here'
|
||||||
|
|||||||
@@ -175,7 +175,6 @@ es:
|
|||||||
copyright: Consul, %{year}
|
copyright: Consul, %{year}
|
||||||
description: Este portal usa la %{consul} que es %{open_source}.
|
description: Este portal usa la %{consul} que es %{open_source}.
|
||||||
faq: Asistencia técnica
|
faq: Asistencia técnica
|
||||||
more_info: Más información
|
|
||||||
open_data_text: Todos los datos del Ayuntamiento son tuyos.
|
open_data_text: Todos los datos del Ayuntamiento son tuyos.
|
||||||
open_data_title: Datos Abiertos
|
open_data_title: Datos Abiertos
|
||||||
open_source: software libre
|
open_source: software libre
|
||||||
@@ -192,16 +191,16 @@ es:
|
|||||||
debates: Debates
|
debates: Debates
|
||||||
external_link_blog: Blog
|
external_link_blog: Blog
|
||||||
external_link_opendata: Datos abiertos
|
external_link_opendata: Datos abiertos
|
||||||
external_link_opendata_url: "/opendata"
|
external_link_opendata_url: https://opendata.consul
|
||||||
external_link_transparency: Transparencia
|
external_link_transparency: Transparencia
|
||||||
external_link_transparency_url: https://transparency.consul
|
external_link_transparency_url: https://transparency.consul
|
||||||
locale: 'Idioma:'
|
locale: 'Idioma:'
|
||||||
logo: Consul
|
logo: Consul logo
|
||||||
management: Gestión
|
management: Gestión
|
||||||
moderation: Moderar
|
moderation: Moderar
|
||||||
valuation: Evaluación
|
valuation: Evaluación
|
||||||
officing: Presidentes de mesa
|
officing: Presidentes de mesa
|
||||||
more_information: Más información
|
more_info: Más información
|
||||||
my_account_link: Mi cuenta
|
my_account_link: Mi cuenta
|
||||||
my_activity_link: Mi actividad
|
my_activity_link: Mi actividad
|
||||||
notifications: Notificaciones
|
notifications: Notificaciones
|
||||||
@@ -388,6 +387,7 @@ es:
|
|||||||
send_notification: Enviar notificación
|
send_notification: Enviar notificación
|
||||||
share: Compartir
|
share: Compartir
|
||||||
no_notifications: "Esta propuesta no tiene notificaciones."
|
no_notifications: "Esta propuesta no tiene notificaciones."
|
||||||
|
embed_video_title: "Vídeo en %{proposal}"
|
||||||
update:
|
update:
|
||||||
form:
|
form:
|
||||||
submit_button: Guardar cambios
|
submit_button: Guardar cambios
|
||||||
@@ -481,6 +481,7 @@ es:
|
|||||||
search: 'Filtrar'
|
search: 'Filtrar'
|
||||||
title: 'Búsqueda avanzada'
|
title: 'Búsqueda avanzada'
|
||||||
to: 'Hasta'
|
to: 'Hasta'
|
||||||
|
delete: 'Borrar'
|
||||||
author_info:
|
author_info:
|
||||||
author_deleted: Usuario eliminado
|
author_deleted: Usuario eliminado
|
||||||
back: Volver
|
back: Volver
|
||||||
@@ -525,6 +526,8 @@ es:
|
|||||||
facebook: Facebook
|
facebook: Facebook
|
||||||
twitter: Twitter
|
twitter: Twitter
|
||||||
youtube: YouTube
|
youtube: YouTube
|
||||||
|
whatsapp: WhatsApp
|
||||||
|
telegram: Telegram
|
||||||
spending_proposals:
|
spending_proposals:
|
||||||
form:
|
form:
|
||||||
association_name_label: 'Si propones en nombre de una asociación o colectivo añade el nombre aquí'
|
association_name_label: 'Si propones en nombre de una asociación o colectivo añade el nombre aquí'
|
||||||
@@ -620,8 +623,8 @@ es:
|
|||||||
one: 1 Propuesta
|
one: 1 Propuesta
|
||||||
other: "%{count} Propuestas"
|
other: "%{count} Propuestas"
|
||||||
budget_investments:
|
budget_investments:
|
||||||
one: 1 Propuesta de inversión
|
one: 1 Proyecto de presupuestos participativos
|
||||||
other: "%{count} Propuestas de inversión"
|
other: "%{count} Proyectos de presupuestos participativos"
|
||||||
no_activity: Usuario sin actividad pública
|
no_activity: Usuario sin actividad pública
|
||||||
no_private_messages: "Este usuario no acepta mensajes privados."
|
no_private_messages: "Este usuario no acepta mensajes privados."
|
||||||
private_activity: Este usuario ha decidido mantener en privado su lista de actividades
|
private_activity: Este usuario ha decidido mantener en privado su lista de actividades
|
||||||
|
|||||||
@@ -854,7 +854,6 @@ fr:
|
|||||||
description: Ce portail utiliser %{consul} qui est %{open_source}. De Madrid
|
description: Ce portail utiliser %{consul} qui est %{open_source}. De Madrid
|
||||||
ouvert sur le monde.
|
ouvert sur le monde.
|
||||||
faq: assistance technique
|
faq: assistance technique
|
||||||
more_info: Plus d'information
|
|
||||||
open_data_text: Tout les détails de la Mairie sont vôtre pour accès
|
open_data_text: Tout les détails de la Mairie sont vôtre pour accès
|
||||||
open_data_title: Open data
|
open_data_title: Open data
|
||||||
open_source: logiciel libre
|
open_source: logiciel libre
|
||||||
@@ -874,9 +873,9 @@ fr:
|
|||||||
external_link_transparency: Transparence
|
external_link_transparency: Transparence
|
||||||
external_link_transparency_url: https://transparency.consul
|
external_link_transparency_url: https://transparency.consul
|
||||||
locale: 'Langue :'
|
locale: 'Langue :'
|
||||||
logo: Consul
|
logo: Consul logo
|
||||||
moderation: Modération
|
moderation: Modération
|
||||||
more_information: Plus d'information
|
more_info: Plus d'information
|
||||||
my_account_link: Mon compte
|
my_account_link: Mon compte
|
||||||
my_activity_link: Mon activité
|
my_activity_link: Mon activité
|
||||||
new_notifications:
|
new_notifications:
|
||||||
@@ -1167,7 +1166,7 @@ fr:
|
|||||||
mentionnées dans les conditions d'utilisation de ce portail."
|
mentionnées dans les conditions d'utilisation de ce portail."
|
||||||
conditions: Conditions d'utilisation
|
conditions: Conditions d'utilisation
|
||||||
general_terms: Conditions d'utilisation
|
general_terms: Conditions d'utilisation
|
||||||
more_information:
|
more_info:
|
||||||
description:
|
description:
|
||||||
faq: Questions fréquentes sur les problèmes techniques
|
faq: Questions fréquentes sur les problèmes techniques
|
||||||
how_it_works: Découvrez tout ce qui est possible de faire avec ce site
|
how_it_works: Découvrez tout ce qui est possible de faire avec ce site
|
||||||
@@ -1232,7 +1231,7 @@ fr:
|
|||||||
titles:
|
titles:
|
||||||
accessibility: Accessibilité
|
accessibility: Accessibilité
|
||||||
conditions: Conditions d'utilisation
|
conditions: Conditions d'utilisation
|
||||||
more_information: Plus d'informations
|
more_info: Plus d'informations
|
||||||
opendata: Open Data
|
opendata: Open Data
|
||||||
privacy: Vie privée
|
privacy: Vie privée
|
||||||
verify:
|
verify:
|
||||||
@@ -1354,7 +1353,8 @@ fr:
|
|||||||
official_level_3_name: Niveau 3 personne officielle
|
official_level_3_name: Niveau 3 personne officielle
|
||||||
official_level_4_name: Niveau 4 personne officielle
|
official_level_4_name: Niveau 4 personne officielle
|
||||||
official_level_5_name: Niveau 5 personne officielle
|
official_level_5_name: Niveau 5 personne officielle
|
||||||
per_page_code: Code à inclure dans chaque page
|
per_page_code_head: "Code à inclure dans chaque page (<head>)"
|
||||||
|
per_page_code_body: "Code à inclure dans chaque page (<body>)"
|
||||||
proposal_code_prefix: Préfixe pour les codes de propositions
|
proposal_code_prefix: Préfixe pour les codes de propositions
|
||||||
votes_for_proposal_success: Nombre de votes nécessaires pour l'approbation d'une
|
votes_for_proposal_success: Nombre de votes nécessaires pour l'approbation d'une
|
||||||
proposition
|
proposition
|
||||||
@@ -1395,6 +1395,8 @@ fr:
|
|||||||
facebook: Facebook
|
facebook: Facebook
|
||||||
twitter: Twitter
|
twitter: Twitter
|
||||||
youtube: YouTube
|
youtube: YouTube
|
||||||
|
whatsapp: WhatsApp
|
||||||
|
telegram: Telegram
|
||||||
social_share_button:
|
social_share_button:
|
||||||
baidu: Baidu.com
|
baidu: Baidu.com
|
||||||
delicious: Delicious
|
delicious: Delicious
|
||||||
@@ -1413,6 +1415,7 @@ fr:
|
|||||||
tumblr: Tumblr
|
tumblr: Tumblr
|
||||||
twitter: Twitter
|
twitter: Twitter
|
||||||
weibo: Sina Weibo
|
weibo: Sina Weibo
|
||||||
|
telegram: Telegram
|
||||||
spending_proposals:
|
spending_proposals:
|
||||||
form:
|
form:
|
||||||
description: Description
|
description: Description
|
||||||
@@ -1629,7 +1632,7 @@ fr:
|
|||||||
link: Voir les propositions
|
link: Voir les propositions
|
||||||
text: Créez vos propres propositions et soutenez celles d'autres citoyens.
|
text: Créez vos propres propositions et soutenez celles d'autres citoyens.
|
||||||
title: Propositions citoyennes
|
title: Propositions citoyennes
|
||||||
more_information: Plus d'information sur cette page
|
more_info: Plus d'information sur cette page
|
||||||
proposal:
|
proposal:
|
||||||
alt: Icône Proposez
|
alt: Icône Proposez
|
||||||
description: Espace ouvert aux propositions sur le type de ville que nous voulons
|
description: Espace ouvert aux propositions sur le type de ville que nous voulons
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ en:
|
|||||||
under_age: "You don't have the required age to verify your account."
|
under_age: "You don't have the required age to verify your account."
|
||||||
verify: Verify
|
verify: Verify
|
||||||
email_label: Email
|
email_label: Email
|
||||||
|
date_of_birth: Date of birth
|
||||||
email_verifications:
|
email_verifications:
|
||||||
already_verified: This user account is already verified.
|
already_verified: This user account is already verified.
|
||||||
choose_options: 'Please choose one of the following options:'
|
choose_options: 'Please choose one of the following options:'
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ es:
|
|||||||
under_age: No tienes edad suficiente para verificar tu cuenta.
|
under_age: No tienes edad suficiente para verificar tu cuenta.
|
||||||
verify: Verificar usuario
|
verify: Verificar usuario
|
||||||
email_label: Email
|
email_label: Email
|
||||||
|
date_of_birth: Fecha de nacimiento
|
||||||
email_verifications:
|
email_verifications:
|
||||||
already_verified: Esta cuenta de usuario ya está verificada.
|
already_verified: Esta cuenta de usuario ya está verificada.
|
||||||
choose_options: 'Elige una de las opciones siguientes:'
|
choose_options: 'Elige una de las opciones siguientes:'
|
||||||
|
|||||||
@@ -4,42 +4,52 @@ en:
|
|||||||
census_terms: To confirm the account, you must be 16 or older and be registered, having provided the information requested previously, will verify. By accepting the verification process, you also consent to the verification of this information, as well as the contact methods featuring in said files. The data provided will be acquired and processed in a file mentioned previously in the terms and conditions of use for the Portal.
|
census_terms: To confirm the account, you must be 16 or older and be registered, having provided the information requested previously, will verify. By accepting the verification process, you also consent to the verification of this information, as well as the contact methods featuring in said files. The data provided will be acquired and processed in a file mentioned previously in the terms and conditions of use for the Portal.
|
||||||
conditions: Terms and conditions of use
|
conditions: Terms and conditions of use
|
||||||
general_terms: Terms and Conditions
|
general_terms: Terms and Conditions
|
||||||
more_information:
|
more_info:
|
||||||
description:
|
title: "Discover %{org_name}"
|
||||||
faq: Frecuently asked question about tecnical problems
|
subtitle: "Learn everything you can do on this website."
|
||||||
how_it_works: Find out all you can do with this web site
|
guide: 'This guide explains each section of %{org_name}. You can expand the information on "Detailed information" links.'
|
||||||
how_to_use: Use it freely or help us to improve it, it is free software
|
menu:
|
||||||
participation: Citizen participation, transparency and open government
|
debates: "Debates"
|
||||||
participation_facts: To lose your fear
|
proposals: "Proposals"
|
||||||
participation_world: Systems of citizen participation that exist in the world
|
budgets: "Participatory budgets"
|
||||||
proposals_info: Create your own proposals
|
other: "Other information of interest"
|
||||||
signature_sheet: Sheet collecting signatures for support
|
debates:
|
||||||
spending_proposals_info: Create your own spending proposals
|
title: "Debates"
|
||||||
how_it_works:
|
description: "Create a thread where you can discuss any topic you want to share with other people in your city."
|
||||||
i: Participation
|
feature_1: "To create a debate you have to %{link}"
|
||||||
i1: Debates area
|
feature_1_link: "sign up on %{org_name}"
|
||||||
i2: Proposals area
|
feature_2_html: "Debates can be rated using the <strong>I agree</strong> or <strong>I disagree</strong> buttons you'll find on each of them."
|
||||||
text: |-
|
image_alt: "Buttons to rate the debates"
|
||||||
The new Open Government Portal is divided in three parts: Participation, Transparency and Open Data (you can see the links in the upper right-hand part).
|
figcaption: '"I agree" and "I disagree" buttons to rate the debates.'
|
||||||
>**I. Participation:** In this part we can decide which city we want (using citizen proposals, debate areas, participatory budgets , collaborative legislation, and many others we will implement).
|
proposals:
|
||||||
**II. Transparency:** In this part information about how the city is managed will be published every day: name, position, salary, contracts, agenda,... of the persons in charge. It is also the place where exercise your right to access information, having the chance to request any information about City Council easily and rapidly.
|
title: "Proposals"
|
||||||
**III. Open data:** In this part the city council databases are posted, so that anyone can use information directly, without having to ask. It can also be requested the publication of more databases.
|
description: "Propose what you want the City Council to carry out and support proposals from other people."
|
||||||
|
detail: "Detailed information of proposals"
|
||||||
We have opened the new Participation portal and we will open the new Transparency and Open Data seccion shortly (meanwhile the links to existing sites are kept).
|
feature_1: "To create a proposal you have to %{link}, in addition to support you must verify your account."
|
||||||
## <a id='i'></a> I. Participation
|
feature_1_link: "sign up on %{org_name}"
|
||||||
The participation section will have different ways to participate: citizen proposals, debate areas, participatory budgets , collaborative legislation, and many others. You can currently visit the debate area and the citizen proposals will be ready very soon.
|
feature_2_html: "Proposals that get <strong>support from 1% of people</strong> will be voted on."
|
||||||
## <a id='i1'></a>I.I. Debates area
|
feature_3_html: "If there are more people in favor of against, <strong>the City Council assumes the proposal and it is done</strong>."
|
||||||
In the debates area everyone can open a discussion thread about any topic, creating an independent space where people could debate about the proposed topic. In this way, in this digital space there will be hundreds of different debate spaces which citizens could see, joining the ones they find more interesting.
|
image_alt: "Button to support a proposal"
|
||||||
|
figcaption_html: 'Button to "Support" a proposal.<br>When it reaches the number of supports will go to vote.'
|
||||||
Both threads and comments could be valued by anyone, so the citizenship, and not someone in its name, will decide which are the most important issues in every moment. These will be showed in the main page of the space, being able to access also the rest of issues in following pages, or using others order criteria (the most commented, the newst, the most controversial, etc.).
|
budgets:
|
||||||
|
title: "Participatory Budgeting"
|
||||||
Every city council employee has its own user, which will be designated as such, allowing them to participate in debates at the same level than the rest of citizens. That will allow creating direct communication spaces between them, avoiding the problems that implies the measured communication, and following clear approach of the new City Council by virtue of which the city council works for the citizenship.
|
description: "The first six months of each year you can decide how to spend part of the budget."
|
||||||
## <a id='i2'></a> I.I. Proposals area
|
detail: "Detailed information of Participatory Budgeting"
|
||||||
In the proposals area everyone can propose an initiative with the intention of collecting support enough for the idea being consulting to the whole citizenship with binding effect.
|
feature_1: "To create an investment project you have to %{link} and verify your account."
|
||||||
|
feature_1_link: "sign up on %{org_name}"
|
||||||
The proposals can be supported by every citizen registered that has verified their account in the participation platform. In this way, the citizenship, and not someone in its name, will decide which are the proposals that are worthwhile to carry out.
|
feature_2_html: "The first is the <strong>accepting phase</strong> of investment projects."
|
||||||
|
feature_3_html: "Then there is a <strong>support phase</strong> to prioritize the most interesting, the most supported are evaluated by the City to see if they are viable and how much they are worth."
|
||||||
One that the proposal has achive support of 1% census, it will be studied by a city council group and to move beyond the popular referendum phase, in which citizenship will vote if it is carried out or not. The maximum period to obtain support enough is 12 months.
|
feature_4_html: "At the end there is a <strong>voting phase </strong> where it is decided on which part of the budget is spent."
|
||||||
|
image_alt: "Different phases of a participatory budget"
|
||||||
|
figcaption_html: '"Support phase" and "Voting" phase of participatory budgets.'
|
||||||
|
faq:
|
||||||
|
title: "Technical problems?"
|
||||||
|
description: "Read the FAQs and solve your questions."
|
||||||
|
button: "View frequently asked questions"
|
||||||
|
other:
|
||||||
|
how_to_use: "Use %{org_name} in your city"
|
||||||
|
world: "Citizen participation in the world"
|
||||||
|
facts: "Facts about citizen participation and direct democracy"
|
||||||
how_to_use:
|
how_to_use:
|
||||||
text: |-
|
text: |-
|
||||||
Use it in your local government or help us to improve it, it is free software.
|
Use it in your local government or help us to improve it, it is free software.
|
||||||
@@ -48,24 +58,12 @@ en:
|
|||||||
|
|
||||||
If you are a programmer, you can see the code and help us to improve it at [Consul app](https://github.com/ayuntamientomadrid 'consul github').
|
If you are a programmer, you can see the code and help us to improve it at [Consul app](https://github.com/ayuntamientomadrid 'consul github').
|
||||||
titles:
|
titles:
|
||||||
faq: Solution to tecnical problemas (FAQ)
|
|
||||||
how_it_works: How does this Open Government Portal work?
|
|
||||||
how_to_use: Use it in your local government
|
how_to_use: Use it in your local government
|
||||||
participation: Participation and Transparency y Transparencia - coming news
|
|
||||||
participation_facts: Facts about citizen participation and direct democracy
|
|
||||||
participation_world: Direct citizen participation in the world
|
|
||||||
proposals_info: How does citizen proposals work?
|
|
||||||
signature_sheet: Signature sheet
|
|
||||||
spending_proposals_info: How does participatory budgeting work?
|
|
||||||
opendata:
|
|
||||||
slogan: "Information about Open Data."
|
|
||||||
title: Open Data
|
|
||||||
privacy: Privacy Policy
|
privacy: Privacy Policy
|
||||||
titles:
|
titles:
|
||||||
accessibility: Accessibility
|
accessibility: Accessibility
|
||||||
conditions: Terms of use
|
conditions: Terms of use
|
||||||
more_information: More information
|
more_info: "More information about %{org_name}"
|
||||||
opendata: Open Data
|
|
||||||
privacy: Privacy Policy
|
privacy: Privacy Policy
|
||||||
verify:
|
verify:
|
||||||
code: Code you received in letter
|
code: Code you received in letter
|
||||||
|
|||||||
@@ -4,42 +4,52 @@ es:
|
|||||||
census_terms: Para verificar la cuenta hay que tener 16 años o más y estar empadronado aportando los datos indicados anteriormente, los cuales serán contrastados. Aceptando el proceso de verificación acepta dar su consentimiento para contrastar dicha información, así como medios de contacto que figuren en dichos ficheros. Los datos aportados serán incorporados y tratados en un fichero indicado anteriormente en las condiciones de uso del portal.
|
census_terms: Para verificar la cuenta hay que tener 16 años o más y estar empadronado aportando los datos indicados anteriormente, los cuales serán contrastados. Aceptando el proceso de verificación acepta dar su consentimiento para contrastar dicha información, así como medios de contacto que figuren en dichos ficheros. Los datos aportados serán incorporados y tratados en un fichero indicado anteriormente en las condiciones de uso del portal.
|
||||||
conditions: Condiciones de uso
|
conditions: Condiciones de uso
|
||||||
general_terms: Términos y Condiciones
|
general_terms: Términos y Condiciones
|
||||||
more_information:
|
more_info:
|
||||||
description:
|
title: "Descubre %{org_name}"
|
||||||
faq: Preguntas frecuentes sobre problemas técnicos
|
subtitle: "Aprende todo lo que puedes hacer en esta web."
|
||||||
how_it_works: Descubre todo lo que puedes hacer en esta web
|
guide: 'Esta guía explica cada una de las secciones de %{org_name}. Puedes ampliar la información en los enlaces de "Información detallada".'
|
||||||
how_to_use: Utilízalo libremente o ayúdanos a mejorarlo, es software libre
|
menu:
|
||||||
participation: Participación Ciudadana, Transparencia y Gobierno Abierto
|
debates: "Debates"
|
||||||
participation_facts: Para perderle el miedo
|
proposals: "Propuestas"
|
||||||
participation_world: Sistemas de participación ciudadana que ya existen en el mundo
|
budgets: "Presupuestos participativos"
|
||||||
proposals_info: Crea tus propias propuestas
|
other: "Otra información de interés"
|
||||||
signature_sheet: Hojas de firmas para recoger apoyos
|
debates:
|
||||||
spending_proposals_info: Envía tus propuestas de gasto
|
title: "Debates"
|
||||||
how_it_works:
|
description: "Crea un hilo en el que debatir sobre cualquier tema que quieras compartir con el resto de gente de tu ciudad."
|
||||||
i: Participación
|
feature_1: "Para crear un debate tienes que %{link}"
|
||||||
i1: Espacio de debate
|
feature_1_link: "registrarte en %{org_name}"
|
||||||
i2: Espacio de propuestas
|
feature_2_html: "Los debates pueden ser valorados utilizando los botones de <strong>Estoy de acuerdo</strong> o <strong>No estoy de acuerdo</strong> que encontrarás en cada uno de ellos."
|
||||||
text: |-
|
image_alt: "Botones para valorar los debates"
|
||||||
El nuevo Portal de Gobierno Abierto está dividido en tres partes: Participación, Transparencia y Datos Abiertos (verás los enlaces en la parte superior derecha).
|
figcaption: 'Botones "Estoy de acuerdo" y "No estoy de acuerdo" para valorar los debates.'
|
||||||
>**I. Participación:** Donde poder decidir qué ciudad queremos tener (a través de propuestas ciudadanas, espacios de debate, presupuestos participativos, legislación colaborativa, y muchos otros procesos que iremos implementando).
|
proposals:
|
||||||
**II. Transparencia:** En este espacio se publicarán todos los datos relativos a quién y cómo se gestiona la ciudad (nombres de los responsables, cargos, sueldos, planes de gobierno, contratos, agendas de los responsables...). Además es el espacio donde ejercer el derecho de acceso a la información, pudiendo solicitar cualquier información sobre el Ayuntamiento de manera fácil y rápida.
|
title: "Propuestas"
|
||||||
**III. Datos Abiertos:** En este espacio se cuelgan las bases de datos que tiene el Ayuntamiento, para que cualquiera pueda usar toda la información directamente, sin necesidad ni siquiera de preguntar. También se puede solicitar la publicación de más bases de datos.
|
description: "Propón lo que quieres que el Ayuntamiento lleve a cabo y apoya propuestas de otras personas."
|
||||||
|
detail: "Información detallada de Propuestas"
|
||||||
Inauguramos el nuevo portal con la nueva sección de Participación, y en breve añadiremos las nuevas secciones de Transparencia y Datos Abiertos (así que mantenemos por el momento los enlaces a las páginas al respecto que ya existían).
|
feature_1: "Para crear una propuesta tienes que %{link}, además para apoyarlas debes verificar tu cuenta."
|
||||||
## <a id='i'></a> I. Participación
|
feature_1_link: "registrarte en %{org_name}"
|
||||||
El apartado de participación comprenderá diferentes mecanismos de participación: propuestas ciudadanas, espacios de debate, presupuestos participativos, legislación colaborativa, entre muchos otros. Por el momento presentamos el espacio de debate, y muy pronto las propuestas ciudadanas.
|
feature_2_html: "Las propuestas que consigan <strong>el apoyo del 1% de la gente</strong> (mayor de 16 años empadronada en Madrid; 27.064 apoyos) pasan a votación."
|
||||||
## <a id='i1'></a>I.I. Espacio de debate
|
feature_3_html: "Si hay más gente a favor que en contra en la votación, <strong>el Ayuntamiento asume la propuesta y se hace</strong>."
|
||||||
En este espacio, cualquier persona puede abrir un hilo de discusión sobre cualquier tema, creando un espacio independiente donde la gente podrá debatir sobre el tema propuesto. De esta manera, en este espacio digital convivirán cada día cientos de espacios de debate distintos entre los que la ciudadanía podrá pasearse, sumándose a los que más les interese.
|
image_alt: "Botón para apoyar una propuesta"
|
||||||
|
figcaption_html: 'Botón para "Apoyar" una propuesta.<br>Cuando alcance el número de apoyos pasará a votación.'
|
||||||
Tanto los hilos, como los comentarios podrán ser valorados por cualquiera, de tal manera que será la propia ciudadanía, y nadie en su nombre, la que decida cuáles son los temas más importantes en cada momento. Estos serán presentados en la portada del espacio, pudiendo por supuesto accederse a todos los demás temas en páginas posteriores, o usando otros criterios de ordenación (los temas con más comentarios, los más nuevos, los más controvertidos, etc.).
|
budgets:
|
||||||
|
title: "Presupuestos participativos"
|
||||||
Cada uno de los trabajadores del Ayuntamiento tiene un usuario propio, que será resaltado como tal, permitiendo que participen en los debates al mismo nivel que todos los demás ciudadanos. Esto permitirá crear espacios de comunicación directos entre unos y otros, evitando los inconvenientes que implica la comunicación mediada, y respondiendo a un planteamiento claro por parte del nuevo gobierno por el cual el Ayuntamiento trabaja para la ciudadanía, y ante ella debe responder.
|
description: "Los primeros seis meses de cada año puedes decidir cómo gastar parte del presupuesto."
|
||||||
## <a id='i2'></a> I.I. Espacio de propuestas
|
detail: "Información detallada de Presupuestos participativos"
|
||||||
En este espacio, cualquier persona puede proponer una iniciativa con la intención de recabar los suficientes apoyos como para que la idea pase a ser consultada a toda la ciudadanía con carácter vinculante.
|
feature_1: "Para crear un proyecto de gasto tienes que %{link} y verificar tu cuenta."
|
||||||
|
feature_1_link: "registrarte en %{org_name}"
|
||||||
Las propuestas pueden ser apoyadas por ciudadanos empadronados que hayan verificado su cuenta en la plataforma de participación, de tal manera que será la propia ciudadanía, y nadie en su nombre, la que decida cuáles son las propuestas que merecen la pena ser llevadas a cabo.
|
feature_2_html: "En primer lugar empieza la <strong>fase de aceptación</strong> de proyectos de gasto."
|
||||||
|
feature_3_html: "Después hay una <strong>fase de apoyos</strong> para priorizar lo más interesante, las más apoyadas son evaluadas por el Ayuntamiento para ver si son viables y cuánto valen."
|
||||||
Una vez que una propuesta alcance una cantidad de apoyos equivalente al 1% del censo, automáticamente pasa a ser estudiada por un grupo de trabajo del Ayuntamiento y pasará a la siguiente fase de consulta popular, en la que la ciudadanía votará si se lleva a cabo o no. El plazo máximo para recabar los apoyos necesarios será de 12 meses.
|
feature_4_html: "Al final hay una <strong>fase de votación</strong> donde se decide en cuáles se gasta esa parte del presupuesto."
|
||||||
|
image_alt: "Diferentes fases de un presupuesto participativo"
|
||||||
|
figcaption_html: 'Fase de "Apoyos" y fase de "Votación" de los presupuestos participativos.'
|
||||||
|
faq:
|
||||||
|
title: "¿Problemas técnicos?"
|
||||||
|
description: "Lee las preguntas frecuentes y resuelve tus dudas."
|
||||||
|
button: "Ver preguntas frecuentes"
|
||||||
|
other:
|
||||||
|
how_to_use: "Utiliza %{org_name} en tu municipio"
|
||||||
|
world: "Participación ciudadana directa en el mundo"
|
||||||
|
facts: "Hechos sobre participación ciudadana y democracia directa"
|
||||||
how_to_use:
|
how_to_use:
|
||||||
text: |-
|
text: |-
|
||||||
Utilízalo en tu municipio libremente o ayúdanos a mejorarlo, es software libre.
|
Utilízalo en tu municipio libremente o ayúdanos a mejorarlo, es software libre.
|
||||||
@@ -48,24 +58,12 @@ es:
|
|||||||
|
|
||||||
Si eres programador, puedes ver el código y ayudarnos a mejorarlo en [aplicación Consul](https://github.com/ayuntamientomadrid 'github consul').
|
Si eres programador, puedes ver el código y ayudarnos a mejorarlo en [aplicación Consul](https://github.com/ayuntamientomadrid 'github consul').
|
||||||
titles:
|
titles:
|
||||||
faq: Soluciones a problemas técnicos (FAQ)
|
|
||||||
how_it_works: "¿Cómo funciona este Portal de Gobierno Abierto?"
|
|
||||||
how_to_use: Utilízalo en tu municipio
|
how_to_use: Utilízalo en tu municipio
|
||||||
participation: Participación y Transparencia - Próximas novedades
|
|
||||||
participation_facts: Hechos sobre participación ciudadana y democracia directa
|
|
||||||
participation_world: Participación ciudadana directa en el mundo
|
|
||||||
proposals_info: "¿Cómo funcionan las propuestas ciudadanas?"
|
|
||||||
signature_sheet: Hojas de firmas
|
|
||||||
spending_proposals_info: "¿Cómo funcionan los presupuestos participativos?"
|
|
||||||
opendata:
|
|
||||||
slogan: "Información sobre Datos abiertos."
|
|
||||||
title: Datos abiertos
|
|
||||||
privacy: Política de Privacidad
|
privacy: Política de Privacidad
|
||||||
titles:
|
titles:
|
||||||
accessibility: Accesibilidad
|
accessibility: Accesibilidad
|
||||||
conditions: Condiciones de uso
|
conditions: Condiciones de uso
|
||||||
more_information: Más información
|
more_info: "Más información sobre %{org_name}"
|
||||||
opendata: Datos abiertos
|
|
||||||
privacy: Política de Privacidad
|
privacy: Política de Privacidad
|
||||||
verify:
|
verify:
|
||||||
code: Código que has recibido en tu carta
|
code: Código que has recibido en tu carta
|
||||||
|
|||||||
@@ -841,7 +841,6 @@ pt-BR:
|
|||||||
description: Este portal usa o %{consul} que é %{open_source}. De Madrid para
|
description: Este portal usa o %{consul} que é %{open_source}. De Madrid para
|
||||||
o mundo.
|
o mundo.
|
||||||
faq: suporte técnico
|
faq: suporte técnico
|
||||||
more_info: Mais informações
|
|
||||||
open_data_text: Todos os detalhes sobre a Câmara estão disponíveis para acesso.
|
open_data_text: Todos os detalhes sobre a Câmara estão disponíveis para acesso.
|
||||||
open_data_title: Dados abertos
|
open_data_title: Dados abertos
|
||||||
open_source: programa de código aberto
|
open_source: programa de código aberto
|
||||||
@@ -860,9 +859,9 @@ pt-BR:
|
|||||||
external_link_transparency: Transparência
|
external_link_transparency: Transparência
|
||||||
external_link_transparency_url: https://transparency.consul
|
external_link_transparency_url: https://transparency.consul
|
||||||
locale: 'Idioma:'
|
locale: 'Idioma:'
|
||||||
logo: Consul
|
logo: Consul logotipo
|
||||||
moderation: Moderação
|
moderation: Moderação
|
||||||
more_information: Mais informações
|
more_info: Mais informações
|
||||||
my_account_link: Minha conta
|
my_account_link: Minha conta
|
||||||
my_activity_link: Minha atividade
|
my_activity_link: Minha atividade
|
||||||
new_notifications:
|
new_notifications:
|
||||||
@@ -1149,7 +1148,7 @@ pt-BR:
|
|||||||
mencionado previamente nos termos e condições de uso deste Portal.
|
mencionado previamente nos termos e condições de uso deste Portal.
|
||||||
conditions: Termos e condições de uso
|
conditions: Termos e condições de uso
|
||||||
general_terms: Termos e condições
|
general_terms: Termos e condições
|
||||||
more_information:
|
more_info:
|
||||||
description:
|
description:
|
||||||
faq: Perguntas frequentes feitas sobre problemas técnicos
|
faq: Perguntas frequentes feitas sobre problemas técnicos
|
||||||
how_it_works: Descubra tudo que você pode fazer com este website.
|
how_it_works: Descubra tudo que você pode fazer com este website.
|
||||||
@@ -1248,7 +1247,7 @@ pt-BR:
|
|||||||
titles:
|
titles:
|
||||||
accessibility: Acessibilidade
|
accessibility: Acessibilidade
|
||||||
conditions: Termos de uso
|
conditions: Termos de uso
|
||||||
more_information: Mais informações
|
more_info: Mais informações
|
||||||
opendata: Dados abertos
|
opendata: Dados abertos
|
||||||
privacy: Política de privacidade
|
privacy: Política de privacidade
|
||||||
verify:
|
verify:
|
||||||
@@ -1370,7 +1369,8 @@ pt-BR:
|
|||||||
official_level_3_name: Nível 3 coordenador público
|
official_level_3_name: Nível 3 coordenador público
|
||||||
official_level_4_name: Nível 4 coordenador público
|
official_level_4_name: Nível 4 coordenador público
|
||||||
official_level_5_name: Nível 5 coordenador público
|
official_level_5_name: Nível 5 coordenador público
|
||||||
per_page_code: Código a ser incluído em cada página
|
per_page_code_head: "Código a ser incluído em cada página (<head>)"
|
||||||
|
per_page_code_body: "Código a ser incluído em cada página (<body>)"
|
||||||
proposal_code_prefix: Prefixo para códigos de Proposta
|
proposal_code_prefix: Prefixo para códigos de Proposta
|
||||||
votes_for_proposal_success: Número de votos necessários para aprovar uma Proposta
|
votes_for_proposal_success: Número de votos necessários para aprovar uma Proposta
|
||||||
shared:
|
shared:
|
||||||
@@ -1640,7 +1640,7 @@ pt-BR:
|
|||||||
link: Mostrar propostas
|
link: Mostrar propostas
|
||||||
text: Criar suas próprias propostas e apoiar aquelas de outros cidadãos
|
text: Criar suas próprias propostas e apoiar aquelas de outros cidadãos
|
||||||
title: Propostas cidadãs
|
title: Propostas cidadãs
|
||||||
more_information: Mais informações sobre esta página
|
more_info: Mais informações sobre esta página
|
||||||
proposal:
|
proposal:
|
||||||
alt: "Ícone proposta"
|
alt: "Ícone proposta"
|
||||||
description: Espaço aberto para propostas cidadãs sobre o tipo de cidade dentro da qual nós queremos viver.
|
description: Espaço aberto para propostas cidadãs sobre o tipo de cidade dentro da qual nós queremos viver.
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ en:
|
|||||||
votes_for_proposal_success: "Number of votes necessary for approval of a Proposal"
|
votes_for_proposal_success: "Number of votes necessary for approval of a Proposal"
|
||||||
months_to_archive_proposals: "Months to archive Proposals"
|
months_to_archive_proposals: "Months to archive Proposals"
|
||||||
email_domain_for_officials: "Email domain for public officials"
|
email_domain_for_officials: "Email domain for public officials"
|
||||||
per_page_code: "Code to be included on every page"
|
per_page_code_head: "Code to be included on every page (<head>)"
|
||||||
|
per_page_code_body: "Code to be included on every page (<body>)"
|
||||||
twitter_handle: "Twitter handle"
|
twitter_handle: "Twitter handle"
|
||||||
twitter_hashtag: "Twitter hashtag"
|
twitter_hashtag: "Twitter hashtag"
|
||||||
facebook_handle: "Facebook handle"
|
facebook_handle: "Facebook handle"
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ es:
|
|||||||
votes_for_proposal_success: "Número de votos necesarios para aprobar una Propuesta"
|
votes_for_proposal_success: "Número de votos necesarios para aprobar una Propuesta"
|
||||||
months_to_archive_proposals: "Meses para archivar las Propuestas"
|
months_to_archive_proposals: "Meses para archivar las Propuestas"
|
||||||
email_domain_for_officials: "Dominio de email para cargos públicos"
|
email_domain_for_officials: "Dominio de email para cargos públicos"
|
||||||
per_page_code: "Código a incluir en cada página"
|
per_page_code_head: "Código a incluir en cada página (<head>)"
|
||||||
|
per_page_code_body: "Código a incluir en cada página (<body>)"
|
||||||
twitter_handle: "Usuario de Twitter"
|
twitter_handle: "Usuario de Twitter"
|
||||||
twitter_hashtag: "Hashtag para Twitter"
|
twitter_hashtag: "Hashtag para Twitter"
|
||||||
facebook_handle: "Identificador de Facebook"
|
facebook_handle: "Identificador de Facebook"
|
||||||
|
|||||||
@@ -17,3 +17,4 @@ en:
|
|||||||
plurk: "Plurk"
|
plurk: "Plurk"
|
||||||
pinterest: "Pinterest"
|
pinterest: "Pinterest"
|
||||||
email: "Email"
|
email: "Email"
|
||||||
|
telegram: "Telegram"
|
||||||
|
|||||||
@@ -17,3 +17,4 @@ es:
|
|||||||
plurk: "Plurk"
|
plurk: "Plurk"
|
||||||
pinterest: "Pinterest"
|
pinterest: "Pinterest"
|
||||||
email: "Correo electrónico"
|
email: "Correo electrónico"
|
||||||
|
telegram: "Telegram"
|
||||||
|
|||||||
@@ -329,7 +329,7 @@ Rails.application.routes.draw do
|
|||||||
get :support_investments
|
get :support_investments
|
||||||
get :print_investments
|
get :print_investments
|
||||||
end
|
end
|
||||||
resources :investments, only: [:index, :new, :create, :show], controller: 'budgets/investments' do
|
resources :investments, only: [:index, :new, :create, :show, :destroy], controller: 'budgets/investments' do
|
||||||
post :vote, on: :member
|
post :vote, on: :member
|
||||||
get :print, on: :collection
|
get :print, on: :collection
|
||||||
end
|
end
|
||||||
@@ -355,6 +355,15 @@ Rails.application.routes.draw do
|
|||||||
|
|
||||||
mount Tolk::Engine => '/translate', :as => 'tolk'
|
mount Tolk::Engine => '/translate', :as => 'tolk'
|
||||||
|
|
||||||
|
# more info pages
|
||||||
|
get 'more-information', to: 'pages#show', id: 'more_info/index', as: 'more_info'
|
||||||
|
get 'more-information/how-to-use', to: 'pages#show', id: 'more_info/how_to_use/index', as: 'how_to_use'
|
||||||
|
get 'more-information/faq', to: 'pages#show', id: 'more_info/faq/index', as: 'faq'
|
||||||
|
get 'more-information/proposals', to: 'pages#show', id: 'more_info/proposals/index', as: 'more_info_proposals'
|
||||||
|
get 'more-information/budgets', to: 'pages#show', id: 'more_info/budgets/index', as: 'more_info_budgets'
|
||||||
|
get 'more-information/participation/facts', to: 'pages#show', id: 'more_info/participation/facts', as: 'participation_facts'
|
||||||
|
get 'more-information/participation/world', to: 'pages#show', id: 'more_info/participation/world', as: 'participation_world'
|
||||||
|
|
||||||
# static pages
|
# static pages
|
||||||
get '/blog' => redirect("http://blog.consul/")
|
get '/blog' => redirect("http://blog.consul/")
|
||||||
resources :pages, path: '/', only: [:show]
|
resources :pages, path: '/', only: [:show]
|
||||||
|
|||||||
@@ -33,7 +33,8 @@ Setting.create(key: 'feature.twitter_login', value: "true")
|
|||||||
Setting.create(key: 'feature.facebook_login', value: "true")
|
Setting.create(key: 'feature.facebook_login', value: "true")
|
||||||
Setting.create(key: 'feature.google_login', value: "true")
|
Setting.create(key: 'feature.google_login', value: "true")
|
||||||
Setting.create(key: 'feature.signature_sheets', value: "true")
|
Setting.create(key: 'feature.signature_sheets', value: "true")
|
||||||
Setting.create(key: 'per_page_code', value: "")
|
Setting.create(key: 'per_page_code_head', value: "")
|
||||||
|
Setting.create(key: 'per_page_code_body', value: "")
|
||||||
Setting.create(key: 'comments_body_max_length', value: '1000')
|
Setting.create(key: 'comments_body_max_length', value: '1000')
|
||||||
Setting.create(key: 'mailer_from_name', value: 'Consul')
|
Setting.create(key: 'mailer_from_name', value: 'Consul')
|
||||||
Setting.create(key: 'mailer_from_address', value: 'noreply@consul.dev')
|
Setting.create(key: 'mailer_from_address', value: 'noreply@consul.dev')
|
||||||
@@ -422,7 +423,7 @@ end
|
|||||||
puts " ✅"
|
puts " ✅"
|
||||||
print "Creating Valuation Assignments"
|
print "Creating Valuation Assignments"
|
||||||
|
|
||||||
(1..17).to_a.sample.times do
|
(1..50).to_a.sample.times do
|
||||||
Budget::Investment.reorder("RANDOM()").first.valuators << valuator.valuator
|
Budget::Investment.reorder("RANDOM()").first.valuators << valuator.valuator
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||