Travail sur les notes

This commit is contained in:
echarp 2014-02-18 09:28:04 +01:00
parent 6844cac3a0
commit 795b7f647c
20 changed files with 251 additions and 65 deletions

10
Gemfile
View File

@ -5,9 +5,6 @@ gem 'rails'
# Use mysql as the database for Active Record
gem 'mysql2'
# Use SCSS for stylesheets
gem 'sass-rails'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier'
@ -49,11 +46,16 @@ gem 'rails-i18n'
gem 'devise-i18n'
gem 'jquery-turbolinks'
gem 'font-awesome-rails'
gem 'compass-rails', "~> 2.0.alpha.0"
gem 'has_scope'
gem 'simple_calendar', github: 'echarp/simple_calendar'
gem 'redcarpet'
group :assets do
# Use SASS for stylesheets
gem 'sass-rails'
gem 'compass-rails'
end
group :development do
gem 'guard-livereload'
gem 'guard-bundler'

View File

@ -7,7 +7,7 @@ GIT
GIT
remote: git://github.com/gregbell/active_admin.git
revision: 7465eb37877897849a2466a05afd2af4ee7a9338
revision: d7a26247de866fba5e3d2cce872ba978247f80a2
specs:
activeadmin (1.0.0.pre)
arbre (~> 1.0)
@ -18,7 +18,7 @@ GIT
inherited_resources (~> 1.3)
jquery-rails
jquery-ui-rails
kaminari (~> 0.14, != 0.15.0)
kaminari (~> 0.15)
rails (>= 3.2, < 4.1)
ransack (~> 1.0)
sass-rails
@ -52,7 +52,7 @@ GEM
tzinfo (~> 0.3.37)
arbre (1.0.1)
activesupport (>= 3.0.0)
arel (4.0.1)
arel (4.0.2)
atomic (1.1.14)
bcrypt-ruby (3.1.2)
bourbon (3.1.8)
@ -61,7 +61,10 @@ GEM
builder (3.1.4)
celluloid (0.15.2)
timers (~> 1.1.0)
chunky_png (1.2.9)
celluloid-io (0.15.0)
celluloid (>= 0.15.0)
nio4r (>= 0.5.0)
chunky_png (1.3.0)
coderay (1.1.0)
coffee-rails (4.0.1)
coffee-script (>= 2.2.0)
@ -69,13 +72,13 @@ GEM
coffee-script (2.2.0)
coffee-script-source
execjs
coffee-script-source (1.6.3)
coffee-script-source (1.7.0)
compass (0.12.2)
chunky_png (~> 1.2)
fssm (>= 0.2.7)
sass (~> 3.1)
compass-rails (2.0.alpha.0)
compass (>= 0.12.2, < 0.14)
compass-rails (1.1.4)
compass (>= 0.12.2)
devise (3.2.2)
bcrypt-ruby (~> 3.0)
orm_adapter (~> 0.1)
@ -96,7 +99,7 @@ GEM
formtastic (2.3.0.rc2)
actionpack (>= 3.0)
fssm (0.2.10)
guard (2.2.5)
guard (2.4.0)
formatador (>= 0.2.4)
listen (~> 2.1)
lumberjack (~> 1.0)
@ -105,11 +108,11 @@ GEM
guard-bundler (2.0.0)
bundler (~> 1.0)
guard (~> 2.2)
guard-livereload (2.1.0)
guard-livereload (2.1.1)
em-websocket (~> 0.5)
guard (~> 2.0)
multi_json (~> 1.8)
guard-minitest (2.1.3)
guard-minitest (2.2.0)
guard (~> 2.0)
minitest (>= 3.0)
haml (4.0.5)
@ -128,23 +131,24 @@ GEM
inherited_resources (1.4.1)
has_scope (~> 0.6.0.rc)
responders (~> 1.0.0.rc)
jbuilder (2.0.2)
jbuilder (2.0.3)
activesupport (>= 3.0.0)
multi_json (>= 1.2.0)
jquery-rails (3.0.4)
jquery-rails (3.1.0)
railties (>= 3.0, < 5.0)
thor (>= 0.14, < 2.0)
jquery-turbolinks (2.0.1)
jquery-turbolinks (2.0.2)
railties (>= 3.1.0)
turbolinks
jquery-ui-rails (4.1.1)
railties (>= 3.1.0)
json (1.8.1)
kaminari (0.14.1)
kaminari (0.15.1)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
listen (2.4.0)
listen (2.5.0)
celluloid (>= 0.15.2)
celluloid-io (>= 0.15.0)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9)
lumberjack (1.0.4)
@ -155,12 +159,13 @@ GEM
mime-types (1.25.1)
minitest (4.7.5)
multi_json (1.8.4)
mysql2 (0.3.14)
mysql2 (0.3.15)
nio4r (1.0.0)
orm_adapter (0.5.0)
polyamorous (0.6.4)
activerecord (>= 3.0)
polyglot (0.3.3)
pry (0.9.12.4)
pry (0.9.12.6)
coderay (~> 1.0)
method_source (~> 0.8)
slop (~> 3.4)
@ -195,10 +200,10 @@ GEM
ffi (>= 0.5.0)
rdoc (4.1.1)
json (~> 1.4)
redcarpet (3.0.0)
redcarpet (3.1.0)
responders (1.0.0)
railties (>= 3.2, < 5)
sass (3.2.13)
sass (3.2.14)
sass-rails (4.0.1)
railties (>= 4.0.0, < 5.0)
sass (>= 3.1.10)
@ -216,7 +221,7 @@ GEM
actionpack (>= 3.0)
activesupport (>= 3.0)
sprockets (~> 2.8)
thor (0.18.1)
thor (0.18.1.20140116)
thread_safe (0.1.3)
atomic
tilt (1.4.1)
@ -224,7 +229,7 @@ GEM
treetop (1.4.15)
polyglot
polyglot (>= 0.3.1)
turbolinks (2.1.0)
turbolinks (2.2.1)
coffee-rails
tzinfo (0.3.38)
uglifier (2.4.0)
@ -240,7 +245,7 @@ PLATFORMS
DEPENDENCIES
activeadmin!
coffee-rails
compass-rails (~> 2.0.alpha.0)
compass-rails
devise-i18n
font-awesome-rails
guard-bundler

