Skip to content

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
...
  • 2 commits
  • 26 files changed
  • 0 commit comments
  • 1 contributor
View
2 Gemfile
@@ -15,7 +15,7 @@ gem 'kaminari'
gem 'draper'
gem 'thin'
gem "friendly_id", "~> 4.0.1"
-#gem "ckeditor", "3.7.0.rc3"
+gem 'globalize3'
# Gems used only for assets and not required
# in production environments by default.
View
8 Gemfile.lock
@@ -69,6 +69,10 @@ GEM
railties (>= 3.0.0)
ffi (1.0.11)
friendly_id (4.0.4)
+ globalize3 (0.2.0)
+ activemodel (>= 3.0.0)
+ activerecord (>= 3.0.0)
+ paper_trail (~> 2)
haml (3.1.4)
haml-rails (0.3.4)
actionpack (~> 3.0)
@@ -96,6 +100,9 @@ GEM
mysql2 (0.3.11)
nokogiri (1.5.0)
orm_adapter (0.0.6)
+ paper_trail (2.6.3)
+ activerecord (~> 3.0)
+ railties (~> 3.0)
paperclip (2.7.0)
activerecord (>= 2.3.0)
activesupport (>= 2.3.2)
@@ -192,6 +199,7 @@ DEPENDENCIES
draper
factory_girl_rails
friendly_id (~> 4.0.1)
+ globalize3
haml-rails
jquery-rails
kaminari
View
3 app/assets/javascripts/languages.js.coffee
@@ -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://jashkenas.github.com/coffee-script/
View
3 app/assets/stylesheets/languages.css.scss
@@ -0,0 +1,3 @@
+// Place all the styles related to the languages controller here.
+// They will automatically be included in application.css.
+// You can use Sass (SCSS) here: http://sass-lang.com/
View
5 app/assets/stylesheets/site.css.scss
@@ -79,5 +79,10 @@ a {
a:hover {
color: #999;
+ text-decoration: none;
+}
+
+.brand a:hover {
+ color: #222;
}
View
6 app/controllers/application_controller.rb
@@ -1,5 +1,6 @@
class ApplicationController < ActionController::Base
protect_from_forgery
+ before_filter :set_user_language
def require_adminship
unless (current_user and current_user.admin?)
@@ -23,4 +24,9 @@ def get_referer
def back_url
request.env["HTTP_REFERER"]
end
+
+ private
+ def set_user_language
+ I18n.locale = session[:language] || config.i18n.default_locale
+ end
end
View
7 app/controllers/languages_controller.rb
@@ -0,0 +1,7 @@
+class LanguagesController < ApplicationController
+
+ def update
+ session[:language] = params[:id]
+ redirect_to :back
+ end
+end
View
2 app/helpers/languages_helper.rb
@@ -0,0 +1,2 @@
+module LanguagesHelper
+end
View
17 app/models/category.rb
@@ -1,5 +1,9 @@
class Category < ActiveRecord::Base
+ extend FriendlyId
+ friendly_id :name, use: :slugged
+
belongs_to :category, :foreign_key => 'category_id'
+
has_many :categories, :dependent => :destroy, :class_name => 'Category'
has_many :category_pictures
has_many :pictures, :through => :category_pictures
@@ -19,9 +23,6 @@ class Category < ActiveRecord::Base
where(:category_id => category.category_id).where(category.id ? ["categories.id != ?", category.id] : "categories.id IS NOT NULL")
}
- extend FriendlyId
- friendly_id :name, use: :slugged
-
def has_children?
self.class.where(:category_id => self.id).any?
end
@@ -30,14 +31,14 @@ def has_children_with_pictures?
self.class.with_pictures.where(:category_id => self.id).any?
end
- def set_position
- self.position = brothers.count + 1
- end
-
def brothers
self.class.brothers_of(self)
end
+ def set_position
+ self.position = brothers.count + 1
+ end
+
def clean_positions
brothers.where("categories.position > ?", self.position).update_all("position = position - 1")
end
@@ -47,7 +48,7 @@ def self.update_positions(categories_positions)
end
def update_pictures_positions(pictures_positions)
- pictures_positions.each_with_index { |picture_id, index| self.pictures.update(picture_id, :position => index + 1) }
+ pictures_positions.each_with_index { |picture_id, index| self.category_pictures.where(:picture_id => picture_id).first.update_attribute(:position, index + 1) }
end
end
View
13 app/models/category_picture.rb
@@ -1,4 +1,17 @@
class CategoryPicture < ActiveRecord::Base
belongs_to :category
belongs_to :picture
+
+ before_create :set_position
+ after_destroy :clean_positions
+
+ default_scope order('category_pictures.position')
+ def set_position
+ self.position = category.category_pictures.count + 1
+ end
+
+ def clean_positions
+ category.category_pictures.where("category_pictures.position > ?", self.position).update_all("position = position - 1")
+ end
+
end
View
6 app/models/page.rb
@@ -1,13 +1,13 @@
class Page < ActiveRecord::Base
+ extend FriendlyId
+ friendly_id :name, use: :slugged
+
validates :name, :content, :presence => true
validates :name, :uniqueness => true
before_create :set_position
after_destroy :clean_positions
- extend FriendlyId
- friendly_id :name, use: :slugged
-
default_scope order('pages.position')
scope :online, where(:online => true)
View
3 app/models/picture.rb
@@ -3,8 +3,6 @@ class Picture < ActiveRecord::Base
has_many :category_pictures
has_many :categories, :through => :category_pictures
- default_scope order("pictures.position")
-
has_attached_file :image,
:styles => {
:thumb => "182x70>",
@@ -22,5 +20,4 @@ def self.create_collection(params, pictures)
pictures.each { |picture| new_pictures << Picture.create(params.merge(:image => picture))} if pictures
new_pictures
end
-
end
View
2 app/views/admin/_brand.html.haml
@@ -1 +1 @@
-.brand= 'Emilie Satre - Admin'
+.brand= link_to('Emilie Satre - Admin', admin_root_path)
View
2 app/views/admin/_navigation.html.haml
@@ -2,4 +2,4 @@
.pull-right.nav-collapse
%ul.nav
%li= link_to(t('public_website'), root_path)
- %li= link_to(t("logout"), destroy_user_session_path, :method => :delete)
+ %li= link_to(t("devise.sessions.sign_out"), destroy_user_session_path, :method => :delete)
View
2 app/views/application/_brand.html.haml
@@ -1 +1 @@
-.brand= 'Emilie Satre'
+.brand= link_to('Emilie Satre', root_path)
View
4 app/views/application/_navigation.html.haml
@@ -1 +1,5 @@
= render_navigation
+.pull-right.nav-collapse
+ %ul.nav
+ %li= link_to('fr', language_path('fr'), :method => :put)
+ %li= link_to('en', language_path('en'), :method => :put)
View
73 config/locales/devise.fr.yml
@@ -0,0 +1,73 @@
+# Additional translations at https://github.com/plataformatec/devise/wiki/I18n
+
+fr:
+ errors:
+ messages:
+ expired: "a expiré, merci d'en demandé un nouveau"
+ not_found: "pas trouvé"
+ already_confirmed: "étais déjà confirmé, merci de vous connecter"
+ not_locked: "n'étais pas bloqué"
+ not_saved:
+ one: "1 erreur a empeché cet %{resource} d'être sauvegardé:"
+ other: "%{count} erreurs ont empeché cet %{resource} d'être sauvegardé:"
+
+ devise:
+ failure:
+ already_authenticated: 'Vous êtes déjà connecté.'
+ unauthenticated: 'Vous devez vous connecter ou créer un compte pour continuer.'
+ unconfirmed: 'Vous devez confirmer votre compte pour continuer.'
+ locked: 'Votre compte est bloqué.'
+ invalid: 'Mauvais compte ou mauvais mot de passe.'
+ invalid_token: "Cléf d'authentification non valide."
+ timeout: 'Votre session a expiré, merci de vous reconnecter pour continuer.'
+ inactive: "Votre compte n'a pas été activé pour le moment."
+ sessions:
+ sign_in: 'Se connecter'
+ sign_out: 'Se déconnecter'
+ signed_in: 'Connection réussi.'
+ signed_out: 'Déconnection réussi.'
+ passwords:
+ new: 'Nouveau mot de passe'
+ confirmation: 'Confirmez votre nouveau mot de passe'
+ change: 'Changer mon mot de passe'
+ send_reset_instructions: 'Envoyer moi les instructions pour réinitialiser mon password.'
+ forgot: 'Mot de passe oublié ?'
+ send_instructions: 'Vous allez recevoir un email avec les instructions à suivre pour réinitialiser votre mot de passe dans quelques instants.'
+ updated: 'Votre mot de passe a été changé. Vous êtes maintenant connecté.'
+ updated_not_active: 'Votre mot de passe a été changé.'
+ send_paranoid_instructions: "Si votre email existe dans notre base de données, vous allez recevoir un lien pour récupérer un accès à votre compte"
+ confirmations:
+ resend_instructions: 'Envoyer les informations de confirmation à nouveau'
+ send_instructions: 'Vous allez recevoir un email avec les informations pour confirmer votre compte dans quelques instants.'
+ send_paranoid_instructions: 'Si votre email existe dans notre base de données, vous allez recevoir un lien vous permettant de confirmer votre compte.'
+ confirmed: 'Your account was successfully confirmed. You are now signed in.'
+ registrations:
+ edit: 'Editer %{resource}'
+ update: 'Sauvegarder'
+ unhappy: Pas content ?
+ leave_blank: "Laissez blanc si vous ne voulez pas le changer"
+ give_password: "Nous avons besoin de votre mot de passe actuel pour confirmer les changements"
+ canceledit: 'Supprimer mon compte'
+ sign_up: "S'enregistrer"
+ signed_up: 'Bienvenue! Vous vous êtes bien enregistré.'
+ signed_up_but_unconfirmed: "Un message avec un lien de confirmation a été envoyé à votre email addresse. Merci d'ouvrir ce lien pour activer votre compte."
+ signed_up_but_inactive: "Vous vous êtes bien enregistré. Cependant, nous ne pouvons pas vous connecter car votre compte n'est toujours pas actif."
+ signed_up_but_locked: 'Vous êtes bien enregistré. Cependant, nous ne pouvons pas vous connecter car votre compte est bloqué.'
+ updated: 'Vous avez mis votre compte à jours'
+ update_needs_confirmation: "Vous avec mis votre compte à jours, mais nous devons vérifier votre nouvel adresse email. Consultez vos email et cliquer sur le liens de confirmation pour activer votre nouvelle adresse."
+ destroyed: 'Au revoir! Votre compte a été supprimé. Nous espérons vous revoir prochainement.'
+ unlocks:
+ rensend_instructions: Renvoyer les informations pour le déblocage de mon compte.
+ send_instructions: 'Vous allez recevoir un email avec les informastions pour débloquer votre compte.'
+ unlocked: 'Votre compte a été débloquer. Connectez-vous pour continuer.'
+ send_paranoid_instructions: 'Si votre compte existe, vous allez recevoir un email avec les informations pour le débloquer.'
+ omniauth_callbacks:
+ success: 'Successfully authorized from %{kind} account.'
+ failure: 'Could not authorize you from %{kind} because "%{reason}".'
+ mailer:
+ confirmation_instructions:
+ subject: 'Instructions pour la confirmation de votre compte.'
+ reset_password_instructions:
+ subject: 'Annulé les instructions pour le mot de passe'
+ unlock_instructions:
+ subject: 'Instructions pour débloquer votre compte.'
View
1 config/locales/en.yml
@@ -73,3 +73,4 @@ en:
to: to
name: Name
online: Online
+ public_website: Public Website
View
77 config/locales/fr.yml
@@ -0,0 +1,77 @@
+# Sample localization file for English. Add more files in this directory for other locales.
+# See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
+
+fr:
+ activemodel:
+ models:
+ pictures_collection: "Collection d'images"
+ attributes:
+ pictures_collection:
+ category_ids: Catégorie
+ news:
+ start_at: Date de début
+ end_at: Date de fin
+
+ edit: 'editer'
+ destroy: 'supprimer'
+ show: 'voir'
+
+ news:
+ label: 'News'
+ edit: 'Editer la news'
+ new: 'Créer une news'
+ create:
+ success: 'La news a été créer avec succès'
+ update:
+ success: 'La news a été éditer avec succès'
+ destroy:
+ success: 'La news a été supprimer avec succès'
+ need_to_be_superior_to_start_at: 'doit être supérieur à la date de début'
+
+ pages:
+ label: 'Pages'
+ new: 'Créer une page'
+ edit: 'Editer la page %{page}'
+ pictures:
+ for_category: "Images pour la catégorie %{category}"
+ label: 'Images'
+ edit: "Editer l'image"
+ new: 'Créer une image'
+ create:
+ success: "L'image a été créé avec succès"
+ update:
+ success: "L'image a été édité avec succès"
+ destroy:
+ success: "L'image a été supprimé avec succès"
+ destroy_it: 'Supprimer'
+ date:
+ day_names: [dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi]
+ month_names: [~, janvier, février, mars, avril, mai, juin, juillet, aôut, septembre, octobre, novembre, decembre]
+ formats:
+ really_short: "%A %d"
+ some_short: "%A %d %B"
+ short: "%A %d %B %Y"
+ year: "%Y"
+ time:
+ formats:
+ date: "%Y-%m-%d"
+
+ the: le
+ to: au
+ or: ou
+ create: créer
+
+ categories:
+ label: 'Catégories'
+ new:
+ general: 'Créer une nouvelle catégorie'
+ parent: 'Créer un nouveau parent'
+ child: 'Créer une sous catégorie'
+ child_for: 'Créer une sous catégorie pour'
+
+ from: à partir du
+ from_to: du
+ to: au
+ name: nom
+ online: En ligne
+ public_website: Site public
View
24 config/locales/simple_form.fr.yml
@@ -0,0 +1,24 @@
+fr:
+ simple_form:
+ "yes": 'Oui'
+ "no": 'Non'
+ required:
+ text: 'requis'
+ mark: '*'
+ # You can uncomment the line below if you need to overwrite the whole required html.
+ # When using html, text and mark won't be used.
+ # html: '<abbr title="required">*</abbr>'
+ error_notification:
+ default_message: "Des erreurs se sont produites, merci de regarder ce qui s'est passé:"
+ # Labels and hints examples
+ # labels:
+ # password: 'Password'
+ # user:
+ # new:
+ # email: 'E-mail para efetuar o sign in.'
+ # edit:
+ # email: 'E-mail.'
+ # hints:
+ # username: 'User name to sign in.'
+ # password: 'No special characters, please.'
+
View
1 config/routes.rb
@@ -74,6 +74,7 @@
resources :pictures, :only => [:index]
end
+ resources :languages, :only => [:update]
resources :pages, :only => [:show]
# You can have the root of your site routed with "root"
View
9 db/migrate/20120409165806_remove_position_from_pictures.rb
@@ -0,0 +1,9 @@
+class RemovePositionFromPictures < ActiveRecord::Migration
+ def up
+ remove_column :pictures, :position
+ end
+
+ def down
+ add_column :pictures, :position, :integer
+ end
+end
View
3 db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20120409080228) do
+ActiveRecord::Schema.define(:version => 20120409165806) do
create_table "categories", :force => true do |t|
t.string "name"
@@ -69,7 +69,6 @@
t.string "technic"
t.string "materials"
t.date "year"
- t.integer "position"
end
create_table "users", :force => true do |t|
View
5 spec/controllers/languages_controller_spec.rb
@@ -0,0 +1,5 @@
+require 'spec_helper'
+
+describe LanguagesController do
+
+end
View
15 spec/helpers/languages_helper_spec.rb
@@ -0,0 +1,15 @@
+require 'spec_helper'
+
+# Specs in this file have access to a helper object that includes
+# the LanguagesHelper. For example:
+#
+# describe LanguagesHelper do
+# describe "string concat" do
+# it "concats two strings with spaces" do
+# helper.concat_strings("this","that").should == "this that"
+# end
+# end
+# end
+describe LanguagesHelper do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
View
1 spec/models/category_picture_spec.rb
@@ -5,4 +5,5 @@
it { should belong_to(:picture)}
it { should have_db_column(:position)}
+
end

No commit comments for this range

Something went wrong with that request. Please try again.