Add "most of" Buefy support for grid filters
still a couple of details to wrap up yet, but this is most of it!
This commit is contained in:
		
							parent
							
								
									23c38e33d4
								
							
						
					
					
						commit
						a0cd1f4cd0
					
				
					 8 changed files with 313 additions and 96 deletions
				
			
		|  | @ -384,6 +384,7 @@ class Grid(object): | |||
|     def render_grid(self, template='/grids/grid.mako', **kwargs): | ||||
|         context = kwargs | ||||
|         context['grid'] = self | ||||
|         context['request'] = self.request | ||||
|         grid_class = '' | ||||
|         if self.width == 'full': | ||||
|             grid_class = 'full' | ||||
|  | @ -912,10 +913,57 @@ class Grid(object): | |||
| 
 | ||||
|     def render_buefy(self, template='/grids/buefy.mako', **kwargs): | ||||
|         """ | ||||
|         Render the Buefy grid, including filters. | ||||
|         Render the Buefy grid, complete with filters.  Note that this also | ||||
|         includes the context menu items and grid tools. | ||||
|         """ | ||||
|         if 'grid_columns' not in kwargs: | ||||
|             kwargs['grid_columns'] = self.get_buefy_columns() | ||||
| 
 | ||||
|         if 'grid_data' not in kwargs: | ||||
|             kwargs['grid_data'] = self.get_buefy_data() | ||||
| 
 | ||||
|         if 'static_data' not in kwargs: | ||||
|             kwargs['static_data'] = self.has_static_data() | ||||
| 
 | ||||
|         if self.filterable and 'filters_data' not in kwargs: | ||||
|             kwargs['filters_data'] = self.get_filters_data() | ||||
| 
 | ||||
|         if self.filterable and 'filters_sequence' not in kwargs: | ||||
|             kwargs['filters_sequence'] = self.get_filters_sequence() | ||||
| 
 | ||||
|         return self.render_complete(template=template, **kwargs) | ||||
| 
 | ||||
|     def get_filters_sequence(self): | ||||
|         """ | ||||
|         Returns a list of filter keys (strings) in the sequence with which they | ||||
|         should be displayed in the UI. | ||||
|         """ | ||||
|         return list(self.filters) | ||||
| 
 | ||||
|     def get_filters_data(self): | ||||
|         """ | ||||
|         Returns a dict of current filters data, for use with Buefy grid view. | ||||
|         """ | ||||
|         data = {} | ||||
|         for filtr in self.filters.values(): | ||||
| 
 | ||||
|             valueless = [v for v in filtr.valueless_verbs | ||||
|                          if v in filtr.verbs] | ||||
| 
 | ||||
|             data[filtr.key] = { | ||||
|                 'key': filtr.key, | ||||
|                 'label': filtr.label, | ||||
|                 'active': filtr.active, | ||||
|                 'visible': filtr.active, | ||||
|                 'verbs': filtr.verbs, | ||||
|                 'valueless_verbs': valueless, | ||||
|                 'verb_labels': filtr.verb_labels, | ||||
|                 'verb': filtr.verb or filtr.default_verb or filtr.verbs[0], | ||||
|                 'value': filtr.value, | ||||
|             } | ||||
| 
 | ||||
|         return data | ||||
| 
 | ||||
|     def render_filters(self, template='/grids/filters.mako', **kwargs): | ||||
|         """ | ||||
|         Render the filters to a Unicode string, using the specified template. | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lance Edgar
						Lance Edgar