From 7ce05f1ae46a08d6e3fb73c650056c0575fac424 Mon Sep 17 00:00:00 2001 From: Markus Graf Date: Tue, 11 Apr 2017 08:06:32 +0200 Subject: [PATCH] Page initiativtext --- Gemfile | 3 +++ Gemfile.lock | 4 ++++ app/assets/stylesheets/application.sass | 14 +++++++++++++- app/controllers/pages_controller.rb | 15 +++++++++++++-- app/views/pages/initiative_text.de.slim | 15 +++++++++++++++ app/views/pages/initiative_text.it.slim | 17 +++++++++++++++++ app/views/shared/_topnavigation.slim | 2 ++ config/locales/de.yml | 8 ++++++++ config/locales/fr.yml | 10 +++++++++- config/locales/it.yml | 11 ++++++++++- config/routes.rb | 10 +++++++++- 11 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 app/views/pages/initiative_text.de.slim create mode 100644 app/views/pages/initiative_text.it.slim diff --git a/Gemfile b/Gemfile index faea704..f80a6a4 100644 --- a/Gemfile +++ b/Gemfile @@ -26,6 +26,9 @@ gem 'rails_bootstrap_navbar' 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' diff --git a/Gemfile.lock b/Gemfile.lock index ab79e5f..d7822fd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -237,6 +237,9 @@ GEM roadie-rails (1.1.1) railties (>= 3.0, < 5.1) roadie (~> 3.1) + route_translator (4.4.1) + actionpack (>= 3.2, < 5.0) + activesupport (>= 3.2, < 5.0) rspec (3.5.0) rspec-core (~> 3.5.0) rspec-expectations (~> 3.5.0) @@ -335,6 +338,7 @@ DEPENDENCIES rails_admin rails_bootstrap_navbar roadie-rails (~> 1.0) + route_translator rspec-rails (~> 3.0) sass-rails (~> 5.0) sdoc (~> 0.4.0) diff --git a/app/assets/stylesheets/application.sass b/app/assets/stylesheets/application.sass index 71d1a2e..c3abee5 100644 --- a/app/assets/stylesheets/application.sass +++ b/app/assets/stylesheets/application.sass @@ -39,14 +39,26 @@ body > .container box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19) padding: 20px + margin-top: 10px header h1 font-size: 20px margin-top: 35px + .navbar + .container + padding-left: 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 diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 1db42ba..e8a276a 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -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 diff --git a/app/views/pages/initiative_text.de.slim b/app/views/pages/initiative_text.de.slim new file mode 100644 index 0000000..ca89cd8 --- /dev/null +++ b/app/views/pages/initiative_text.de.slim @@ -0,0 +1,15 @@ +h1= title 'Der Initiativtext im Wortlaut' +.well + p Die Bundesverfassung vom 18. April 1999 wird wie folgt geändert: + p Art. 105a (neu) Cannabis: + ul + li Der Konsum von Stoffen und Präparaten des Wirkungstyps Cannabis sowie die Vorbereitung zum eigenen Konsum sind straffrei. Der gemeinschaftliche Anbau von Cannabis für den Eigenbedarf 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 + ul + 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. diff --git a/app/views/pages/initiative_text.it.slim b/app/views/pages/initiative_text.it.slim new file mode 100644 index 0000000..e71b470 --- /dev/null +++ b/app/views/pages/initiative_text.it.slim @@ -0,0 +1,17 @@ +h1= title 'Il testo dell’iniziativa' +.well + p La Costituzione Federale del 18 aprile 1999 é stata modifata come segue + p Art. 105a (nuovo) Cannabis: + ul + li Il consume di sostanze e preparati a base di cannabis, derivati o sostanze con effetto simile alla cannabis, e la preparazione per il proprio consumo non sono punibili. La coltivazione di cannabis per uso proprio non è punibile. + li La Confederazione emana prescrizioni sulla coltivazione commerciale e la produzione e il commercio di sostanze e preparati del tipo di effetto di cannabis. + li Il rilascio di sostanze e preparati a base di cannabis e di sostanze con effetto simile alla cannabis ai minori senza indicazione medica è vietata. + + p Art. 131 Abs.1 Bst. f + ul + li + | La Confederazione può riscuotere imposte speciali di consumo su + br + | f. cannabis o sostanze con effetto simile alla cannabis, che non necessitano l'applicazione medica. + +p In questo articolo tutte le fasi della pianta della canapa (semi incl.) e applicare i loro prodotti, indipendentemente dal loro contenuto di tetraidrocannabinolo (THC). Come „preparazione“ è particolarmente vero per il possesso, l'acquisto e la coltivazione per il consumo personale. diff --git a/app/views/shared/_topnavigation.slim b/app/views/shared/_topnavigation.slim index af91a3d..f05a298 100644 --- a/app/views/shared/_topnavigation.slim +++ b/app/views/shared/_topnavigation.slim @@ -3,6 +3,8 @@ = navbar_collapse do = navbar_group id: 'topnav' do = navbar_item "Home", "/#{I18n.locale}" + = navbar_dropdown t('.initiative') do + = navbar_item t('.initiative_text'), initiative_text_path = navbar_item t('.donation'), spenden_path = navbar_item t('.sign_in'), new_supporter_session_path unless supporter_signed_in? = navbar_item t('.sign_out'), destroy_supporter_session_path, nil, 'data-method' => :delete if supporter_signed_in? diff --git a/config/locales/de.yml b/config/locales/de.yml index c3f5820..f239082 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -9,6 +9,8 @@ de: donation: Spenden sign_in: Anmelden sign_out: Abmelden + initiative_text: Der Initiativtext im Wortlaut + initiative: Die Initiative counter: supporters: "Unterstützer:" amount_of_supporters: Zurzeit haben wir %{amount} Unterstützer. @@ -60,8 +62,14 @@ de: my_data: Meine Daten pages: + show: + not_found: Die Seite konnte nicht gefunden werden. + thanks: title: Besten Dank für deine Unterstützung! + + routes: + initiative_text: initiativtext mongoid: models: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 3ba4af8..67ab96a 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -14,6 +14,8 @@ fr: donation: Donation sign_out: déconnecter sign_in: Connexion + initiative: l' initiative + initiative_text: L'initiative propose (DE) welcome_email: subject: Merci beaucoup pour ton soutien! @@ -58,9 +60,15 @@ fr: my_data: Mes données pages: + show: + not_found: La page n'a pas été trouvé. + thanks: title: Merci beaucoup pour ton soutien! - + + routes: + initiative_text: "l_initiative_propose" + mongoid: models: supporter: compte diff --git a/config/locales/it.yml b/config/locales/it.yml index a653ed4..45d0071 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -11,6 +11,9 @@ it: donation: Donazione sign_out: Disconnettersi sign_in: Registro + initiative_text: Il testo dell’iniziativa + initiative: l'iniziativa + counter: supporters: "Sostenitore:" amount_of_supporters: Al momento abbiamo %{amount} sostenitori. @@ -62,7 +65,13 @@ it: pages: thanks: title: Grazie mille per il tuo sostegno! - + + show: + not_found: La pagina non è stata trovata. + + routes: + initiative_text: il_testo_dell_iniziativa + mongoid: attributes: supporter: diff --git a/config/routes.rb b/config/routes.rb index 071701c..45cda60 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -2,11 +2,19 @@ Rails.application.routes.draw do devise_for :supporters root to: 'supporters#new' + mount RailsAdmin::Engine => '/admin', as: 'rails_admin' + + get "/pages/:page" => "pages#show" + namespace :admin do get '/map', to: 'pages#map', as: :map # resources :supporters, only: :index end - mount RailsAdmin::Engine => '/admin', as: 'rails_admin' + + + localized do + get '/initiative_text', to: 'pages#show', as: :initiative_text, page: 'initiative_text' + end get '/cities_autocomplete', to: 'cities_autocomplete#index', as: :cities_autocomplete scope '/:locale' do