plaquette longpras
2
Gemfile
@ -24,6 +24,8 @@ group :assets do
|
||||
end
|
||||
|
||||
gem 'jquery-rails'
|
||||
gem 'jquery-ui-rails'
|
||||
gem "raptor-editor-rails"
|
||||
|
||||
# To use ActiveModel has_secure_password
|
||||
# gem 'bcrypt-ruby', '~> 3.0.0'
|
||||
|
@ -78,6 +78,9 @@ GEM
|
||||
jquery-rails (2.1.4)
|
||||
railties (>= 3.0, < 5.0)
|
||||
thor (>= 0.14, < 2.0)
|
||||
jquery-ui-rails (4.0.1)
|
||||
jquery-rails
|
||||
railties (>= 3.1.0)
|
||||
json (1.7.6)
|
||||
kaminari (0.14.1)
|
||||
actionpack (>= 3.0.0)
|
||||
@ -130,6 +133,8 @@ GEM
|
||||
rdoc (~> 3.4)
|
||||
thor (>= 0.14.6, < 2.0)
|
||||
rake (10.0.3)
|
||||
raptor-editor-rails (0.2.1)
|
||||
rails (> 3.1)
|
||||
rdoc (3.12)
|
||||
json (~> 1.4)
|
||||
redcarpet (2.2.2)
|
||||
@ -182,12 +187,14 @@ DEPENDENCIES
|
||||
gravatar_image_tag
|
||||
haml
|
||||
jquery-rails
|
||||
jquery-ui-rails
|
||||
kaminari
|
||||
mysql2
|
||||
nokogiri
|
||||
pg
|
||||
pygments.rb
|
||||
rails (= 3.2.9)
|
||||
raptor-editor-rails
|
||||
redcarpet
|
||||
rmagick
|
||||
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"
|
||||
|
||||
# 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
|
||||
# config.action_mailer.raise_delivery_errors = false
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- encoding : utf-8 -*-
|
||||
Survey::Application.routes.draw do
|
||||
|
||||
match 'plaquettes/:slug.:f' => 'plaquettes#show', :as => :plaquette, :f => "html"
|
||||
|
||||
get "forum_user/index"
|
||||
|
||||
@ -36,8 +37,14 @@ Survey::Application.routes.draw do
|
||||
|
||||
resources :topics
|
||||
|
||||
|
||||
resources :newsletters
|
||||
resources :newsletters do
|
||||
member do
|
||||
get "select_recipients"
|
||||
post "select_recipients"
|
||||
post "send_test"
|
||||
post "send_newsletter"
|
||||
end
|
||||
end
|
||||
|
||||
resources :newsgroups
|
||||
|
||||
|