mirror of
				https://github.com/kovidgoyal/calibre.git
				synced 2025-11-03 19:17:02 -05:00 
			
		
		
		
	Fix searches on Yes/No columns using the terms ('blank', 'checked', 'unchecked') not working on non-English calibre installs
This commit is contained in:
		
							parent
							
								
									689d9f6e60
								
							
						
					
					
						commit
						c2576d2d29
					
				@ -303,9 +303,9 @@ class BooleanSearch(object):  # {{{
 | 
				
			|||||||
        self.local_empty     = icu_lower(_('empty'))
 | 
					        self.local_empty     = icu_lower(_('empty'))
 | 
				
			||||||
        self.local_blank     = icu_lower(_('blank'))
 | 
					        self.local_blank     = icu_lower(_('blank'))
 | 
				
			||||||
        self.local_bool_values = {
 | 
					        self.local_bool_values = {
 | 
				
			||||||
            self.local_no, self.local_unchecked, '_no', 'false', 'no',
 | 
					            self.local_no, self.local_unchecked, '_no', 'false', 'no', 'unchecked', '_unchecked',
 | 
				
			||||||
            self.local_yes, self.local_checked, '_yes', 'true', 'yes',
 | 
					            self.local_yes, self.local_checked, 'checked', '_checked', '_yes', 'true', 'yes',
 | 
				
			||||||
            self.local_empty, self.local_blank, '_empty', 'empty'}
 | 
					            self.local_empty, self.local_blank, 'blank', '_blank', '_empty', 'empty'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __call__(self, query, field_iter, bools_are_tristate):
 | 
					    def __call__(self, query, field_iter, bools_are_tristate):
 | 
				
			||||||
        matches = set()
 | 
					        matches = set()
 | 
				
			||||||
@ -315,20 +315,20 @@ class BooleanSearch(object):  # {{{
 | 
				
			|||||||
            val = force_to_bool(val)
 | 
					            val = force_to_bool(val)
 | 
				
			||||||
            if not bools_are_tristate:
 | 
					            if not bools_are_tristate:
 | 
				
			||||||
                if val is None or not val:  # item is None or set to false
 | 
					                if val is None or not val:  # item is None or set to false
 | 
				
			||||||
                    if query in {self.local_no, self.local_unchecked, 'no', '_no', 'false'}:
 | 
					                    if query in {self.local_no, self.local_unchecked, 'unchecked', '_unchecked', 'no', '_no', 'false'}:
 | 
				
			||||||
                        matches |= book_ids
 | 
					                        matches |= book_ids
 | 
				
			||||||
                else:  # item is explicitly set to true
 | 
					                else:  # item is explicitly set to true
 | 
				
			||||||
                    if query in {self.local_yes, self.local_checked, 'yes', '_yes', 'true'}:
 | 
					                    if query in {self.local_yes, self.local_checked, 'checked', '_checked', 'yes', '_yes', 'true'}:
 | 
				
			||||||
                        matches |= book_ids
 | 
					                        matches |= book_ids
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                if val is None:
 | 
					                if val is None:
 | 
				
			||||||
                    if query in {self.local_empty, self.local_blank, 'empty', '_empty', 'false'}:
 | 
					                    if query in {self.local_empty, self.local_blank, 'blank', '_blank', 'empty', '_empty', 'false'}:
 | 
				
			||||||
                        matches |= book_ids
 | 
					                        matches |= book_ids
 | 
				
			||||||
                elif not val:  # is not None and false
 | 
					                elif not val:  # is not None and false
 | 
				
			||||||
                    if query in {self.local_no, self.local_unchecked, 'no', '_no', 'true'}:
 | 
					                    if query in {self.local_no, self.local_unchecked, 'unchecked', '_unchecked', 'no', '_no', 'true'}:
 | 
				
			||||||
                        matches |= book_ids
 | 
					                        matches |= book_ids
 | 
				
			||||||
                else:  # item is not None and true
 | 
					                else:  # item is not None and true
 | 
				
			||||||
                    if query in {self.local_yes, self.local_checked, 'yes', '_yes', 'true'}:
 | 
					                    if query in {self.local_yes, self.local_checked, 'checked', '_checked', 'yes', '_yes', 'true'}:
 | 
				
			||||||
                        matches |= book_ids
 | 
					                        matches |= book_ids
 | 
				
			||||||
        return matches
 | 
					        return matches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user