@@ -10,16 +10,16 @@ get '/' do | |||||
haml :home | haml :home | ||||
end | end | ||||
get '/directorates/:id' do | |||||
@directorate = Directorate.get(params[:id]) | |||||
get '/directorates/:slug' do | |||||
@directorate = Directorate.first(:slug => params[:slug]) | |||||
@total = @directorate.payments.sum(:amount) | @total = @directorate.payments.sum(:amount) | ||||
haml :directorate | haml :directorate | ||||
end | end | ||||
get '/suppliers/:id.csv' do | |||||
@supplier = Supplier.get(params[:id]) | |||||
get '/suppliers/:slug.csv' do | |||||
@supplier = Supplier.first(:slug => params[:slug]) | |||||
headers "Content-Disposition" => "attachment;filename=supplier#{@supplier.id}.csv", | |||||
headers "Content-Disposition" => "attachment;filename=supplier-#{@supplier.slug}.csv", | |||||
"Content-Type" => "application/octet-stream" | "Content-Type" => "application/octet-stream" | ||||
result = "Date,Trans No,Directorate,Service,Amount ex. VAT\n" | result = "Date,Trans No,Directorate,Service,Amount ex. VAT\n" | ||||
@@ -32,8 +32,8 @@ get '/suppliers/:id.csv' do | |||||
end | end | ||||
get '/suppliers/:id' do | |||||
@supplier = Supplier.get(params[:id]) | |||||
get '/suppliers/:slug' do | |||||
@supplier = Supplier.first(:slug => params[:slug]) | |||||
@total = @supplier.payments.sum(:amount) | @total = @supplier.payments.sum(:amount) | ||||
haml :supplier | haml :supplier | ||||
end | end | ||||
@@ -43,10 +43,10 @@ get '/suppliers/?' do | |||||
haml :suppliers | haml :suppliers | ||||
end | end | ||||
get '/services/:id.csv' do | |||||
@service = Service.get(params[:id]) | |||||
get '/services/:slug.csv' do | |||||
@service = Service.first(:slug => params[:slug]) | |||||
headers "Content-Disposition" => "attachment;filename=service#{@service.id}.csv", | |||||
headers "Content-Disposition" => "attachment;filename=service-#{@service.slug}.csv", | |||||
"Content-Type" => "application/octet-stream" | "Content-Type" => "application/octet-stream" | ||||
result = "Date,Trans No,Directorate,Supplier,Amount ex. VAT\n" | result = "Date,Trans No,Directorate,Supplier,Amount ex. VAT\n" | ||||
@@ -59,8 +59,8 @@ get '/services/:id.csv' do | |||||
end | end | ||||
get '/services/:id' do | |||||
@service = Service.get(params[:id]) | |||||
get '/services/:slug' do | |||||
@service = Service.first(:slug => params[:slug]) | |||||
@total = @service.payments.sum(:amount) | @total = @service.payments.sum(:amount) | ||||
haml :service | haml :service | ||||
end | end | ||||
@@ -70,17 +70,6 @@ get '/services/?' do | |||||
haml :services | haml :services | ||||
end | end | ||||
get '/wards/:slug/postcode/:postcode/?' do | |||||
@ward = Ward.first(:slug => params[:slug]) | |||||
@postcode = params[:postcode] | |||||
haml :wards | |||||
end | |||||
get '/wards/:slug/?' do | |||||
@ward = Ward.first(:slug => params[:slug]) | |||||
haml :wards | |||||
end | |||||
get '/error' do | get '/error' do | ||||
haml :error | haml :error | ||||
end | end | ||||
@@ -28,8 +28,14 @@ class Directorate | |||||
property :id, Serial | property :id, Serial | ||||
property :name, String, :length => 255, :required => true | property :name, String, :length => 255, :required => true | ||||
property :slug, String, :length => 255 | |||||
has n, :payments, :order => ['d'] | has n, :payments, :order => ['d'] | ||||
def self.slugify(name) | |||||
name.gsub(/[^\w\s-]/, '').gsub(/\s+/, '-').downcase | |||||
end | |||||
end | end | ||||
class Service | class Service | ||||
@@ -37,8 +43,14 @@ class Service | |||||
property :id, Serial | property :id, Serial | ||||
property :name, String, :length => 255, :required => true | property :name, String, :length => 255, :required => true | ||||
property :slug, String, :length => 255 | |||||
has n, :payments, :order => ['d'] | has n, :payments, :order => ['d'] | ||||
def self.slugify(name) | |||||
name.gsub(/[^\w\s-]/, '').gsub(/\s+/, '-').downcase | |||||
end | |||||
end | end | ||||
class Supplier | class Supplier | ||||
@@ -46,12 +58,13 @@ class Supplier | |||||
property :id, Serial | property :id, Serial | ||||
property :name, String, :length => 255, :required => true | property :name, String, :length => 255, :required => true | ||||
property :slug, String, :length => 255 | |||||
has n, :payments, :order => ['d'] | has n, :payments, :order => ['d'] | ||||
# def self.slugify(name) | |||||
# name.gsub(/[^\w\s-]/, '').gsub(/\s+/, '-').downcase | |||||
# end | |||||
def self.slugify(name) | |||||
name.gsub(/[^\w\s-]/, '').gsub(/\s+/, '-').downcase | |||||
end | |||||
end | end | ||||
DataMapper.setup(:default, ENV['DATABASE_URL'] || "sqlite3://#{Dir.pwd}/db.sqlite3") | DataMapper.setup(:default, ENV['DATABASE_URL'] || "sqlite3://#{Dir.pwd}/db.sqlite3") | ||||
@@ -20,10 +20,10 @@ | |||||
%tr | %tr | ||||
%td= payment.d.strftime("%d %b %Y") | %td= payment.d.strftime("%d %b %Y") | ||||
%td | %td | ||||
%a{ :href => '/services/' + payment.service.id.to_s } | |||||
%a{ :href => '/services/' + payment.service.slug } | |||||
= payment.service.name | = payment.service.name | ||||
%td | %td | ||||
%a{ :href => '/suppliers/' + payment.supplier.id.to_s } | |||||
%a{ :href => '/suppliers/' + payment.supplier.slug } | |||||
= payment.supplier.name | = payment.supplier.name | ||||
%td.right= sprintf("%0d", payment.amount) | %td.right= sprintf("%0d", payment.amount) | ||||
@@ -7,5 +7,5 @@ | |||||
- for directorate in @directorates | - for directorate in @directorates | ||||
%p | %p | ||||
%a{ :href=> "/directorates/#{directorate.id}" } | |||||
%a{ :href=> "/directorates/#{directorate.slug}" } | |||||
= directorate.name | = directorate.name |
@@ -9,7 +9,7 @@ | |||||
%li | %li | ||||
= @service.name | = @service.name | ||||
%p.noprint.download | %p.noprint.download | ||||
%a{ :href => "/services/#{@service.id}.csv" } | |||||
%a{ :href => "/services/#{@service.slug}.csv" } | |||||
Download data as CSV | Download data as CSV | ||||
%table | %table | ||||
@@ -23,10 +23,10 @@ | |||||
%tr | %tr | ||||
%td= payment.d.strftime("%d %b %Y") | %td= payment.d.strftime("%d %b %Y") | ||||
%td | %td | ||||
%a{ :href => '/directorates/' + payment.directorate.id.to_s } | |||||
%a{ :href => '/directorates/' + payment.directorate.slug } | |||||
= payment.directorate.name | = payment.directorate.name | ||||
%td | %td | ||||
%a{ :href => '/suppliers/' + payment.supplier.id.to_s } | |||||
%a{ :href => '/suppliers/' + payment.supplier.slug } | |||||
= payment.supplier.name | = payment.supplier.name | ||||
%td.right= sprintf("%0d", payment.amount) | %td.right= sprintf("%0d", payment.amount) | ||||
@@ -9,5 +9,5 @@ | |||||
- for service in @services | - for service in @services | ||||
%p | %p | ||||
%a{ :href=> "/services/#{service.id}" } | |||||
%a{ :href=> "/services/#{service.slug}" } | |||||
= service.name | = service.name |
@@ -10,7 +10,7 @@ | |||||
= @supplier.name | = @supplier.name | ||||
%p.noprint.download | %p.noprint.download | ||||
%a{ :href => "/suppliers/#{@supplier.id}.csv" } | |||||
%a{ :href => "/suppliers/#{@supplier.slug}.csv" } | |||||
Download data as CSV | Download data as CSV | ||||
%table | %table | ||||
@@ -24,10 +24,10 @@ | |||||
%tr | %tr | ||||
%td= payment.d.strftime("%d %b %Y") | %td= payment.d.strftime("%d %b %Y") | ||||
%td | %td | ||||
%a{ :href => '/directorates/' + payment.directorate.id.to_s } | |||||
%a{ :href => '/directorates/' + payment.directorate.slug } | |||||
= payment.directorate.name | = payment.directorate.name | ||||
%td | %td | ||||
%a{ :href => '/services/' + payment.service.id.to_s } | |||||
%a{ :href => '/services/' + payment.service.slug } | |||||
= payment.service.name | = payment.service.name | ||||
%td.right= sprintf("%0d", payment.amount) | %td.right= sprintf("%0d", payment.amount) | ||||
@@ -9,5 +9,5 @@ | |||||
- for supplier in @suppliers | - for supplier in @suppliers | ||||
%p | %p | ||||
%a{ :href=> "/suppliers/#{supplier.id}" } | |||||
%a{ :href=> "/suppliers/#{supplier.slug}" } | |||||
= supplier.name | = supplier.name |