@@ -184,33 +184,26 @@ def get_value_recursive(self, valuesString, field):
184184 self .logger .debug ("New value of valuesString: %s" , str (valuesString ))
185185 return valuesString
186186 elif field ['typeClass' ] == 'compound' :
187+ self .logger .debug ("Looking at single compound field..." )
187188 subValue = ''
188189 if isinstance (field ['value' ], list ):
189190 for value in field ['value' ]:
190- if isinstance (value , str ):
191- self .logger .debug ("Value: %s" , value )
192- for key , elements in value .items ():
193- if not elements ['multiple' ]:
194- subValue += elements ['value' ]
195- else :
196- subValue += self .get_value_recursive (valuesString , subValue , elements ['value' ])
197-
198- self .logger .debug ("New subValue: %s" , subValue )
199- subValue += " - "
200-
201- valuesString += subValue + " ; "
191+ compoundValue = self .create_compound_value (value )
192+ if compoundValue .endswith (' - ' ):
193+ compoundValue = compoundValue [:- len (' - ' )]
194+ self .logger .debug ("New compoundValue: %s" , compoundValue )
195+
196+ valuesString += compoundValue + " ; "
202197 else :
198+ self .logger .debug ("Compound field has single value" )
203199 value = field ['value' ]
204- for key , elements in value .items ():
205- if not elements ['multiple' ]:
206- subValue += elements ['value' ]
207- else :
208- subValue += self .get_value_recursive (valuesString , subValue , elements ['value' ])
209-
210- self .logger .debug ("New subValue: %s" , subValue )
211- subValue += " - "
212200
213- valuesString += subValue + " ; "
201+ compoundValue = self .create_compound_value (value )
202+ if compoundValue .endswith (' - ' ):
203+ compoundValue = compoundValue [:- len (' - ' )]
204+ self .logger .debug ("New compoundValue: %s" , compoundValue )
205+
206+ valuesString += compoundValue + " ; "
214207
215208 if valuesString .endswith (' ; ' ):
216209 valuesString = valuesString [:- len (' ; ' )]
@@ -236,33 +229,26 @@ def get_value_recursive(self, valuesString, field):
236229 self .logger .debug ("New value of valuesString: %s" , str (valuesString ))
237230 return valuesString
238231 elif field ['typeClass' ] == 'compound' :
239- subValue = ''
232+ self .logger .debug ("Looking at multiple compound field..." )
233+ compoundValue = ''
240234 if isinstance (field ['value' ], list ):
241235 for value in field ['value' ]:
242- if isinstance (value , str ):
243- self .logger .debug ("Value: %s" , value )
244- for key , elements in value .items ():
245- if not elements ['multiple' ]:
246- subValue += elements ['value' ]
247- else :
248- subValue += self .get_value_recursive (valuesString , subValue , elements ['value' ])
249-
250- self .logger .debug ("New subValue: %s" , subValue )
251- subValue += " - "
252-
253- valuesString += subValue + " ; "
236+ compoundValue = self .create_compound_value (value )
237+ if compoundValue .endswith (' - ' ):
238+ compoundValue = compoundValue [:- len (' - ' )]
239+ self .logger .debug ("New compoundValue: %s" , compoundValue )
240+
241+ valuesString += compoundValue + " ; "
254242 else :
243+ self .logger .debug ("Compound field has single value" )
255244 value = field ['value' ]
256- for key , elements in value .items ():
257- if not elements ['multiple' ]:
258- subValue += elements ['value' ]
259- else :
260- subValue += self .get_value_recursive (valuesString , subValue , elements ['value' ])
261-
262- self .logger .debug ("New subValue: %s" , subValue )
263- subValue += " - "
264245
265- valuesString += subValue + " ; "
246+ compoundValue = self .create_compound_value (value )
247+ if compoundValue .endswith (' - ' ):
248+ compoundValue = compoundValue [:- len (' - ' )]
249+ self .logger .debug ("New compoundValue: %s" , compoundValue )
250+
251+ valuesString += compoundValue + " ; "
266252
267253 if valuesString .endswith (' ; ' ):
268254 valuesString = valuesString [:- len (' ; ' )]
@@ -271,6 +257,24 @@ def get_value_recursive(self, valuesString, field):
271257 else :
272258 self .logger .debug ("Unrecognized typeClass: %s" , field ['typeClass' ])
273259
260+ def create_compound_value (self , fields ):
261+ self .logger .debug ("Creating compound string..." )
262+
263+ compoundValue = ''
264+ for key , elements in fields .items ():
265+ if isinstance (elements ['value' ], str ):
266+ compoundValue += elements ['value' ] + " - "
267+ else :
268+ self .logger .error ("Compound object contains field with mulitple values." )
269+
270+ self .logger .info ("New compound value: %s" , compoundValue )
271+
272+ if compoundValue .endswith (' - ' ):
273+ compoundValue = compoundValue [:- len (' - ' )]
274+
275+ self .logger .debug ("Final compound string: " + compoundValue )
276+ return compoundValue
277+
274278 def get_last_month (self ):
275279 now = datetime .datetime .now ()
276280 previous = now .date ().replace (day = 1 ) - datetime .timedelta (days = 1 )
0 commit comments