Centralize logic for default POS batch handler
This commit is contained in:
		
							parent
							
								
									a0915f7d5c
								
							
						
					
					
						commit
						6448fc139c
					
				
					 3 changed files with 45 additions and 6 deletions
				
			
		|  | @ -32,6 +32,7 @@ from rattail.config import make_config | |||
| import flet as ft | ||||
| 
 | ||||
| import wuttapos | ||||
| from wuttapos.util import get_pos_batch_handler | ||||
| 
 | ||||
| 
 | ||||
| def main(page: ft.Page): | ||||
|  | @ -62,7 +63,7 @@ def main(page: ft.Page): | |||
|         page.shared.pop('cust_uuid', None) # TODO | ||||
|         page.shared.pop('cust_display', None) # TODO | ||||
|         if page.shared and page.shared.get('user_uuid'): | ||||
|             handler = app.get_batch_handler('pos') | ||||
|             handler = get_pos_batch_handler(config) | ||||
|             session = app.make_session() | ||||
|             user = session.get(model.User, page.shared['user_uuid']) | ||||
|             if user: | ||||
|  |  | |||
							
								
								
									
										36
									
								
								wuttapos/util.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								wuttapos/util.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,36 @@ | |||
| # -*- coding: utf-8; -*- | ||||
| ################################################################################ | ||||
| # | ||||
| #  WuttaPOS -- Pythonic Point of Sale System | ||||
| #  Copyright © 2023 Lance Edgar | ||||
| # | ||||
| #  This file is part of WuttaPOS. | ||||
| # | ||||
| #  WuttaPOS is free software: you can redistribute it and/or modify it under the | ||||
| #  terms of the GNU General Public License as published by the Free Software | ||||
| #  Foundation, either version 3 of the License, or (at your option) any later | ||||
| #  version. | ||||
| # | ||||
| #  WuttaPOS is distributed in the hope that it will be useful, but WITHOUT ANY | ||||
| #  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | ||||
| #  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more | ||||
| #  details. | ||||
| # | ||||
| #  You should have received a copy of the GNU General Public License along with | ||||
| #  WuttaPOS.  If not, see <http://www.gnu.org/licenses/>. | ||||
| # | ||||
| ################################################################################ | ||||
| """ | ||||
| WuttaPOS utilities | ||||
| """ | ||||
| 
 | ||||
| 
 | ||||
| def get_pos_batch_handler(config): | ||||
|     """ | ||||
|     Official way of obtaining the POS batch handler. | ||||
| 
 | ||||
|     Code should use this where possible to make later refactoring | ||||
|     easier, should it be needed. | ||||
|     """ | ||||
|     app = config.get_app() | ||||
|     return app.get_batch_handler('pos', default='rattail.batch.pos:POSBatchHandler') | ||||
|  | @ -32,6 +32,8 @@ import flet as ft | |||
| 
 | ||||
| from .base import WuttaView | ||||
| from wuttapos.controls.keyboard import WuttaKeyboard | ||||
| from wuttapos.util import get_pos_batch_handler | ||||
| 
 | ||||
| 
 | ||||
| log = logging.getLogger(__name__) | ||||
| 
 | ||||
|  | @ -48,7 +50,7 @@ class POSView(WuttaView): | |||
|     disabled_bgcolor = '#aaaaaa' | ||||
| 
 | ||||
|     def get_batch_handler(self): | ||||
|         return self.app.get_batch_handler('pos') | ||||
|         return get_pos_batch_handler(self.config) | ||||
| 
 | ||||
|     def set_customer(self, customer, batch=None): | ||||
|         session = self.app.get_session(customer) | ||||
|  | @ -744,7 +746,7 @@ class POSView(WuttaView): | |||
|     def get_current_batch(self, session, user=None, create=True): | ||||
|         if not user: | ||||
|             user = session.get(self.model.User, self.page.shared['user_uuid']) | ||||
|         handler = self.app.get_batch_handler('pos') | ||||
|         handler = self.get_batch_handler() | ||||
|         return handler.get_current_batch(user, create=create) | ||||
| 
 | ||||
|     def did_mount(self): | ||||
|  | @ -805,7 +807,7 @@ class POSView(WuttaView): | |||
| 
 | ||||
|             model = self.model | ||||
|             session = self.app.make_session() | ||||
|             handler = self.app.get_batch_handler('pos') | ||||
|             handler = self.get_batch_handler() | ||||
|             user = session.get(model.User, self.page.shared['user_uuid']) | ||||
|             batch = handler.get_current_batch(user, create=True) | ||||
| 
 | ||||
|  | @ -862,7 +864,7 @@ class POSView(WuttaView): | |||
|     def tender_click(self, e): | ||||
|         model = self.model | ||||
|         session = self.app.make_session() | ||||
|         handler = self.app.get_batch_handler('pos') | ||||
|         handler = self.get_batch_handler() | ||||
|         user = session.get(model.User, self.page.shared['user_uuid']) | ||||
|         batch = handler.get_current_batch(user) | ||||
| 
 | ||||
|  | @ -902,7 +904,7 @@ class POSView(WuttaView): | |||
|             self.page.update() | ||||
|             return | ||||
| 
 | ||||
|         handler = self.app.get_batch_handler('pos') | ||||
|         handler = self.get_batch_handler() | ||||
|         session = self.app.make_session() | ||||
|         model = self.model | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lance Edgar
						Lance Edgar