aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZog2018-01-11 13:34:30 +0100
committerZog2018-01-11 13:34:30 +0100
commit8b3702a4c7f873e01e543034841de5dbecc30c06 (patch)
tree47f59d9dcc722dfb9993e99f1e2d979eabc6ffbe
parent40546b58557a939ceb6f60c1dfc8ff14444e9d20 (diff)
downloadchouette-core-8b3702a4c7f873e01e543034841de5dbecc30c06.tar.bz2
Refs #5551; Update CustomField api to better suit JS API needs
-rw-r--r--app/models/chouette/vehicle_journey.rb9
-rw-r--r--spec/models/custom_field_spec.rb11
2 files changed, 17 insertions, 3 deletions
diff --git a/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb
index a8c9c1824..32f3cb731 100644
--- a/app/models/chouette/vehicle_journey.rb
+++ b/app/models/chouette/vehicle_journey.rb
@@ -256,8 +256,15 @@ module Chouette
end
end
+ def self.custom_fields
+ CustomField.where(resource_type: self.name.split("::").last)
+ end
+
+
def custom_fields
- CustomField.where(resource_type: self.class.name.split("::").last)
+ Hash[*self.class.custom_fields.map do |v|
+ [v.code, v.slice(:code, :name, :field_type, :options).update(value: custom_field_value(v.code))]
+ end.flatten]
end
def custom_field_value key
diff --git a/spec/models/custom_field_spec.rb b/spec/models/custom_field_spec.rb
index 80873683c..6ebf994db 100644
--- a/spec/models/custom_field_spec.rb
+++ b/spec/models/custom_field_spec.rb
@@ -17,8 +17,15 @@ RSpec.describe CustomField, type: :model do
context "custom fields for a resource" do
- let!( :fields ){ (1..2).map{ create :custom_field } }
- it { expect(vj.custom_fields).to eq(fields) }
+ let!( :fields ){ [create(:custom_field), create(:custom_field, code: :energy)] }
+ let!( :instance_fields ){
+ {
+ fields[0].code => fields[0].slice(:code, :name, :field_type, :options).update(value: nil),
+ "energy" => fields[1].slice(:code, :name, :field_type, :options).update(value: 99)
+ }
+ }
+ it { expect(Chouette::VehicleJourney.custom_fields).to eq(fields) }
+ it { expect(vj.custom_fields).to eq(instance_fields) }
end
context "custom field_values for a resource" do