diff --git a/InteractiveHtmlBom/core/ibom.py b/InteractiveHtmlBom/core/ibom.py index e8af1cc3..0fb4667c 100644 --- a/InteractiveHtmlBom/core/ibom.py +++ b/InteractiveHtmlBom/core/ibom.py @@ -64,23 +64,30 @@ def skip_component(m, config): if config.blacklist_virtual and m.attr == 'Virtual': return True + dnp_field = config.dnp_field + variant_field = config.board_variant_field + if config.normalize_field_case: + # extra field names are lowercased when normalizing case + dnp_field = dnp_field and dnp_field.lower() + variant_field = variant_field and variant_field.lower() + # skip components with dnp field not empty - if config.dnp_field \ - and config.dnp_field in m.extra_fields \ - and m.extra_fields[config.dnp_field]: + if dnp_field \ + and dnp_field in m.extra_fields \ + and m.extra_fields[dnp_field]: return True # skip components with wrong variant field empty_str = '' - if config.board_variant_field and config.board_variant_whitelist: - ref_variant = m.extra_fields.get(config.board_variant_field, '') + if variant_field and config.board_variant_whitelist: + ref_variant = m.extra_fields.get(variant_field, '') if ref_variant == '': ref_variant = empty_str if ref_variant not in config.board_variant_whitelist: return True - if config.board_variant_field and config.board_variant_blacklist: - ref_variant = m.extra_fields.get(config.board_variant_field, '') + if variant_field and config.board_variant_blacklist: + ref_variant = m.extra_fields.get(variant_field, '') if ref_variant == '': ref_variant = empty_str if ref_variant != empty_str and ref_variant in config.board_variant_blacklist: diff --git a/InteractiveHtmlBom/dialog/settings_dialog.py b/InteractiveHtmlBom/dialog/settings_dialog.py index a976a0dc..0489e25e 100644 --- a/InteractiveHtmlBom/dialog/settings_dialog.py +++ b/InteractiveHtmlBom/dialog/settings_dialog.py @@ -360,6 +360,9 @@ def OnBoardVariantFieldChange(self, event): self.boardVariantWhitelist.Clear() self.boardVariantBlacklist.Clear() return + if self.normalizeCaseCheckbox.Value: + # extra field names are lowercased when normalizing case + selection = selection.lower() variant_set = set() for _, field_dict in self.extra_field_data.fields_by_ref.items(): if selection in field_dict: