osm 1.2.18.dev.12 → 1.2.18.dev.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzIwZmViMGJkNTFjNzg0MjA4N2IxYmNmMGQyYTExMDEyYzU4YTUwYw==
4
+ N2VjMTQzMTkxZGVmOTQwNDc5Y2U5OWZiMjA3ODEwMmY4MTMyMThiNg==
5
5
  data.tar.gz: !binary |-
6
- MzBlYjljYTQ5YTU0NDJlNjU2ZTJmNzFkNTYxZTI3NzMxMTJkYzgzNw==
6
+ ZTRlYjNiNDlhYTZlYjM3MmI3NmUxMzE2MmEyY2JjZTdiYTA3N2YzMw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- Y2Q2OTgwNmM1ZmVjZTNlODMyZTU1NjkxMmM1NmI5MmY4MWQ4ZWJlMGIxMTNk
10
- MGJmMjUxNmI3NWM2MjY0NzMyZGQ0NzNmN2ZlMmVlNmY3YTRkODZhYTRiZjNl
11
- MDA1NTBlMGU0MmQ5NDBiNjM2MDk2OTk5ZDRiMjYyMDNlNWVmNjk=
9
+ YjllZDZmOGQxMTVlY2YwZDc1NTFhNGI2Y2IwZmE1ODIxM2ZmNTYzYjQ2MzYz
10
+ ZjRkN2Y5MmVjZWI4ZjI3NTJmNTY2OTM3ZWIxODM1NDcxNGFkNWY2ZTJkZjAw
11
+ ODdlNWVjOTMxNjBhNjA2NzM4Zjc4NjUwM2I1NzE2ZjRmOGYwNjc=
12
12
  data.tar.gz: !binary |-
13
- NDQ4ZTgyYWViYjdmNzJjYzg4YjA0ZmNmYmJiYjNkYWU3MTMxYzBhNGU5YTU0
14
- MDhlMmQ2NTE3NzVjZDUwOTg4ZmQ0MDEwMDY1NDJhMDNhOTBiZTYzZWVlMDNh
15
- MzdjODAzODIyYmM1Yjg2ZWJlNjE1NDQwOGQ0MGEyMjg2ZWE1OGM=
13
+ ZTU0OGVkNmJmZTMwNjhhOTU0ZTNkMzIzZWY4YWE0YTExMWU2MTJjMDcwMGIy
14
+ NjA1ZGM3NjQ1M2NmOTM1OTljOTEyMTRiNjg0YjRjNTYxYzM2NDBkZDIyNjYw
15
+ OWQ0MjJkMjgzYzQ4NDk5MmQyN2QzYzE3NzU4YjAxZGMwNjgwYjk=
data/CHANGELOG.md CHANGED
@@ -14,7 +14,6 @@
14
14
  * grouping_leader
15
15
  * age
16
16
  * Addition of attibutes:
17
- * title (String)
18
17
  * gender (Symbol - :male, :female, :other or :unspecified)
19
18
  * finished_section (Date, nil)
20
19
  * additional_information (DirtyHashy) - The customisable data part from OSM
data/lib/osm/member.rb CHANGED
@@ -11,7 +11,6 @@ module Osm
11
11
  GID_FLOATING = 7
12
12
 
13
13
  # Constants for column id
14
- CID_TITLE = 1
15
14
  CID_FIRST_NAME = 2
16
15
  CID_LAST_NAME = 3
17
16
  CID_ADDRESS_1 = 7
@@ -36,8 +35,6 @@ module Osm
36
35
  # @return [Fixnum] the id for the member
37
36
  # @!attribute [rw] section_id
38
37
  # @return [Fixnum] the section the member belongs to
39
- # @!attribute [rw] title
40
- # @return [String] the member's title (Mr, Mrs etc.)
41
38
  # @!attribute [rw] first_name
42
39
  # @return [String] the member's first name
43
40
  # @!attribute [rw] last_name
@@ -79,7 +76,6 @@ module Osm
79
76
 
80
77
  attribute :id, :type => Integer
81
78
  attribute :section_id, :type => Integer
82
- attribute :title, :type => String
83
79
  attribute :first_name, :type => String
84
80
  attribute :last_name, :type => String
85
81
  attribute :grouping_id, :type => Integer
@@ -101,7 +97,7 @@ module Osm
101
97
  attribute :doctor, :type => Object
102
98
 
103
99
  if ActiveModel::VERSION::MAJOR < 4
104
- attr_accessible :id, :section_id, :title, :first_name, :last_name,
100
+ attr_accessible :id, :section_id, :first_name, :last_name,
105
101
  :grouping_id, :grouping_leader,