View File

@ -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/

View File

@ -81,9 +81,36 @@ main
margin: 0.95em 0
line-height: 1.3em
text-align: justify
&.label
text-align: center
hr
margin: 10px 20px
input, textarea, select
margin: 3px 0
border: 1px solid #868686
&:focus
background-color: #F0F8FF
/*
input, textarea, select
color: black
margin: 3px 0
border: 1px solid #868686
padding: 0.2em 0.8em
font-family: georgia, serif
background-color: white
@include border-radius(0.7em)
&:focus
outline: 0
background-color: #F0F8FF
input[type=submit]
border: none
font-size: x-large
@include box-shadow(0 0 1em lightblue)
@include text-shadow(1px 1px 1px white)
&:hover
@include box-shadow(5px 5px 5px lightblue)
footer.bottom nav
margin: 26px auto -3px
font-size: smaller

View File

@ -160,11 +160,6 @@ table.calendar
display: inline-block
&:after
content: ':'
input, textarea, select
margin: 3px 0
border: 1px solid #868686
&:focus
background-color: #F0F8FF
.actions
margin-left: 6.75em
margin-bottom: 10px

View File

@ -1,4 +1,4 @@
.moderations
.moderations, .notes
table.list
width: 100%
margin-top: 15px

View File

@ -0,0 +1,4 @@
.notes
form
label:after
content: ':'

View File

@ -0,0 +1,69 @@
body {
background-color: #fff;
color: #333;
font-family: verdana, arial, helvetica, sans-serif;
font-size: 13px;
line-height: 18px;
}
p, ol, ul, td {
font-family: verdana, arial, helvetica, sans-serif;
font-size: 13px;
line-height: 18px;
}
pre {
background-color: #eee;
padding: 10px;
font-size: 11px;
}
a {
color: #000;
&:visited {
color: #666;
}
&:hover {
color: #fff;
background-color: #000;
}
}
div {
&.field, &.actions {
margin-bottom: 10px;
}
}
#notice {
color: green;
}
.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;
}
}

View File

@ -6,8 +6,7 @@
display: inline-block
.field, .actions
text-align: left
margin-left: 2px
margin-bottom: 2px !important
margin: 0.5em
*
vertical-align: middle
p.helper
@ -16,26 +15,12 @@
label
width: 8em
display: inline-block
text-align: right
&:after
content: ':'
input, textarea, select
color: black
margin: 3px 0
border: 1px solid #868686
padding: 0.2em 0.8em
font-size: larger
font-family: georgia, serif
background-color: #FFB
@include border-radius(0.8em)
&:focus
outline: 0
background-color: #F0F8FF !important
input[type=submit]
border: none
font-size: x-large
@include box-shadow(0 0 1em lightblue)
@include text-shadow(1px 1px 1px white)
/*
input, textarea, select
font-size: larger
background-color: #FFB
.actions
margin-left: 6.75em
margin-bottom: 10px

View File

@ -0,0 +1,12 @@
class NotesController < InheritedResources::Base
belongs_to :event
private
def begin_of_association_chain
@event = Event.unscoped.find params[:moderation_id]
end
def permitted_params
params.permit note: [:contents]
end
end

View File

@ -0,0 +1,2 @@
module NotesHelper
end

View File

@ -1,4 +1,4 @@
- if request.format == 'text/html' && controller.controller_name != 'moderations'
- if request.format == 'text/html' && controller.controller_name != 'moderations' && controller.controller_name != 'notes'
%p#notice= notice
#lug-list

View File

@ -40,7 +40,7 @@
%br/
= link_to t('.askInfos'), edit_moderation_path(event), class: 'fa-bullhorn'
%br/
= link_to t('.createNote'), new_note_path('event.id' => event), class: 'fa-files-o'
= link_to t('.createNote'), new_moderation_note_path(event), class: 'fa-files-o'
- event.notes.each do |note|
%tr
@ -50,6 +50,6 @@
%em.author
=t '.posted_by',
author: "#{note.author.firstname} #{note.author.lastname}",
date: l(note.date, format: :at)
date: l(note.date, format: :at) rescue nil
.logout= link_to t('logout'), destroy_user_session_path, method: :delete

View File

@ -0,0 +1,13 @@
= form_for [:moderation, @note] do |f|
- if @note.errors.any?
#error_explanation
%h2= "#{pluralize(@note.errors.count, "error")} prohibited this note from being saved:"
%ul
- @note.errors.full_messages.each do |msg|
%li= msg
.field
%p.label= f.label Note.human_attribute_name :contents
= f.text_area :contents, cols: 70, rows: 10
.actions
= f.submit t('save')

View File

@ -0,0 +1,8 @@
%h3
= link_to t('.back'), moderations_path
>>>
=t '.title'
.box= render 'form'
.box= render file: '/events/show'

View File

@ -1,5 +1,6 @@
fr:
show: Voir
save: Enregistrer
edit: Éditer
validate: Valider
refuse: Refuser
@ -56,6 +57,8 @@ fr:
region:
name_values:
all: Toutes les régions
note:
contents: Votre commentaire
helpers:
submit:
@ -148,6 +151,10 @@ fr:
moderation: Modération
preview: Prévisualisation de l'évènement
edit: Édition de l'évènement
notes:
new:
back: Modération
title: Ajout d'une note de modération
users:
sign_in:
title: Identification

View File

@ -1,13 +1,14 @@
AgendaDuLibreRails::Application.routes.draw do
resources :users
resources :events
resources :moderations do
resources :notes, only: [:new, :create]
end
resources :regions, only: [ :index ] do
get 'icallist', on: :collection
get 'stats', on: :collection
end
resources :events
resources :notes
resources :users
resources :tags, only: [ :index, :show ]
resources :moderations
get 'ical.php' => 'events#index', format: :ics
get ':format.php' => 'events#index'

View File

@ -0,0 +1,49 @@
require 'test_helper'
class NotesControllerTest < ActionController::TestCase
setup do
@note = notes(:one)
end
test "should get index" do
get :index
assert_response :success
assert_not_nil assigns(:notes)
end
test "should get new" do
get :new
assert_response :success
end
test "should create note" do
assert_difference('Note.count') do
post :create, note: { author: @note.author, contents: @note.contents, date: @note.date, event: @note.event }
end
assert_redirected_to note_path(assigns(:note))
end
test "should show note" do
get :show, id: @note
assert_response :success
end
test "should get edit" do
get :edit, id: @note
assert_response :success
end
test "should update note" do
patch :update, id: @note, note: { author: @note.author, contents: @note.contents, date: @note.date, event: @note.event }
assert_redirected_to note_path(assigns(:note))
end
test "should destroy note" do
assert_difference('Note.count', -1) do
delete :destroy, id: @note
end
assert_redirected_to notes_path
end
end

View File

@ -1,13 +1,13 @@
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
one:
event: one
author: one
contents: MyText
date: 2014-01-05 23:34:46
event_id:
author_id:
date: 2014-01-11 10:55:54
two:
event: one
author: one
contents: MyText
date: 2014-01-05 23:34:46
event_id:
author_id:
date: 2014-01-11 10:55:54

View File

@ -0,0 +1,4 @@
require 'test_helper'
class NotesHelperTest < ActionView::TestCase
end