Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
27b3233aeb | ||
|
|
af8f55fc23 | ||
|
|
554c8cc5c3 | ||
|
|
5ff8944e80 | ||
|
|
bac73000c1 | ||
|
|
0e96429f76 | ||
|
|
0a47824571 | ||
|
|
4d369d2646 | ||
|
|
6d3e30faff | ||
|
|
13a27f8529 | ||
|
|
13342dd595 | ||
|
|
45050f1c67 | ||
|
|
aab4141e5e | ||
|
|
3a80de2974 | ||
|
|
1d8cbaba89 | ||
|
|
e21cfd2807 | ||
|
|
3a7e871909 | ||
|
|
1d3989394e | ||
|
|
aeed65d7d8 | ||
|
|
4b6702a3e2 | ||
|
|
bafb0604dd | ||
|
|
01e39563d6 | ||
|
|
3f7ff9480d | ||
|
|
6429885f39 | ||
|
|
8f343a91de | ||
|
|
359717100d | ||
|
|
8785f49386 | ||
|
|
0cc858d22e | ||
|
|
0993d6387c | ||
|
|
ed18fa6067 | ||
|
|
c7f26e1acd | ||
|
|
cf566f5e9d | ||
|
|
f6558753f3 | ||
|
|
44bc6e1118 | ||
|
|
b102223a2d | ||
|
|
d883f80f18 | ||
|
|
58a576e011 | ||
|
|
4c8f3b8643 | ||
|
|
b753511096 | ||
|
|
2fb44885ce | ||
|
|
4e45e94f4b | ||
|
|
d8106e7b08 | ||
|
|
018ddce8cf | ||
|
|
a4c8b2beba | ||
|
|
59aa0ecbaf | ||
|
|
94d2d733e9 | ||
|
|
7bd9a0ab22 | ||
|
|
299097e13f | ||
|
|
037030a140 | ||
|
|
bd95513f59 | ||
|
|
e4a2b26d6e | ||
|
|
93a77e12a4 | ||
|
|
e9a73ea5cb | ||
|
|
06922e9316 | ||
|
|
421f9907b9 | ||
|
|
cd6bff99e7 | ||
|
|
c82f8e1ab8 | ||
|
|
aa4c9d5704 | ||
|
|
b55a2ac434 | ||
|
|
8c772b1e43 | ||
|
|
3c6a23036c | ||
|
|
df5f4df90d | ||
|
|
c5b7b79b7b | ||
|
|
bdddba4e07 | ||
|
|
e44d5935f2 | ||
|
|
9387735ae6 | ||
|
|
050a4a88e7 | ||
|
|
7f540bc3c5 | ||
|
|
add8550617 | ||
|
|
5834b42266 | ||
|
|
fec35cfa1b | ||
|
|
45e96470af | ||
|
|
82db449769 | ||
|
|
ca2aea6022 | ||
|
|
49ddc08550 | ||
|
|
8957724102 | ||
|
|
506665e991 | ||
|
|
03848cb6e8 | ||
|
|
dfa2c02820 | ||
|
|
63f514144a | ||
|
|
8d0fdf9210 | ||
|
|
10727a1302 | ||
|
|
1440cfcc1e | ||
|
|
71a5c8ee64 | ||
|
|
d7d42ae241 | ||
|
|
0a20c632b8 | ||
|
|
d247560fca | ||
|
|
ebe53e40d2 | ||
|
|
36d8787306 | ||
|
|
a1fbcac477 | ||
|
|
572c21a310 | ||
|
|
a4b267056d | ||
|
|
867078a437 | ||
|
|
e244e592ed | ||
|
|
6b7feefa16 | ||
|
|
9c6414477d | ||
|
|
d4566c7446 | ||
|
|
1bc5f9aa7a | ||
|
|
d288f26286 | ||
|
|
515519a537 | ||
|
|
2111fe9b46 | ||
|
|
1ea3806a7d | ||
|
|
ed461a7c3e | ||
|
|
8cb8aea9ca | ||
|
|
cb1bf34588 | ||
|
|
93dc7b0c50 | ||
|
|
7a2187e839 | ||
|
|
5579877589 | ||
|
|
c65513fd0a | ||
|
|
7bd771dbc7 | ||
|
|
281caaf0fd | ||
|
|
dd5e22ea48 | ||
|
|
b30bd91f3d | ||
|
|
757ac487e5 | ||
|
|
5b069a1aa4 | ||
|
|
e86e6102d5 | ||
|
|
c0e5cd94d7 | ||
|
|
a4c408f501 | ||
|
|
cca7b30fba | ||
|
|
242e842100 | ||
|
|
7ce05f1ae4 | ||
|
|
51a2ace11d | ||
|
|
ee8e4a0009 | ||
|
|
4dc0a8e1a6 | ||
|
|
ecc5ac17b8 | ||
|
|
74193ab3cf | ||
|
|
cebccfdfda | ||
|
|
c3bfeed620 | ||
|
|
cfc1fbfd9f | ||
|
|
175c9bea4f | ||
|
|
5660d9d3d2 | ||
|
|
171f1780d2 | ||
|
|
9484a4cbd4 | ||
|
|
86e62ccda3 |
@@ -8,8 +8,10 @@
|
||||
/.bundle
|
||||
/.rspec
|
||||
.ruby-version
|
||||
|
||||
.env
|
||||
/avatars
|
||||
# Ignore all logfiles and tempfiles.
|
||||
/log/*
|
||||
!/log/.keep
|
||||
/tmp
|
||||
.Rproj.user
|
||||
|
||||
@@ -7,6 +7,7 @@ AllCops:
|
||||
- config/**/*
|
||||
- spec/**/*
|
||||
- spec/dummy/config/initializers/secret_token.rb
|
||||
- lib/mail_chimp_batch_update.rb
|
||||
Documentation:
|
||||
Enabled: false
|
||||
LineLength:
|
||||
@@ -14,3 +15,5 @@ LineLength:
|
||||
Max: 160
|
||||
AbcSize:
|
||||
Enabled: false
|
||||
Style/FrozenStringLiteralComment:
|
||||
Enabled: false
|
||||
@@ -1,6 +1,6 @@
|
||||
services: mongodb
|
||||
language: ruby
|
||||
rvm:
|
||||
- 2.2
|
||||
- 2.3.1
|
||||
cache: bundler
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
ruby '2.3.1'
|
||||
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
||||
gem 'rails', '~> 4.2'
|
||||
# Use SCSS for stylesheets
|
||||
@@ -11,20 +11,57 @@ gem 'coffee-rails', '~> 4.1.0'
|
||||
# See https://github.com/rails/execjs#readme for more supported runtimes
|
||||
# gem 'therubyracer', platforms: :ruby
|
||||
|
||||
# Integrate Paperclip into Mongoid.
|
||||
gem 'mongoid-paperclip'
|
||||
|
||||
# Markdown rendering
|
||||
gem 'redcarpet'
|
||||
|
||||
# Stripe integration
|
||||
gem 'stripe'
|
||||
|
||||
# Render your navigation as HTML list, link list or breadcrumbs.
|
||||
gem 'simple-navigation'
|
||||
|
||||
# To extend paperclip with locales
|
||||
gem 'paperclip-i18n'
|
||||
|
||||
# Amazon's S3 file hosting service
|
||||
gem 'aws-sdk', '< 3.0' # see https://github.com/thoughtbot/paperclip/issues/2484
|
||||
|
||||
# A fixtures replacement
|
||||
gem 'factory_girl'
|
||||
|
||||
# It's a small library to provide the Rails I18n translations on the JavaScript.
|
||||
gem "i18n-js"
|
||||
|
||||
# Use jquery as the JavaScript library
|
||||
gem 'jquery-rails'
|
||||
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
|
||||
gem 'turbolinks'
|
||||
|
||||
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
|
||||
gem 'jbuilder', '~> 2.0'
|
||||
# bundle exec rake doc:rails generates the API under doc/api.
|
||||
gem 'sdoc', '~> 0.4.0', group: :doc
|
||||
|
||||
gem 'rails_bootstrap_navbar'
|
||||
# Kaminari Mongoid adapter.
|
||||
gem 'kaminari-mongoid'
|
||||
gem 'kaminari-actionview'
|
||||
|
||||
# Translate routing
|
||||
gem 'route_translator'
|
||||
|
||||
# This gem hooks up your Rails application with Roadie to help you generate HTML emails.
|
||||
gem 'roadie-rails', '~> 1.0'
|
||||
|
||||
# Devise is a flexible authentication solution for Rails based on Warden.
|
||||
gem 'devise'
|
||||
|
||||
# Translations for devise
|
||||
gem 'devise-i18n'
|
||||
|
||||
# Simulate data
|
||||
gem 'faker'
|
||||
|
||||
# Use ActiveModel has_secure_password
|
||||
# gem 'bcrypt', '~> 3.1.7'
|
||||
|
||||
@@ -50,8 +87,6 @@ gem 'rails_admin'
|
||||
|
||||
gem 'mongoid_paranoia'
|
||||
|
||||
gem 'mailchimp-api', require: 'mailchimp'
|
||||
|
||||
group :development, :test do
|
||||
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
|
||||
gem 'byebug'
|
||||
@@ -63,6 +98,12 @@ group :development, :test do
|
||||
end
|
||||
|
||||
group :development do
|
||||
# A series of things you can use to benchmark a Rails or Ruby app.
|
||||
gem 'derailed_benchmarks'
|
||||
|
||||
# To use all profiling methods available
|
||||
gem 'stackprof'
|
||||
|
||||
# Access an IRB console on exception pages or by using <%= console %> in views
|
||||
gem 'web-console', '~> 2.0'
|
||||
|
||||
|
||||
@@ -1,127 +1,182 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
actionmailer (4.2.6)
|
||||
actionpack (= 4.2.6)
|
||||
actionview (= 4.2.6)
|
||||
activejob (= 4.2.6)
|
||||
actionmailer (4.2.10)
|
||||
actionpack (= 4.2.10)
|
||||
actionview (= 4.2.10)
|
||||
activejob (= 4.2.10)
|
||||
mail (~> 2.5, >= 2.5.4)
|
||||
rails-dom-testing (~> 1.0, >= 1.0.5)
|
||||
actionpack (4.2.6)
|
||||
actionview (= 4.2.6)
|
||||
activesupport (= 4.2.6)
|
||||
actionpack (4.2.10)
|
||||
actionview (= 4.2.10)
|
||||
activesupport (= 4.2.10)
|
||||
rack (~> 1.6)
|
||||
rack-test (~> 0.6.2)
|
||||
rails-dom-testing (~> 1.0, >= 1.0.5)
|
||||
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
||||
actionview (4.2.6)
|
||||
activesupport (= 4.2.6)
|
||||
actionview (4.2.10)
|
||||
activesupport (= 4.2.10)
|
||||
builder (~> 3.1)
|
||||
erubis (~> 2.7.0)
|
||||
rails-dom-testing (~> 1.0, >= 1.0.5)
|
||||
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
||||
activejob (4.2.6)
|
||||
activesupport (= 4.2.6)
|
||||
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
||||
activejob (4.2.10)
|
||||
activesupport (= 4.2.10)
|
||||
globalid (>= 0.3.0)
|
||||
activemodel (4.2.6)
|
||||
activesupport (= 4.2.6)
|
||||
activemodel (4.2.10)
|
||||
activesupport (= 4.2.10)
|
||||
builder (~> 3.1)
|
||||
activerecord (4.2.6)
|
||||
activemodel (= 4.2.6)
|
||||
activesupport (= 4.2.6)
|
||||
activerecord (4.2.10)
|
||||
activemodel (= 4.2.10)
|
||||
activesupport (= 4.2.10)
|
||||
arel (~> 6.0)
|
||||
activesupport (4.2.6)
|
||||
activesupport (4.2.10)
|
||||
i18n (~> 0.7)
|
||||
json (~> 1.7, >= 1.7.7)
|
||||
minitest (~> 5.1)
|
||||
thread_safe (~> 0.3, >= 0.3.4)
|
||||
tzinfo (~> 1.1)
|
||||
addressable (2.4.0)
|
||||
arel (6.0.3)
|
||||
autoprefixer-rails (6.3.6.2)
|
||||
addressable (2.5.2)
|
||||
public_suffix (>= 2.0.2, < 4.0)
|
||||
arel (6.0.4)
|
||||
autoprefixer-rails (7.1.4.1)
|
||||
execjs
|
||||
aws-sdk (2.10.61)
|
||||
aws-sdk-resources (= 2.10.61)
|
||||
aws-sdk-core (2.10.61)
|
||||
aws-sigv4 (~> 1.0)
|
||||
jmespath (~> 1.0)
|
||||
aws-sdk-resources (2.10.61)
|
||||
aws-sdk-core (= 2.10.61)
|
||||
aws-sigv4 (1.0.2)
|
||||
bcrypt (3.1.11)
|
||||
benchmark-ips (2.7.2)
|
||||
binding_of_caller (0.7.2)
|
||||
debug_inspector (>= 0.0.1)
|
||||
bootstrap-navbar (2.4.0)
|
||||
gem_config (~> 0.3)
|
||||
bootstrap-sass (3.3.6)
|
||||
bootstrap-sass (3.3.7)
|
||||
autoprefixer-rails (>= 5.2.1)
|
||||
sass (>= 3.3.4)
|
||||
bson (4.1.1)
|
||||
builder (3.2.2)
|
||||
byebug (9.0.5)
|
||||
capybara (2.7.1)
|
||||
bson (4.2.2)
|
||||
builder (3.2.3)
|
||||
byebug (9.1.0)
|
||||
capybara (2.15.1)
|
||||
addressable
|
||||
mime-types (>= 1.16)
|
||||
mini_mime (>= 0.1.3)
|
||||
nokogiri (>= 1.3.3)
|
||||
rack (>= 1.0.0)
|
||||
rack-test (>= 0.5.4)
|
||||
xpath (~> 2.0)
|
||||
coderay (1.1.1)
|
||||
climate_control (0.2.0)
|
||||
cocaine (0.5.8)
|
||||
climate_control (>= 0.0.3, < 1.0)
|
||||
coderay (1.1.2)
|
||||
coffee-rails (4.1.1)
|
||||
coffee-script (>= 2.2.0)
|
||||
railties (>= 4.0.0, < 5.1.x)
|
||||
coffee-script (2.4.1)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.10.0)
|
||||
concurrent-ruby (1.0.2)
|
||||
css_parser (1.4.8)
|
||||
coffee-script-source (1.12.2)
|
||||
concurrent-ruby (1.0.5)
|
||||
crass (1.0.4)
|
||||
css_parser (1.6.0)
|
||||
addressable
|
||||
debug_inspector (0.0.2)
|
||||
diff-lcs (1.2.5)
|
||||
dotenv (2.1.1)
|
||||
dotenv-rails (2.1.1)
|
||||
dotenv (= 2.1.1)
|
||||
railties (>= 4.0, < 5.1)
|
||||
debug_inspector (0.0.3)
|
||||
derailed_benchmarks (1.3.2)
|
||||
benchmark-ips (~> 2)
|
||||
get_process_mem (~> 0)
|
||||
heapy (~> 0)
|
||||
memory_profiler (~> 0)
|
||||
rack (>= 1)
|
||||
rake (> 10, < 13)
|
||||
thor (~> 0.19)
|
||||
devise (4.3.0)
|
||||
bcrypt (~> 3.0)
|
||||
orm_adapter (~> 0.1)
|
||||
railties (>= 4.1.0, < 5.2)
|
||||
responders
|
||||
warden (~> 1.2.3)
|
||||
devise-i18n (1.2.0)
|
||||
diff-lcs (1.3)
|
||||
dotenv (2.2.1)
|
||||
dotenv-rails (2.2.1)
|
||||
dotenv (= 2.2.1)
|
||||
railties (>= 3.2, < 5.2)
|
||||
erubis (2.7.0)
|
||||
excon (0.49.0)
|
||||
execjs (2.7.0)
|
||||
font-awesome-rails (4.6.3.0)
|
||||
railties (>= 3.2, < 5.1)
|
||||
gem_config (0.3.1)
|
||||
geocoder (1.3.7)
|
||||
globalid (0.3.6)
|
||||
activesupport (>= 4.1.0)
|
||||
haml (4.0.7)
|
||||
factory_girl (4.8.1)
|
||||
activesupport (>= 3.0.0)
|
||||
faker (1.8.4)
|
||||
i18n (~> 0.5)
|
||||
faraday (0.13.1)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ffi (1.9.25)
|
||||
font-awesome-rails (4.7.0.4)
|
||||
railties (>= 3.2, < 6.0)
|
||||
geocoder (1.4.4)
|
||||
get_process_mem (0.2.1)
|
||||
globalid (0.4.1)
|
||||
activesupport (>= 4.2.0)
|
||||
haml (5.0.4)
|
||||
temple (>= 0.8.0)
|
||||
tilt
|
||||
i18n (0.7.0)
|
||||
jbuilder (2.5.0)
|
||||
activesupport (>= 3.0.0, < 5.1)
|
||||
multi_json (~> 1.2)
|
||||
jquery-rails (4.1.1)
|
||||
heapy (0.1.3)
|
||||
i18n (0.9.5)
|
||||
concurrent-ruby (~> 1.0)
|
||||
i18n-js (3.0.1)
|
||||
i18n (~> 0.6, >= 0.6.6)
|
||||
jbuilder (2.7.0)
|
||||
activesupport (>= 4.2.0)
|
||||
multi_json (>= 1.2)
|
||||
jmespath (1.3.1)
|
||||
jquery-rails (4.3.3)
|
||||
rails-dom-testing (>= 1, < 3)
|
||||
railties (>= 4.2.0)
|
||||
thor (>= 0.14, < 2.0)
|
||||
jquery-ui-rails (5.0.5)
|
||||
railties (>= 3.2.16)
|
||||
json (1.8.3)
|
||||
kaminari (0.17.0)
|
||||
actionpack (>= 3.0.0)
|
||||
activesupport (>= 3.0.0)
|
||||
loofah (2.0.3)
|
||||
json (1.8.6)
|
||||
kaminari (1.1.1)
|
||||
activesupport (>= 4.1.0)
|
||||
kaminari-actionview (= 1.1.1)
|
||||
kaminari-activerecord (= 1.1.1)
|
||||
kaminari-core (= 1.1.1)
|
||||
kaminari-actionview (1.1.1)
|
||||
actionview
|
||||
kaminari-core (= 1.1.1)
|
||||
kaminari-activerecord (1.1.1)
|
||||
activerecord
|
||||
kaminari-core (= 1.1.1)
|
||||
kaminari-core (1.1.1)
|
||||
kaminari-mongoid (1.0.1)
|
||||
kaminari-core (~> 1.0)
|
||||
mongoid
|
||||
loofah (2.2.2)
|
||||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.5.9)
|
||||
mail (2.6.4)
|
||||
mime-types (>= 1.16, < 4)
|
||||
mailchimp-api (2.0.6)
|
||||
excon (>= 0.16.0)
|
||||
json (>= 1.7.7)
|
||||
method_source (0.8.2)
|
||||
mail (2.7.0)
|
||||
mini_mime (>= 0.1.1)
|
||||
memory_profiler (0.9.8)
|
||||
method_source (0.9.0)
|
||||
mime-types (3.1)
|
||||
mime-types-data (~> 3.2015)
|
||||
mime-types-data (3.2016.0521)
|
||||
mini_portile2 (2.1.0)
|
||||
minitest (5.9.0)
|
||||
mongo (2.2.5)
|
||||
bson (~> 4.0)
|
||||
mimemagic (0.3.2)
|
||||
mini_mime (0.1.4)
|
||||
mini_portile2 (2.3.0)
|
||||
minitest (5.11.3)
|
||||
mongo (2.4.3)
|
||||
bson (>= 4.2.1, < 5.0.0)
|
||||
mongoid (5.0.2)
|
||||
activemodel (~> 4.0)
|
||||
mongo (~> 2.1)
|
||||
origin (~> 2.1)
|
||||
tzinfo (>= 0.3.37)
|
||||
mongoid-compatibility (0.4.0)
|
||||
mongoid-compatibility (0.5.0)
|
||||
activesupport
|
||||
mongoid (>= 2.0)
|
||||
mongoid-paperclip (0.0.11)
|
||||
mongoid
|
||||
paperclip (>= 2.3.6, != 4.3.0)
|
||||
mongoid-rspec (3.0.0)
|
||||
mongoid (~> 5.0)
|
||||
rake
|
||||
@@ -129,186 +184,221 @@ GEM
|
||||
mongoid_paranoia (0.2.1)
|
||||
mongoid (>= 4)
|
||||
mongoid-compatibility
|
||||
multi_json (1.12.1)
|
||||
multi_json (1.12.2)
|
||||
multipart-post (2.0.0)
|
||||
nested_form (0.3.2)
|
||||
nokogiri (1.6.8)
|
||||
mini_portile2 (~> 2.1.0)
|
||||
pkg-config (~> 1.1.7)
|
||||
origin (2.2.0)
|
||||
pkg-config (1.1.7)
|
||||
pry (0.10.3)
|
||||
nokogiri (1.8.5)
|
||||
mini_portile2 (~> 2.3.0)
|
||||
origin (2.3.1)
|
||||
orm_adapter (0.5.0)
|
||||
paperclip (5.2.0)
|
||||
activemodel (>= 4.2.0)
|
||||
activesupport (>= 4.2.0)
|
||||
cocaine (~> 0.5.5)
|
||||
mime-types
|
||||
mimemagic (~> 0.3.0)
|
||||
paperclip-i18n (4.3.0)
|
||||
pry (0.11.1)
|
||||
coderay (~> 1.1.0)
|
||||
method_source (~> 0.8.1)
|
||||
slop (~> 3.4)
|
||||
pry-rails (0.3.4)
|
||||
pry (>= 0.9.10)
|
||||
puma (3.4.0)
|
||||
rack (1.6.4)
|
||||
rack-pjax (0.8.0)
|
||||
method_source (~> 0.9.0)
|
||||
pry-rails (0.3.6)
|
||||
pry (>= 0.10.4)
|
||||
public_suffix (3.0.0)
|
||||
puma (3.10.0)
|
||||
rack (1.6.10)
|
||||
rack-pjax (1.0.0)
|
||||
nokogiri (~> 1.5)
|
||||
rack (~> 1.1)
|
||||
rack (>= 1.1)
|
||||
rack-test (0.6.3)
|
||||
rack (>= 1.0)
|
||||
rails (4.2.6)
|
||||
actionmailer (= 4.2.6)
|
||||
actionpack (= 4.2.6)
|
||||
actionview (= 4.2.6)
|
||||
activejob (= 4.2.6)
|
||||
activemodel (= 4.2.6)
|
||||
activerecord (= 4.2.6)
|
||||
activesupport (= 4.2.6)
|
||||
rails (4.2.10)
|
||||
actionmailer (= 4.2.10)
|
||||
actionpack (= 4.2.10)
|
||||
actionview (= 4.2.10)
|
||||
activejob (= 4.2.10)
|
||||
activemodel (= 4.2.10)
|
||||
activerecord (= 4.2.10)
|
||||
activesupport (= 4.2.10)
|
||||
bundler (>= 1.3.0, < 2.0)
|
||||
railties (= 4.2.6)
|
||||
railties (= 4.2.10)
|
||||
sprockets-rails
|
||||
rails-deprecated_sanitizer (1.0.3)
|
||||
activesupport (>= 4.2.0.alpha)
|
||||
rails-dom-testing (1.0.7)
|
||||
activesupport (>= 4.2.0.beta, < 5.0)
|
||||
nokogiri (~> 1.6.0)
|
||||
rails-dom-testing (1.0.9)
|
||||
activesupport (>= 4.2.0, < 5.0)
|
||||
nokogiri (~> 1.6)
|
||||
rails-deprecated_sanitizer (>= 1.0.1)
|
||||
rails-html-sanitizer (1.0.3)
|
||||
loofah (~> 2.0)
|
||||
rails-i18n (4.0.8)
|
||||
rails-html-sanitizer (1.0.4)
|
||||
loofah (~> 2.2, >= 2.2.2)
|
||||
rails-i18n (4.0.9)
|
||||
i18n (~> 0.7)
|
||||
railties (~> 4.0)
|
||||
rails_12factor (0.0.3)
|
||||
rails_serve_static_assets
|
||||
rails_stdout_logging
|
||||
rails_admin (0.8.1)
|
||||
rails_admin (1.3.0)
|
||||
builder (~> 3.1)
|
||||
coffee-rails (~> 4.0)
|
||||
font-awesome-rails (>= 3.0, < 5)
|
||||
haml (~> 4.0)
|
||||
haml (>= 4.0, < 6)
|
||||
jquery-rails (>= 3.0, < 5)
|
||||
jquery-ui-rails (~> 5.0)
|
||||
kaminari (~> 0.14)
|
||||
kaminari (>= 0.14, < 2.0)
|
||||
nested_form (~> 0.3)
|
||||
rack-pjax (~> 0.7)
|
||||
rails (~> 4.0)
|
||||
remotipart (~> 1.0)
|
||||
safe_yaml (~> 1.0)
|
||||
rack-pjax (>= 0.7)
|
||||
rails (>= 4.0, < 6)
|
||||
remotipart (~> 1.3)
|
||||
sass-rails (>= 4.0, < 6)
|
||||
rails_bootstrap_navbar (2.0.1)
|
||||
bootstrap-navbar (~> 2.0)
|
||||
rails (>= 3.0.0)
|
||||
rails_serve_static_assets (0.0.5)
|
||||
rails_stdout_logging (0.0.5)
|
||||
railties (4.2.6)
|
||||
actionpack (= 4.2.6)
|
||||
activesupport (= 4.2.6)
|
||||
railties (4.2.10)
|
||||
actionpack (= 4.2.10)
|
||||
activesupport (= 4.2.10)
|
||||
rake (>= 0.8.7)
|
||||
thor (>= 0.18.1, < 2.0)
|
||||
rake (11.2.2)
|
||||
rdoc (4.2.2)
|
||||
json (~> 1.4)
|
||||
remotipart (1.2.1)
|
||||
roadie (3.2.1)
|
||||
css_parser (~> 1.4.5)
|
||||
nokogiri (>= 1.5.0, < 1.8.0)
|
||||
roadie-rails (1.1.1)
|
||||
railties (>= 3.0, < 5.1)
|
||||
rake (12.3.3)
|
||||
rb-fsevent (0.10.3)
|
||||
rb-inotify (0.9.10)
|
||||
ffi (>= 0.5.0, < 2)
|
||||
rdoc (4.3.0)
|
||||
redcarpet (3.4.0)
|
||||
remotipart (1.4.2)
|
||||
responders (2.4.0)
|
||||
actionpack (>= 4.2.0, < 5.3)
|
||||
railties (>= 4.2.0, < 5.3)
|
||||
roadie (3.2.2)
|
||||
css_parser (~> 1.4)
|
||||
nokogiri (~> 1.5)
|
||||
roadie-rails (1.2.1)
|
||||
railties (>= 3.0, < 5.2)
|
||||
roadie (~> 3.1)
|
||||
rspec (3.4.0)
|
||||
rspec-core (~> 3.4.0)
|
||||
rspec-expectations (~> 3.4.0)
|
||||
rspec-mocks (~> 3.4.0)
|
||||
rspec-core (3.4.4)
|
||||
rspec-support (~> 3.4.0)
|
||||
rspec-expectations (3.4.0)
|
||||
route_translator (4.4.1)
|
||||
actionpack (>= 3.2, < 5.0)
|
||||
activesupport (>= 3.2, < 5.0)
|
||||
rspec (3.6.0)
|
||||
rspec-core (~> 3.6.0)
|
||||
rspec-expectations (~> 3.6.0)
|
||||
rspec-mocks (~> 3.6.0)
|
||||
rspec-core (3.6.0)
|
||||
rspec-support (~> 3.6.0)
|
||||
rspec-expectations (3.6.0)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.4.0)
|
||||
rspec-mocks (3.4.1)
|
||||
rspec-support (~> 3.6.0)
|
||||
rspec-mocks (3.6.0)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.4.0)
|
||||
rspec-rails (3.4.2)
|
||||
actionpack (>= 3.0, < 4.3)
|
||||
activesupport (>= 3.0, < 4.3)
|
||||
railties (>= 3.0, < 4.3)
|
||||
rspec-core (~> 3.4.0)
|
||||
rspec-expectations (~> 3.4.0)
|
||||
rspec-mocks (~> 3.4.0)
|
||||
rspec-support (~> 3.4.0)
|
||||
rspec-support (3.4.1)
|
||||
safe_yaml (1.0.4)
|
||||
sass (3.4.22)
|
||||
sass-rails (5.0.4)
|
||||
railties (>= 4.0.0, < 5.0)
|
||||
rspec-support (~> 3.6.0)
|
||||
rspec-rails (3.6.1)
|
||||
actionpack (>= 3.0)
|
||||
activesupport (>= 3.0)
|
||||
railties (>= 3.0)
|
||||
rspec-core (~> 3.6.0)
|
||||
rspec-expectations (~> 3.6.0)
|
||||
rspec-mocks (~> 3.6.0)
|
||||
rspec-support (~> 3.6.0)
|
||||
rspec-support (3.6.0)
|
||||
sass (3.5.6)
|
||||
sass-listen (~> 4.0.0)
|
||||
sass-listen (4.0.0)
|
||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||
rb-inotify (~> 0.9, >= 0.9.7)
|
||||
sass-rails (5.0.7)
|
||||
railties (>= 4.0.0, < 6)
|
||||
sass (~> 3.1)
|
||||
sprockets (>= 2.8, < 4.0)
|
||||
sprockets-rails (>= 2.0, < 4.0)
|
||||
tilt (>= 1.1, < 3)
|
||||
sdoc (0.4.1)
|
||||
sdoc (0.4.2)
|
||||
json (~> 1.7, >= 1.7.7)
|
||||
rdoc (~> 4.0)
|
||||
simple_form (3.2.1)
|
||||
actionpack (> 4, < 5.1)
|
||||
activemodel (> 4, < 5.1)
|
||||
slim (3.0.7)
|
||||
temple (~> 0.7.6)
|
||||
simple-navigation (4.0.5)
|
||||
activesupport (>= 2.3.2)
|
||||
simple_form (3.5.0)
|
||||
actionpack (> 4, < 5.2)
|
||||
activemodel (> 4, < 5.2)
|
||||
slim (3.0.8)
|
||||
temple (>= 0.7.6, < 0.9)
|
||||
tilt (>= 1.3.3, < 2.1)
|
||||
slim-rails (3.1.0)
|
||||
slim-rails (3.1.2)
|
||||
actionpack (>= 3.1)
|
||||
railties (>= 3.1)
|
||||
slim (~> 3.0)
|
||||
slop (3.6.0)
|
||||
sprockets (3.6.1)
|
||||
sprockets (3.7.2)
|
||||
concurrent-ruby (~> 1.0)
|
||||
rack (> 1, < 3)
|
||||
sprockets-rails (3.0.4)
|
||||
sprockets-rails (3.2.1)
|
||||
actionpack (>= 4.0)
|
||||
activesupport (>= 4.0)
|
||||
sprockets (>= 3.0.0)
|
||||
temple (0.7.7)
|
||||
thor (0.19.1)
|
||||
thread_safe (0.3.5)
|
||||
tilt (2.0.5)
|
||||
turbolinks (2.5.3)
|
||||
coffee-rails
|
||||
tzinfo (1.2.2)
|
||||
stackprof (0.2.10)
|
||||
stripe (3.6.0)
|
||||
faraday (~> 0.10)
|
||||
temple (0.8.0)
|
||||
thor (0.20.0)
|
||||
thread_safe (0.3.6)
|
||||
tilt (2.0.8)
|
||||
tzinfo (1.2.5)
|
||||
thread_safe (~> 0.1)
|
||||
uglifier (3.0.0)
|
||||
uglifier (3.2.0)
|
||||
execjs (>= 0.3.0, < 3)
|
||||
warden (1.2.7)
|
||||
rack (>= 1.0)
|
||||
web-console (2.3.0)
|
||||
activemodel (>= 4.0)
|
||||
binding_of_caller (>= 0.7.2)
|
||||
railties (>= 4.0)
|
||||
sprockets-rails (>= 2.0, < 4.0)
|
||||
xpath (2.0.0)
|
||||
xpath (2.1.0)
|
||||
nokogiri (~> 1.3)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
aws-sdk (< 3.0)
|
||||
bootstrap-sass (~> 3.3.5)
|
||||
byebug
|
||||
capybara
|
||||
coffee-rails (~> 4.1.0)
|
||||
derailed_benchmarks
|
||||
devise
|
||||
devise-i18n
|
||||
dotenv-rails
|
||||
factory_girl
|
||||
faker
|
||||
geocoder
|
||||
i18n-js
|
||||
jbuilder (~> 2.0)
|
||||
jquery-rails
|
||||
mailchimp-api
|
||||
kaminari-actionview
|
||||
kaminari-mongoid
|
||||
mongoid (~> 5.0.0)
|
||||
mongoid-paperclip
|
||||
mongoid-rspec (= 3.0.0)
|
||||
mongoid_paranoia
|
||||
paperclip-i18n
|
||||
pry-rails
|
||||
puma
|
||||
rails (~> 4.2)
|
||||
rails-i18n
|
||||
rails_12factor
|
||||
rails_admin
|
||||
rails_bootstrap_navbar
|
||||
redcarpet
|
||||
roadie-rails (~> 1.0)
|
||||
route_translator
|
||||
rspec-rails (~> 3.0)
|
||||
sass-rails (~> 5.0)
|
||||
sdoc (~> 0.4.0)
|
||||
simple-navigation
|
||||
simple_form
|
||||
slim
|
||||
slim-rails
|
||||
turbolinks
|
||||
stackprof
|
||||
stripe
|
||||
uglifier (>= 1.3.0)
|
||||
web-console (~> 2.0)
|
||||
|
||||
RUBY VERSION
|
||||
ruby 2.3.1p112
|
||||
|
||||
BUNDLED WITH
|
||||
1.14.6
|
||||
1.16.0
|
||||
|
||||
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 233 KiB After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 39 KiB |
@@ -12,8 +12,8 @@
|
||||
//
|
||||
//= require jquery
|
||||
//= require jquery_ujs
|
||||
//= require turbolinks
|
||||
//= require bootstrap-sprockets
|
||||
//= require typeahead.bundle
|
||||
//= require markerclusterer_compiled
|
||||
//= require i18n/translations
|
||||
//= require_tree .
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# Place all the behaviors and hooks related to the matching controller here.
|
||||
# All this logic will automatically be available in application.js.
|
||||
# You can use CoffeeScript in this file: http://coffeescript.org/
|
||||
@@ -0,0 +1,3 @@
|
||||
# Place all the behaviors and hooks related to the matching controller here.
|
||||
# All this logic will automatically be available in application.js.
|
||||
# You can use CoffeeScript in this file: http://coffeescript.org/
|
||||
@@ -0,0 +1,25 @@
|
||||
$(document).ready(function(){
|
||||
$('.statement article').each(function(){
|
||||
var trimLength = 300;
|
||||
var trimMargin = 1.2; // don't trim just a couple of words
|
||||
if($(this).text().length > (trimLength * trimMargin)) {
|
||||
var text = $(this).text();
|
||||
var trimPoint = $(this).text().indexOf(" ", trimLength);
|
||||
var newContent = text.substring(0, trimPoint)+'<span class="read-more">'+text.substring(trimPoint)+'</span><span class="toggle">... <a href="#">' + I18n.t("pages.statements.read_more");
|
||||
+ '</a></span>';
|
||||
$(this).html(newContent);
|
||||
}
|
||||
});
|
||||
$('.toggle a').click(function(e){
|
||||
e.preventDefault();
|
||||
var para = $(this).closest('article');
|
||||
var initialHeight = $(this).closest('article').innerHeight();
|
||||
para.find('.read-more').show();
|
||||
para.find('.toggle').hide();
|
||||
var newHeight = para.innerHeight();
|
||||
para.css('max-height', initialHeight+'px');
|
||||
para.animate({ maxHeight: newHeight }, 300, function(){
|
||||
para.css('max-height', 'none');
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -13,34 +13,77 @@
|
||||
*= require_tree .
|
||||
*= require_self
|
||||
*/
|
||||
|
||||
$brand-success: #66903F
|
||||
$navbar-default-bg: #FFF
|
||||
$navbar-default-border: none
|
||||
$font-size-base: 14px
|
||||
$navbar-padding-horizontal: none
|
||||
$navbar-default-link-color: #66903F
|
||||
$navbar-default-link-active-bg: #FFF
|
||||
$font-size-h1: floor($font-size-base * 2)
|
||||
$font-size-h2: floor($font-size-base * 1.8)
|
||||
$font-size-h3: floor($font-size-base * 1.5)
|
||||
|
||||
@import "variables"
|
||||
@import "bootstrap-sprockets"
|
||||
@import "bootstrap"
|
||||
@import "typeaheadjs"
|
||||
@import "footnotes"
|
||||
@import "statements"
|
||||
@import "donations"
|
||||
@import "nav"
|
||||
|
||||
*:focus
|
||||
outline: 0
|
||||
-webkit-box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.075), 0 0 8px red
|
||||
box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.075), 0 0 8px red
|
||||
|
||||
.form-control:focus, input:focus
|
||||
outline: 0
|
||||
-webkit-box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.075), 0 0 8px $brand-success
|
||||
box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.075), 0 0 8px $brand-success
|
||||
|
||||
.alert-alert
|
||||
@extend .alert-danger
|
||||
|
||||
.alert-notice
|
||||
@extend .alert-info
|
||||
|
||||
body.admin
|
||||
background: repeating-linear-gradient(45deg, yellow, yellow 50px, black 50px, black 100px)
|
||||
|
||||
body
|
||||
> .container
|
||||
nav.languages
|
||||
position: relative
|
||||
padding: 3px
|
||||
|
||||
.container.content
|
||||
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)
|
||||
padding-top: 20px
|
||||
padding: 20px
|
||||
margin-top: 10px
|
||||
background: #FFF
|
||||
|
||||
.anouncement
|
||||
margin-top: 10px
|
||||
|
||||
.lead
|
||||
margin: 0px
|
||||
|
||||
header
|
||||
.pagelogo
|
||||
max-height: 91px
|
||||
h1
|
||||
font-size: 20px
|
||||
margin-top: 35px
|
||||
|
||||
.navbar
|
||||
.container
|
||||
padding-left: 0px
|
||||
|
||||
header > .row
|
||||
margin-bottom: 12px
|
||||
|
||||
main > h1
|
||||
margin-top: 0px
|
||||
|
||||
ul#topnav
|
||||
font-size: 1.5em
|
||||
font-size: 1.2em
|
||||
|
||||
li
|
||||
text-transform: uppercase
|
||||
|
||||
ul
|
||||
li
|
||||
text-transform: none
|
||||
|
||||
li.active
|
||||
border-bottom: 1px solid #66903F
|
||||
@@ -79,3 +122,37 @@ body
|
||||
display: block
|
||||
float: left
|
||||
margin: 12px
|
||||
|
||||
.table-inherit
|
||||
width: inherit
|
||||
|
||||
footer
|
||||
h2
|
||||
margin: 0px
|
||||
font-size: $font-size-base
|
||||
|
||||
ol
|
||||
padding-left: 1em
|
||||
|
||||
.donation_button
|
||||
height: 50px
|
||||
background: $brand-success
|
||||
width: 200px
|
||||
text-align: center
|
||||
font-size: 18px
|
||||
line-height: 50px
|
||||
font-family: sans-serif
|
||||
color: #FFF
|
||||
transform: rotate(-45deg)
|
||||
position: relative
|
||||
top: 26px
|
||||
left: -47px
|
||||
box-shadow: inset 0px 0px 0px 4px rgba(255, 255, 255, 0.34)
|
||||
|
||||
a
|
||||
color: #FFF
|
||||
|
||||
.row.fix
|
||||
display: flex
|
||||
flex-wrap: wrap
|
||||
width: 100%
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
// Place all the styles related to the charges controller here.
|
||||
// They will automatically be included in application.css.
|
||||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
||||
@@ -0,0 +1,24 @@
|
||||
.progress
|
||||
.progress-bar-default
|
||||
background-color: #f5f5f5
|
||||
color: green
|
||||
font-size: 1.2em
|
||||
|
||||
.progress-target
|
||||
border-right: 2px solid black
|
||||
text-align: right
|
||||
padding: 1em
|
||||
display: inline-block
|
||||
|
||||
.donatebox
|
||||
font-size: 24px
|
||||
margin: 15px
|
||||
width: 80px
|
||||
height: 80px
|
||||
|
||||
.crypto_address
|
||||
word-wrap: break-word
|
||||
font-weight: bold
|
||||
|
||||
img.crypto_address
|
||||
margin: 5px
|
||||
@@ -0,0 +1,49 @@
|
||||
/**
|
||||
* Initialiazing a `footnotes` counter on the wrapper
|
||||
*/
|
||||
article {
|
||||
counter-reset: footnotes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inline footnotes references
|
||||
* 1. Increment the counter at each new reference
|
||||
* 2. Reset link styles to make it appear like regular text
|
||||
*/
|
||||
a[aria-describedby="footnote-label"] {
|
||||
counter-increment: footnotes; /* 1 */
|
||||
text-decoration: none; /* 2 */
|
||||
color: inherit; /* 2 */
|
||||
cursor: default; /* 2 */
|
||||
outline: none; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Actual numbered references
|
||||
* 1. Display the current state of the counter (e.g. `[1]`)
|
||||
* 2. Align text as superscript
|
||||
* 3. Make the number smaller (since it's superscript)
|
||||
* 4. Slightly offset the number from the text
|
||||
* 5. Reset link styles on the number to show it's usable
|
||||
*/
|
||||
a[aria-describedby="footnote-label"]::after {
|
||||
content: '[' counter(footnotes) ']'; /* 1 */
|
||||
vertical-align: super; /* 2 */
|
||||
font-size: 0.5em; /* 3 */
|
||||
margin-left: 2px; /* 4 */
|
||||
color: blue; /* 5 */
|
||||
text-decoration: underline; /* 5 */
|
||||
cursor: pointer; /* 5 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Resetting the default focused styles on the number
|
||||
*/
|
||||
a[aria-describedby="footnote-label"]:focus::after {
|
||||
outline: thin dotted;
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
footer :target {
|
||||
background: yellow;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// Place all the styles related to the Greendays controller here.
|
||||
// They will automatically be included in application.css.
|
||||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
||||
|
||||
.well > h2
|
||||
margin-top: 0px
|
||||
|
||||
#map
|
||||
width: 100%
|
||||
height: 300px
|
||||
margin-bottom: 12px
|
||||
@@ -0,0 +1,34 @@
|
||||
@import "variables"
|
||||
|
||||
nav#mainnav
|
||||
marign-top: 12px
|
||||
font-size: 16pt
|
||||
|
||||
a
|
||||
color: $brand-success
|
||||
|
||||
a.selected
|
||||
font-weight: bold
|
||||
|
||||
|
||||
ul
|
||||
list-style: none
|
||||
padding: 0px
|
||||
|
||||
li
|
||||
padding: 5px 5px 5px 10px
|
||||
|
||||
ul
|
||||
padding-left: 20px
|
||||
|
||||
li
|
||||
font-size: 12pt
|
||||
|
||||
li.selected
|
||||
background-color: $brand-success
|
||||
a
|
||||
color: white
|
||||
|
||||
#greendays
|
||||
margin-bottom: 12px
|
||||
border: 1px solid $brand-success
|
||||
@@ -0,0 +1,30 @@
|
||||
.field_with_errors {
|
||||
padding: 2px;
|
||||
background-color: red;
|
||||
display: table;
|
||||
}
|
||||
|
||||
#error_explanation {
|
||||
width: 450px;
|
||||
border: 2px solid red;
|
||||
padding: 7px;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 20px;
|
||||
background-color: #f0f0f0;
|
||||
|
||||
h2 {
|
||||
text-align: left;
|
||||
font-weight: bold;
|
||||
padding: 5px 5px 5px 15px;
|
||||
font-size: 12px;
|
||||
margin: -7px;
|
||||
margin-bottom: 0px;
|
||||
background-color: #c00;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
ul li {
|
||||
font-size: 12px;
|
||||
list-style: square;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
@import "variables"
|
||||
|
||||
.statement
|
||||
display: inline-table
|
||||
width: 45%
|
||||
margin: 5px
|
||||
|
||||
img
|
||||
margin-right: 14px
|
||||
float: left
|
||||
|
||||
h2
|
||||
font-size: $font-size-base
|
||||
margin: 0px
|
||||
display: inline
|
||||
|
||||
.read-more
|
||||
display: none
|
||||
|
||||
@media (max-width: 800px)
|
||||
.statement
|
||||
display: block
|
||||
width: 100%
|
||||
margin: 5px
|
||||
@@ -0,0 +1,10 @@
|
||||
$brand-success: #4b7d1c
|
||||
$navbar-default-bg: #FFF
|
||||
$navbar-default-border: none
|
||||
$font-size-base: 14px
|
||||
$navbar-padding-horizontal: none
|
||||
$navbar-default-link-color: #66903F
|
||||
$navbar-default-link-active-bg: #FFF
|
||||
$font-size-h1: floor($font-size-base * 1.8)
|
||||
$font-size-h2: floor($font-size-base * 1.5)
|
||||
$font-size-h3: floor($font-size-base * 1.2)
|
||||
@@ -1,3 +1,15 @@
|
||||
class Admin::ApplicationController < ApplicationController
|
||||
http_basic_authenticate_with name: 'admin', password: ENV['ADMIN_PASSWORD'] unless Rails.env.development?
|
||||
module Admin
|
||||
class ApplicationController < ::ApplicationController
|
||||
before_action :authenticate_supporter!
|
||||
before_action :authenticate_admin!
|
||||
|
||||
def authenticate_admin!
|
||||
return true if current_supporter.admin?
|
||||
head(:forbidden)
|
||||
end
|
||||
|
||||
def admin_area
|
||||
true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
class Admin::PagesController < Admin::ApplicationController
|
||||
def map
|
||||
@supporters = Supporter.where(:coordinates.ne => nil).only(:coordinates, :support)
|
||||
module Admin
|
||||
class PagesController < Admin::ApplicationController
|
||||
def map
|
||||
@supporters = Supporter.where(:coordinates.ne => nil).only(:coordinates, :support)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
module Admin
|
||||
class PublicitiesController < Admin::ApplicationController
|
||||
def index
|
||||
@pending = Supporter.where('publicity.state' => :pending).asc(:created_at)
|
||||
@active = Supporter.where('publicity.state' => :approved).asc(:created_at)
|
||||
end
|
||||
|
||||
def edit
|
||||
@publicity = Supporter.find(params[:id]).publicity
|
||||
end
|
||||
|
||||
def update
|
||||
@publicity = Supporter.find(params[:id]).publicity
|
||||
return redirect_to(admin_publicities_path) if @publicity.update_attributes(publicity_params)
|
||||
render :edit
|
||||
end
|
||||
|
||||
def destroy
|
||||
current_supporter.publicity&.destroy
|
||||
redirect_to(admin_publicities_path)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def publicity_params
|
||||
params.require(:publicity).permit(:organisation, :statement, :avatar, :state)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -4,6 +4,7 @@ class ApplicationController < ActionController::Base
|
||||
protect_from_forgery with: :exception
|
||||
|
||||
before_action :set_locale
|
||||
before_action :configure_permitted_parameters, if: :devise_controller?
|
||||
|
||||
INPUT_TIMEOUT = 2.seconds # We estimate that a user needs more then x seconds to enter some informations
|
||||
|
||||
@@ -27,4 +28,14 @@ class ApplicationController < ActionController::Base
|
||||
def default_url_options(options = {})
|
||||
options.merge locale: I18n.locale
|
||||
end
|
||||
|
||||
def admin_area
|
||||
false
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def configure_permitted_parameters
|
||||
devise_parameter_sanitizer.permit(:account_update, keys: [:first_name, :last_name, :street, :city, :zip, :support, :language, :age_category])
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
class ChargesController < ApplicationController
|
||||
def new; end
|
||||
|
||||
def create
|
||||
@amount = params[:amount]
|
||||
|
||||
begin
|
||||
@amount = Float(@amount).round(2)
|
||||
rescue
|
||||
flash[:danger] = 'Bitte geben sie einen Betrag in CHF ein.'
|
||||
redirect_to donation_path
|
||||
return
|
||||
end
|
||||
|
||||
@amount = (@amount * 100).to_i # Must be an integer!
|
||||
|
||||
if @amount < 1000
|
||||
flash[:danger] = 'Ihre Spende muss mindestens 10.- CHF betragen.'
|
||||
redirect_to donation_path
|
||||
return
|
||||
end
|
||||
|
||||
Stripe::Charge.create(amount: @amount, currency: 'CHF', source: params[:stripeToken], description: 'Initiativspende')
|
||||
|
||||
rescue Stripe::CardError => e
|
||||
flash[:danger] = e.message
|
||||
redirect_to donation_path
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,65 @@
|
||||
class GreendaysController < ApplicationController
|
||||
before_action :only_admin, except: [:index, :show]
|
||||
before_action :set_greenday, only: [:show, :edit, :update, :destroy]
|
||||
|
||||
def index
|
||||
@greendays = Greenday.all.sort(title: 1)
|
||||
end
|
||||
|
||||
def new
|
||||
@greenday = Greenday.new
|
||||
end
|
||||
|
||||
def edit; end
|
||||
|
||||
def create
|
||||
@greenday = Greenday.new(greenday_params)
|
||||
|
||||
respond_to do |format|
|
||||
if @greenday.save
|
||||
format.html { redirect_to greendays_path, success: 'Greenday was successfully created.' }
|
||||
format.json { render :show, status: :created, location: @greenday }
|
||||
else
|
||||
format.html { render :new }
|
||||
format.json { render json: @greenday.errors, status: :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def update
|
||||
respond_to do |format|
|
||||
if @greenday.update(greenday_params)
|
||||
format.html { redirect_to greendays_path, notice: 'Greenday was successfully updated.' }
|
||||
format.json { render :show, status: :ok, location: @greenday }
|
||||
else
|
||||
format.html { render :edit }
|
||||
format.json { render json: @greenday.errors, status: :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@greenday.destroy
|
||||
respond_to do |format|
|
||||
format.html { redirect_to greendays_path, notice: 'Greenday was successfully destroyed.' }
|
||||
format.json { head :no_content }
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Use callbacks to share common setup or constraints between actions.
|
||||
def set_greenday
|
||||
@greenday = Greenday.find(params[:id])
|
||||
end
|
||||
|
||||
# Never trust parameters from the scary internet, only allow the white list through.
|
||||
def greenday_params
|
||||
params.require(:greenday).permit(:title, :address, :homepage, :description, :logo, :delete_logo)
|
||||
end
|
||||
|
||||
def only_admin
|
||||
return true if current_supporter && current_supporter.admin?
|
||||
raise ActionController::RoutingError, 'Not Found'
|
||||
end
|
||||
end
|
||||
@@ -1,5 +1,16 @@
|
||||
class PagesController < ApplicationController
|
||||
def map
|
||||
@supporters = Supporter.where(:coordinates.ne => nil).only(:coordinates, :support)
|
||||
def show
|
||||
if valid_page?
|
||||
render template: "pages/#{params[:page]}"
|
||||
else
|
||||
render plain: t('.not_found'), status: :not_found
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def valid_page?
|
||||
return true if File.exist?("#{Rails.root}/app/views/pages/#{params[:page]}.#{I18n.locale}.slim")
|
||||
return true if File.exist?("#{Rails.root}/app/views/pages/#{params[:page]}.#{I18n.default_locale}.slim")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
class PublicitiesController < ApplicationController
|
||||
before_action :authenticate_supporter!
|
||||
|
||||
def new
|
||||
@publicity = current_supporter.publicity || Publicity.new
|
||||
end
|
||||
|
||||
def create
|
||||
@publicity = Publicity.new(publicity_params.merge(supporter: current_supporter, state: :pending))
|
||||
flash['success'] = t('.success') if @publicity.valid?
|
||||
return redirect_to(root_path) if @publicity.save
|
||||
render :new
|
||||
end
|
||||
|
||||
def update
|
||||
create
|
||||
end
|
||||
|
||||
def destroy
|
||||
current_supporter.publicity&.destroy
|
||||
redirect_to(root_path)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def publicity_params
|
||||
params.require(:publicity).permit(:organisation, :statement, :avatar)
|
||||
end
|
||||
end
|
||||
@@ -7,9 +7,10 @@ class SupportersController < ApplicationController
|
||||
|
||||
def create
|
||||
@supporter = Supporter.new supporter_form_params.merge(language: I18n.locale)
|
||||
@supporter.password = random_password = SecureRandom.hex(5)
|
||||
if !input_to_fast? && @supporter.save
|
||||
# SupporterMailer.welcome_email(@supporter).deliver_now
|
||||
mailchimp_registration
|
||||
# SupporterMailer.welcome_email(@supporter, random_password).deliver_now
|
||||
sendy_registraion
|
||||
redirect_to thanks_path
|
||||
else
|
||||
flash.now[:danger] = input_to_fast? ? t('.timeout') : t('input_error')
|
||||
@@ -20,23 +21,14 @@ class SupportersController < ApplicationController
|
||||
private
|
||||
|
||||
def supporter_form_params
|
||||
params.require(:supporter).permit(:first_name, :last_name, :street, :zip, :email, :support, :li_membership, :age_category, :city, :comments)
|
||||
params.require(:supporter).permit(:first_name, :last_name, :street, :zip, :email, :support, :li_membership, :age_category, :city, :comments, :tel)
|
||||
end
|
||||
|
||||
def mailchimp_registration
|
||||
return unless Rails.env.production?
|
||||
mailchimp = Mailchimp::API.new(ENV['MAILCHIMP_API'])
|
||||
mailchimp.lists.subscribe(ENV['CH420_LIST_ID'], { 'email' => @supporter.email }, merge_vars, 'html', false)
|
||||
end
|
||||
|
||||
def merge_vars
|
||||
{ 'EMAIL' => @supporter.email,
|
||||
'FNAME' => @supporter.first_name,
|
||||
'LNAME' => @supporter.last_name,
|
||||
'SUPPORT' => @supporter.support,
|
||||
'MEMBERSHIP' => @supporter.li_membership.to_s,
|
||||
'AGE' => @supporter.age_category,
|
||||
'LANG' => @supporter.language,
|
||||
'ZIP' => @supporter.zip }
|
||||
# We use sendy for newsletters atm
|
||||
def sendy_registraion
|
||||
uri = URI('http://newsletter.cannabis-initiative.ch/subscribe')
|
||||
Net::HTTP.post_form(uri, list: ENV["SENDY_LIST_#{I18n.locale.upcase}"],
|
||||
email: @supporter.email,
|
||||
name: "#{@supporter.first_name} #{@supporter.last_name}")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,4 +3,13 @@ module ApplicationHelper
|
||||
content_for :title, strip_tags(page_title.to_s)
|
||||
page_title
|
||||
end
|
||||
|
||||
def markdown(content)
|
||||
@markdown ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, space_after_headers: true)
|
||||
@markdown.render(content)
|
||||
end
|
||||
|
||||
def admin?
|
||||
current_supporter && current_supporter.admin?
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
module ChargesHelper
|
||||
end
|
||||
@@ -1,8 +1,9 @@
|
||||
class SupporterMailer < ApplicationMailer
|
||||
include Roadie::Rails::Automatic
|
||||
|
||||
def welcome_email(supporter)
|
||||
def welcome_email(supporter, random_password)
|
||||
@supporter = supporter
|
||||
@password = random_password
|
||||
mail(to: @supporter.email, subject: I18n.t('welcome_email.subject'))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
class Greenday
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
include Geocoder::Model::Mongoid
|
||||
include Mongoid::Paperclip
|
||||
|
||||
before_save :delete_logo?
|
||||
|
||||
has_mongoid_attached_file :logo,
|
||||
path: ':attachment/:id/:style.:extension',
|
||||
styles: {
|
||||
original: ['1920x1680>', :jpg],
|
||||
small: ['100x100#', :jpg],
|
||||
medium: ['250x250', :jpg],
|
||||
large: ['500x500>', :jpg]
|
||||
},
|
||||
convert_options: { all: '-background white -flatten +matte' }
|
||||
|
||||
field :title, type: String
|
||||
field :address, type: String
|
||||
field :homepage, type: String
|
||||
field :description, type: String
|
||||
field :coordinates, type: Array
|
||||
|
||||
geocoded_by :address
|
||||
after_validation :geocode # auto-fetch coordinates
|
||||
|
||||
validates :title, presence: true
|
||||
validates :address, presence: true
|
||||
validates_attachment_content_type :logo, content_type: ['image/jpg', 'image/jpeg', 'image/png', 'image/gif']
|
||||
|
||||
def delete_logo
|
||||
@delete_logo ||= '0'
|
||||
end
|
||||
|
||||
attr_writer :delete_logo
|
||||
|
||||
private
|
||||
|
||||
def delete_logo?
|
||||
logo.clear if @delete_logo == '1'
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,26 @@
|
||||
class Publicity
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
include Mongoid::Paperclip
|
||||
|
||||
has_mongoid_attached_file :avatar,
|
||||
path: ':attachment/:id/:style.:extension',
|
||||
styles: {
|
||||
original: ['1920x1680>', :jpg],
|
||||
small: ['100x100#', :jpg],
|
||||
medium: ['250x250', :jpg],
|
||||
large: ['500x500>', :jpg]
|
||||
},
|
||||
convert_options: { all: '-background white -flatten +matte' }
|
||||
|
||||
embedded_in :supporter
|
||||
|
||||
field :state, type: String, default: 'pending' # Possible states: pending, approved
|
||||
field :organisation, type: String
|
||||
field :statement, type: String
|
||||
|
||||
validates :state, presence: true
|
||||
validates :avatar, presence: true
|
||||
validates :statement, presence: true
|
||||
validates_attachment_content_type :avatar, content_type: /\Aimage/
|
||||
end
|
||||
@@ -6,6 +6,30 @@ class Supporter
|
||||
|
||||
COUNTER_START = 10_003
|
||||
|
||||
# Include default devise modules. Others available are:
|
||||
# :confirmable, :lockable, :timeoutable and :omniauthable
|
||||
devise :database_authenticatable, :registerable,
|
||||
:recoverable, :rememberable, :trackable, :validatable
|
||||
|
||||
## Database authenticatable
|
||||
field :email, type: String, default: ''
|
||||
field :encrypted_password, type: String, default: ''
|
||||
field :admin, type: Boolean, default: false
|
||||
|
||||
## Recoverable
|
||||
field :reset_password_token, type: String
|
||||
field :reset_password_sent_at, type: Time
|
||||
|
||||
## Rememberable
|
||||
field :remember_created_at, type: Time
|
||||
|
||||
## Trackable
|
||||
field :sign_in_count, type: Integer, default: 0
|
||||
field :current_sign_in_at, type: Time
|
||||
field :last_sign_in_at, type: Time
|
||||
field :current_sign_in_ip, type: String
|
||||
field :last_sign_in_ip, type: String
|
||||
|
||||
geocoded_by :address
|
||||
after_validation :geocode # auto-fetch coordinates
|
||||
|
||||
@@ -14,15 +38,14 @@ class Supporter
|
||||
field :street, type: String
|
||||
field :zip, type: Integer
|
||||
field :city, type: String
|
||||
field :email, type: String
|
||||
field :support, type: String # Indicates the type of support
|
||||
field :li_membership, type: Boolean, default: false
|
||||
field :age_category, type: String
|
||||
field :coordinates, type: Array
|
||||
field :comments, type: String
|
||||
field :language, type: String
|
||||
field :unsubscribed, type: Boolean, default: false
|
||||
field :duplicate, type: Boolean, default: false
|
||||
field :tel, type: String
|
||||
|
||||
validates :first_name, presence: true
|
||||
validates :last_name, presence: true
|
||||
@@ -34,6 +57,8 @@ class Supporter
|
||||
validates :age_category, presence: true
|
||||
validates :language, presence: true
|
||||
|
||||
embeds_one :publicity
|
||||
|
||||
def self.counter
|
||||
actual = count.to_i
|
||||
actual > COUNTER_START ? actual : COUNTER_START
|
||||
|
||||
@@ -10,7 +10,6 @@ css:
|
||||
#map
|
||||
|
||||
javascript:
|
||||
|
||||
function pinSymbol(color) {
|
||||
return {
|
||||
path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z M -2,-30 a 2,2 0 1,1 4,0 2,2 0 1,1 -4,0',
|
||||
@@ -24,7 +23,7 @@ javascript:
|
||||
|
||||
function initMap() {
|
||||
var supporters = #{@supporters.to_json.html_safe}
|
||||
|
||||
console.log(@supporters.to_json.html_safe);
|
||||
var customMapType = new google.maps.StyledMapType([{"featureType":"water","elementType":"geometry","stylers":[{"color":"#e9e9e9"},{"lightness":17}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#f5f5f5"},{"lightness":20}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#ffffff"},{"lightness":17}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#ffffff"},{"lightness":29},{"weight":0.2}]},{"featureType":"road.arterial","elementType":"geometry","stylers":[{"color":"#ffffff"},{"lightness":18}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#ffffff"},{"lightness":16}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#f5f5f5"},{"lightness":21}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#dedede"},{"lightness":21}]},{"elementType":"labels.text.stroke","stylers":[{"visibility":"on"},{"color":"#ffffff"},{"lightness":16}]},{"elementType":"labels.text.fill","stylers":[{"saturation":36},{"color":"#333333"},{"lightness":40}]},{"elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"geometry","stylers":[{"color":"#f2f2f2"},{"lightness":19}]},{"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#fefefe"},{"lightness":20}]},{"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#fefefe"},{"lightness":17},{"weight":1.2}]}], {
|
||||
name: 'Black White'
|
||||
});
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
h1= title "#{t('.title')} #{@publicity.supporter.first_name} #{@publicity.supporter.last_name}, #{@publicity.supporter.city}"
|
||||
= simple_form_for(@publicity, url: admin_publicity_path(@publicity.supporter)) do |form|
|
||||
.form-group
|
||||
= "#{@publicity.supporter.first_name} #{@publicity.supporter.last_name}, #{@publicity.supporter.city}"
|
||||
|
||||
= form.input :organisation, required: false
|
||||
= form.input :statement, as: :text, required: false
|
||||
= form.input :avatar, as: :file, required: false
|
||||
- if @publicity.avatar
|
||||
.form-group
|
||||
= image_tag(@publicity.avatar.url(:medium))
|
||||
= form.input :state, as: :radio_buttons, collection: t('publicity_states').map{ |x| [x.first, raw(x.last)]}, label_method: :last, value_method: :first, required: false
|
||||
= form.submit t('shared.save'), class: 'btn btn-primary'
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
= render 'form'
|
||||
@@ -0,0 +1,19 @@
|
||||
h1 = title t('.title')
|
||||
table.table
|
||||
tbody
|
||||
- @pending.each do | supporter |
|
||||
tr
|
||||
td
|
||||
= "#{supporter.first_name} #{supporter.last_name}"
|
||||
br
|
||||
= supporter.city
|
||||
br
|
||||
= mail_to supporter.email, supporter.email
|
||||
br
|
||||
= supporter.publicity.organisation
|
||||
td width="50%" = supporter.publicity.statement
|
||||
td = image_tag(supporter.publicity.avatar.url(:small))
|
||||
td = link_to t('shared.edit'), edit_admin_publicity_path(supporter)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
h2 Ziele der Initiative
|
||||
ol
|
||||
li Erwachsene haben genauso die Freiheit und das Recht Cannabis zu konsumieren, wie Alkohol oder Tabak.
|
||||
li Niemand muss gezwungen sein, sich auf dem Schwarzmarkt zu bedienen.
|
||||
li Steuereinnahmen und Einsparungen aus der Strafverfolgung sollen der Prävention, der Suchtbehandlung, der Forschung oder den Sozialversicherungen zugutekommen.
|
||||
@@ -0,0 +1,6 @@
|
||||
h2 Obiettivi dell'iniziativa
|
||||
ol
|
||||
li Gli Adulti hanno la libertà e il diritto di consumare cannabis, come l'alcool o il tabacco.
|
||||
li Nessuno dovrebbe essere costretto ad operare sul mercato nero.
|
||||
li Il gettito fiscale e risparmi da forze dell'ordine di beneficiare della prevenzione, della ricerca o sociale.
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
h1 = title 'Vielen Dank für Ihre Spende'
|
||||
p Auch dank Ihrer Hilfe können wir uns aktiv für die Interessen der Cannabis-Konsumenten einsetzen.
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
b Am Samstag 25. November ist Nationaler CBD-Tag!
|
||||
p Um die #{link_to 'Finanzierung der Sammlung und Beglaubigung', donation_path} der eidgenössischen #{link_to 'Volksinitiative zur Cannabislegalisierung', initiative_text_path} in der Schweiz voranzutreiben, lanciert der Verein Legalize it! in Zusammenarbeit mit dem #{link_to 'Branchenverband IG Hanf', 'https://www.ighanf.ch/D_about.html', target: '_blank'} am Samstag 25. November 2017 den ersten nationalen CBD-Tag.
|
||||
p In jedem Laden steht eine Spendenbox, welche für Spenden für die Initiative benutzt werden kann und die dem Verein Legalize it! zugute kommt.
|
||||
p Welche Läden mitmachen, seht ihr auf der Karte:
|
||||
@@ -0,0 +1,14 @@
|
||||
= simple_form_for(@greenday) do |f|
|
||||
= f.error_notification
|
||||
|
||||
.form-inputs
|
||||
= f.input :title
|
||||
= f.input :address, as: :text
|
||||
= f.input :homepage
|
||||
= f.input :description, as: :text
|
||||
= f.input :logo, as: :file, required: false
|
||||
= image_tag f.object.logo.url(:original), alt: '', class: 'img-responsive'
|
||||
= f.input :delete_logo, as: :boolean
|
||||
|
||||
.form-actions
|
||||
= f.button :submit, 'Shop speichern'
|
||||
@@ -0,0 +1,2 @@
|
||||
json.extract! greenday, :id, :title, :address, :coordinates, :homepage, :logo, :description, :created_at, :updated_at
|
||||
json.url greenday_url(greenday, format: :json)
|
||||
@@ -0,0 +1,8 @@
|
||||
h1 Editing greenday
|
||||
|
||||
== render 'form'
|
||||
|
||||
= link_to 'Show', @greenday
|
||||
' |
|
||||
= link_to 'Back', greendays_path
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
|
||||
h1.sr-only = title '#Greensaturday'
|
||||
= render 'description'
|
||||
#map
|
||||
= link_to 'Neuen Shop erfassen', new_greenday_path if admin?
|
||||
|
||||
.row.fix
|
||||
- @greendays.each do |greenday|
|
||||
.col-xs-12.col-sm-6.col-lg-4
|
||||
.well
|
||||
h2 = greenday.title
|
||||
- if greenday.logo.url(:original) != '/logos/original/missing.png'
|
||||
= image_tag greenday.logo.url(:original), alt: '', class: 'img-responsive'
|
||||
address = simple_format(greenday.address)
|
||||
- if greenday.homepage
|
||||
= link_to("Website", greenday.homepage, target: "_blank")
|
||||
p = markdown(greenday.description).html_safe
|
||||
|
||||
- if admin?
|
||||
= link_to 'Bearbeiten', edit_greenday_path(greenday)
|
||||
|
|
||||
= link_to 'Löschen', greenday, data: { confirm: 'Are you sure?' }, method: :delete
|
||||
|
||||
javascript:
|
||||
function initMap() {
|
||||
|
||||
var map = new google.maps.Map(document.getElementById('map'), {
|
||||
zoom: 8, center: {lat: 47.242, lng: 8.133},
|
||||
});
|
||||
|
||||
var greendays_url = "#{greendays_url(format: :json)}"
|
||||
|
||||
var infowindow = new google.maps.InfoWindow({
|
||||
content: '',
|
||||
maxWidth: 200
|
||||
});
|
||||
|
||||
|
||||
$.getJSON(greendays_url, function(json) {
|
||||
$.each(json, function(key, data) {
|
||||
var marker = new google.maps.Marker({
|
||||
position: {lat: data.coordinates[1], lng: data.coordinates[0] },
|
||||
map: map,
|
||||
title: data.title
|
||||
});
|
||||
|
||||
marker.addListener('click', function() {
|
||||
infowindow.open(map, marker);
|
||||
|
||||
var content = '<b>' + data.title + '</b>'
|
||||
if(data.logo) {
|
||||
content += '<img src="' + data.logo + ' alt="" width="100%"/>'
|
||||
}
|
||||
content += '<address>' + data.address.replace(/\n/g,"<br>")
|
||||
if(data.homepage) {
|
||||
content += '<br/><a href="' + data.homepage + '" target="_blank">Website</a>'
|
||||
}
|
||||
content += '</address>'
|
||||
|
||||
if(data.description) {
|
||||
content += '<p>' + data.description + '</p>'
|
||||
}
|
||||
infowindow.setContent(content);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
script async="" defer="" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBbwMtGKDqf4i8x9-OVP1-H_QVAKp92h2M&callback=initMap&libraries=visualization"
|
||||
@@ -0,0 +1 @@
|
||||
json.array! @greendays, partial: 'greendays/greenday', as: :greenday
|
||||
@@ -0,0 +1,5 @@
|
||||
h1 New greenday
|
||||
|
||||
== render 'form'
|
||||
|
||||
= link_to 'Back', greendays_path
|
||||
@@ -1,11 +1,12 @@
|
||||
doctype html
|
||||
html lang="#{I18n.locale}"
|
||||
head
|
||||
title
|
||||
- flash.each do |type, message|
|
||||
= message
|
||||
| #CH420 - #{content_for(:title)}
|
||||
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
|
||||
= javascript_include_tag 'application', 'data-turbolinks-track' => true
|
||||
= stylesheet_link_tag 'application', media: 'all'
|
||||
= javascript_include_tag 'application'
|
||||
= csrf_meta_tags
|
||||
link href="/apple-icon-57x57.png" rel="apple-touch-icon" sizes="57x57" /
|
||||
link href="/apple-icon-60x60.png" rel="apple-touch-icon" sizes="60x60" /
|
||||
@@ -21,11 +22,25 @@ html lang="#{I18n.locale}"
|
||||
link href="/favicon-96x96.png" rel="icon" sizes="96x96" type="image/png" /
|
||||
link href="/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png" /
|
||||
link href="/manifest.json" rel="manifest" /
|
||||
|
||||
|
||||
meta name="viewport" content="width=device-width, initial-scale=1.0"
|
||||
|
||||
meta content="#ffffff" name="msapplication-TileColor" /
|
||||
meta content="/ms-icon-144x144.png" name="msapplication-TileImage" /
|
||||
meta content="#ffffff" name="theme-color" /
|
||||
|
||||
body
|
||||
meta property="og:title" content="#{content_for(:title)}"
|
||||
meta property="og:description" content="#{t('shared.description')}"
|
||||
meta property="og:image" content="#{image_url('ch420_logo.png')}"
|
||||
|
||||
meta name="twitter:title" content="#{content_for(:title)}"
|
||||
meta name="twitter:image" content="#{image_url('ch420_logo.png')}"
|
||||
meta name="twitter:site" content="@vereinlegalize"
|
||||
meta name="twitter:description" content="#{t('shared.description')}"
|
||||
meta name="twitter:image:alt" content="#{t('shared.header.logo')}"
|
||||
|
||||
body class="#{'admin' if controller.admin_area}"
|
||||
javascript:
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
@@ -34,10 +49,38 @@ html lang="#{I18n.locale}"
|
||||
|
||||
ga('create', 'UA-79948850-1', 'auto');
|
||||
ga('send', 'pageview');
|
||||
.container.anouncement
|
||||
/.text-center.lead.alert.alert-success
|
||||
| Für das Projekt Initiative ist Ende Januar ein neuer Trägerverein gegründet worden.
|
||||
br
|
||||
| Weitere Informationen dazu werden folgen.
|
||||
|
||||
/ = console if Rails.env.development?
|
||||
.container
|
||||
= render 'shared/header'
|
||||
= render 'shared/topnavigation'
|
||||
nav.languages.pull-right
|
||||
h2.sr-only =t('shared.lang')
|
||||
a href='/' lang='de'
|
||||
| Deutsch
|
||||
| |
|
||||
a href='/it' lang='it'
|
||||
| Italiano
|
||||
| |
|
||||
a href='/fr' lang='fr'
|
||||
| Français
|
||||
|
||||
.container.content
|
||||
= render 'shared/flashes'
|
||||
= yield
|
||||
= render 'shared/header'
|
||||
.row
|
||||
.col-xs-12.col-sm-3
|
||||
nav#mainnav = render_navigation
|
||||
.col-xs-12.col-sm-9
|
||||
main= yield
|
||||
hr
|
||||
footer.row
|
||||
/.col-xs-12.col-sm-6
|
||||
/= render 'core_statements'
|
||||
.col-xs-12
|
||||
p Dieses Onlineformular wurde vom <a href="https://www.hanflegal.ch">Verein Legalize it!</a> erstellt, um Unterstützende für eine neue Volksinitiative zur Legalisierung von Cannabis in der Schweiz zu sammeln. Die Geschichte des Initiativprojekts kann im <a href="/pages/archiv">Archiv</a> nachgelesen werden. Fragen zum Initiativprojekt können an <a href="mailto: info@cannabis-consensus.ch">info@cannabis-consensus.ch</a> gestellt werden.
|
||||
|
||||
javascript:
|
||||
I18n.defaultLocale = "#{I18n.default_locale}";
|
||||
I18n.locale = "#{I18n.locale}";
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
markdown:
|
||||
## März 2019
|
||||
|
||||
[So will eine neue Hanf-Allianz das Kiffen legalisieren](https://www.blick.ch/news/schweiz/starker-jugendschutz-staatliche-markt-kontrolle-so-will-eine-neue-hanf-allianz-das-kiffen-legalisieren-id15196799.html)
|
||||
|
||||
## Februar 2019
|
||||
[Cannabis-Initiative erhält neuen Schub](https://www.aargauerzeitung.ch/schweiz/volksinitiative-geplant-legalisierung-von-cannabis-erhaelt-neuen-schub-134096909)
|
||||
|
||||
## November 2018
|
||||
[Podium über Cannabis](https://zueriost.ch/news/2018-11-21/kaum-bedenken-fuer-cannabislegalisierung)
|
||||
|
||||
## Juni 2018
|
||||
[Une votation populaire](https://www.letemps.ch/suisse/essais-pilotes-cannabis-legal-lespoir-tenu-villes-face-parlement)
|
||||
|
||||
## April 2018
|
||||
[Die grössten Hürden für die Cannabis-Legalisierung](https://www.vice.com/de_ch/article/qvxaab/7-gegner-der-cannabis-legalisierung-initiative-hanflegal-dech)
|
||||
|
||||
## März 2018
|
||||
[Unterschriftensammlung wird aus gutem Grund verschoben](https://www.watson.ch/schweiz/gesellschaft%20&%20politik/943177354-kiffer-freunde-wollen-buergerliche-fuer-gras-legaliserung-ins-boot-holen)
|
||||
|
||||
## November 2017
|
||||
[Das gibt der Cannabis-Initiative Rückenwind](https://www.20min.ch/schweiz/news/story/-Das-gibt-der-Cannabis-Initiative-Rueckenwind--30790796)
|
||||
|
||||
## Oktober 2017
|
||||
[Der VICE-Guide zum Kiffen in der Schweiz](https://www.vice.com/de_ch/article/59yzbz/der-vice-guide-zum-kiffen-in-der-schweiz)
|
||||
## August 2017
|
||||
[Schützt die Jugend - legalisiert Cannabis!](https://www.nzz.ch/meinung/drogenpolitik-schuetzt-die-jugend-legalisiert-cannabis-ld.1312315)
|
||||
|
||||
## April 2017
|
||||
[Könnte das Verbot fallen?](https://www.vice.com/de_ch/article/d7bdwz/wieso-haben-wir-in-der-schweiz-das-kiffen-noch-immer-nicht-legalisiert-weedweek2017)
|
||||
## Januar 2017
|
||||
[12mila simpatizzanti](http://www.caffe.ch/stories/attualita/56687_vogliamo_che_lerba_venga_legalizzata/)
|
||||
|
||||
## Dezember 2016
|
||||
[Wann wird Cannabis in der Schweiz legalisiert?](http://www.solothurnerzeitung.ch/schweiz/wann-wird-cannabis-in-der-schweiz-legalisiert-130765070)
|
||||
|
||||
## Mai 2016
|
||||
[Kiffer wandern drei Stunden durchs Rheintal](http://www.20min.ch/schweiz/ostschweiz/story/Kiffer-wandern-drei-Stunden-durchs-Rheintal-15418622)
|
||||
|
||||
## April 2016
|
||||
[«Legalize it!» plant Volksinitiative zur Cannabis-Legalisierung](http://www.watson.ch/Schweiz/Gesellschaft%20&%20Politik/807046564-%C2%ABLegalize-it!%C2%BB-Privater-Verein-plant-Volksinitiative-zur-Cannabis-Legalisierung)
|
||||
@@ -0,0 +1,60 @@
|
||||
.row
|
||||
.col-xs-12.col-sm-6
|
||||
h1= title 'Argumentarium'
|
||||
h2 Konsum
|
||||
p Cannabis als Genussmittel und Medizin ist seit Urzeiten ein fester Bestandteil unserer Gesellschaft. Die vorliegende Initiative hat zum Ziel, Konsumentinnen und Konsumenten, welche einen verantwortungsvollen Umgang mit psychoaktiven Substanzen der Cannabispflanze pflegen, nicht mehr gesetzlich zu verfolgen.
|
||||
h2 Jugendschutz
|
||||
p Der Umgang mit Cannabis soll nur Erwachsenen vorbehalten sein. Damit wird die Strategie des Jugendschutzes, die der Bund momentan verfolgt, nicht weiter eingeschränkt. Erwachsene, welche Minderjährigen Zugang gewähren, sollen weiterhin bestraft werden.
|
||||
h2 Anbau und Handel
|
||||
p Der gewerbliche Anbau und Handel unter staatlicher Kontrolle soll den Schwarzmarkt austrocknen und den Konsumenten den Zugang zu hochwertigen Produkten ermöglichen. Zusätzlich sollen Gewinne durch Steuereinnahmen an den Staat gehen und nicht in die Taschen von kriminellen Organisationen fliessen, die damit unter anderem den Terror finanzieren.
|
||||
h2 Privater Anbau
|
||||
p Cannabis ist eine uralte Kulturpflanze, die relativ genügsam ist und auf jedem Balkon gezogen werden kann. Viele Konsumierende und Patientinnen und Patienten tun dies für ihren eigenen Konsum, meist aus Freude an der Gartenarbeit und mit der Gewissheit, keine Streckmittel zu konsumieren. Sobald der Anbau einem wirtschaftlichen Zweck dient, müssen jedoch gewisse Anbaubedingungen erfüllt werden. Welche Bedingungen erfüllt werden müssen, wird vom Gesetzgeber noch bestimmt.
|
||||
h2 Gesundheit und Medizin
|
||||
p Gesundheitliche Risiken beim Cannabis-Konsum sind moderat, insbesondere bei Konsumformen, bei welchen keine Verbrennungsprozesse ablaufen. Alkohol und Tabak sind insbesondere für Erwachsene meist gefährlicher als der gelegentliche Cannabiskonsum. Entsprechend dient die Initiative der Aufklärung, in dem sie die Gefährlichkeit von anderen Substanzen hervorhebt und der Stigmatisierung von Cannabiskonsumierenden entgegenhält.
|
||||
|
||||
p Im Gegensatz zu anderen bereits legalen Substanzen bietet Cannabis auch breite therapeutische Möglichkeiten. In vielen Ländern ist Cannabis als Medizin erfolgreich ein Teil der öffentlichen Gesundheitsversorgung. In der Schweiz wird sogar die Selbstmedikation unter Strafe gestellt bei Patientinnen und Patienten, die nachweislich keine andere Möglichkeit mehr haben. Die Initiative bietet Patienten und Patientinnen die Möglichkeit, Cannabis legal zu erwerben und sich selber zu therapieren.
|
||||
|
||||
.col-xs-12.col-sm-6
|
||||
h2 Meinungen und Fakten aus dem In- und Ausland
|
||||
h3 Cannabis-Irrsinn - Warum uns das Verbot schadet
|
||||
p
|
||||
| Das illegale Cannabis-Geschäft wird immer brutaler. Unter den Dealern steigt die Gewalt – auch mit Schusswaffen. Auffällig aktiv sind Gruppierungen aus dem Balkan und Vietnam. Aber nicht nur: In Sachen Cannabis haben Kartelle aus Kolumbien und Mexiko in Europa eine neue Front eröffnet. Kriminelle Gruppen, die zuvor mit Heroin und Kokain handelten, mischen nun im Marihuana-Geschäft mit.
|
||||
br
|
||||
a href="http://cannabis-irrsinn.info/wp/" target="_blank" Cannabis-Irrsinn
|
||||
|
||||
h3 Sind Drogen gefährlich?
|
||||
p
|
||||
| Bern, 21.12.2015 - Die Eidgenössische Kommission für Drogenfragen (EKDF) setzt sich seit ihrem Bestehen für einen rationaleren Umgang der Gesellschaft mit psychoaktiven Substanzen ein. Als Folge der neuesten, heute publizierten Studie zur Gefährlichkeit psychoaktiver Substanzen hält die Kommission fest, dass die aktuelle auf Verboten beruhende Gesetzgebung zu Drogen für künftige Herausforderungen nicht mehr ausreicht. Sie fordert entsprechend, dass für alle heute illegale Substanzen Regulationsmodelle entwickelt werden, die diese zugänglich und staatlich kontrollierbar machen. Ergänzend soll die Politik weiterhin selbstverantwortliches Handeln fördern sowie vulnerable Gruppen schützen und suchtkranken Menschen die notwendige Hilfe zusichern.
|
||||
ul
|
||||
li
|
||||
a href="https://unige.ch/sciences-societe/socio/files/1514/5068/7795/Sociograph_22_a.pdf" target="_blank" Publikation der EKDF
|
||||
li
|
||||
a href="http://www.20min.ch/schweiz/news/story/Staat-soll-alle-Drogen-zugaenglich-machen-31912845" target="_blank" Staat soll alle Drogen zugänglich machen
|
||||
|
||||
h3 LEAP: Gesetzeshüter organisieren sich für Legalisierung (Deutschland)
|
||||
p
|
||||
| Polizisten, Richter, Staatsanwälte und andere Gesetzeshüter zusammen, um dem Irrsinn der Prohibition ein Ende zu bereiten.
|
||||
br
|
||||
a href="https://www.youtube.com/watch?v=4zJ52kNI_to" target="_blank" LEAP Deutschland Gründung Pressekonferenz
|
||||
|
||||
h3 Colorado erlebt einen «Green Rush»
|
||||
p
|
||||
| In Colorado ist der Konsum von Cannabis seit zwei Jahren legal. Die Industrie wächst. Die Rede ist von einem richtigen Rausch, dem «Green Rush». Viele Kritiker der Legalisierung haben ihre Meinung mittlerweile geändert.
|
||||
br
|
||||
a href="http://www.srf.ch/news/international/colorado-erlebt-einen-green-rush" target="_blank" Colorado erlebt einen «Green Rush» auf SRF
|
||||
|
||||
h3 Drogen kann man nicht erschiessen
|
||||
p
|
||||
| Der Drogenkrieg begann 1971, als Nixon den Drogenmissbrauch zum Staatsfeind Nummer eins erklärte. Dieser Krieg ist gescheitert: Die USA sind der größte Drogenmarkt der Welt. Zukünftig muss es eine neue Antidrogen-Politik geben. Selbst eine Legalisierung ist kein Tabu mehr. Der Film dokumentiert neue Wege aus dem Drogenkrieg.
|
||||
br
|
||||
a href="https://www.youtube.com/watch?v=BTYGxSzfcZA" target="_blank" Sendung «Drogen kann man nicht erschiessen»
|
||||
|
||||
h3 Alternative World Drug Report (english)
|
||||
p
|
||||
| The war on drugs is a policy choice. There are other options that, at the very least, should be debated and explored using the best possible evidence and analysis. We all share the same goals – a safer, healthier and more just world. Therefore, we the undersigned, call upon world leaders and UN agencies to quantify the unintended negative consequences of the current approach to drugs, and assess the potential costs and benefits of alternative approaches.
|
||||
br
|
||||
a href="http://www.countthecosts.org/sites/default/files/AWDR-2nd-edition.pdf" target="_blank" The Alternative World Drug Report, 2nd edition
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
.row
|
||||
.col-xs-12.col-sm-6
|
||||
h1= title 'Argomentazioni'
|
||||
h2 Consumo
|
||||
p Il consumo ricreativo e medico della Cannabis è presente fin dai tempi antichi ed é una parte integrante della nostra società. La presente iniziativa vuole che la legge non debba più poter perseguire i consumatori che mantengono un uso responsabile di sostanze psicoattive come la cannabis, preparati a base di cannabis o sostanze con effetti simili alla cannabis.
|
||||
h2 Tutela dei minori
|
||||
p Il consumo della cannabis, di derivati e di sostanze con effetti simili alla cannabis, dovrebbe essere riservato agli adulti. Questa è la strategia di protezione dei giovani che attualmente stà perseguendo il governo federale. Quindi l’iniziativa vuole che gli Adulti che consentono ai minorenni l’accesso, il consumo, la vendita o la coltivazione della cannabis e dei derivati o delle sostanze con effetto simile alla cannabis dovrebbero continuare ad essere puniti.
|
||||
h2 Coltivazione e commercio
|
||||
p La coltivazione e il commercio legalizzati eliminano il controllo statale, eliminano il mercato nero e consentono l'accesso di prodotti di qualità ai consumatori, i quali, assieme ai minorenni, come per farmaci e altri prodotti regolamentati non sono tutelati come con la legalizzazione che prevede poi i controlli. Inoltre, genereranno entrate fiscali per lo Stato e non finiranno nelle tasche di organizzazioni criminali.
|
||||
h2 Coltivazione privata
|
||||
p La cannabis è una antica pianta che è può essere coltivata su ogni balcone o in giardini protetti da intrusi esterni, e che impediscono a minorenni o criminali di appropriarsene. Molti tossicodipendenti e pazienti lo fanno per il proprio consumo, per la gioia di giardinaggio e per la certezza di consumare prodotti di qualità senza pesticidi e sostanze che invece i mercati regolamentati presentano(Esempio: solfiti nel Vino, pesticidi e altre nella frutta e verdura, coloranti tossici nei vestiti, etc…). L’iniziativa non ha un obiettivo economico, ma certe condizioni di crescita economica e del mercato del lavoro devono essere soddisfatte. Quali condizioni devono essere soddisfatte, saranno determinate dal legislatore.
|
||||
h2 Salute e medicina
|
||||
p Rischi per la salute del consumo di cannabis sono moderati, soprattutto nelle forme di consumo, in cui non vi é nessun processo di combustione(Vaporizzatore, Tisana, Oli estratti, creme, etc…). Alcol e tabacco sono di solito più pericolosi e tossici che l'uso occasionale di cannabis, soprattutto tra gli adulti. Sportivi d’élite come il maratoneta Collins hanno mostrato effetti benefici della cannabis nel post- attività sportive per recupero sia a livello respiratorio, circolazione sanguinea, contusioni, dolori, e ripresa da traumi fisici. Secondo l'iniziativa che sottolinea il pericolo di altre sostanze, Vi è attualmente una stigmatizzazione dei tossicodipendenti di cannabis che invece non lo sono e che spesso vengono obbligati a consumare farmaci che provocano davvero dipendenza.
|
||||
|
||||
p A differenza di altre sostanze già legali la Cannabis offre anche ampie possibilità terapeutiche. In molti paesi, la cannabis è un farmaco con successo una parte della sanità pubblica. In Svizzera, anche l'automedicazione è punibile in pazienti che hanno dimostrato di altra scelta. L'iniziativa fornisce ai pazienti e ai pazienti la possibilità di acquistare legalmente la cannabis e curare se stessi.
|
||||
|
||||
.col-xs-12.col-sm-6
|
||||
h2 Opinioni e fatti di casa e dall’estero
|
||||
h3 Cannabis-Irrsinn - Warum uns das Verbot schadet
|
||||
p
|
||||
| L'attività di cannabis illegale è sempre più brutale. Tra i rivenditori la violenza aumenta anche con armi da fuoco, vendette e lotte per monopolio commercio. A colpire sono i gruppi attivi provenienti dai Balcani e Vietnam. Ma non solo: Quando anche i cartelli di cannabis provenienti da Colombia e Messico hanno aperto un nuovo fronte in Europa. I gruppi criminali che hanno negoziato in precedenza con l'eroina e la cocaina, ora sono mescolati con il business della marijuana.
|
||||
br
|
||||
a href="http://cannabis-irrsinn.info/wp/" target="_blank" Cannabis-Irrsinn
|
||||
|
||||
h3 Droghe e farmaci sono pericolosi?
|
||||
p
|
||||
| Berna, 2015/12/21 - La Commissione federale per le questioni di droga (EKDF) promuove un uso più razionale nella Società delle sostanze psicoattive siccome la repressione e la politica precedente non ha funzionato. Come risultato del più recente studio pubblicato oggi sui pericoli delle sostanze psicoattive, la Commissione osserva, che l'attuale legislazione sulle sostanze stupefacenti vietate, per le sfide del futuro, non è più sufficiente. Si auspica altresì che tutti i modelli di regolazione di sostanze illegali oggi saranno sviluppati per essere messi a disposizione e controllati dallo Stato. Inoltre, la politica è quello di continuare a promuovere l'azione indipendente e proteggere i gruppi vulnerabili e assicuarare a tossicodipendenti l'assistenza necessaria
|
||||
ul
|
||||
li
|
||||
a href="https://unige.ch/sciences-societe/socio/files/1514/5068/7795/Sociograph_22_a.pdf" target="_blank" Pubblicazione di EKDF
|
||||
li
|
||||
a href="http://www.20min.ch/schweiz/news/story/Staat-soll-alle-Drogen-zugaenglich-machen-31912845" target="_blank" Stato deve mettere a disposizione tutti i farmaci
|
||||
|
||||
h3 LEAP: Gesetzeshüter organisieren sich für Legalisierung (Deutschland)
|
||||
p
|
||||
| I poliziotti, giudici, procuratori e altri funzionari delle forze dell'ordine insieme per mettere fine alla follia del proibizionismo.
|
||||
br
|
||||
a href="https://www.youtube.com/watch?v=4zJ52kNI_to" target="_blank" LEAP Deutschland Gründung Pressekonferenz
|
||||
|
||||
h3 Colorado ha subito un «Green Rush»
|
||||
p
|
||||
| In Colorado l'uso di cannabis è legale da due anni. L'industria è in crescita. Si parla di un vero e proprio business efficace, il „Green Rush“. Molti critici della legalizzazione hanno cambiato idea ora
|
||||
br
|
||||
a href="http://www.srf.ch/news/international/colorado-erlebt-einen-green-rush" target="_blank" Colorado erlebt einen «Green Rush» auf SRF
|
||||
|
||||
h3 Le droghe non possono spararti
|
||||
p
|
||||
| La guerra alla droga ha avuto inizio nel 1971, quando Nixon dichiarò l'abuso di droga al nemico pubblico numero uno. Questa guerra non è riuscita: Gli Stati Uniti sono il più grande mercato della droga in tutto il mondo. In futuro, ci deve essere una nuova politica antidroga. Anche una legalizzazione non è più un tabù. Il film documenta nuovi modi dalla guerra alla droga.
|
||||
br
|
||||
a href="https://www.youtube.com/watch?v=BTYGxSzfcZA" target="_blank" Sendung «Drogen kann man nicht erschiessen»
|
||||
|
||||
h3 Alternative World Drug Report (english)
|
||||
p
|
||||
| The war on drugs is a policy choice. There are other options that, at the very least, should be debated and explored using the best possible evidence and analysis. We all share the same goals – a safer, healthier and more just world. Therefore, we the undersigned, call upon world leaders and UN agencies to quantify the unintended negative consequences of the current approach to drugs, and assess the potential costs and benefits of alternative approaches.
|
||||
br
|
||||
a href="http://www.countthecosts.org/sites/default/files/AWDR-2nd-edition.pdf" target="_blank" The Alternative World Drug Report, 2nd edition
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
h1 = title 'Deine Spende zählt - Verein Legalize it!'
|
||||
|
||||
script src="https://checkout.stripe.com/checkout.js"
|
||||
javascript:
|
||||
var handler = StripeCheckout.configure({
|
||||
key: "#{Rails.configuration.stripe[:publishable_key]}",
|
||||
locale: '#{I18n.locale}',
|
||||
image: '#{image_url("ch420_logo.png")}',
|
||||
name: 'Verein Legalize it!',
|
||||
currency: 'CHF',
|
||||
description: 'Initiativspende',
|
||||
token: function(token) {
|
||||
$('input#stripeToken').val(token.id);
|
||||
$('form').submit();
|
||||
}
|
||||
});
|
||||
|
||||
h2 Via Kreditkarte online spenden
|
||||
= form_tag charges_path do
|
||||
= hidden_field_tag(:stripeToken)
|
||||
#error_explanation.text-danger.hidden
|
||||
= flash[:error] if flash[:error].present?
|
||||
.row
|
||||
.col-xs12.col-md-5
|
||||
button.donatebox.btn.btn-success onclick="donate(20)" 20 .-
|
||||
button.donatebox.btn.btn-success onclick="donate(50)" 50 .-
|
||||
button.donatebox.btn.btn-success onclick="donate(100)" 100 .-
|
||||
button.donatebox.btn.btn-success onclick="donate(200)" 200 .-
|
||||
button.donatebox.btn.btn-success onclick="donate(500)" 500 .-
|
||||
button.donatebox.btn.btn-success onclick="donate(1000)" 1000 .-
|
||||
|
||||
.col-xs12.col-md-6
|
||||
.form-group
|
||||
strong oder einen eigenen Betrag
|
||||
.form-group
|
||||
.input-group
|
||||
.input-group-addon CHF
|
||||
= text_field_tag(:amount, 100 , class: 'form-control')
|
||||
|
||||
.form-group
|
||||
button#donateButton.btn.btn-success Spenden übermitteln
|
||||
|
||||
|
||||
|
||||
h2 Mit Bitcoin, Bitcoin Cash oder Ethereum spenden
|
||||
.row
|
||||
.col-md-6.col-xs-12
|
||||
p
|
||||
= image_tag '1LaYbTiCjhrUhxrQ9D5BQUfxPmRqJ7Q3gG.png', alt: 'Bitcoin Adresse: 1LaYbTiCjhrUhxrQ9D5BQUfxPmRqJ7Q3gG', width: '150', class: 'pull-right'
|
||||
div
|
||||
| Gerne nehmen wir auch Spenden via Bitcoin unter folgender Adresse entgegen:
|
||||
br
|
||||
span.crypto_address 1LaYbTiCjhrUhxrQ9D5BQUfxPmRqJ7Q3gG
|
||||
br
|
||||
| oder Bitcoin Cash:
|
||||
br
|
||||
i.crypto_address 1LVGcneFcYqCkhDFNsnhWb6x7cCHHxakg9
|
||||
.col-md-6.col-xs-12
|
||||
p
|
||||
= image_tag 'ethereum_address.png', alt: 'Ethereum Adresse: 0x8747d7F53FdaCD01bb269757E2bdd885B3033A45', width: '150', class: 'pull-right crypto_address'
|
||||
div
|
||||
| Gerne nehmen wir auch Spenden via Ethereum unter folgender Adresse entgegen:
|
||||
br
|
||||
span.crypto_address 0x8747d7F53FdaCD01bb269757E2bdd885B3033A45
|
||||
.clearfix
|
||||
|
||||
h2 Per Überweisung spenden
|
||||
.row
|
||||
.col-md-7.col-xs-12
|
||||
dl.dl-horizontal
|
||||
dt Postkonto:
|
||||
dd 87-091354-3, Verein Legalize it!, Quellenstrasse 25, 8005 Zürich
|
||||
dt IBAN:
|
||||
dd CH02 0900 0000 8709 1354 3
|
||||
dt Zahlungszweck:
|
||||
dd Spende Initiative
|
||||
.col-md-5.col-xs-12
|
||||
= link_to asset_path('Einzahlungsschein_Spende_Initiative.pdf') do
|
||||
= image_tag('Einzahlungsschein_Spende_Initiative.jpg', class:'img-responsive', alt: 'Einzahlungsschein Spende initiative')
|
||||
|
||||
p
|
||||
b Wir würden uns freuen, wenn ihr das macht und uns finanziell unter die Arme greift.
|
||||
|
||||
p Danke, dein Verein Legalize it!
|
||||
|
||||
javascript:
|
||||
$('.donatebox').on('click', function(e) {
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
function donate(amount) {
|
||||
$('#amount').val(amount);
|
||||
$('#donateButton').click();
|
||||
}
|
||||
|
||||
$('#donateButton').on('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
$('#error_explanation').html('');
|
||||
|
||||
var amount = $('input#amount').val();
|
||||
amount = parseFloat(amount);
|
||||
|
||||
if (isNaN(amount)) {
|
||||
$('#error_explanation').toggleClass('hidden')
|
||||
$('#error_explanation').html('<p>Bitte geben sie einen Betrag in CHF ein.</p>');
|
||||
}
|
||||
else if (amount < 10.00) {
|
||||
$('#error_explanation').toggleClass('hidden')
|
||||
$('#error_explanation').html('<p>Ihre Spende muss mindestens 10.- CHF betragen.</p>');
|
||||
}
|
||||
else {
|
||||
amount = amount * 100; // Needs to be an integer!
|
||||
handler.open({
|
||||
amount: Math.round(amount)
|
||||
})
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,91 @@
|
||||
.row
|
||||
section.col-xs-12.col-sm-6
|
||||
h1= title 'Fragen und Antworten zur Cannabis-Initiative'
|
||||
h2 Was will die Cannabis-Initiative erreichen?
|
||||
p Die Ziele der Cannabis-Initiativ werden in den drei Kernbotschaften zum Ausdruck gebracht:
|
||||
ul
|
||||
li Erwachsene haben genauso die Freiheit und das Recht Cannabis zu konsumieren, wie Alkohol oder Tabak.
|
||||
li Niemand muss gezwungen sein, sich auf dem Schwarzmarkt zu bedienen.
|
||||
li Steuereinnahmen und Einsparungen aus der Strafverfolgung sollen der Prävention, der Suchtbehandlung, der Forschung oder den Sozialversicherungen zugutekommen.
|
||||
|
||||
h2 Wem nützt die Initiative?
|
||||
p Jeder Schweizer Bürger profitiert von der Annahme der Initiative. Gelder, die über den Schwarzmarkt in internationale Terror-Organisationen fliessen, werden versteuert und Millionen von Steuergeldern in der Strafverfolgung eingespart. Zehntausende von Patienten profitieren von der Möglichkeit einer alternativen Behandlung mittels Cannabis. Hunderttausende Schweizer Bürger werden entkriminalisiert und in Freiheit Cannabis als Genussmittel konsumieren.
|
||||
|
||||
h2 Wer steht hinter der Initiative?
|
||||
p Die Initiative wurde von Mitgliedern des Verein Legalize it! initiiert. Seit 25 Jahren helfen wir vom Verein Legalize it! Menschen, die mit THC-Produkten Umgang pflegen, bei den unterschiedlichsten Fragen.
|
||||
|
||||
h2 Wird Cannabis als ganz normales Produkt kaufbar sein?
|
||||
p Ja, wer volljährig ist darf Cannabis ganz normal kaufen. An welche Rahmenbedingungen der Verkauf genau gebunden ist, muss jedoch vom Gesetzgeber noch definiert werden.
|
||||
|
||||
h2 Wie wird der Anbau geregelt?
|
||||
p Jeder darf für seinen eigenen Bedarf Cannabis anbauen. Sobald der Anbau einem wirtschaftlichen Zweck dient, müssen jedoch gewisse Anbaubedingungen erfüllt werden. Welche Bedingungen erfüllt werden müssen, wird vom Gesetzgeber noch bestimmt.
|
||||
|
||||
h2 Wie wird der Jugendschutz gewährleistet?
|
||||
p Analog der Regelung bei Alkohol gilt ein striktes Verbot, Cannabis an Minderjährige abzugeben. Anreize aus der Gesellschaft können durch ein Werbeverbot minimiert werden. Ein solches Werbeverbot soll analog der bestehenden Regelung im Umgang mit Alkoholwerbung (AlkG. Art. 42b) umgesetzt werden. Steuereinnahmen und Einsparungen aus der Strafverfolgung sollen unter anderem der Prävention zugutekommen.
|
||||
|
||||
h2 Sieht die Initiative vor, dass Jugendliche legal kiffen dürfen?
|
||||
p Nein, ebenso wie niemand will, dass Jugendliche Tabak rauchen oder Alkohol konsumieren, will niemand, dass Jugendliche Cannabis konsumieren. Vor dem Gesetz sollen die Konsequenzen für Jugendliche jedoch dieselben sein, wie bei Alkohol oder Tabak. Werden Jugendliche mit Cannabis erwischt, soll es ihnen entzogen und die Erziehungsberechtigten informiert werden. Jugendliche, die dabei erwischt werden, Cannabis an gleichaltrige zu verkaufen, können wie anhin bestraft werden.
|
||||
|
||||
h2 Wird Cannabis als Medizin erhältlich?
|
||||
p Bereits jetzt ist es möglich Cannabis, therapeutisch einzusetzen. Dies jedoch nur in begrenztem Rahmen. Mit der Annahme der Initiative kann jeder ganz legal sich selber mit Cannabis therapieren. Präparate und Rohstoffe können rezeptfrei und ohne Ausnahmebewilligung gekauft werden. Die Kosten für eine ärztlich begleitete Cannabis-Therapie müssen jedoch nicht von den Krankenkassen übernommen werden. Es bleibt zu hoffen, dass sich die in Zukunft ändern wird. Es werden jedoch neue Produkte auf den Markt kommen, welche die Therapiekosten massiv senken.
|
||||
|
||||
h2 Was bedeutet die Initiative für die Landwirtschaft?
|
||||
p Die bisherigen strikten Kontrollen bezüglich des Wirkstoffgehalts für industriell hergestellten Hanf sollen entfallen. Somit können auch problemlos Hanfprodukte wie Seifen, Dämmmaterial oder Textilien aus Cannabis hergestellt werden, die einen erhöhten THC-Gehalt aufweisen. Lediglich das Endprodukt, dass zum Verzehr gedacht ist oder verzehrt werden könnte, wie beispielsweise Tee oder Hanföl aus Saatgut, muss bezüglich des THC-Gehaltes kontrolliert und entsprechend deklariert werden.
|
||||
|
||||
h2 Kann dann in der Öffentlichkeit Cannabis oder Hasch geraucht werden?
|
||||
p Es gelten dieselben Bestimmungen, wie beim Konsum von Tabak. Es wird immer wieder berichtet, dass sich Personen durch den Cannabis-Rauch gestört fühlen. Grundsätzlich gilt dies jedoch auch für andere Raucherwaren, wie beispielsweise die Brissago, die Pfeife oder der Stumpen. Ausserdem gibt es auch andere, wesentliche gesündere Formen des Konsums von Cannabis, bei dem keine störenden Emissionen auftreten.
|
||||
|
||||
h2 Kommt es nach der Annahme der Initiative zu einem Drogentourismus in der Schweiz?
|
||||
p Ausländer sollen genau so wie Schweizer Bürger im Land legal Cannabis erwerben und konsumieren können. Es wäre zu begrüssen, wenn der kränkelnde Tourismus durch die Legalisierung von Cannabis Aufwind bekommt. Sollten Auswirkungen für Anwohner als störend empfunden werden, steht es den Behörden jedoch frei Regulierungen vorzunehmen, ähnlich dem Ausschank von Alkohol.
|
||||
|
||||
h2 Wird es vermehrt zu Cannabis-Schmuggel in den Grenzregionen kommen?
|
||||
p Nachbarstaaten, die an der momentanen Prohibitionspolitik festhalten, werden mit unter Umständen damit konfrontiert, dass Cannabis illegal aus der Schweiz importiert wird. Der Schwarzmarkt in diesen Ländern ist bereits jetzt gesättigt, somit wird es weniger einen Anstieg des Konsums, sondern eher eine Umstrukturierung des Schwarzmarktes geben.
|
||||
|
||||
h2 Verstösst die Initiative gegen Internationale Verträge?
|
||||
p Bei einer Legalisierung von Cannabis würde die Schweiz gegen die von ihr unterzeichnete UN Drogenkonvention (Einheitsabkommen über die Betäubungsmittel) verstossen. Allerdings hat das Schweizer Volk in den letzten paar Jahren klar gemacht, dass Verstösse gegen internationale Verträge nicht so tragisch sind (Masseneinwanderungsinitiative und Minarettinitiative). Zudem hatte das bei Uruguay, Spanien und den USA auch keine weiteren Konsequenzen. Die Probleme der Prohibitionspolitik sind international dieselben. Mit der Initiative zur Legalisierung von Cannabis hat die Schweiz eine passable Lösung.
|
||||
|
||||
h2 Wie sieht die Initiative den Umgang mit Cannabis im Strassenverkehr vor?
|
||||
p Wer fährt, kifft nicht. Dass jemand unter Einfluss von THC ein Fahrzeug lenkt, muss jedoch bewiesen werden. Entgegen der jetzigen Situation muss der Gesetzgeber realistische und objektive Grenzwerte für aktives THC festsetzen. Da dies in der Natur der Sache liegt, muss der Gesetzgeber diesbezüglich über die Bücher, spätestens bei einer Annahme der Initiative. Im Initiativtext wird dieses Thema zwar ausgeklammert, wird aber einen wichtigen Stellenwert in der Diskussion um die Umsetzung bekommen.
|
||||
|
||||
h2 Wird es bei einer Legalisierung von Cannabis mehr Opfer im Strassenverkehr geben?
|
||||
p Wer fährt, kifft nicht. Diese Regel hat einen guten Grund, denn genau so wie bei Alkohol, gewissen Medikamenten oder einer schlichten Übermüdung, verringert Cannabis die Reaktionszeit. Studien legen nahe, dass <a href="http://bit.ly/2itOXj5" target="_blank">der Gebrauch von Cannabis die Wahrscheinlichkeit von Autounfällen verdoppelt</a>. Viele Uneinsichtige, die sich trotzdem gelegentlich unter Einfluss von Cannabis hinters Steuer setzen, berichten, dass Sie vorsichtiger und aufmerksamer fahren. Das könnte dann auch ein Grund sein, dass 6 Jahre später dasselbe Institut herausgefunden hat, <a href="http://bit.ly/2jgq3EU" target="_blank">dass in US-Staaten, die Cannabis zum medizinischen Gebrauch legalisiert haben, die Zahl der Verkehrstoten sogar zurückgegangen ist</a>. Es gibt bis jetzt keinen Grund anzunehmen, dass Cannabis-Konsum die Strassen unsicherer macht. Im Gegenteil, wer Cannabis konsumiert agiert meist verantwortungsvoller und umsichtiger.
|
||||
|
||||
section.col-xs-12.col-sm-6
|
||||
h1 Allgemeine Fragen zu Cannabis
|
||||
h2 Wie gefährlich ist Cannabis?
|
||||
p <a href="https://unige.ch/sciences-societe/socio/files/1514/5068/7795/Sociograph_22_a.pdf" target="_blank">Die Frage wurde durch die Eidgenössische Kommission für Drogenfragen (EKDF) untersucht.</a> Dabei zeigte sich, dass Cannabis durchwegs weniger problematisch ist als die bisherigen legalen Genussmittel Alkohol und Tabak.
|
||||
|
||||
h2 Kann man vom Passivkiffen high werden?
|
||||
p Nein, man müsste sich in einem geschlossenen Raum befinden und Unmengen von Cannabis verbrennen, um eine Wirkung zu erzielen. Das Einatmen einer vorbeiziehenden süsslichen Rauchschwade hat absolut keine Wirkung.
|
||||
|
||||
h2 Verführt Cannabis zum Konsum anderer Drogen?
|
||||
p Nein, die sogenannte Einstiegsdrogen-Theorie gilt bei allen Experten als überholt. Im Gegenteil, die Trennung von sogenannten weichen und harten Drogen kann nur durch eine konsequente Legalisierung vollzogen werden. Personen kommen weniger in Kontakt mit anderen Drogen, wenn sie keinen Kontakt mit Dealern haben müssen. Ein Modell, dass in Holland seit Jahrzehnten erfolgreich umgesetzt wird.
|
||||
|
||||
h2 Führt Cannabis-Konsum zu Psychosen?
|
||||
p Das Risiko, durch das Rauchen von Cannabis eine psychische Erkrankung zu entwickeln, ist in Relation zur gesamten Zahl aller Cannabis-Konsumenten sehr gering und wissenschaftlich nicht bewiesen.
|
||||
p <a href="http://www.sciencedirect.com/science/article/pii/S0955395909001182" target="_blank">Studien, die sich mit dieser Thematik befassen, liefern lediglich Hinweise</a>. Die meisten Studien sind nicht oder quasi experimentell. Das heisst sie Untersuchen das Geschehene erst im Nachhinein. Die konsumierte Menge wird oft gar nicht erhoben oder kann nicht exakt bestimmt werden. Die Qualität und der Wirkstoffgehalt kann nicht überprüft werden, da auf dem Schwarzmarkt bezogenes Cannabis weder geprüft, noch deklariert ist. Es ist, als ob man ein Weizenbier mit gepanschtem Wodka vergleichen würde. Meist kann also nicht einmal aussgeschlossen werden ob nicht auch Verunreinigungen den Effekt erklären und zur Psychose führen könnte.
|
||||
p Wird die Ursache und Wirkung untersucht, muss die zeitliche Abfolge der Ereignisse berücksichtig werden. Es muss also die Erkrankung nach dem Konsum nachgewiesen sein. Psychische Erkrankungen beginnen oft schleichend und werden von den Betroffenen erst spät als solche wahrgenommen. Cannabis-Konsum, der zwischen Erkrankung und Diagnose beginnt, ist demnach nicht mehr Ursache, sondern Wirkung. Dieses Phänomen kann als eine unbewusste Selbstmedikation interpretiert werden. Bei vielen Studien wird, gerade diese Annahme der Kausalität schlicht nicht berücksichtigt – ein methodischer Mangel der Studie.
|
||||
|
||||
h2 Wie wird Cannabis hergestellt und gewonnen?
|
||||
p Cannabinoide, also die verschiedenen Wirkstoffe sind in der Cannabispflanze, insbesondere in der weiblichen Blüte vorhanden. Die Pflanze kann relativ einfach angepflanzt werden, danach können die getrockneten Blüten direkt konsumiert oder weiter verarbeitet werden. Im Prinzip reicht es ein Samen in einem Blumentopf zu setzen und regelmässig zu giessen.
|
||||
|
||||
h2 Macht Cannabis gewalttätig?
|
||||
p Der Konsum von <a href="http://link.springer.com/article/10.1007/s00213-016-4371-1" target="_blank">Cannabis alleine hat in der Regel eher einen gegenteiligen Effekt</a>, man wird ruhiger und entspannter. Dass Cannabis die Gewaltbereitschaft erhöht ist höchst wahrscheinlich auf die Propaganda der 30er Jahre zurückzuführen — der Film <a href="https://www.youtube.com/watch?v=sbjHOBJzhb0"target="_blank">„Reefer Madness“</a> ist ein gutes Beispiel dafür. Ein Effekt von Cannabis ist jedoch auch, dass es die Wirkung anderer Substanzen verstärken kann. Deshalb wird auch vom Mischkonsum, insbesondere mit Alkohol, abgeraten. Die negativen Effekte von Alkohol, beispielsweise Enthemmung, Gewaltbereitschaft oder erhöhte Risikobereitschaft, können stärker hervortreten, wenn jemand gleichzeitig Cannabis konsumiert.
|
||||
p Insbesondere Jugendlichen wird eine erhöhte Gewaltbereitschaft nachgesagt. Dass Cannabis nicht ursächlich sein kann für Gewalt unter Jugendlichen, zeigt die Tatsache, dass trotz <a href="http://www.suchtmonitoring.ch/de/4/1-2.html?cannabis-pravalenz-gebrauch-in-der-gesamtbevolkerung"target="_blank">konstantem Konsum</a> die <a href="https://www.bfs.admin.ch/bfs/de/home/statistiken/kriminalitaet-strafrecht/strafjustiz.gnpdetail.2016-0112.html" target="_blank">Jugendgewalt immer mehr abnimmt</a>.
|
||||
|
||||
h2 Macht Cannabis süchtig?
|
||||
p
|
||||
| Nach der internationalen Klassifikation der Krankheiten und verwandter Gesundheitsprobleme (ICD-10) liegt dann eine Sucht vor, wenn drei oder mehr der folgenden Kriterien zutreffen:
|
||||
ol
|
||||
li starkes, oft unüberwindbares Verlangen, die Substanz einzunehmen
|
||||
li Schwierigkeiten, die Einnahme zu kontrollieren (was den Beginn, die Beendigung und die Menge des Konsums betrifft)
|
||||
li körperliche Entzugssymptome
|
||||
li benötigen immer größerer Mengen, damit die gewünschte Wirkung eintritt
|
||||
li fortschreitende Vernachlässigung anderer Verpflichtungen, Aktivitäten, Vergnügen oder Interessen (das Verlangen nach der Droge wird zum Lebensmittelpunkt)
|
||||
li fortdauernder Gebrauch der Substanz(en) wider besseres Wissen und trotz eintretender schädlicher Folgen.
|
||||
|
||||
| Der Konsum von Cannabis kann, genau so, wie Alkohol, Tabak, Kaffe, Sport, Sex, Smartphonegebrauch, etc. süchtig machen. Das Abhängigkeitspotenzial von Cannabis wird jedoch als mässig bis gering eingestuft.
|
||||
img.img-responsive src="#{asset_path('abhaengigkeitspotential_dosis_gabel2006.png')}" alt="Acute toxicity of drugs versus regulatory status."
|
||||
| Gable, R. S. (2006). Acute toxicity of drugs versus regulatory status. In J. M. Fish (Ed.),Drugs and Society: U.S. Public Policy, pp.149-162, Lanham, MD: Rowman & Littlefield Publishers.
|
||||
p Immer wieder wird auch hervorgehoben, dass Jugendliche besonders anfällig wären, von Cannabis abhängig zu werden. Die Gehirnentwicklung von Jugendlichen ist noch nicht abgeschlossen, was sie anfällig für alle möglichen Abhängigkeiten macht. Eine Abhängigkeit im Jugendalter ist jedoch meist nicht durch Cannabis verursacht, sondern das Resultat vorangehender Probleme im Umfeld und insbesondere in der Familie. Da Cannabis gesellschaftlich nicht akzeptiert ist, lernen die Jugendlichen keinen verantwortungsvollen Umgang mit dieser Substanz. Cannabis wird von den Jugendlichen nicht als gefährlich eingestuft. Die Tatsache, dass es trotzdem illegal ist, macht es zu einer idealen Substanz um die Grenzen auszutesten und gegen die Erwachsenen zu rebellieren. Wäre Cannabis gesellschaftlich akzeptiert, wäre der Anreiz Cannabis zu konsumieren unter Jugendlichen geringer.
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
sass:
|
||||
.initiative_text
|
||||
ol
|
||||
counter-reset: item
|
||||
list-style: none
|
||||
li
|
||||
counter-increment: item
|
||||
|
||||
li:before
|
||||
content: counter(item)
|
||||
vertical-align: super
|
||||
font-size: 0.8em
|
||||
display: inline-block
|
||||
|
||||
h1= title 'Der Initiativtext im Wortlaut'
|
||||
.well.initiative_text
|
||||
p Die Bundesverfassung vom 18. April 1999 wird wie folgt geändert:
|
||||
p Art. 105a (neu) Cannabis:
|
||||
ol
|
||||
li Der Konsum von Stoffen und Präparaten des Wirkungstyps Cannabis sowie die Vorbereitung zum eigenen Konsum ist straffrei. Der Anbau von Pflanzen, welche die Herstellung von Stoffen und Präparaten dieses Wirkungstyps für den Eigenbedarf ermöglichen, ist ebenfalls straffrei.
|
||||
li Der Bund erlässt Vorschriften über den gewerblichen Anbau und die Herstellung sowie den Handel mit Stoffen und Präparaten des Wirkungstyps Cannabis.
|
||||
li Die Abgabe von Stoffen und Präparaten des Wirkungstyps Cannabis an Minderjährige ohne medizinische Indikation ist verboten.
|
||||
p Art. 131 Abs.1 Bst. f
|
||||
ol
|
||||
li
|
||||
| Der Bund kann besondere Verbrauchssteuern erheben auf:
|
||||
br
|
||||
| f. Stoffe und Präparate des Wirkungstyps Cannabis, welche nicht der medizinischen Anwendung dienen.
|
||||
p Feedback und konstruktive Kritik ist per E-Mail herzlich willkommen. Als Cannabis im Sinne dieses Artikels gelten alle Stadien der Hanfpflanze (inkl. Saatgut) und deren Produkte, unabhängig von ihrem Gehalt an Tetrahydrocannabinol (THC). Als „Vorbereitung“ gilt vor allem der Besitz, der Erwerb und der Anbau für den eigenen Konsum.
|
||||
@@ -0,0 +1,74 @@
|
||||
article
|
||||
h1 = title "Die Cannabis-Legalisierung in Zahlen: Der Staat wirft Geld aus dem Fenster und verpasst Millionen an Steuereinnahmen"
|
||||
h2 Cannabis-Konsum
|
||||
table.table.table-bordered.table-condensed.table-inherit
|
||||
caption Cannabis-Konsum im Jahr 2014 gemäss <a href="http://www.suchtmonitoring.ch/de/4/1-2.html?cannabis-pravalenz-gebrauch-in-der-gesamtbevolkerung" target="_blank">Suchtmonitoring</a>
|
||||
tbody
|
||||
tr
|
||||
td Mindestens einmaliger Konsum innerhalb der letzten 12 Monaten
|
||||
td ca. 536’000
|
||||
td 6.7%
|
||||
tr
|
||||
td Mindestens einmaliger Konsum innerhalb der letzten 30 Tage
|
||||
td ca. 240’000
|
||||
td 3%
|
||||
tr
|
||||
td Schweizer Bürger, die mindestens einmal im Leben Cannabis konsumiert haben
|
||||
td ca. 3’136’000
|
||||
td 39.2%
|
||||
|
||||
h2 Strafverfolgung
|
||||
table.table.table-bordered.table-condensed.table-inherit
|
||||
caption Strafverfolgung im Jahr 2015 gemäss <a href="https://www.bfs.admin.ch/bfs/de/home/statistiken/kriminalitaet-strafrecht/polizei/betaebungsmittelsubstanzen.html" target="_blank">Bundesamt für Statistik</a>
|
||||
tbody
|
||||
tr
|
||||
td Jährliche Kosten für die Strafverfolgung (gemäss <a href="http://cannabis-irrsinn.info/wp/" target="_blank">«Der Cannabis-Irrsinn»</a>)
|
||||
td ca. 200’000’000 Fr.
|
||||
tr
|
||||
td Verzeigte Straftaten oder Ordnungsbussen
|
||||
td ca. 50’000
|
||||
tr
|
||||
td Kosten pro Straftat oder Ordnungsbusse
|
||||
td ca. 4’000 Fr.
|
||||
.lead Im Durchschnitt kostet jedes Delikt im Zusammenhang mit Cannabis den Steuerzahler ca. 4’000 Fr.
|
||||
|
||||
h2 Potenzielle Steuereinnahmen durch kontrollierten Handel (Modellrechnung)
|
||||
table.table.table-bordered.table-condensed.table-inherit
|
||||
caption Potenzielle Steuereinnahmen
|
||||
tbody
|
||||
tr
|
||||
td Geschätzte Anzahl Konsumenten
|
||||
td
|
||||
a href="#prevalenz" aria-describedby="footnote-label" id="prevalenz-ref" ca. 800’000
|
||||
tr
|
||||
td Jährliche Konsumation pro Person
|
||||
td ca. 50 Gramm
|
||||
tr
|
||||
td Durchschnittlicher Verkaufspreis pro Gramm
|
||||
td
|
||||
a href="#preis" aria-describedby="footnote-label" id="preis-ref" ca. 10 Fr
|
||||
|
||||
table.table.table-bordered.table-condensed.table-inherit
|
||||
caption Bilanz
|
||||
tbody
|
||||
tr
|
||||
td Jährliche Steuereinnahmen
|
||||
td ca. 100’000’000 Fr.
|
||||
tr
|
||||
td Jährliche Einsparungen
|
||||
td ca. 200’000’000 Fr.
|
||||
tr
|
||||
td
|
||||
strong Total
|
||||
td
|
||||
strong ca. 300’000’000 Fr.
|
||||
|
||||
footer
|
||||
h2 id="footnote-label" Fusszeile
|
||||
ol
|
||||
li#prevalenz
|
||||
| Es wird geschätzt, dass 10% der Schweizer Bevölkerung nach der Legalisierung Cannabis konsumiert.
|
||||
a href="#prevalenz-ref" aria-label="Zurück zum Inhalt"↵
|
||||
li#preis
|
||||
| Der Verkaufspreis auf dem Schwarzmarkt liegt derzeit bei ca. 10 - 15 Fr. pro Gramm. Um den Schwarzmarkt wirksam zu bekämpfen, darf der Verkaufspreis inklusive Steuern nicht höher ausfallen, als der Preis auf dem Schwarzmarkt. Reine Produktionskosten liegen bei ca. 0.8 Fr. pro Gramm.
|
||||
a href="#preis-ref" aria-label="Zurück zum Inhalt"↵
|
||||
@@ -1,29 +0,0 @@
|
||||
h1 = title 'Deine Spende zählt - Verein Legalize it!'
|
||||
p
|
||||
dl.dl-horizontal
|
||||
dt Postkonto:
|
||||
dd 87-091354-3, Verein Legalize it!, Postfach 2159, 8031 Zürich
|
||||
dt IBAN:
|
||||
dd CH02 0900 0000 8709 1354 3
|
||||
dt Zahlungszweck:
|
||||
dd Spende Initiative
|
||||
.row
|
||||
.col-xs-12.col-md-9
|
||||
= link_to asset_path('Einzahlungsschein_Spende_Initiative.pdf') do
|
||||
= image_tag('Einzahlungsschein_Spende_Initiative.jpg', class:'img-responsive pagelogo', alt: 'Einzahlungsschein Spende initiative')
|
||||
|
||||
h2 Warum kann ich nicht auch online oder per Kreditkarte spenden?
|
||||
p Wir haben mehrere Versuche unternommen, dies mittels verschiedener (zahlbaren) Payment-Service-Providern zu ermöglichen, sind jedoch immer wieder gescheitert. Die Gründe dafür sind vielfältig: Zum einen bieten viele solche Dienstleister ihren Service gar nicht für Vereine an, zum anderen ist das Schweizer Vereinsrecht relativ liberal. Ein zentrales Register für Vereine wie in anderen Ländern üblich, gibt es nicht. Einzig ein Handelsregistereintrag könnte ein wenig Klarheit schaffen. Dies ist jedoch zu kostspielig und würde momentan zu viel Zeit in Anspruch nehmen. Selbst wenn wir einen solchen hätten, wäre es nicht sicher, dass Dienste wie beispielsweise PayPal uns akzeptieren würden.
|
||||
p Eine andere schwierigere Hürde ist unser Umfeld. Wir haben, genau wie in Amerika, die Schwierigkeit, dass unser Themenbereich Cannabis ist. Da der Umgang mit Cannabis illegal ist, scheinen die Banken der Logik verfallen zu sein, dass alles was mit Cannabis zu tun hat, auch illegal sei, notabene auch das Ändern des illegalen Status. Viele Finanzdienstleister wie etwa Stripe.com lehnen daher jegliche Zusammenarbeit kategorisch ab.
|
||||
|
||||
p Somit bleibt nur zum guten alten Einzahlungsschein zu greifen beziehungsweise die richtigen Zahlenkombinationen beim E-Banking an den richtigen Stellen einzufügen.
|
||||
p
|
||||
b Wir würden uns freuen, wenn ihr das macht und uns finanziell unter die Arme greift.
|
||||
|
||||
p Danke, dein Verein Legalize it!
|
||||
|
||||
h3 Weitere Informationen zur Initiative findest du hier:
|
||||
ul
|
||||
li = link_to 'Initiativ-Seite', 'https://www.hanflegal.ch/initiative'
|
||||
li = link_to 'Onlineformular', root_path
|
||||
li = link_to 'Initiativ-Forum', 'https://forum.hanflegal.ch'
|
||||
@@ -0,0 +1,17 @@
|
||||
h1 = title "Unsere Sponsoren"
|
||||
.lead
|
||||
| Wir suchen tatkräftige Sponsoren, die uns bei der Sammlung der Unterschriften und im späteren Wahlkampf finanziell unterstützen. Im Gegenzug ermöglichen wir den Sponsoren, sich mit Logo, einem kleinen Text und Link zu präsentieren.
|
||||
h2 Beispiel...
|
||||
.well
|
||||
.row
|
||||
.col-xs-12.col-sm-6.col-md-3
|
||||
= image_tag 'dummy.png', alt: 'Platzhalter für Logo', class: 'img-responsive'
|
||||
.col-xs-12.col-sm-6.col-md-9
|
||||
h2 Ihr Firmenname
|
||||
p Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
.row
|
||||
.col-xs-12.col-sm-6.col-md-9
|
||||
h2 Ihr Firmenname
|
||||
p Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
.col-xs-12.col-sm-6.col-md-3
|
||||
= image_tag 'dummy.png', alt: 'Platzhalter für Logo', class: 'img-responsive'
|
||||
@@ -0,0 +1,13 @@
|
||||
- supporters = Supporter.where('publicity.state' => :approved).desc('publicity.created_at')
|
||||
h1 = title t('.title')
|
||||
- supporters.each do |supporter|
|
||||
.statement
|
||||
= image_tag supporter.publicity.avatar.url(:small), alt: "#{supporter.first_name} #{supporter.last_name}"
|
||||
h2= "#{supporter.first_name} #{supporter.last_name}, #{supporter.city}"
|
||||
- unless supporter.publicity.organisation.blank?
|
||||
em= ", #{supporter.publicity.organisation}"
|
||||
br
|
||||
article= supporter.publicity.statement
|
||||
hr.clearfix
|
||||
|
||||
.text-center = link_to t(".submit_your_own_statement"), new_publicity_path
|
||||
@@ -3,4 +3,3 @@ h1 Nutzungsbedingungen
|
||||
p Die Daten werden ausschliesslich zum Zweck der Kampagnenplanung und zur Beschaffung von Unterschriften bezüglich der Legalisierung von Cannabis in der Schweiz erhoben. Unterstützer und Helfer werden über die Adressen schriftlich oder elektronisch über Neuigkeiten informiert und bezüglich weiterer Unterstützung angefragt.
|
||||
p Die gesammelten Daten werden nur zum jeweils deklarierten Zweck erhoben und nicht weitergegeben.
|
||||
p Die von Ihnen in ein Formular eingegebenen Daten werden verschlüsselt übermittelt. Die Online-Übermittlung persönlicher Daten erfolgt auf eigenes Risiko. Die von Ihnen übermittelten Daten werden auf unseren Servern gespeichert, mit aller Sorgfalt aufbewahrt und vor Zugriffen Dritter geschützt.
|
||||
= link_to 'Zurück', :back
|
||||
|
||||
@@ -2,5 +2,4 @@ h1 Condizioni d'uso
|
||||
p I dati verranno utilizzati unicamente a scopo di pianificazione della campagna e raccolta firme per la legalizzazione della Cannabis in Svizzera. Sostenitori e collaboratori verranno informati per iscritto od in forma elettronica in merito alle novità e verrà loro chiesto ulteriore aiuto qualora possibile.
|
||||
p I dati raccolti verranno utilizzati unicamente a tal scopo e non verranno ritrasmessi a terzi.
|
||||
p I dati inseriti nel formulario vengono trasmessi in maniera criptata. Una volta trasmessi, i dati vengono salvati sui nostri Server regolarmente sottoposti a manutanzione e protetti da accessi di terze persone.
|
||||
= link_to 'Indietro', :back
|
||||
|
||||
|
||||
@@ -1,43 +1,4 @@
|
||||
h1
|
||||
= title t('.title')
|
||||
| Du bist nun ein Teil der Bewegung!
|
||||
|
||||
h2 Wie sieht das weitere Vorgehen aus?
|
||||
p
|
||||
| Wir informieren dich per E-Mail über die nächsten Schritte und kommen aktiv auf dich zu.
|
||||
| Auf #{link_to 'https://www.hanflegal.ch/initiative', 'https://www.hanflegal.ch/initiative'} informieren wir über laufende Aktivitäten.
|
||||
|
||||
h2 Was kannst du machen?
|
||||
ul
|
||||
li Versende den <a href="mailto:?subject=Es wird Zeit, Cannabis in der Schweiz legalisieren&body=Ich hab meine Unterstützung zugesichert unter https://ch420.herokuapp.com. Unterstütze uns auch du.">Link zum Online-Formular</a> an all deine Freunde und Bekannte
|
||||
li Folge uns auf <a href="https://www.facebook.com/vereinlegalizeit">Facebook</a> und <a href="https://twitter.com/VereinLegalize">Twitter</a>
|
||||
li Teile unser Projekt in den sozialen Medien mit dem Hashtag #CH420
|
||||
li Erzähle allen von unserem Vorhaben und bitte Sie mitzumachen
|
||||
li Werde Mitglied beim <a href="https://www.hanflegal.ch">Verein Legalize it!</a>
|
||||
li = link_to 'Spende für die Legalisierung', spenden_path
|
||||
li Besuche unser <a href="https://forum.hanflegal.ch">Forum</a>. Da findest du eine Jobbörse und spannende Projekte bei denen wir deine Hilfe brauchen können
|
||||
|
||||
h2 Folge uns auf Facebook
|
||||
#fb-root
|
||||
javascript:
|
||||
(function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) return;
|
||||
js = d.createElement(s); js.id = id;
|
||||
js.src = "//connect.facebook.net/de_DE/sdk.js#xfbml=1&version=v2.4&appId=236723906381514";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));
|
||||
|
||||
.fb-like data-action="like" data-href="https://www.facebook.com/vereinlegalizeit" data-layout="standard" data-share="true" data-show-faces="true"
|
||||
|
||||
h2 Folge uns auf Twitter
|
||||
p
|
||||
<a href="https://twitter.com/vereinlegalize" class="twitter-follow-button" data-show-count="false" data-lang="de" data-size="large">@vereinlegalize folgen</a>
|
||||
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
|
||||
.lead Setze ein Zeichen und zeig, dass du uns unterstützt
|
||||
p
|
||||
<a href="https://twitter.com/share" class="twitter-share-button" data-url="https://ch420.herokuapp.com" data-text="Ja, ich will Cannabis in der Schweiz legalisieren" data-via="vereinlegalize" data-lang="de" data-size="large" data-hashtags="ch420">Twittern</a>
|
||||
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
|
||||
h1 = title t('.title')
|
||||
|
||||
p
|
||||
a href="/" Zurück zum Formular
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
h1
|
||||
= title t('.title')
|
||||
| Tu fais maintenant partie du mouvement!
|
||||
|
||||
h2 Quelles sont les prochaines étapes?
|
||||
p
|
||||
| Nous allons t’envoyer par e-mail les informations sur les prochaines étapes.
|
||||
| Sur #{link_to 'https://www.hanflegal.ch/initiative', 'https://www.hanflegal.ch/initiative'} initiative nous informons des activités en cours.
|
||||
|
||||
h2 Que peux-tu faire?
|
||||
ul
|
||||
li Envoie le <a href="mailto:?subject=Oui, je veux légaliser le cannabis en Suisse.&body=Envoie un signe et montre que tu nous soutiens sur https://ch420.herokuapp.com. Unterstütze uns auch du.">lien pour le formulaire en ligne</a> à tous tes amis et connaissances
|
||||
li Suis-nous sur <a href="https://www.facebook.com/vereinlegalizeit">Facebook</a> et <a href="https://twitter.com/VereinLegalize">Twitter</a>
|
||||
li Partage notre projet sur les réseaux sociaux avec le hashtag #CH420
|
||||
li Raconte à tout le monde ce que nous avons prévu et demande leurs de participer
|
||||
li Deviens un <a href="https://www.hanflegal.ch">membre de l’association Legalize it!</a>
|
||||
|
||||
h2 Suis-nous sur Facebook
|
||||
#fb-root
|
||||
javascript:
|
||||
(function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) return;
|
||||
js = d.createElement(s); js.id = id;
|
||||
js.src = "//connect.facebook.net/de_DE/sdk.js#xfbml=1&version=v2.4&appId=236723906381514";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));
|
||||
|
||||
.fb-like data-action="like" data-href="https://www.facebook.com/vereinlegalizeit" data-layout="standard" data-share="true" data-show-faces="true"
|
||||
h2 Retour au formulaire
|
||||
p
|
||||
<a href="https://twitter.com/vereinlegalize" class="twitter-follow-button" data-show-count="false" data-lang="de" data-size="large">@vereinlegalize folgen</a>
|
||||
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
|
||||
h2 Envoie un signe et montre que tu nous soutiens
|
||||
p
|
||||
<a href="https://twitter.com/share" class="twitter-share-button" data-url="https://ch420.herokuapp.com" data-text="Ja, ich will Cannabis in der Schweiz legalisieren" data-via="vereinlegalize" data-lang="de" data-size="large" data-hashtags="ch420">Twittern</a>
|
||||
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
|
||||
|
||||
p
|
||||
a href="/fr" Retour au formulaire
|
||||
@@ -1,39 +0,0 @@
|
||||
|
||||
h1
|
||||
= title t('.title')
|
||||
| Ora sei una parte del movimento!
|
||||
|
||||
h2 Qual’é la strada da seguire?
|
||||
p
|
||||
| Vi informeremo via e-mail circa i prossimi passi e diventare attivo.
|
||||
| Su #{link_to 'https://www.hanflegal.ch/initiative', 'https://www.hanflegal.ch/initiative'} può informarsi sulle attività in corso.
|
||||
|
||||
h2 Che cosa puoi fare?
|
||||
ul
|
||||
li Invia il <a href="mailto:?subject=Si, voglio legalizzare la cannabis in Svizzera&body=https://ch420.herokuapp.com">link del formulario on-line</a> a tutti i tuoi amici e conoscenti
|
||||
li Seguici su <a href="https://www.facebook.com/vereinlegalizeit">Facebook</a> e <a href="https://twitter.com/VereinLegalize">Twitter</a>
|
||||
li Racconta die nostri progetti sui social media con l’Hashtag #CH420
|
||||
li Di a tutti di unirsi ai nostri progetti
|
||||
li Diventa un membro dell’ <a href="https://www.hanflegal.ch">associazione Verein Legalize it!</a>
|
||||
h2 Seguici su Facebook
|
||||
#fb-root
|
||||
javascript:
|
||||
(function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) return;
|
||||
js = d.createElement(s); js.id = id;
|
||||
js.src = "//connect.facebook.net/de_DE/sdk.js#xfbml=1&version=v2.4&appId=236723906381514";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));
|
||||
|
||||
.fb-like data-action="like" data-href="https://www.facebook.com/vereinlegalizeit" data-layout="standard" data-share="true" data-show-faces="true"
|
||||
h2 Seguici su Twitter
|
||||
p
|
||||
<a href="https://twitter.com/vereinlegalize" class="twitter-follow-button" data-show-count="false" data-lang="de" data-size="large">@vereinlegalize folgen</a>
|
||||
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
|
||||
p
|
||||
<a href="https://twitter.com/share" class="twitter-share-button" data-url="https://ch420.herokuapp.com" data-text="Ja, ich will Cannabis in der Schweiz legalisieren" data-via="vereinlegalize" data-lang="de" data-size="large" data-hashtags="ch420">Twittern</a>
|
||||
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
|
||||
|
||||
p
|
||||
a href="/it" Vai alla modulo
|
||||
@@ -0,0 +1,6 @@
|
||||
h1= title t('.title')
|
||||
= simple_form_for(@publicity, url: publicity_path) do |form|
|
||||
= form.input :organisation, required: false, label: t('.organisation'), placeholder: t('.organisation_placeholder')
|
||||
= form.input :statement, as: :text, required: false
|
||||
= form.input :avatar, as: :file, label: t('.avatar'), required: false
|
||||
= form.submit t('.save'), class: 'btn btn-primary'
|
||||
@@ -0,0 +1 @@
|
||||
= render 'form'
|
||||
@@ -1,20 +1,7 @@
|
||||
header
|
||||
.row
|
||||
.col-md-1.col-xs-4
|
||||
= image_tag('ch420_logo.png', class:'img-responsive pagelogo', alt: t('.logo'))
|
||||
.col-md-8.col-xs-8
|
||||
.col-xs-8
|
||||
h1
|
||||
= t('.title_html')
|
||||
.col-xs-12.col-md-3
|
||||
nav.pull-right
|
||||
h2.sr-only =t('.lang')
|
||||
a href='/' lang='de'
|
||||
| Deutsch
|
||||
| |
|
||||
a href='/it' lang='it'
|
||||
| Italiano
|
||||
| |
|
||||
a href='/fr' lang='fr'
|
||||
| Français
|
||||
br/
|
||||
.col-xs-12.col-md-4.hidden-xs.hidden-sm
|
||||
= render 'shared/counter'
|
||||
@@ -1,6 +0,0 @@
|
||||
= navbar do
|
||||
= navbar_header
|
||||
= navbar_collapse do
|
||||
= navbar_group id: 'topnav' do
|
||||
= navbar_item "Home", "/#{I18n.locale}"
|
||||
= navbar_item t('.donation'), spenden_path
|
||||
@@ -1,5 +1,14 @@
|
||||
p Hallo #{@supporter.first_name}, du bist nun ein Teil der Bewegung!
|
||||
|
||||
p
|
||||
| Um deine Angaben anzupassen kannst dich unter #{link_to new_supporter_session_url, new_supporter_session_url} mit folgenden Daten anmelden:
|
||||
|
||||
dl.dl-horizontal
|
||||
dt E-Mail
|
||||
dd= @supporter.email
|
||||
dt Passwort
|
||||
dd= @password
|
||||
|
||||
p Wir informieren dich per E-Mail über die nächsten Schritte und kommen aktiv auf dich zu. Auf <a href="https://www.hanflegal.ch/initiative">https://www.hanflegal.ch/initiative</a> informieren wir über laufende Aktivitäten.
|
||||
|
||||
p
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
p Salut #{@supporter.first_name}, Tu fais maintenant partie du mouvement!
|
||||
|
||||
|
||||
|
||||
p Nous allons t’envoyer par e-mail les informations sur les prochaines étapes. Sur <a href="https://www.hanflegal.ch/initiative">https://www.hanflegal.ch/initiative</a> initiative nous informons des activités en cours.
|
||||
|
||||
p
|
||||
| Pour régler vos données peut vous inscrire à #{link_to new_supporter_session_url, new_supporter_session_url} avec les données suivantes:
|
||||
|
||||
dl.dl-horizontal
|
||||
dt E-Mail
|
||||
dd= @supporter.email
|
||||
dt Mot de passe
|
||||
dd= @password
|
||||
p
|
||||
| Que peux-tu faire?
|
||||
ul
|
||||
|
||||
@@ -2,6 +2,14 @@ p Ciao #{@supporter.first_name}, ora sei una parte del movimento!
|
||||
|
||||
p Vi informeremo via e-mail circa i prossimi passi e diventare attivo. Su <a href="https://www.hanflegal.ch/initiative">https://www.hanflegal.ch/initiative</a> può informarsi sulle attività in corso.
|
||||
|
||||
p
|
||||
| Per regolare i dati possono iscriversi a #{link_to new_supporter_session_url, new_supporter_session_url} i seguenti dati:
|
||||
|
||||
dl.dl-horizontal
|
||||
dt E-Mail
|
||||
dd= @supporter.email
|
||||
dt Password
|
||||
dd= @password
|
||||
p
|
||||
| Che cosa puoi fare?
|
||||
ul
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
- title(t('shared.header.title_html'))
|
||||
.row
|
||||
.col-xs-12.col-md-7
|
||||
.col-xs-12
|
||||
h2.sr-only = t('.form')
|
||||
= simple_form_for @supporter do |f|
|
||||
= f.input :first_name, placeholder: t('.placeholders.first_name')
|
||||
@@ -9,6 +9,7 @@
|
||||
= f.input :city, placeholder: t('.placeholders.city')
|
||||
= f.input :zip, placeholder: t('.placeholders.zip')
|
||||
= f.input :email, placeholder: t('.placeholders.email')
|
||||
= f.input :tel, placeholder: '+41 (0) xxxx'
|
||||
= f.input :support, as: :radio_buttons, collection: t('support_type').map{ |x| [x.first, raw(x.last)]}, label_method: :last, value_method: :first
|
||||
= f.input :li_membership, as: :boolean
|
||||
= f.input :age_category, as: :radio_buttons, collection: t('age_category'), label_method: :last, value_method: :first
|
||||
@@ -62,5 +63,3 @@
|
||||
}).on('typeahead:selected', function(event, datum) {
|
||||
$("#supporter_city").val(datum.city);
|
||||
});
|
||||
aside.col-md-5.col-xs-12
|
||||
= render 'right_side'
|
||||
@@ -0,0 +1,25 @@
|
||||
- if current_supporter.publicity
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
h2.panel-title
|
||||
= t '.title'
|
||||
.panel-body
|
||||
dl.dl-horizontal
|
||||
dt = Publicity.human_attribute_name(:status)
|
||||
dd= t("publicity_states.#{current_supporter.publicity.state}")
|
||||
- unless current_supporter.publicity.organisation.blank?
|
||||
dt = Publicity.human_attribute_name(:organisation)
|
||||
dd = current_supporter.publicity.organisation
|
||||
dt = Publicity.human_attribute_name(:statement)
|
||||
dd = current_supporter.publicity.statement
|
||||
dt = Publicity.human_attribute_name(:avatar)
|
||||
dd = image_tag current_supporter.publicity.avatar.url(:small), alt: ''
|
||||
|
||||
.pull-right
|
||||
= link_to t(".renew"), new_publicity_path
|
||||
br
|
||||
= link_to t(".delete"), publicity_path, data: { confirm: t("shared.are_you_sure") }, method: :delete, class: 'text-danger'
|
||||
|
||||
- else
|
||||
.alert.alert-notice
|
||||
= link_to t('.create_publicity'), new_publicity_path
|
||||
@@ -1,34 +0,0 @@
|
||||
.well
|
||||
h2.sr-only Über die Initiative
|
||||
p = image_tag 'li_logo.svg', class: 'img-responsive', alt: 'Logo des Vereins Legalize it!'
|
||||
p Wir wollen die nötigen Unterschriften für eine Volksinitiative zur Cannabis-Legalisierung sammeln. Für die Umsetzung setzt man auf ein neues Sammelkonzept. Dies funktioniert in drei Schritten:
|
||||
|
||||
p
|
||||
strong Schritt 1:
|
||||
| Durch dieses Onlineformular sammeln wir Sympathisanten und potentielle Aktivisten.
|
||||
p
|
||||
strong Schritt 2:
|
||||
| Sobald die geforderte Anzahl Personen gesammelt sind, schauen wir, wie viele Ressourcen an Helfer/innen an welchen Orten benötigt werden.
|
||||
p
|
||||
strong Schritt 3:
|
||||
| Durch eine ausgeklügelte Logistik werden Sympathisanten und Aktivisten zusammengebracht, um gemeinsam die nötigen Unterschriften zu generieren.
|
||||
|
||||
p.lead Wenn du also <span class="text-success">Cannabis in der Schweiz legalisieren</span> willst, fülle das nebenstehende Formular aus und schreibe mit uns Geschichte.
|
||||
|
||||
p Mehr Informationen findest du unter #{link_to 'https://www.hanflegal.ch/initiative', 'https://www.hanflegal.ch/initiative'}
|
||||
|
||||
/ p.embed-responsive.embed-responsive-4by3
|
||||
iframe.embed-responsive-item src="https://www.youtube.com/embed/l5DjuLXRVVM" frameborder="0" allowfullscreen=""
|
||||
/ p.embed-responsive.embed-responsive-4by3
|
||||
iframe src="https://www.youtube.com/embed/videoseries?list=PLlC7Go4yV6YKunLd6O627HTQlNswQQ6vw" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen
|
||||
|
||||
h3 Wer steht hinter dieser Aktion?
|
||||
p Die Aktion wurde von Mitgliedern des Verein Legalize it! initiiert. Seit 25 Jahren helfen wir vom Verein Legalize it! Menschen, die mit THC-Produkten Umgang pflegen, bei den unterschiedlichsten Fragen.
|
||||
|
||||
h3 Kontakt
|
||||
p
|
||||
| Nino Forrer (#{mail_to 'nino@hanflegal.ch'})
|
||||
em Strategie / Presse
|
||||
br
|
||||
| Markus Graf (#{mail_to 'markus@hanflegal.ch'})
|
||||
em Inhalt / Technik
|
||||
@@ -1,29 +0,0 @@
|
||||
.well
|
||||
h2.sr-only A propos de l'initiative
|
||||
p = image_tag 'li_logo.svg', class: 'img-responsive', alt: 'Logo de l\'association Legalize It!'
|
||||
p Nous voulons recueillir les signatures nécessaires pour une initiative populaire pour la légalisation du cannabis. Pour l’exécution de ce projet, un nouveau concept de collection a été mis sur pieds. Cela fonctionne en trois étapes:
|
||||
|
||||
p
|
||||
strong Etape 1:
|
||||
| Avec ce formulaire en ligne, nous recueillions des sympathisants et des militants potentiels.
|
||||
p
|
||||
strong Etape 2:
|
||||
| Une fois que le nombre nécessaire de personnes est atteint, nous pouvons regarder dans quel région de la Suisse se trouvent les différents militants.
|
||||
p
|
||||
strong Etape 3:
|
||||
| Grâce à une logistique sophistiquée, les sympathisants et militants seront réunis pour pouvoir obtenir ensemble les signatures nécessaires.
|
||||
|
||||
p.lead Donc, si tu désires <span class="text-success">légaliser le cannabis en Suisse</span>, remplis le formulaire ci-dessous et aide nous à faire un grand pas dans l'histoire
|
||||
|
||||
p Plus d'informations peuvent être trouvées sous #{link_to 'https://www.hanflegal.ch/initiative', 'https://www.hanflegal.ch/initiative'}
|
||||
|
||||
h3 Qui se trouve derrière cette action?
|
||||
p L'action a été lancée par les membres de l'association Legalize It!. Depuis 25 ans, nous, de l’association Legalize It!, aidons les gens qui utilisent des produits à base de THC et répondons volontiers à leurs questions.
|
||||
|
||||
h3 Contact
|
||||
p
|
||||
| Nino Forrer (#{mail_to 'nino@hanflegal.ch'})
|
||||
em Stratégie / Presse
|
||||
br
|
||||
| Markus Graf (#{mail_to 'markus@hanflegal.ch'})
|
||||
em Contenu / Technologie
|
||||
@@ -1,30 +0,0 @@
|
||||
.well
|
||||
h2.sr-only A proposito l'iniziativa
|
||||
p = image_tag 'li_logo.svg', class: 'img-responsive', alt: 'Logo dell\'associazione Legalize It!'
|
||||
p Vogliamo raccogliere le firme necessarie per un'iniziativa popolare per la legalizzazione della cannabis. Per implementare l'accento su un nuovo concetto collettivo. Questo funziona in tre fasi:
|
||||
|
||||
p
|
||||
strong Fase 1:
|
||||
| Con questo modulo on-line che raccoglie simpatizzanti e potenziali attivisti.
|
||||
p
|
||||
strong Fase 2:
|
||||
| Una volta raccolto il numero richiesto di persone, andiamo a vedere quante risorse di aiuto sono in nel luogo dove richiesto.
|
||||
p
|
||||
strong Fase 3:
|
||||
| Utilizzando un sofisticata logistica riuniremo simpatizzanti e attivisti per generare congiuntamente le firme necessarie.
|
||||
|
||||
|
||||
p.lead Quindi, se anche tu vuoi <span class="text-success">legalizzare la Cannabis</span> in Svizzera, compila il seguente modulo e riscrivi la storia con noi.
|
||||
|
||||
p Più informazioni le trovi su #{link_to 'https://www.hanflegal.ch/initiative', 'https://www.hanflegal.ch/initiative'}
|
||||
|
||||
h3 Chi c’é dietro questa azione?
|
||||
p L'azione è stata sostenuta da membri dell'associazione Legalize It! Da 25 anni aiutiamo l'associazione Legalize It! Le persone che si prendono cura con prodotti THC si occupano di una vasta gamma di questioni.
|
||||
|
||||
h3 Contatti
|
||||
p
|
||||
| Nino Forrer (#{mail_to 'nino@hanflegal.ch'})
|
||||
em Strategie / Presse
|
||||
br
|
||||
| Markus Graf (#{mail_to 'markus@hanflegal.ch'})
|
||||
em Inhalt / Technik
|
||||
@@ -0,0 +1,10 @@
|
||||
h2
|
||||
= t(".resend_confirmation_instructions")
|
||||
= simple_form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f|
|
||||
= f.error_notification
|
||||
= f.full_error :confirmation_token
|
||||
.form-inputs
|
||||
= f.input :email, required: true, autofocus: true
|
||||
.form-actions
|
||||
= f.button :submit, t(".resend_confirmation_instructions")
|
||||
= render "supporters/shared/links"
|
||||
@@ -0,0 +1,7 @@
|
||||
- require 'devise/version'
|
||||
p
|
||||
= t('.greeting', recipient: @resource.email)
|
||||
p
|
||||
= t('.instruction')
|
||||
p
|
||||
= link_to t('.action'), confirmation_url(@resource, confirmation_token: (Devise::VERSION.start_with?('3.') ? @token : @resource.confirmation_token))
|
||||
@@ -0,0 +1,14 @@
|
||||
p
|
||||
| Hello
|
||||
= @email
|
||||
| !
|
||||
- if @resource.try(:unconfirmed_email?)
|
||||
p
|
||||
| We're contacting you to notify you that your email is being changed to
|
||||
= @resource.unconfirmed_email
|
||||
| .
|
||||
- else
|
||||
p
|
||||
| We're contacting you to notify you that your email has been changed to
|
||||
= @resource.email
|
||||
| .
|
||||
@@ -0,0 +1,5 @@
|
||||
- require 'devise/version'
|
||||
p
|
||||
= t('.greeting', recipient: @resource.email)
|
||||
p
|
||||
= t('.message')
|
||||
@@ -0,0 +1,11 @@
|
||||
- require 'devise/version'
|
||||
p
|
||||
= t('devise.mailer.reset_password_instructions.greeting', recipient: "#{@resource.first_name} #{@resource.last_name}")
|
||||
p
|
||||
= t('devise.mailer.reset_password_instructions.instruction')
|
||||
p
|
||||
= link_to t('devise.mailer.reset_password_instructions..action'), edit_password_url(@resource, reset_password_token: (Devise::VERSION.start_with?('3.', '4.') ? @token : @resource.reset_password_token), locale: I18n.locale)
|
||||
p
|
||||
= t('devise.mailer.reset_password_instructions.instruction_2')
|
||||
p
|
||||
= t('devise.mailer.reset_password_instructions.instruction_3')
|
||||
@@ -0,0 +1,9 @@
|
||||
- require 'devise/version'
|
||||
p
|
||||
= t('.greeting', recipient: @resource.email)
|
||||
p
|
||||
= t('.message')
|
||||
p
|
||||
= t('.instruction')
|
||||
p
|
||||
= link_to t('.action'), unlock_url(@resource, unlock_token: (Devise::VERSION.start_with?('3.') ? @token :@resource.unlock_token))
|
||||
@@ -1,2 +1,35 @@
|
||||
= render 'form'
|
||||
- if supporter_signed_in?
|
||||
h1.sr-only = title t('.title', name: current_supporter.first_name)
|
||||
.row
|
||||
.col-xs-12
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
h2.panel-title = t '.my_data'
|
||||
.panel-body
|
||||
dl.dl-horizontal
|
||||
dt = Supporter.human_attribute_name(:email)
|
||||
dd = current_supporter.email
|
||||
dt = Supporter.human_attribute_name(:first_name)
|
||||
dd = current_supporter.first_name
|
||||
dt = Supporter.human_attribute_name(:last_name)
|
||||
dd = current_supporter.last_name
|
||||
dt = Supporter.human_attribute_name(:street)
|
||||
dd = current_supporter.street
|
||||
dt = Supporter.human_attribute_name(:city)
|
||||
dd = "#{current_supporter.zip} #{current_supporter.city}"
|
||||
dt = Supporter.human_attribute_name(:support)
|
||||
dd == t("support_type.#{current_supporter.support}")
|
||||
dt = Supporter.human_attribute_name(:age_category)
|
||||
dd == t("age_category.#{current_supporter.age_category}")
|
||||
dt = Supporter.human_attribute_name(:language)
|
||||
dd = t("languages.#{current_supporter.language}")
|
||||
dt = Supporter.human_attribute_name(:tel)
|
||||
dd = current_supporter.tel
|
||||
|
||||
p
|
||||
= link_to t('.edit'), edit_supporter_registration_path(), class: 'pull-right'
|
||||
|
||||
= render 'publicity'
|
||||
|
||||
- else
|
||||
= render 'form'
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
h2
|
||||
= t("devise.passwords.edit.change_your_password")
|
||||
= simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f|
|
||||
= f.input :reset_password_token, as: :hidden
|
||||
= f.full_error :reset_password_token
|
||||
.form-inputs
|
||||
= f.input :password, label: t("devise.passwords.edit.new_password"), required: true, autofocus: true
|
||||
= f.input :password_confirmation, label: t("devise.passwords.edit.confirm_new_password"), required: true
|
||||
.form-actions
|
||||
= f.button :submit, t("devise.passwords.edit.change_my_password")
|
||||
= render "supporters/shared/links"
|
||||
@@ -0,0 +1,8 @@
|
||||
h1= title t("devise.passwords.new.forgot_your_password")
|
||||
= simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f|
|
||||
= f.error_notification
|
||||
.form-inputs
|
||||
= f.input :email, required: true, autofocus: true
|
||||
.form-actions
|
||||
= f.button :submit, t("devise.passwords.new.send_me_reset_password_instructions")
|
||||
= render "supporters/shared/links"
|
||||
@@ -0,0 +1,26 @@
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
h1.panel-title = title t("devise.registrations.edit.title", resource: resource_class.model_name.human)
|
||||
.panel-body
|
||||
= simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f|
|
||||
.form-inputs
|
||||
= f.input :current_password, hint: t("devise.registrations.edit.we_need_your_current_password_to_confirm_your_changes"), required: true
|
||||
= f.input :email, required: true, autofocus: true
|
||||
- if devise_mapping.confirmable? && resource.pending_reconfirmation?
|
||||
p
|
||||
= t(".currently_waiting_confirmation_for_email", email: resource.unconfirmed_email)
|
||||
= f.input :password, autocomplete: "off", hint: t("devise.registrations.edit.leave_blank_if_you_don_t_want_to_change_it"), required: false
|
||||
= f.input :password_confirmation, required: false
|
||||
= f.input :first_name
|
||||
= f.input :last_name
|
||||
= f.input :street
|
||||
= f.input :city
|
||||
= f.input :zip
|
||||
= f.input :support, as: :radio_buttons, collection: t('support_type').map{ |x| [x.first, raw(x.last)]}, label_method: :last, value_method: :first
|
||||
= f.input :age_category, as: :radio_buttons, collection: t('age_category'), label_method: :last, value_method: :first
|
||||
= f.input :language, as: :radio_buttons, collection: t('languages').map{ |x| [x.first, raw(x.last)]}, label_method: :last, value_method: :first
|
||||
.form-actions
|
||||
= f.button :submit, t("devise.registrations.edit.update"), class: 'btn btn-primary'
|
||||
hr
|
||||
p = link_to t("devise.registrations.edit.cancel_my_account"), registration_path(resource_name), data: { confirm: t("devise.registrations.edit.are_you_sure") }, method: :delete, class: 'btn btn-danger btn-sm pull-right'
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
h2
|
||||
= t(".sign_up")
|
||||
= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
|
||||
= f.error_notification
|
||||
.form-inputs
|
||||
= f.input :email, required: true, autofocus: true
|
||||
= f.input :password, required: true
|
||||
= f.input :password_confirmation, required: true
|
||||
.form-actions
|
||||
= f.button :submit, t(".sign_up")
|
||||
= render "supporters/shared/links"
|
||||
@@ -0,0 +1,9 @@
|
||||
h1= title t("devise.sessions.new.sign_in")
|
||||
= simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
|
||||
.form-inputs
|
||||
= f.input :email, required: false, autofocus: true
|
||||
= f.input :password, required: false
|
||||
= f.input :remember_me, as: :boolean if devise_mapping.rememberable?
|
||||
.form-actions
|
||||
= f.button :submit, t("devise.sessions.new.sign_in")
|
||||
= render "supporters/shared/links"
|
||||
@@ -0,0 +1,20 @@
|
||||
- if controller_name != 'sessions'
|
||||
= link_to t("devise.shared.links.sign_in"), new_session_path(resource_name)
|
||||
br
|
||||
- if devise_mapping.registerable? && controller_name != 'registrations'
|
||||
/= link_to t("devise.shared.links.sign_up"), new_registration_path(resource_name)
|
||||
= link_to t("devise.shared.links.sign_up"), new_supporter_path
|
||||
br
|
||||
- if devise_mapping.recoverable? && controller_name != 'passwords'
|
||||
= link_to t("devise.shared.links.forgot_your_password"), new_password_path(resource_name)
|
||||
br
|
||||
- if devise_mapping.confirmable? && controller_name != 'confirmations'
|
||||
= link_to t('devise.shared.links.didn_t_receive_confirmation_instructions'), new_confirmation_path(resource_name)
|
||||
br
|
||||
- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks'
|
||||
= link_to t('devise.shared.links.didn_t_receive_unlock_instructions'), new_unlock_path(resource_name)
|
||||
br
|
||||
- if devise_mapping.omniauthable?
|
||||
- resource_class.omniauth_providers.each do |provider|
|
||||
= link_to t('devise.shared.links.sign_in_with_provider', provider: provider.to_s.titleize), omniauth_authorize_path(resource_name, provider)
|
||||
br
|
||||
@@ -0,0 +1,10 @@
|
||||
h2
|
||||
= t(".resend_unlock_instructions")
|
||||
= simple_form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f|
|
||||
= f.error_notification
|
||||
= f.full_error :unlock_token
|
||||
.form-inputs
|
||||
= f.input :email, required: true, autofocus: true
|
||||
.form-actions
|
||||
= f.button :submit, t(".resend_unlock_instructions")
|
||||
= render "supporters/shared/links"
|
||||
@@ -0,0 +1,53 @@
|
||||
library(mongolite)
|
||||
library(xlsx)
|
||||
|
||||
Sys.setlocale("LC_ALL", "de_DE")
|
||||
|
||||
# Connect to the databes with the supporter collection
|
||||
m <- mongo(db="heroku_t242kdp0", collection = "supporters")
|
||||
|
||||
# Find all datasets not marked as dublicates
|
||||
dt <- m$find('{"duplicate": { "$ne": true }}')
|
||||
dt$created_at <- as.Date(dt$created_at)
|
||||
# Filter erroneous data
|
||||
dt <- subset(dt, zip >=1000)
|
||||
dt <- subset(dt, zip < 10000)
|
||||
|
||||
# Read BFS-Data with statistics of population from 2014
|
||||
population_per_plz4 <- read.xlsx(file = "external_data/su-d-01.02.03.07.xls", sheetName = "2014", startRow = 5, endRow = 3189, colIndex = c(1,2))
|
||||
colnames(population_per_plz4) <- c('zip', 'popuplation')
|
||||
|
||||
# Read canton name and zip from
|
||||
ktkz_plz4 <- read.xlsx(file = "external_data/be-b-00.04-osv-01.xls", sheetName = "PLZ4 -> GDE - NPA4 -> COM", startRow = 12,colIndex = c(1,2,4,5))
|
||||
colnames(ktkz_plz4) <- c('zip', 'percent_of_community', 'canton', 'name')
|
||||
|
||||
ktkz_plz4 <- ktkz_plz4[order(100-ktkz_plz4$percent_of_community),]
|
||||
ktkz_plz4_uniq <- ktkz_plz4[!duplicated(ktkz_plz4$zip),]
|
||||
|
||||
# Merge population and canton by zip together
|
||||
location_description <- merge(ktkz_plz4_uniq, population_per_plz4, by='zip')
|
||||
|
||||
# Total participants per zip
|
||||
participants <- as.data.frame(table(dt$zip))
|
||||
colnames(participants) <- c('zip','total_participants')
|
||||
|
||||
# Signers only
|
||||
signers <- as.data.frame(table(subset(dt, support=="signer")$zip))
|
||||
colnames(signers) <- c('zip','signers')
|
||||
|
||||
# Supporters only
|
||||
supporters <- as.data.frame(table(subset(dt, support=="supporter")$zip))
|
||||
colnames(supporters) <- c('zip','supporters')
|
||||
|
||||
# Merge everything to one big table
|
||||
main_table <- merge(location_description, participants, by="zip", all.x=T)
|
||||
main_table <- merge(main_table, signers, by="zip", all.x=T)
|
||||
main_table <- merge(main_table, supporters, by="zip", all.x=T)
|
||||
|
||||
# Calculate ratio in population
|
||||
main_table$total_participants_ratio <- main_table$total_participants / main_table$popuplation
|
||||
main_table$total_signers_ratio <- main_table$signers / main_table$popuplation
|
||||
main_table$total_supporters_ratio <- main_table$supporters / main_table$popuplation
|
||||
|
||||
# Export as xlsx
|
||||
write.xlsx2(main_table, file = "20170703_tagi_export.xlsx", row.names=F)
|
||||
@@ -1,7 +1,6 @@
|
||||
---
|
||||
title: '#CH420 Statistiken Onlineforumlar'
|
||||
author: "Markus Graf"
|
||||
date: "23. April 2016"
|
||||
output: html_document
|
||||
---
|
||||
|
||||
@@ -28,4 +27,10 @@ pielabels<- paste(percentlabels, "%", sep="")
|
||||
cols <- rainbow(4)
|
||||
pie(ages, main="Altersverteilung #CH420", col=cols, labels=pielabels, cex=0.8, sub=paste("N =", sum(ages)))
|
||||
legend("topright", c("30-64",">64","< 18","18-30"), cex=0.8, fill=cols)
|
||||
|
||||
support <- table(all$support)
|
||||
pielabels<- support
|
||||
cols <- rainbow(2)
|
||||
pie(support, main="Supportverteilung #CH420", col=cols, labels=pielabels, cex=0.8, sub=paste("N =", sum(support)))
|
||||
legend("topright", c("Unterschreibende","Sammler"), cex=0.8, fill=cols)
|
||||
```
|
||||