def filter_table(self, rows): fromvar = self.htmlvars[0] fromtext = html.request.var(fromvar) lower = None if fromtext: try: lower = float(fromtext) * self._scale except: pass tovar = self.htmlvars[1] totext = html.request.var(tovar) upper = None if totext: try: upper = float(totext) * self._scale except: pass if lower is None and upper is None: return rows newrows = [] for row in rows: invdata = inventory.get_inventory_data(row["host_inventory"], self._invpath) if lower is not None and invdata < lower: continue if upper is not None and invdata > upper: continue newrows.append(row) return newrows
def filter_table(self, context: VisualContext, rows: Rows) -> Rows: tri = self.tristate_value() if tri == -1: return rows wanted_value = tri == 1 newrows = [] for row in rows: invdata = inventory.get_inventory_data(row["host_inventory"], self._invpath) if wanted_value == invdata: newrows.append(row) return newrows
def filter_table(self, context: VisualContext, rows: Rows) -> Rows: lower, upper = self.filter_configs() if not any((lower, upper)): return rows newrows = [] for row in rows: invdata = inventory.get_inventory_data(row["host_inventory"], self._invpath) if lower is not None and invdata < lower: continue if upper is not None and invdata > upper: continue newrows.append(row) return newrows
def filter_table(self, context: VisualContext, rows: Rows) -> Rows: filtertext = self.filtertext if not filtertext: return rows try: regex = re.compile(filtertext, re.IGNORECASE) except re.error: raise MKUserError( self.htmlvars[0], _('Your search statement is not valid. You need to provide a regular ' 'expression (regex). For example you need to use <tt>\\\\</tt> instead of <tt>\\</tt> ' 'if you like to search for a single backslash.')) newrows = [] for row in rows: invdata = inventory.get_inventory_data(row["host_inventory"], self._invpath) if invdata is None: invdata = "" if regex.search(invdata): newrows.append(row) return newrows