106
102
  :date_of_birth, :started_section, :finished_section, :joined_movement, :age,
107
103
  :grouping_label, :grouping_leader_label, :gender,
@@ -162,32 +158,30 @@ module Osm
162
158
  structure = Hash[ structure.map{ |i| [i['group_id'].to_i, i ] } ] # Make a hash of identifier to group data hash
163
159
 
164
160
  custom_labels = {}
165
- var_names = {}
161
+ key_key = 'column_id' # the key in the data from OSM to use as the key in additional_information and labels hashes
166
162
  structure.each do |gid, group|
167
163
  columns = group['columns'] || []
168
- custom_labels[gid.to_i] = Hash[ columns.map.select{ |a| gid.eql?(GID_CUSTOM) || !CORE_FIELD_IDS.include?(a['column_id'].to_i) }.map{ |c| [c['varname'], c['label']] } ]
169
- var_names[gid.to_i] = DirtyHashy[ columns.map{ |c| [c['column_id'].to_i, c['varname']] } ]
164
+ custom_labels[gid.to_i] = Hash[ columns.map.select{ |a| gid.eql?(GID_CUSTOM) || !CORE_FIELD_IDS.include?(a['column_id'].to_i) }.map{ |c| [c[key_key], c['label']] } ]
170
165
  end
171
166
 
172
167
  data.each do |item|
173
168
  item_data = Hash[ item['custom_data'].map{ |k,v| [k.to_i, v] } ]
174
169
  member_contact = item_data[GID_MEMBER_CONTACT].nil? ? nil : Hash[ item_data[GID_MEMBER_CONTACT].map{ |k,v| [k.to_i, v] }.select{ |k,v| CORE_FIELD_IDS.include?(k) } ]
175
- member_custom = item_data[GID_MEMBER_CONTACT].nil? ? DirtyHashy.new : DirtyHashy[ item_data[GID_MEMBER_CONTACT].select{ |k,v| !(CORE_FIELD_IDS - [CID_TITLE]).include?(k.to_i) }.map{ |k,v| [var_names[GID_MEMBER_CONTACT][k.to_i], v] } ]
170
+ member_custom = item_data[GID_MEMBER_CONTACT].nil? ? DirtyHashy.new : DirtyHashy[ item_data[GID_MEMBER_CONTACT].select{ |k,v| !CORE_FIELD_IDS.include?(k.to_i) }.map{ |k,v| [k.to_i, v] } ]
176
171
  primary_contact = item_data[GID_PRIMARY_CONTACT].nil? ? nil : Hash[ item_data[GID_PRIMARY_CONTACT].map{ |k,v| [k.to_i, v] }.select{ |k,v| CORE_FIELD_IDS.include?(k) } ]
177
- primary_custom = item_data[GID_PRIMARY_CONTACT].nil? ? DirtyHashy.new : DirtyHashy[ item_data[GID_PRIMARY_CONTACT].select{ |k,v| !CORE_FIELD_IDS.include?(k.to_i) }.map{ |k,v| [var_names[GID_PRIMARY_CONTACT][k.to_i], v] } ]
172
+ primary_custom = item_data[GID_PRIMARY_CONTACT].nil? ? DirtyHashy.new : DirtyHashy[ item_data[GID_PRIMARY_CONTACT].select{ |k,v| !CORE_FIELD_IDS.include?(k.to_i) }.map{ |k,v| [k.to_i, v] } ]
178
173
  secondary_contact = item_data[GID_SECONDARY_CONTACT].nil? ? nil : Hash[ item_data[GID_SECONDARY_CONTACT].map{ |k,v| [k.to_i, v] }.select{ |k,v| CORE_FIELD_IDS.include?(k) } ]
179
- secondary_custom = item_data[GID_SECONDARY_CONTACT].nil? ? DirtyHashy.new : DirtyHashy[ item_data[GID_SECONDARY_CONTACT].select{ |k,v| !CORE_FIELD_IDS.include?(k.to_i) }.map{ |k,v| [var_names[GID_SECONDARY_CONTACT][k.to_i], v] } ]
174
+ secondary_custom = item_data[GID_SECONDARY_CONTACT].nil? ? DirtyHashy.new : DirtyHashy[ item_data[GID_SECONDARY_CONTACT].select{ |k,v| !CORE_FIELD_IDS.include?(k.to_i) }.map{ |k,v| [k.to_i, v] } ]
180
175
  emergency_contact = item_data[GID_EMERGENCY_CONTACT].nil? ? nil : Hash[ item_data[GID_EMERGENCY_CONTACT].map{ |k,v| [k.to_i, v] }.select{ |k,v| CORE_FIELD_IDS.include?(k) } ]
