diff options
| author | Zog | 2018-01-11 13:34:30 +0100 |
|---|---|---|
| committer | Zog | 2018-01-11 13:34:30 +0100 |
| commit | 8b3702a4c7f873e01e543034841de5dbecc30c06 (patch) | |
| tree | 47f59d9dcc722dfb9993e99f1e2d979eabc6ffbe | |
| parent | 40546b58557a939ceb6f60c1dfc8ff14444e9d20 (diff) | |
| download | chouette-core-8b3702a4c7f873e01e543034841de5dbecc30c06.tar.bz2 | |
Refs #5551; Update CustomField api to better suit JS API needs
| -rw-r--r-- | app/models/chouette/vehicle_journey.rb | 9 | ||||
| -rw-r--r-- | spec/models/custom_field_spec.rb | 11 |
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 |
