def _get_attributes_for_bulk_cleanup(self, hosts): attributes = [] for attr in host_attribute_registry.get_sorted_host_attributes(): attrname = attr.name() if not attr.show_in_host_cleanup(): continue # only show attributes that at least on host have set num_haveit = 0 for host in hosts: if host.has_explicit_attribute(attrname): num_haveit += 1 if not num_haveit: continue # If the attribute is mandatory and no value is inherited # by file or folder, the attribute cannot be cleaned. container = self._folder is_inherited = False while container: if container.has_explicit_attribute(attrname): is_inherited = True break container = container.parent() attributes.append((attr, is_inherited, num_haveit)) return attributes
def _select_attributes_for_bulk_cleanup(self, hosts): num_shown = 0 for attr in host_attribute_registry.get_sorted_host_attributes(): attrname = attr.name() if not attr.show_in_host_cleanup(): continue # only show attributes that at least on host have set num_haveit = 0 for host in hosts: if host.has_explicit_attribute(attrname): num_haveit += 1 if num_haveit == 0: continue # If the attribute is mandatory and no value is inherited # by file or folder, the attribute cannot be cleaned. container = self._folder is_inherited = False while container: if container.has_explicit_attribute(attrname): is_inherited = True break container = container.parent() num_shown += 1 # Legend and Help forms.section(attr.title()) if attr.is_mandatory() and not is_inherited: html.write_text( _("This attribute is mandatory and there is no value " "defined in the host list or any parent folder.")) else: label = "clean this attribute on <b>%s</b> hosts" % \ (num_haveit == len(hosts) and "all selected" or str(num_haveit)) html.checkbox("_clean_%s" % attrname, False, label=label) html.help(attr.help()) return num_shown > 0