plaquette longpras
2
Gemfile
@ -24,6 +24,8 @@ group :assets do
|
|||||||
end
|
end
|
||||||
|
|
||||||
gem 'jquery-rails'
|
gem 'jquery-rails'
|
||||||
|
gem 'jquery-ui-rails'
|
||||||
|
gem "raptor-editor-rails"
|
||||||
|
|
||||||
# To use ActiveModel has_secure_password
|
# To use ActiveModel has_secure_password
|
||||||
# gem 'bcrypt-ruby', '~> 3.0.0'
|
# gem 'bcrypt-ruby', '~> 3.0.0'
|
||||||
|
@ -78,6 +78,9 @@ GEM
|
|||||||
jquery-rails (2.1.4)
|
jquery-rails (2.1.4)
|
||||||
railties (>= 3.0, < 5.0)
|
railties (>= 3.0, < 5.0)
|
||||||
thor (>= 0.14, < 2.0)
|
thor (>= 0.14, < 2.0)
|
||||||
|
jquery-ui-rails (4.0.1)
|
||||||
|
jquery-rails
|
||||||
|
railties (>= 3.1.0)
|
||||||
json (1.7.6)
|
json (1.7.6)
|
||||||
kaminari (0.14.1)
|
kaminari (0.14.1)
|
||||||
actionpack (>= 3.0.0)
|
actionpack (>= 3.0.0)
|
||||||
@ -130,6 +133,8 @@ GEM
|
|||||||
rdoc (~> 3.4)
|
rdoc (~> 3.4)
|
||||||
thor (>= 0.14.6, < 2.0)
|
thor (>= 0.14.6, < 2.0)
|
||||||
rake (10.0.3)
|
rake (10.0.3)
|
||||||
|
raptor-editor-rails (0.2.1)
|
||||||
|
rails (> 3.1)
|
||||||
rdoc (3.12)
|
rdoc (3.12)
|
||||||
json (~> 1.4)
|
json (~> 1.4)
|
||||||
redcarpet (2.2.2)
|
redcarpet (2.2.2)
|
||||||
@ -182,12 +187,14 @@ DEPENDENCIES
|
|||||||
gravatar_image_tag
|
gravatar_image_tag
|
||||||
haml
|
haml
|
||||||
jquery-rails
|
jquery-rails
|
||||||
|
jquery-ui-rails
|
||||||
kaminari
|
kaminari
|
||||||
mysql2
|
mysql2
|
||||||
nokogiri
|
nokogiri
|
||||||
pg
|
pg
|
||||||
pygments.rb
|
pygments.rb
|
||||||
rails (= 3.2.9)
|
rails (= 3.2.9)
|
||||||
|
raptor-editor-rails
|
||||||
redcarpet
|
redcarpet
|
||||||
rmagick
|
rmagick
|
||||||
rvm-capistrano
|
rvm-capistrano
|
||||||
|
After Width: | Height: | Size: 288 KiB |
BIN
app/assets/images/plaquettes/insectes_01.jpg
Normal file
After Width: | Height: | Size: 148 KiB |
BIN
app/assets/images/plaquettes/insectes_jeu_1/1.jpg
Executable file
After Width: | Height: | Size: 33 KiB |
BIN
app/assets/images/plaquettes/insectes_jeu_1/2.jpg
Executable file
After Width: | Height: | Size: 29 KiB |
BIN
app/assets/images/plaquettes/insectes_jeu_1/3.jpg
Executable file
After Width: | Height: | Size: 35 KiB |
BIN
app/assets/images/plaquettes/insectes_jeu_1/4.jpg
Executable file
After Width: | Height: | Size: 28 KiB |
BIN
app/assets/images/plaquettes/insectes_jeu_1/5.jpg
Executable file
After Width: | Height: | Size: 35 KiB |
BIN
app/assets/images/plaquettes/insectes_jeu_1/6.jpg
Executable file
After Width: | Height: | Size: 28 KiB |
BIN
app/assets/images/plaquettes/insectes_jeu_1/7.jpg
Executable file
After Width: | Height: | Size: 35 KiB |
BIN
app/assets/images/plaquettes/insectes_jeu_1/8.jpg
Executable file
After Width: | Height: | Size: 35 KiB |
BIN
app/assets/images/plaquettes/insectes_jeu_2/1.jpg
Executable file
After Width: | Height: | Size: 37 KiB |
BIN
app/assets/images/plaquettes/insectes_jeu_2/2.jpg
Executable file
After Width: | Height: | Size: 25 KiB |
BIN
app/assets/images/plaquettes/insectes_jeu_2/3.jpg
Executable file
After Width: | Height: | Size: 113 KiB |
BIN
app/assets/images/plaquettes/insectes_jeu_2/4.jpg
Executable file
After Width: | Height: | Size: 60 KiB |
BIN
app/assets/images/plaquettes/insectes_jeu_2/5.jpg
Executable file
After Width: | Height: | Size: 74 KiB |
BIN
app/assets/images/plaquettes/insectes_jeu_2/6.jpg
Executable file
After Width: | Height: | Size: 55 KiB |
135
app/assets/javascripts/plaquettes.js
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
//= require jquery
|
||||||
|
//= require jquery_ujs
|
||||||
|
//= require jquery-ui
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$(document).ready(function(){
|
||||||
|
|
||||||
|
function initialize_jeu_1(){
|
||||||
|
var element = $("#insectes_jeu_1")
|
||||||
|
|
||||||
|
var html = element.find(".sortable").html();
|
||||||
|
|
||||||
|
element.find(".sortable").sortable();
|
||||||
|
element.find(".sortable").disableSelection();
|
||||||
|
|
||||||
|
element.find(".verif").bind("click", function(){
|
||||||
|
|
||||||
|
var win = true;
|
||||||
|
|
||||||
|
var i = 0;
|
||||||
|
|
||||||
|
element.find("img").each(function(){
|
||||||
|
i = i+1;
|
||||||
|
if(i != $(this).data("order")){
|
||||||
|
win = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
if(win == true){
|
||||||
|
element.find(".win").show();
|
||||||
|
element.find(".loose").hide();
|
||||||
|
}else{
|
||||||
|
element.find(".win").hide();
|
||||||
|
element.find(".loose").show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
element.find(".reset").click(function(){
|
||||||
|
element.find(".sortable").html(html);
|
||||||
|
element.find(".sortable").sortable("refresh");
|
||||||
|
element.find(".win").hide();
|
||||||
|
element.find(".loose").hide();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function initialize_jeu_2(){
|
||||||
|
var element = $("#insectes_jeu_2")
|
||||||
|
|
||||||
|
var html = element.find(".sortable").html();
|
||||||
|
|
||||||
|
|
||||||
|
element.find(".receptable").sortable({
|
||||||
|
connectWith: '.labels,.receptable',
|
||||||
|
items: '.label',
|
||||||
|
tolerance:"pointer",
|
||||||
|
receive: function(event, ui) {
|
||||||
|
|
||||||
|
if ($(this).children().length > 1) {
|
||||||
|
var child = $(this).children().not(ui.item)[0]
|
||||||
|
|
||||||
|
element.find(".labels").append(child);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
element.find(".receptable ul").disableSelection();
|
||||||
|
|
||||||
|
element.find(".labels").sortable({
|
||||||
|
connectWith: '.receptable',
|
||||||
|
tolerance:"pointer",
|
||||||
|
items: '.label',
|
||||||
|
receive: function(event, ui){ui.item.attr('style','');}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
element.find(".labels").disableSelection();
|
||||||
|
|
||||||
|
element.find(".verif").bind("click", function(){
|
||||||
|
|
||||||
|
var win = true;
|
||||||
|
|
||||||
|
var i = 0;
|
||||||
|
|
||||||
|
element.find("img").each(function(){
|
||||||
|
i = i+1;
|
||||||
|
if(i != $(this).data("order")){
|
||||||
|
win = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
if(win == true){
|
||||||
|
element.find(".win").show();
|
||||||
|
element.find(".loose").hide();
|
||||||
|
}else{
|
||||||
|
element.find(".win").hide();
|
||||||
|
element.find(".loose").show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
element.find(".reset").click(function(){
|
||||||
|
element.find(".sortable").html(html);
|
||||||
|
element.find(".sortable").sortable("refresh");
|
||||||
|
element.find(".win").hide();
|
||||||
|
element.find(".loose").hide();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
initialize_jeu_1();
|
||||||
|
initialize_jeu_2();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
109
app/assets/stylesheets/plaquettes.css.scss
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
*= require_self
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
h3{
|
||||||
|
margin-top:6em;
|
||||||
|
border-bottom:1px dotted #b0cf81;
|
||||||
|
padding-bottom:0.2em;
|
||||||
|
|
||||||
|
}
|
||||||
|
#main{
|
||||||
|
padding:1em;
|
||||||
|
max-width:1024px;
|
||||||
|
margin:auto;
|
||||||
|
a{
|
||||||
|
color: #5890CD;
|
||||||
|
text-decoration:none;
|
||||||
|
|
||||||
|
&:hover{
|
||||||
|
text-decoration:underline;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
table{
|
||||||
|
border-collapse:collapse;
|
||||||
|
td{
|
||||||
|
min-width:60px;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
td, th{
|
||||||
|
border: 1px solid #c9c9c9;
|
||||||
|
padding:5px;
|
||||||
|
text-align:left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
body{
|
||||||
|
font-family: "Lucida Grande", "Verdana";
|
||||||
|
|
||||||
|
color:#303030;
|
||||||
|
padding:0px;
|
||||||
|
margin:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#insectes_jeu_2{
|
||||||
|
.labels{
|
||||||
|
min-height:100px;
|
||||||
|
|
||||||
|
.label{
|
||||||
|
background:#555555;
|
||||||
|
display:inline-block;
|
||||||
|
margin-left:5px;
|
||||||
|
margin-bottom:5px;
|
||||||
|
padding:0.5em 1em;
|
||||||
|
color:white;
|
||||||
|
border-radius:1.2em;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
.image{
|
||||||
|
float:left;
|
||||||
|
width:300px;
|
||||||
|
height:200px;
|
||||||
|
padding:0em;
|
||||||
|
padding-bottom:2em !important;
|
||||||
|
|
||||||
|
|
||||||
|
img{
|
||||||
|
max-width:100%;
|
||||||
|
max-height:100%;
|
||||||
|
}
|
||||||
|
position:relative;
|
||||||
|
text-align:center;
|
||||||
|
padding-bottom:1em;
|
||||||
|
|
||||||
|
.receptable{
|
||||||
|
border:1px solid black;
|
||||||
|
|
||||||
|
.label{
|
||||||
|
text-align:center;
|
||||||
|
position:absolute;
|
||||||
|
padding-bottom:0.5em;
|
||||||
|
bottom:0px;
|
||||||
|
left:0px;
|
||||||
|
right:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
position:absolute;
|
||||||
|
top:0px;
|
||||||
|
bottom:0px;
|
||||||
|
left:0px;
|
||||||
|
right:0px;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
13
app/controllers/plaquettes_controller.rb
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# -*- encoding : utf-8 -*-
|
||||||
|
|
||||||
|
|
||||||
|
class PlaquettesController < ApplicationController
|
||||||
|
|
||||||
|
|
||||||
|
def show
|
||||||
|
|
||||||
|
|
||||||
|
render :template => "plaquettes/"+params[:slug].to_s
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
19
app/helpers/plaquettes_helper.rb
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# -*- encoding : utf-8 -*-
|
||||||
|
module PlaquettesHelper
|
||||||
|
|
||||||
|
def jeux_sortable_img(jeux, nbr, style="width:150px;")
|
||||||
|
image_tag('plaquettes/'+jeux.to_s+"/"+nbr.to_s+".jpg", :"data-order" => nbr, :style => style)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def jeux_receptable_element(jeux,nbr, style ="")
|
||||||
|
|
||||||
|
raw("<div class='image'>")+image_tag('plaquettes/'+jeux.to_s+"/"+nbr.to_s+".jpg", :"data-order" => nbr, :style => style)+raw("<div class='receptable' style=''></div></div>")
|
||||||
|
|
||||||
|
end
|
||||||
|
def jeux_receptable_label(label,nbr, style ="width:200px;")
|
||||||
|
|
||||||
|
raw("<div class='label' data-nbr='#{nbr}'>#{label}</div>")
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
16
app/views/layouts/plaquettes.html.haml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
!!!
|
||||||
|
%html
|
||||||
|
%head
|
||||||
|
%title Le Pic Vert - Votre avis sur les sorties du Pic Vert
|
||||||
|
= stylesheet_link_tag "plaquettes", :media => "all"
|
||||||
|
= javascript_include_tag "plaquettes"
|
||||||
|
= csrf_meta_tags
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
|
||||||
|
%body
|
||||||
|
|
||||||
|
|
||||||
|
#main=yield
|
||||||
|
|
||||||
|
|
71
app/views/plaquettes/insectes.html.haml
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
%h1 Le mur à insectes
|
||||||
|
|
||||||
|
%p Fabriqué principalement avec des matériaux naturels, le « mur à insectes » du Château de Longpra abrite un grand nombre de petites bêtes, principalement des INSECTES.
|
||||||
|
|
||||||
|
%p Tout d’abord un insecte dispose de 6 pattes et d’un corps composé de 3 parties (la tête, le thorax et l’abdomen).
|
||||||
|
|
||||||
|
=image_tag("plaquettes/insectes_01.jpg", :style => "display:block; margin:auto;")
|
||||||
|

|
||||||
|
|
||||||
|
%p Dans la nature, certains insectes ne trouvent plus de quoi s’abriter ou pondre leurs œufs (bois mort, tiges creuses…) c’est pourquoi on peut les aider en leur fabriquant des abris.
|
||||||
|
|
||||||
|
%p
|
||||||
|
Certains de ces insectes peuvent être très utiles à l’Homme, notamment au jardinier.
|
||||||
|
Par exemple au Château de Longpra il y a de très beaux rosiers, mais qui sont souvent grignoté par les pucerons.
|
||||||
|
La coccinelle, qui raffole des pucerons, est un très bon allier pour le jardinier. En fabriquant des gites à coccinelles, on peut lutter contre les pucerons sans utiliser de produits chimiques. C’est une petite chaîne alimentaire.
|
||||||
|
De même, en abritant certaines abeilles, on peut favoriser la pollinisation.
|
||||||
|
|
||||||
|
%p La plupart des abeilles sauvages (90%) à l’inverse des abeilles domestiques ne vivent pas en groupe. Elles ne fabriquent pas de miel, mai un mélange de nectar et de pollen nécessaire à l’alimentation de leur larve.
|
||||||
|
|
||||||
|
#insectes_jeu_1
|
||||||
|
%h2 Jeu 1
|
||||||
|
|
||||||
|
.response{:style => "height:2em;"}
|
||||||
|
.win{:style => "display:none;"}
|
||||||
|
%p Bravo ! Tu as gagné, tu peux tirer les cheveux à l'animatrice !
|
||||||
|
.loose{:style => "display:none;"}
|
||||||
|
%p Perdu, tu dois donner 10€ à l'animatrice, c'est la vie !
|
||||||
|
%button.verif Vérifier
|
||||||
|
%button.reset Remettre à zero
|
||||||
|
.sortable{:style => "height:200px;"}
|
||||||
|
|
||||||
|
=jeux_sortable_img("insectes_jeu_1", 4)
|
||||||
|
=jeux_sortable_img("insectes_jeu_1", 3)
|
||||||
|
|
||||||
|
=jeux_sortable_img("insectes_jeu_1", 2)
|
||||||
|
=jeux_sortable_img("insectes_jeu_1", 5)
|
||||||
|
=jeux_sortable_img("insectes_jeu_1", 1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#insectes_jeu_2
|
||||||
|
|
||||||
|
%h2 Jeu 2
|
||||||
|
.labels
|
||||||
|
=jeux_receptable_label("Guêpe", 1)
|
||||||
|
=jeux_receptable_label("Ornithorynque bleu", 2)
|
||||||
|
=jeux_receptable_label("Moucheron funanbule", 3)
|
||||||
|
=jeux_receptable_label("Sarkoglyphte à tête bruni", 4)
|
||||||
|
=jeux_receptable_label("Fourmillier brun", 5)
|
||||||
|
=jeux_receptable_label("Pitbull musqué", 6)
|
||||||
|
|
||||||
|
%p{:style => "clear:both;"}
|
||||||
|
%div.images
|
||||||
|
=jeux_receptable_element("insectes_jeu_2", 1)
|
||||||
|
=jeux_receptable_element("insectes_jeu_2", 2)
|
||||||
|
=jeux_receptable_element("insectes_jeu_2", 3)
|
||||||
|
=jeux_receptable_element("insectes_jeu_2", 4)
|
||||||
|
|
||||||
|
=jeux_receptable_element("insectes_jeu_2", 5)
|
||||||
|
=jeux_receptable_element("insectes_jeu_2", 6)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%p{:style => "clear:both;"}
|
||||||
|
%br
|
||||||
|
%br
|
||||||
|
%br
|
||||||
|
%br
|
||||||
|
%br
|
@ -49,7 +49,7 @@ Survey::Application.configure do
|
|||||||
# config.action_controller.asset_host = "http://assets.example.com"
|
# config.action_controller.asset_host = "http://assets.example.com"
|
||||||
|
|
||||||
# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
|
# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
|
||||||
config.assets.precompile += %w( admin.js admin.css forum.css forum.js )
|
config.assets.precompile += %w( admin.js admin.css forum.css forum.js plaquettes.css plaquettes.js )
|
||||||
|
|
||||||
# Disable delivery errors, bad email addresses will be ignored
|
# Disable delivery errors, bad email addresses will be ignored
|
||||||
# config.action_mailer.raise_delivery_errors = false
|
# config.action_mailer.raise_delivery_errors = false
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# -*- encoding : utf-8 -*-
|
# -*- encoding : utf-8 -*-
|
||||||
Survey::Application.routes.draw do
|
Survey::Application.routes.draw do
|
||||||
|
|
||||||
|
match 'plaquettes/:slug.:f' => 'plaquettes#show', :as => :plaquette, :f => "html"
|
||||||
|
|
||||||
get "forum_user/index"
|
get "forum_user/index"
|
||||||
|
|
||||||
@ -36,8 +37,14 @@ Survey::Application.routes.draw do
|
|||||||
|
|
||||||
resources :topics
|
resources :topics
|
||||||
|
|
||||||
|
resources :newsletters do
|
||||||
resources :newsletters
|
member do
|
||||||
|
get "select_recipients"
|
||||||
|
post "select_recipients"
|
||||||
|
post "send_test"
|
||||||
|
post "send_newsletter"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
resources :newsgroups
|
resources :newsgroups
|
||||||
|
|
||||||
|