181
- emergency_custom = item_data[GID_EMERGENCY_CONTACT].nil? ? DirtyHashy.new : DirtyHashy[ item_data[GID_EMERGENCY_CONTACT].select{ |k,v| !CORE_FIELD_IDS.include?(k.to_i) }.map{ |k,v| [var_names[GID_EMERGENCY_CONTACT][k.to_i], v] } ]
176
+ emergency_custom = item_data[GID_EMERGENCY_CONTACT].nil? ? DirtyHashy.new : DirtyHashy[ item_data[GID_EMERGENCY_CONTACT].select{ |k,v| !CORE_FIELD_IDS.include?(k.to_i) }.map{ |k,v| [k.to_i, v] } ]
182
177
  doctor_contact = item_data[GID_DOCTOR_CONTACT].nil? ? nil : Hash[ item_data[GID_DOCTOR_CONTACT].map{ |k,v| [k.to_i, v] }.select{ |k,v| CORE_FIELD_IDS.include?(k) } ]
183
- doctor_custom = item_data[GID_DOCTOR_CONTACT].nil? ? DirtyHashy.new : DirtyHashy[ item_data[GID_DOCTOR_CONTACT].select{ |k,v| !CORE_FIELD_IDS.include?(k.to_i) }.map{ |k,v| [var_names[GID_DOCTOR_CONTACT][k.to_i], v] } ]
178
+ doctor_custom = item_data[GID_DOCTOR_CONTACT].nil? ? DirtyHashy.new : DirtyHashy[ item_data[GID_DOCTOR_CONTACT].select{ |k,v| !CORE_FIELD_IDS.include?(k.to_i) }.map{ |k,v| [k.to_i, v] } ]
184
179
  floating_data = item_data[GID_FLOATING].nil? ? {} : Hash[ item_data[GID_FLOATING].map{ |k,v| [k.to_i, v] }.select{ |k,v| CORE_FIELD_IDS.include?(k) } ]
185
- custom_data = item_data[GID_CUSTOM].nil? ? DirtyHashy.new : DirtyHashy[ item_data[GID_CUSTOM].map{ |k,v| [var_names[GID_CUSTOM][k.to_i], v] } ]
180
+ custom_data = item_data[GID_CUSTOM].nil? ? DirtyHashy.new : DirtyHashy[ item_data[GID_CUSTOM].map{ |k,v| [k.to_i, v] } ]
186
181
 
