Add initial Shopfoo pattern feature
data models, import/export, web views etc.
This commit is contained in:
		
							parent
							
								
									a7656928f5
								
							
						
					
					
						commit
						852f9d4902
					
				
					 19 changed files with 515 additions and 1 deletions
				
			
		
							
								
								
									
										9
									
								
								rattail_demo/web/views/shopfoo/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								rattail_demo/web/views/shopfoo/__init__.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | |||
| # -*- coding: utf-8; -*- | ||||
| """ | ||||
| Shopfoo views | ||||
| """ | ||||
| 
 | ||||
| 
 | ||||
| def includeme(config): | ||||
|     config.include('rattail_demo.web.views.shopfoo.products') | ||||
|     config.include('rattail_demo.web.views.shopfoo.exports') | ||||
							
								
								
									
										42
									
								
								rattail_demo/web/views/shopfoo/exports.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								rattail_demo/web/views/shopfoo/exports.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,42 @@ | |||
| # -*- coding: utf-8 -*- | ||||
| """ | ||||
| Views for Shopfoo product exports | ||||
| """ | ||||
| 
 | ||||
| from rattail_demo.db import model | ||||
| 
 | ||||
| from tailbone.views.exports import ExportMasterView | ||||
| 
 | ||||
| 
 | ||||
| class ShopfooProductExportView(ExportMasterView): | ||||
|     """ | ||||
|     Master view for Shopfoo product exports. | ||||
|     """ | ||||
|     model_class = model.ShopfooProductExport | ||||
|     route_prefix = 'shopfoo.product_exports' | ||||
|     url_prefix = '/shopfoo/exports/product' | ||||
|     downloadable = True | ||||
|     editable = True | ||||
|     delete_export_files = True | ||||
| 
 | ||||
|     grid_columns = [ | ||||
|         'id', | ||||
|         'created', | ||||
|         'created_by', | ||||
|         'filename', | ||||
|         'record_count', | ||||
|         'uploaded', | ||||
|     ] | ||||
| 
 | ||||
|     form_fields = [ | ||||
|         'id', | ||||
|         'created', | ||||
|         'created_by', | ||||
|         'record_count', | ||||
|         'filename', | ||||
|         'uploaded', | ||||
|     ] | ||||
| 
 | ||||
| 
 | ||||
| def includeme(config): | ||||
|     ShopfooProductExportView.defaults(config) | ||||
							
								
								
									
										70
									
								
								rattail_demo/web/views/shopfoo/products.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								rattail_demo/web/views/shopfoo/products.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,70 @@ | |||
| # -*- coding: utf-8; -*- | ||||
| """ | ||||
| Shopfoo product views | ||||
| """ | ||||
| 
 | ||||
| from rattail_demo.db import model | ||||
| 
 | ||||
| from tailbone.views import MasterView | ||||
| 
 | ||||
| 
 | ||||
| class ShopfooProductView(MasterView): | ||||
|     """ | ||||
|     Shopfoo Product views | ||||
|     """ | ||||
|     model_class = model.ShopfooProduct | ||||
|     url_prefix = '/shopfoo/products' | ||||
|     route_prefix = 'shopfoo.products' | ||||
|     creatable = False | ||||
|     editable = False | ||||
|     bulk_deletable = True | ||||
|     has_versions = True | ||||
| 
 | ||||
|     labels = { | ||||
|         'upc': "UPC", | ||||
|     } | ||||
| 
 | ||||
|     grid_columns = [ | ||||
|         'upc', | ||||
|         'description', | ||||
|         'price', | ||||
|         'enabled', | ||||
|     ] | ||||
| 
 | ||||
|     form_fields = [ | ||||
|         'product', | ||||
|         'upc', | ||||
|         'description', | ||||
|         'price', | ||||
|         'enabled', | ||||
|     ] | ||||
| 
 | ||||
|     def configure_grid(self, g): | ||||
|         super(ShopfooProductView, self).configure_grid(g) | ||||
| 
 | ||||
|         g.filters['upc'].default_active = True | ||||
|         g.filters['upc'].default_verb = 'equal' | ||||
| 
 | ||||
|         g.filters['description'].default_active = True | ||||
|         g.filters['description'].default_verb = 'contains' | ||||
| 
 | ||||
|         g.set_sort_defaults('upc') | ||||
| 
 | ||||
|         g.set_type('price', 'currency') | ||||
| 
 | ||||
|         g.set_link('upc') | ||||
|         g.set_link('description') | ||||
| 
 | ||||
|     def grid_extra_class(self, product, i): | ||||
|         if not product.enabled: | ||||
|             return 'warning' | ||||
| 
 | ||||
|     def configure_form(self, f): | ||||
|         super(ShopfooProductView, self).configure_form(f) | ||||
| 
 | ||||
|         f.set_renderer('product', self.render_product) | ||||
|         f.set_type('price', 'currency') | ||||
| 
 | ||||
| 
 | ||||
| def includeme(config): | ||||
|     ShopfooProductView.defaults(config) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lance Edgar
						Lance Edgar