if html5.isReturn(event): self.filterChangedEvent.fire() def updateFilter(self, filter): if self.opMode == "equals": filter[self.extension["target"]] = self.input["value"] elif self.opMode == "from": filter[self.extension["target"] + "$gt"] = self.input["value"] elif self.opMode == "to": filter[self.extension["target"] + "$lt"] = self.input["value"] elif self.opMode == "prefix": filter[self.extension["target"] + "$lk"] = self.input["value"] elif self.opMode == "range": filter[self.extension["target"] + "$gt"] = self.input1["value"] filter[self.extension["target"] + "$lt"] = self.input2["value"] return (filter) @staticmethod def canHandleExtension(extension, view, module): return (isinstance(extension, dict) and "type" in extension.keys() and (extension["type"] == "string" or extension["type"].startswith("string."))) # Register this Bone in the global queue editBoneSelector.insert(3, CheckForStringBone, StringEditBone) viewDelegateSelector.insert(3, CheckForStringBone, StringViewBoneDelegate) extendedSearchWidgetSelector.insert(1, ExtendedStringSearch.canHandleExtension, ExtendedStringSearch) extractorDelegateSelector.insert(3, CheckForStringBone, StringBoneExtractor)
self.selectionCb.appendChild(o) self.sinkEvent("onChange") def onChange(self, event): event.stopPropagation() self.filterChangedEvent.fire() def updateFilter(self, filter): val = self.selectionCb["options"].item(self.selectionCb["selectedIndex"]).value if not val: if self.extension["target"] in filter.keys(): del filter[ self.extension["target"] ] else: filter[ self.extension["target"] ] = val return( filter ) @staticmethod def canHandleExtension( extension, view, modul ): return( isinstance( extension, dict) and "type" in extension.keys() and (extension["type"]=="boolean" or extension["type"].startswith("boolean.") ) ) def CheckForBooleanBone(moduleName, boneName, skelStucture, *args, **kwargs): return skelStucture[boneName]["type"] == "bool" #Register this Bone in the global queue editBoneSelector.insert( 3, CheckForBooleanBone, BooleanEditBone) viewDelegateSelector.insert( 3, CheckForBooleanBone, BooleanViewBoneDelegate) extendedSearchWidgetSelector.insert( 1, ExtendedBooleanSearch.canHandleExtension, ExtendedBooleanSearch )
return skelStructure[boneName]["type"].startswith("relational.") def CheckForRelationalBoneMultiSelection(moduleName, boneName, skelStructure, *args, **kwargs): isMultiple = "multiple" in skelStructure[boneName].keys( ) and skelStructure[boneName]["multiple"] return isMultiple and skelStructure[boneName]["type"].startswith( "relational.") def CheckForRelationalBoneSingleSelection(moduleName, boneName, skelStructure, *args, **kwargs): isMultiple = "multiple" in skelStructure[boneName].keys( ) and skelStructure[boneName]["multiple"] return not isMultiple and skelStructure[boneName]["type"].startswith( "relational.") #Register this Bone in the global queue editBoneSelector.insert(5, CheckForRelationalBoneMultiSelection, RelationalMultiSelectionBone) editBoneSelector.insert(5, CheckForRelationalBoneSingleSelection, RelationalSingleSelectionBone) viewDelegateSelector.insert(5, CheckForRelationalBoneSelection, RelationalViewBoneDelegate) extendedSearchWidgetSelector.insert(1, RelationalSearch.canHandleExtension, RelationalSearch) extractorDelegateSelector.insert(4, CheckForRelationalBoneSelection, RelationalBoneExtractor)
filter[self.extension["target"]] = self.input["value"] elif self.opMode == "from": filter[self.extension["target"] + "$gt"] = self.input["value"] elif self.opMode == "to": filter[self.extension["target"] + "$lt"] = self.input["value"] elif self.opMode == "prefix": filter[self.extension["target"] + "$lk"] = self.input["value"] elif self.opMode == "range": filter[self.extension["target"] + "$gt"] = self.input1["value"] filter[self.extension["target"] + "$lt"] = self.input2["value"] return (filter) @staticmethod def canHandleExtension(extension, view, module): return (isinstance(extension, dict) and "type" in extension.keys() and (extension["type"] == "numeric" or extension["type"].startswith("numeric."))) def CheckForNumericBone(moduleName, boneName, skelStucture, *args, **kwargs): return skelStucture[boneName]["type"] == "numeric" #Register this Bone in the global queue editBoneSelector.insert(3, CheckForNumericBone, NumericEditBone) viewDelegateSelector.insert(3, CheckForNumericBone, NumericViewBoneDelegate) extendedSearchWidgetSelector.insert(1, ExtendedNumericSearch.canHandleExtension, ExtendedNumericSearch) extractorDelegateSelector.insert(3, CheckForNumericBone, NumericBoneExtractor)
if self.beginDatepicker["value"] and self.toDatepicker["value"]: clearedFilter["orderby"] = self.extension["target"] clearedFilter[ "%s$gt" % self.extension["target"]] = self.beginDatepicker["value"] clearedFilter[ "%s$lt" % self.extension["target"]] = self.toDatepicker["value"] return clearedFilter def onChange(self, event): event.stopPropagation() self.filterChangedEvent.fire( mutualExclusiveGroupTarget=self.mutualExclusiveGroupTarget, mutualExclusiveGroupKey=self.mutualExclusiveGroupKey) @staticmethod def canHandleExtension(extension, view, module): return isinstance(extension, dict) and "type" in extension.keys() and ( extension["type"] == "date" or extension["type"].startswith("date.")) # Register this Bone in the global queue editBoneSelector.insert(3, CheckForDateBone, DateEditBone) viewDelegateSelector.insert(3, CheckForDateBone, DateViewBoneDelegate) extractorDelegateSelector.insert(3, CheckForDateBone, DateBoneExtractor) extendedSearchWidgetSelector.insert(1, DateRangeFilterPlugin.canHandleExtension, DateRangeFilterPlugin)