187
182
  result.push Osm::Member.new(
188
183
  :id => Osm::to_i_or_nil(item['member_id']),
189
184
  :section_id => Osm::to_i_or_nil(item['section_id']),
190
- :title => custom_data['title'],
191
185
  :first_name => item['first_name'],
192
186
  :last_name => item['last_name'],
193
187
  :grouping_id => Osm::to_i_or_nil(item['patrol_id']),
@@ -201,7 +195,6 @@ module Osm
201
195
  :joined_movement => Osm::parse_date(item['started']),
202
196
  :gender => {'male'=>:male, 'female'=>:female, 'other'=>:other, 'unspecified'=>:unspecified}[(floating_data[CID_GENDER] || '').downcase],
203
197
  :contact => member_contact.nil? ? nil : MemberContact.new(
204
- title: member_contact[CID_TITLE],
205
198
  first_name: item['first_name'],
206
199
  last_name: item['last_name'],
207
200
  address_1: member_contact[CID_ADDRESS_1],
@@ -217,11 +210,10 @@ module Osm
217
210
  receive_phone_2: member_contact[CID_RECIEVE_PHONE_2],
218
211
  receive_email_1: member_contact[CID_RECIEVE_EMAIL_1],
219
212
  receive_email_2: member_contact[CID_RECIEVE_EMAIL_2],
220
- additional_information: DirtyHashy[ member_custom.select{ |k,v| !['title'].include?(k) } ],
213
+ additional_information: member_custom,
221
214
  additional_information_labels: custom_labels[GID_MEMBER_CONTACT],
222
215
  ),
223
216
  :primary_contact => primary_contact.nil? ? nil : PrimaryContact.new(
224
- title: primary_contact[CID_TITLE],
225
217
  first_name: primary_contact[CID_FIRST_NAME],
226
218
  last_name: primary_contact[CID_LAST_NAME],
227
219
  address_1: primary_contact[CID_ADDRESS_1],
@@ -241,7 +233,6 @@ module Osm
241
233
  additional_information_labels: custom_labels[GID_PRIMARY_CONTACT],
242
234
  ),
243
235
  :secondary_contact => secondary_contact.nil? ? nil : SecondaryContact.new(
244
- title: secondary_contact[CID_TITLE],
245
236
  first_name: secondary_contact[CID_FIRST_NAME],
246
237
  last_name: secondary_contact[CID_LAST_NAME],
247
238
  address_1: secondary_contact[CID_ADDRESS_1],
@@ -261,7 +252,6 @@ module Osm
261
252
  additional_information_labels: custom_labels[GID_SECONDARY_CONTACT],
262
253
  ),
263
254
  :emergency_contact => emergency_contact.nil? ? nil : EmergencyContact.new(
264
- title: emergency_contact[CID_TITLE],
265
255
  first_name: emergency_contact[CID_FIRST_NAME],
266
256
  last_name: emergency_contact[CID_LAST_NAME],
267
257
  address_1: emergency_contact[CID_ADDRESS_1],
@@ -277,7 +267,6 @@ module Osm
277
267
  additional_information_labels: custom_labels[GID_EMERGENCY_CONTACT],
278
268
  ),
279
269
  :doctor => doctor_contact.nil? ? nil : DoctorContact.new(
280
- title: doctor_contact[CID_TITLE],
281
270
  first_name: doctor_contact[CID_FIRST_NAME],
282
271
  last_name: doctor_contact[CID_LAST_NAME],
283
272
  surgery: doctor_contact[CID_SURGERY],
@@ -291,8 +280,8 @@ module Osm
291
280
  additional_information: doctor_custom,
292
281
  additional_information_labels: custom_labels[GID_DOCTOR_CONTACT],
293
282
  ),
294
- additional_information: DirtyHashy[ custom_data.select{ |k,v| !['title'].include?(k) } ],
295
- additional_information_labels: custom_labels[GID_CUSTOM].select{ |k,v| !['title'].include?(k) },
283
+ additional_information: custom_data,
284
+ additional_information_labels: custom_labels[GID_CUSTOM],
296
285
  )
297
286
  end
298
287
 
@@ -370,19 +359,6 @@ module Osm
370
359
  updated = updated && data.is_a?(Hash) && data['ok'].eql?(true)
371
360
  end # each attr to update
372
361
 
373
- # Do title attribute
374
- if force || changed_attributes.include?('title')
375
- data = api.perform_query("ext/customdata/?action=updateColumn&section_id=#{section_id}", {
376
- 'associated_id' => self.id,
377
- 'associated_type' => 'member',
378
- 'value' => title,
379
- 'column_id' => CID_TITLE,
380
- 'group_id' => GID_CUSTOM,
381
- 'context' => 'members',
382
- })
383
- updated = updated && data.is_a?(Hash) && data['data'].is_a?(Hash) && data['data']['value'].eql?(title)
384
- end
385
-
386
362
  # Do 'floating' attributes
387
363
  if force || changed_attributes.include?('gender')
388
364
  new_value = {male: 'Male', female: 'Female', other: 'Other'}[gender] || 'Unspecified'
@@ -443,10 +419,10 @@ module Osm
443
419
  end
444
420
 
445
421
  # Get the full name
446
- # @param [String] seperator What to split the member's title, first name and last name with
422
+ # @param [String] seperator What to split the member's first name and last name with
447
423
  # @return [String] this scout's full name seperated by the optional seperator
448
424
  def name(seperator=' ')
449
- return [(title? ? "#{title}." : nil), first_name, last_name].select{ |i| !i.blank? }.join(seperator)
425
+ return [first_name, last_name].select{ |i| !i.blank? }.join(seperator)
450
426
  end
451
427
 
452
428
  # Check if the member is in the leaders grouping
@@ -634,8 +610,6 @@ module Osm
634
610
 
635
611
 
636
612
  class Contact < Osm::Model
637
- # @!attribute [rw] title
638
- # @return [String] the contact's title (Mr, Ms, Dr etc.)
639
613
  # @!attribute [rw] first_name
640
614
  # @return [String] the contact's first name
641
615
  # @!attribute [rw] last_name
@@ -659,7 +633,6 @@ module Osm
659
633
  # @!attribute [rw] additional_information_labels
660
634
  # @return [DirtyHashy] the labels for the additional information (key is OSM's variable name, value is the label)
661
635
 
662
- attribute :title, :type => String
663
636
  attribute :first_name, :type => String
664
637
  attribute :last_name, :type => String
665
638
  attribute :address_1, :type => String
