aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Gemfile7
-rw-r--r--Gemfile.lock33
-rw-r--r--app/assets/stylesheets/lines.css.scss2
-rw-r--r--app/assets/stylesheets/pagination.css.scss51
-rw-r--r--app/controllers/lines_controller.rb5
-rw-r--r--app/models/referential.rb6
-rw-r--r--app/views/lines/_line.erb6
-rw-r--r--app/views/lines/index.html.erb27
-rw-r--r--config/initializers/ninoxe.rb4
-rw-r--r--config/initializers/squeel.rb12
-rw-r--r--config/locales/lines.yml4
-rw-r--r--config/locales/networks.yml2
-rw-r--r--db/schema.rb18
-rw-r--r--spec/spec_helper.rb3
14 files changed, 131 insertions, 49 deletions
diff --git a/Gemfile b/Gemfile
index 6a5532b8d..34ec9973a 100644
--- a/Gemfile
+++ b/Gemfile
@@ -49,9 +49,12 @@ gem 'jquery-rails'
gem 'formtastic'
gem 'inherited_resources'
+gem 'will_paginate', '~> 3.0'
+gem 'ransack'
+gem 'squeel'
-gem 'chouette-ninoxe', :git => 'git://chouette.dryade.priv/ninoxe'
-#gem 'chouette-ninoxe', :path => '/home/luc/projects/ninoxe'
+#gem 'chouette-ninoxe', :git => 'git://chouette.dryade.priv/ninoxe'
+gem 'chouette-ninoxe', :path => '/home/luc/projects/ninoxe'
group :development do
gem 'autotest-rails'
diff --git a/Gemfile.lock b/Gemfile.lock
index f91756bb4..dd20a98b4 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,14 +1,4 @@
GIT
- remote: git://chouette.dryade.priv/ninoxe
- revision: 43d9b18e35b62004b5f5f86ba4679d6592b3454c
- specs:
- chouette-ninoxe (0.0.8)
- GeoRuby
- activerecord
- composite_primary_keys
- geokit
-
-GIT
remote: git://github.com/dryade/activerecord-jdbc-adapter.git
revision: 5b45a0a417e146e92db8c57b5c600cdeb9e957bf
specs:
@@ -53,6 +43,15 @@ GIT
user_interface (0.0.1)
rails (~> 3.1.0)
+PATH
+ remote: /home/luc/projects/ninoxe
+ specs:
+ chouette-ninoxe (0.0.8)
+ GeoRuby
+ activerecord
+ composite_primary_keys
+ geokit
+
GEM
remote: http://rubygems.org/
specs:
@@ -193,6 +192,8 @@ GEM
nokogiri (1.5.0)
nokogiri (1.5.0-java)
pg (0.11.0)
+ polyamorous (0.5.0)
+ activerecord (~> 3.0)
polyglot (0.3.3)
rack (1.3.6)
rack-cache (1.1)
@@ -219,6 +220,10 @@ GEM
rdoc (~> 3.4)
thor (~> 0.14.6)
rake (0.9.2.2)
+ ransack (0.6.0)
+ actionpack (~> 3.0)
+ activerecord (~> 3.0)
+ polyamorous (~> 0.5.0)
rdoc (3.12)
json (~> 1.4)
remarkable (4.0.0.alpha4)
@@ -264,6 +269,10 @@ GEM
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sqlite3 (1.3.5)
+ squeel (0.9.5)
+ activerecord (~> 3.0)
+ activesupport (~> 3.0)
+ polyamorous (~> 0.5.0)
term-ansicolor (1.0.7)
thor (0.14.6)
tilt (1.3.3)
@@ -279,6 +288,7 @@ GEM
jruby-rack (>= 1.0.0)
rake (>= 0.8.7)
rubyzip (>= 0.9.4)
+ will_paginate (3.0.3)
xpath (0.1.4)
nokogiri (~> 1.3)
yard (0.7.4)
@@ -313,6 +323,7 @@ DEPENDENCIES
pg (~> 0.11.0)
pickle!
rails (= 3.1.3)
+ ransack
remarkable (~> 4.0.0.alpha4)
remarkable_activerecord (~> 4.0.0.alpha4)
rspec
@@ -320,6 +331,8 @@ DEPENDENCIES
sass-rails (~> 3.1.5)
shoulda!
sqlite3
+ squeel
uglifier (>= 1.0.3)
user_interface!
warbler
+ will_paginate (~> 3.0)
diff --git a/app/assets/stylesheets/lines.css.scss b/app/assets/stylesheets/lines.css.scss
index 165689f3b..2ba770492 100644
--- a/app/assets/stylesheets/lines.css.scss
+++ b/app/assets/stylesheets/lines.css.scss
@@ -1,7 +1,7 @@
// Place all the styles related to the lines controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
-@mixin div_for_object {
+@mixin div_for_object {
margin-bottom: 20px;
.color {
diff --git a/app/assets/stylesheets/pagination.css.scss b/app/assets/stylesheets/pagination.css.scss
new file mode 100644
index 000000000..53937fcb6
--- /dev/null
+++ b/app/assets/stylesheets/pagination.css.scss
@@ -0,0 +1,51 @@
+.pagination {
+ background: white;
+ cursor: default;
+
+ > a, > span, > em{
+ padding: 0.2em 0.5em;
+ display: block;
+ float: left;
+ margin-right: 1px;
+ }
+
+ > .disabled{
+ color: #999999;
+ border: 1px solid #dddddd;
+ }
+
+ > .current{
+ font-style: normal;
+ font-weight: bold;
+ background: #2e6ab1;
+ color: white;
+ border: 1px solid #2e6ab1;
+ }
+
+ > a{
+ text-decoration: none;
+ color: #105cb6;
+ border: 1px solid #9aafe5;
+ &:hover, &:focus{
+ color: #000033;
+ border-color: #000033;
+ }
+ }
+
+ .page_info{
+ padding: 0.4em 0.6em
+ }
+
+ &:after{
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;}
+
+ * html & {
+ height: 1%;}
+
+ *:first-child+html & {
+ overflow: hidden;}
+} \ No newline at end of file
diff --git a/app/controllers/lines_controller.rb b/app/controllers/lines_controller.rb
index a5be8ca44..6968618b8 100644
--- a/app/controllers/lines_controller.rb
+++ b/app/controllers/lines_controller.rb
@@ -7,8 +7,9 @@ class LinesController < ChouetteController
protected
- def collection
- @lines ||= referential.lines.order_by [[sort_column.to_sym, sort_direction.to_sym]]
+ def collection
+ @q = Chouette::Line.search(params[:q])
+ @lines ||= @q.result(:distinct => true).paginate(:page => params[:page], :per_page => 10)
end
def sort_column
diff --git a/app/models/referential.rb b/app/models/referential.rb
index a329bf950..b08f6be4c 100644
--- a/app/models/referential.rb
+++ b/app/models/referential.rb
@@ -6,15 +6,15 @@ class Referential < ActiveRecord::Base
before_destroy :destroy_schema
def lines
- Chouette::Line.all
+ Chouette::Line.scoped
end
def networks
- Chouette::Network.all
+ Chouette::Network.scoped
end
def companies
- Chouette::Company.all
+ Chouette::Company.scoped
end
private
diff --git a/app/views/lines/_line.erb b/app/views/lines/_line.erb
index f594c7f9d..2a8fe4683 100644
--- a/app/views/lines/_line.erb
+++ b/app/views/lines/_line.erb
@@ -6,6 +6,10 @@
<% end %>
<%= link_to line.name, [@referential, line] %>
<div class="info">
-
+ <p><%= link_to_if( line.network, line.network.name, referential_network_path(@referential, line.network), :title => "Réseau : #{line.network.name}" ) %> | <%= link_to_if( line.company, line.company.name, referential_company_path(@referential, line.company), :title => "Transporteur : #{line.company.name}" ) %> </p>
+ <p>
+ <%= link_to "Modifier", edit_referential_line_path(@referential, line), :class => "edit" %> |
+ <%= link_to "Supprimer", referential_line_path(@referential, line), :method => :delete, :confirm => t('lines.actions.destroy_confirm'), :class => "remove" %>
+ </p>
</div>
<% end %>
diff --git a/app/views/lines/index.html.erb b/app/views/lines/index.html.erb
index e8f795a98..a8fb79d0f 100644
--- a/app/views/lines/index.html.erb
+++ b/app/views/lines/index.html.erb
@@ -1,17 +1,26 @@
-<div class="order">
- Trier par
- <%= link_to_order "Code", "code" %> |
- <%= link_to_order "Priorité", "priority" %> |
- <%= link_to_order "Nom", "name" %>
-</div>
-
<%= title_tag t('lines.index.title') %>
-<%= render :partial => "line", :collection => @lines %>
+<%= search_form_for @q, :url => referential_lines_path(@referential), :html => {:method => :get} do |f| %>
+ <%= f.label :name_or_number_cont %>
+ <%= f.text_field :name_or_number_cont %>
+ <%= f.submit %>
+<% end %>
+
+<div class="digg_pagination">
+ <%= will_paginate @lines %>
+ <div class="page_info">
+ <%= render :partial => "line", :collection => @lines %>
+ </div>
+ <%= will_paginate @lines %>
+</div>
<% content_for :sidebar do %>
<ul class="actions">
- <li><%= link_to t('lines.actions.new'), new_referential_line_path(@referential), :class => "add" %></li>
+ <li><%= link_to t('lines.actions.new'), new_referential_line_path(@referential), :class => "add" %></li>
<br>
</ul>
+<ul>
+
+</ul>
+
<% end %>
diff --git a/config/initializers/ninoxe.rb b/config/initializers/ninoxe.rb
index 9a4c2d7ec..3c26e41f4 100644
--- a/config/initializers/ninoxe.rb
+++ b/config/initializers/ninoxe.rb
@@ -1,4 +1,8 @@
+Chouette::ActiveRecord.establish_chouette_connection = false
+
+
class Chouette::Line
+
def self.model_name
name = "Line"
def name.name
diff --git a/config/initializers/squeel.rb b/config/initializers/squeel.rb
new file mode 100644
index 000000000..aa3f2ff02
--- /dev/null
+++ b/config/initializers/squeel.rb
@@ -0,0 +1,12 @@
+Squeel.configure do |config|
+ # To load hash extensions (to allow for AND (&), OR (|), and NOT (-) against
+ # hashes of conditions)
+ config.load_core_extensions :hash
+
+ # To load symbol extensions (for a subset of the old MetaWhere functionality,
+ # via ARel predicate methods on Symbols: :name.matches, etc)
+ # config.load_core_extensions :symbol
+
+ # To load both hash and symbol extensions
+ # config.load_core_extensions :hash, :symbol
+end
diff --git a/config/locales/lines.yml b/config/locales/lines.yml
index f2099eccf..486c13b36 100644
--- a/config/locales/lines.yml
+++ b/config/locales/lines.yml
@@ -27,8 +27,8 @@ fr:
title: Ligne %{line}
index:
title: Lignes
- activerecord:
- models:
+ activerecord:
+ models:
line: Lignes
attributes:
line:
diff --git a/config/locales/networks.yml b/config/locales/networks.yml
index e03fdfe5b..efe748364 100644
--- a/config/locales/networks.yml
+++ b/config/locales/networks.yml
@@ -31,7 +31,7 @@ fr:
title: "Réseaux"
activerecord:
models:
- network: Réseaux
+ network: Réseau
attributes:
network:
registrationnumber: "Identifiant"
diff --git a/db/schema.rb b/db/schema.rb
index 29d57a1df..4b3e892f5 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -31,16 +31,6 @@ ActiveRecord::Schema.define(:version => 20120214101645) do
add_index "company", ["objectid"], :name => "company_objectid_key", :unique => true
add_index "company", ["registrationnumber"], :name => "company_registrationnumber_key", :unique => true
- create_table "geometry_columns", :id => false, :force => true do |t|
- t.string "f_table_catalog", :limit => 256, :null => false
- t.string "f_table_schema", :limit => 256, :null => false
- t.string "f_table_name", :limit => 256, :null => false
- t.string "f_geometry_column", :limit => 256, :null => false
- t.integer "coord_dimension", :null => false
- t.integer "srid", :null => false
- t.string "type", :limit => 30, :null => false
- end
-
create_table "line", :force => true do |t|
t.integer "ptnetworkid", :limit => 8
t.integer "companyid", :limit => 8
@@ -85,12 +75,4 @@ ActiveRecord::Schema.define(:version => 20120214101645) do
t.datetime "updated_at"
end
- create_table "spatial_ref_sys", :id => false, :force => true do |t|
- t.integer "srid", :null => false
- t.string "auth_name", :limit => 256
- t.integer "auth_srid"
- t.string "srtext", :limit => 2048
- t.string "proj4text", :limit => 2048
- end
-
end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index bb5f59026..1fd4d6894 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -3,7 +3,10 @@ ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
+
+# Add this to load Capybara integration:
require 'capybara/rspec'
+require 'capybara/rails'
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.