@@ -62,17 +62,16 @@ def process_pathogens(row) -> None:
6262 row ["Pathogen/\n Disease Area" ] = "," .join (str (el ) for el in pathogen_ids )
6363
6464
65- def process_indicator_set (row , source_type = "covidcast" ) -> None :
65+ def process_indicator_set (row ) -> None :
6666 if row ["Indicator Set" ]:
6767 indicator_set_name = row ["Indicator Set" ].strip ()
68- indicator_set_obj , _ = IndicatorSet .objects .get_or_create (
69- name = indicator_set_name ,
70- defaults = {
71- "name" : indicator_set_name ,
72- "source_type" : source_type ,
73- },
68+ indicator_set_obj = IndicatorSet .objects .get (
69+ name = indicator_set_name
7470 )
75- row ["Indicator Set" ] = indicator_set_obj .id
71+ if indicator_set_obj :
72+ row ["Indicator Set" ] = indicator_set_obj .id
73+ else :
74+ row ["Indicator Set" ] = None
7675
7776
7877def process_indicator_type (row ) -> None :
@@ -247,6 +246,13 @@ def import_row(self, row, instance_loader, **kwargs):
247246 return import_result
248247
249248
249+ def strip_all_string_values (row ) -> None :
250+ for key , value in row .items ():
251+ # Check if the value is a string and not None
252+ if isinstance (value , str ):
253+ row [key ] = value .strip ()
254+
255+
250256class PermissiveForeignKeyWidget (ForeignKeyWidget ):
251257
252258 def clean (self , value , row = None , ** kwargs ):
@@ -277,6 +283,7 @@ class Meta:
277283
278284 def before_import_row (self , row , ** kwargs ) -> None :
279285 """Post-processes each row after importing."""
286+ strip_all_string_values (row )
280287 process_base (row )
281288
282289
@@ -454,6 +461,7 @@ def get_instance(self, instance_loader, row):
454461
455462 def before_import_row (self , row , ** kwargs ) -> None :
456463 """Post-processes each row after importing."""
464+ strip_all_string_values (row )
457465 fix_boolean_fields (row )
458466 process_pathogens (row )
459467 process_indicator_type (row )
@@ -475,6 +483,8 @@ def after_save_instance(self, instance, row, **kwargs):
475483 def skip_row (self , instance , original , row , import_validation_errors = None ):
476484 if not row ["Include in indicator app" ]:
477485 return True
486+ if row ["Indicator Set" ] is None :
487+ return True
478488
479489
480490class OtherEndpointIndicatorResource (ModelResource ):
@@ -628,6 +638,7 @@ class Meta:
628638
629639 def before_import_row (self , row , ** kwargs ) -> None :
630640 """Post-processes each row after importing."""
641+ strip_all_string_values (row )
631642 fix_boolean_fields (row )
632643 process_source (row )
633644 process_pathogens (row )
@@ -637,11 +648,13 @@ def before_import_row(self, row, **kwargs) -> None:
637648 process_geographic_scope (row )
638649 process_severity_pyramid_rungs (row )
639650 process_available_geographies (row )
640- process_indicator_set (row , source_type = "other_endpoint" )
651+ process_indicator_set (row )
641652
642653 def skip_row (self , instance , original , row , import_validation_errors = None ):
643654 if not row ["Include in indicator app" ]:
644655 return True
656+ if row ["Indicator Set" ] is None :
657+ return True
645658
646659 def after_import_row (self , row , row_result , ** kwargs ):
647660 process_indicator_geography (row )
@@ -677,8 +690,9 @@ class Meta:
677690
678691 def before_import_row (self , row , ** kwargs ) -> None :
679692 """Post-processes each row after importing."""
693+ strip_all_string_values (row )
680694 fix_boolean_fields (row )
681- process_indicator_set (row , source_type = "non_delphi" )
695+ process_indicator_set (row )
682696
683697 def skip_row (self , instance , original , row , import_validation_errors = None ):
684698 if not row ["Include in indicator app" ]:
0 commit comments