@@ -673,7 +646,7 @@ module Osm
673
646
  attribute :additional_information_labels, :type => Object, :default => DirtyHashy.new
674
647
 
675
648
  if ActiveModel::VERSION::MAJOR < 4
676
- attr_accessible :title, :first_name, :last_name,
649
+ attr_accessible :first_name, :last_name,
677
650
  :address_1, :address_2, :address_3, :address_4,
678
651
  :postcode, :phone_1, :phone_2,
679
652
  :additional_information, :additional_information_labels
@@ -684,10 +657,10 @@ module Osm
684
657
  # @param [Hash] attributes The hash of attributes (see attributes for descriptions, use Symbol of attribute name as the key)
685
658
 
686
659
  # Get the full name
687
- # @param [String] seperator What to split the contact's title, first name and last name with
660
+ # @param [String] seperator What to split the contact's first name and last name with
688
661
  # @return [String] this scout's full name seperated by the optional seperator
689
662
  def name(seperator=' ')
690
- return [(title? ? "#{title}." : nil), first_name, last_name].select{ |i| !i.blank? }.join(seperator)
663
+ return [first_name, last_name].select{ |i| !i.blank? }.join(seperator)
691
664
  end
692
665
 
693
666
  # Get an array of all phone numbers for the contact
@@ -707,7 +680,6 @@ module Osm
707
680
  require_ability_to(api, :write, :member, member.section_id)
708
681
 
709
682
  attribute_map = {
710
- 'title' => 'data[title]',
711
683
  'first_name' => 'data[firstname]',
712
684
  'last_name' => 'data[lastname]',
713
685
  'surgery' => 'data[surgery]',
@@ -7,7 +7,6 @@ describe "Member" do
7
7
  attributes = {
8
8
  :id => 1,
9
9
  :section_id => 2,
10
- :title => 'Title',
11
10
  :first_name => 'First',
12
11
  :last_name => 'Last',
13
12
  :date_of_birth => '2000-01-02',
@@ -32,7 +31,6 @@ describe "Member" do
32
31
 
33
32
  member.id.should == 1
34
33
  member.section_id.should == 2
35
- member.title.should == 'Title'
36
34
  member.first_name.should == 'First'
37
35
  member.last_name.should == 'Last'
38
36
  member.date_of_birth.should == Date.new(2000, 1, 2)
@@ -60,16 +58,16 @@ describe "Member" do
60
58
 
61
59
  it "Member" do
62
60
  Osm::Member.new(first_name: 'First').name.should == 'First'
61
+ Osm::Member.new(last_name: 'Last').name.should == 'Last'
63
62
  Osm::Member.new(first_name: 'First', last_name: 'Last').name.should == 'First Last'
64
- Osm::Member.new(title: 'Mr', first_name: 'First', last_name: 'Last').name.should == 'Mr. First Last'
65
- Osm::Member.new(title: 'Mr', first_name: 'First', last_name: 'Last').name('*').should == 'Mr.*First*Last'
63
+ Osm::Member.new(first_name: 'First', last_name: 'Last').name('*').should == 'First*Last'
66
64
  end
67
65
 
68
66
  it "Contact" do
69
67
  Osm::Member::Contact.new(first_name: 'First').name.should == 'First'
68
+ Osm::Member::Contact.new(last_name: 'Last').name.should == 'Last'
70
69
  Osm::Member::Contact.new(first_name: 'First', last_name: 'Last').name.should == 'First Last'
71
- Osm::Member::Contact.new(title: 'Mr', first_name: 'First', last_name: 'Last').name.should == 'Mr. First Last'
72
- Osm::Member::Contact.new(title: 'Mr', first_name: 'First', last_name: 'Last').name('*').should == 'Mr.*First*Last'
70
+ Osm::Member::Contact.new(first_name: 'First', last_name: 'Last').name('*').should == 'First*Last'
73
71
  end
74
72
 
75
73
  end
@@ -177,11 +175,11 @@ describe "Member" do
177
175
  'section_id' => 1,
178
176
  'started' => '2006-07-17',
179
177
  'custom_data' => {
180
- '1' => {'1' => 'Mrs', '2' => 'Primary', '3' => 'Contact', '7' => 'Address 1', '8' => 'Address 2', '9' => 'Address 3', '10' => 'Address 4', '11' => 'Postcode', '12' => 'primary@example.com', '13' => 'yes', '14' => '', '15' => '', '18' => '01234 567890', '19' => 'yes', '20' => '0987 654321', '21' => '', '8441' => 'Data for 8441'},
178
+ '1' => {'2' => 'Primary', '3' => 'Contact', '7' => 'Address 1', '8' => 'Address 2', '9' => 'Address 3', '10' => 'Address 4', '11' => 'Postcode', '12' => 'primary@example.com', '13' => 'yes', '14' => '', '15' => '', '18' => '01234 567890', '19' => 'yes', '20' => '0987 654321', '21' => '', '8441' => 'Data for 8441'},
181
179
  '2' => {'2' => 'Secondary', '3' => 'Contact', '7' => 'Address 1', '8' => 'Address 2', '9' => 'Address 3', '10' => 'Address 4', '11' => 'Postcode', '12' => 'secondary@example.com', '13' => 'yes', '14' => '', '15' => '', '18' => '01234 567890', '19' => 'yes', '20' => '0987 654321', '21' => '', '8442' => 'Data for 8442'},
182
180
  '3' => {'2' => 'Emergency', '3' => 'Contact', '7' => 'Address 1', '8' => 'Address 2', '9' => 'Address 3', '10' => 'Address 4', '11' => 'Postcode', '12' => 'emergency@example.com', '14' => '', '18' => '01234 567890', '20' => '0987 654321', '21' => '', '8443' => 'Data for 8443'},
183
- '4' => {'1' => 'Dr', '2' => 'Doctor', '3' => 'Contact', '7' => 'Address 1', '8' => 'Address 2', '9' => 'Address 3', '10' => 'Address 4', '11' => 'Postcode', '18' => '01234 567890', '20' => '0987 654321', '21' => '', '54' => 'Surgery', '8444' => 'Data for 8444'},
184
- '5' => {'1' => 'Mr', '4848' => 'Data for 4848'},
181
+ '4' => {'2' => 'Doctor', '3' => 'Contact', '7' => 'Address 1', '8' => 'Address 2', '9' => 'Address 3', '10' => 'Address 4', '11' => 'Postcode', '18' => '01234 567890', '20' => '0987 654321', '21' => '', '54' => 'Surgery', '8444' => 'Data for 8444'},
182
+ '5' => {'4848' => 'Data for 4848'},
185
183
  '6' => {'7' => 'Address 1', '8' => 'Address 2', '9' => 'Address 3', '10' => 'Address 4', '11' => 'Postcode', '12' => 'member@example.com', '13' => 'yes', '14' => '', '15' => '', '18' => '01234 567890', '19' => 'yes', '20' => '0987 654321', '21' => '', '8446' => 'Data for 8446'},
186
184
  '7' => {'34' => 'Unspecified'},
187
185
  },
@@ -262,7 +260,6 @@ describe "Member" do
262
260
  {'column_id' => 8446, 'group_column_id' => '6_8446', 'label' => 'Label for 8446', 'varname' => 'label_for_8446', 'read_only' => 'no', 'required' => 'no', 'type' => 'text', 'width' => 120},
263
261
  ]},
