Пример #1
0
 def test_and_filter(self):
     f1 = ListModel.Filter(True)
     f2 = ListModel.Filter(True)
     f3 = ListModel.Filter(False)
     f4 = ListModel.Filter(False)
     self.assertTrue(ListModel.AndFilter([f1, f2]).matches(None))
     self.assertFalse(ListModel.AndFilter([f2, f3]).matches(None))
     self.assertTrue(ListModel.OrFilter([f2, f3]).matches(None))
     self.assertFalse(ListModel.OrFilter([f3, f4]).matches(None))
Пример #2
0
    def date_browser_selection_changed(self, selected_indexes):
        """
            Called to handle selection changes in the tree widget.

            This method should be connected to the on_selection_changed event. This method builds a list
            of keys represented by all selected items. It then provides date_filter to filter data items
            based on the list of keys. It then sets the filter into the document controller.

            :param selected_indexes: The selected indexes
            :type selected_indexes: list of ints
        """
        partial_date_filters = list()

        for index, parent_row, parent_id in selected_indexes:
            item_model_controller = self.item_model_controller
            tree_node = item_model_controller.item_value(
                "tree_node", index, parent_id)
            partial_date_filters.append(
                ListModel.PartialDateFilter("created_local", *tree_node.keys))

        if len(partial_date_filters) > 0:
            self.__date_filter = ListModel.OrFilter(partial_date_filters)
        else:
            self.__date_filter = None

        self.__update_filter()