264
262
  {'group_id' => 5, 'description' => 'This allows you to add extra information for your members.', 'identifier' => 'customisable_data', 'name' => 'Customisable Data', 'columns' => [
265
- {'column_id' => 1, 'group_column_id' => '5_1', 'label' => 'Title', 'varname' => 'title', 'read_only' => 'no', 'required' => 'no', 'type' => 'text', 'width' => 120},
266
263
  {'column_id' => 4848, 'group_column_id' => '5_4848', 'label' => 'Label for 4848', 'varname' => 'label_for_4848', 'read_only' => 'no', 'required' => 'no', 'type' => 'text', 'width' => 120},
267
264
  ]},
268
265
  {'group_id' => 7, 'description' => '', 'identifier' => 'floating', 'name' => 'Floating', 'columns' => [
@@ -278,7 +275,6 @@ describe "Member" do
278
275
  member = members[0]
279
276
  member.id.should == 123
280
277
  member.section_id.should == 1
281
- member.title.should == 'Mr'
282
278
  member.first_name.should == 'John'
283
279
  member.last_name.should == 'Smith'
284
280
  member.date_of_birth.should == Date.new(2000, 3, 8)
@@ -291,8 +287,8 @@ describe "Member" do
291
287
  member.joined_movement.should == Date.new(2006, 7, 17)
292
288
  member.started_section.should == Date.new(2008, 7, 12)
293
289
  member.finished_section.should == Date.new(2010, 6, 3)
294
- member.additional_information.should == {"label_for_4848" => "Data for 4848"}
295
- member.additional_information_labels.should == {"label_for_4848" => 'Label for 4848'}
290
+ member.additional_information.should == {4848 => "Data for 4848"}
291
+ member.additional_information_labels.should == {4848 => 'Label for 4848'}
296
292
  member.contact.first_name.should == 'John'
297
293
  member.contact.last_name.should == 'Smith'
298
294
  member.contact.address_1.should == 'Address 1'
@@ -308,9 +304,8 @@ describe "Member" do
308
304
  member.contact.receive_email_1.should == true
309
305
  member.contact.email_2.should == ''
310
306
  member.contact.receive_email_2.should == false
311
- member.contact.additional_information.should == {"label_for_8446"=>"Data for 8446"}
312
- member.contact.additional_information_labels.should == {"label_for_8446"=>"Label for 8446"}
313
- member.primary_contact.title.should == 'Mrs'
307
+ member.contact.additional_information.should == {8446=>"Data for 8446"}
308
+ member.contact.additional_information_labels.should == {8446=>"Label for 8446"}
314
309
  member.primary_contact.first_name.should == 'Primary'
315
310
  member.primary_contact.last_name.should == 'Contact'
316
311
  member.primary_contact.address_1.should == 'Address 1'
@@ -326,8 +321,8 @@ describe "Member" do
326
321
  member.primary_contact.receive_email_1.should == true
327
322
  member.primary_contact.email_2.should == ''
328
323
  member.primary_contact.receive_email_2.should == false
329
- member.primary_contact.additional_information.should == {"label_for_8441"=>"Data for 8441"}
330
- member.primary_contact.additional_information_labels.should == {"label_for_8441"=>"Label for 8441"}
324
+ member.primary_contact.additional_information.should == {8441=>"Data for 8441"}
325
+ member.primary_contact.additional_information_labels.should == {8441=>"Label for 8441"}
331
326
  member.secondary_contact.first_name.should == 'Secondary'
332
327
  member.secondary_contact.last_name.should == 'Contact'
333
328
  member.secondary_contact.address_1.should == 'Address 1'
@@ -343,8 +338,8 @@ describe "Member" do
343
338
  member.secondary_contact.receive_email_1.should == true
344
339
  member.secondary_contact.email_2.should == ''
345
340
  member.secondary_contact.receive_email_2.should == false
346
- member.secondary_contact.additional_information.should == {"label_for_8442"=>"Data for 8442"}
347
- member.secondary_contact.additional_information_labels.should == {"label_for_8442"=>"Label for 8442"}
341
+ member.secondary_contact.additional_information.should == {8442=>"Data for 8442"}
342
+ member.secondary_contact.additional_information_labels.should == {8442=>"Label for 8442"}
348
343
  member.emergency_contact.first_name.should == 'Emergency'
349
344
  member.emergency_contact.last_name.should == 'Contact'
350
345
  member.emergency_contact.address_1.should == 'Address 1'
@@ -356,9 +351,8 @@ describe "Member" do
356
351
  member.emergency_contact.phone_2.should == '0987 654321'
357
352
  member.emergency_contact.email_1.should == 'emergency@example.com'
358
353
  member.emergency_contact.email_2.should == ''
359
- member.emergency_contact.additional_information.should == {"label_for_8443"=>"Data for 8443"}
360
- member.emergency_contact.additional_information_labels.should == {"label_for_8443"=>"Label for 8443"}
361
- member.doctor.title.should == 'Dr'
354
+ member.emergency_contact.additional_information.should == {8443=>"Data for 8443"}
355
+ member.emergency_contact.additional_information_labels.should == {8443=>"Label for 8443"}
362
356
  member.doctor.first_name.should == 'Doctor'
363
357
  member.doctor.last_name.should == 'Contact'
364
358
  member.doctor.surgery.should == 'Surgery'
@@ -369,8 +363,8 @@ describe "Member" do
369
363
  member.doctor.postcode.should == 'Postcode'
370
364
  member.doctor.phone_1.should == '01234 567890'
371
365
  member.doctor.phone_2.should == '0987 654321'
372
- member.doctor.additional_information.should == {"label_for_8444"=>"Data for 8444"}
373
- member.doctor.additional_information_labels.should == {"label_for_8444"=>"Label for 8444"}
366
+ member.doctor.additional_information.should == {8444=>"Data for 8444"}
367
+ member.doctor.additional_information_labels.should == {8444=>"Label for 8444"}
374
368
  member.valid?.should == true
375
369
  end
376
370
 
@@ -546,7 +540,6 @@ describe "Member" do
546
540
  before :each do
547
541
  attributes = {
548
542
  :section_id => 2,
549
- :title => 'Title',
550
543
  :first_name => 'First',
551
544
  :last_name => 'Last',
552
545
  :date_of_birth => '2000-01-02',
@@ -634,7 +627,6 @@ describe "Member" do
634
627
  attributes = {
635
628
  :id => 1,
636
629
  :section_id => 2,
637
- :title => 'Title',
638
630
  :first_name => 'First',
639
631
  :last_name => 'Last',
640
632
  :date_of_birth => '2000-01-02',
@@ -647,8 +639,8 @@ describe "Member" do
647
639
  :joined_movement => '2006-01-02',
648
640
  :started_section => '2006-01-07',
649
641
  :finished_section => '2007-12-31',
650
- :additional_information => DirtyHashy[ '12_3', '123' ],
651
- :additional_information_labels => {'12_3' => 'Label for 123'},
642
+ :additional_information => DirtyHashy[ 123, '123' ],
643
+ :additional_information_labels => {123 => 'Label for 123'},
652
644
  :contact => Osm::Member::MemberContact.new(postcode: 'A'),
653
645
  :primary_contact => Osm::Member::PrimaryContact.new(postcode: 'B'),
654
646
  :secondary_contact => Osm::Member::SecondaryContact.new(postcode: 'C'),
@@ -753,7 +745,7 @@ describe "Member" do
753
745
  "associated_type" => "member",
754
746
  "associated_id" => 1,
755
747
  "group_id" => 5,
756
- "column_id" => "12_3",
748
+ "column_id" => 123,
757
749
  "value" => "321",
758
750
  }}) { OsmTest::DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"data":{"value":"321"}}'}) }
759
751
 
@@ -761,7 +753,7 @@ describe "Member" do
761
753
 
762
754
  @member.first_name = 'John'
763
755
  @member.gender = :unspecified
764
- @member.additional_information['12_3'] = '321'
756
+ @member.additional_information[123] = '321'
765
757
  @member.contact.address_1 = 'Address 1'
766
758
  @member.primary_contact.address_2 = 'Address 2'
767
759
  @member.secondary_contact.address_3 = 'Address 3'
@@ -807,7 +799,7 @@ describe "Member" do
807
799
  "associated_type" => "member",
808
800
  "associated_id" => 1,
809
801
  "group_id" => 5,
810
- "column_id" => "12_3",
802
+ "column_id" => 123,
811
803
  "value" => "123",
812
804
  }}) { OsmTest::DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"data":{"value":"123"}}'}) }
813
805
 
@@ -821,7 +813,6 @@ describe "Member" do
821
813
  "associated_type" => "member",
822
814
  "associated_id" => 1,
823
815
  "group_id" => group_id,
824
- "data[title]" => nil,
825
816
  "data[firstname]" => nil,
826
817
  "data[lastname]" => nil,
827
818
  "data[address1]" => nil,
@@ -849,7 +840,6 @@ describe "Member" do
849
840
  "associated_type" => "member",
850
841
  "associated_id" => 1,
851
842
  "group_id" => 3,
852
- "data[title]" => nil,
853
843
  "data[firstname]" => nil,
854
844
  "data[lastname]" => nil,
855
845
  "data[address1]" => nil,
@@ -872,7 +862,6 @@ describe "Member" do
872
862
  "associated_type" => "member",
873
863
  "associated_id" => 1,
874
864
  "group_id" => 4,
875
- "data[title]" => nil,
876
865
  "data[firstname]" => nil,
877
866
  "data[lastname]" => nil,
878
867
  "data[surgery]" => nil,
@@ -886,19 +875,6 @@ describe "Member" do
886
875
  "data[test_var]" => "This is a test",
887
876
  }}) { OsmTest::DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"status":true}'}) }
888
877
 
889
- HTTParty.should_receive(:post).with('https://www.onlinescoutmanager.co.uk/ext/customdata/?action=updateColumn&section_id=2', {:body => {
890
- "apiid" => "1",
891
- "token" => "API TOKEN",
892
- "userid" => "user_id",
893
- "secret" => "secret",
894
- "context" => "members",
895
- "associated_type" => "member",
896
- "associated_id" => 1,
897
- "group_id" => 5,
898
- "column_id" => 1,
899
- "value" => "Title",
900
- }}) { OsmTest::DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"data":{"value":"Title"}}'}) }
901
-
902
878
  Osm::Term.stub(:get_for_section) { [] }
903
879
 
904
880
  @member.update(@api, true).should == true
data/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Osm
2
- VERSION = "1.2.18.dev.12"
2
+ VERSION = "1.2.18.dev.13"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: osm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.18.dev.12
4
+ version: 1.2.18.dev.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Gauld