Add MasterView.render_product(), fix edit for pricing batch row
				
					
				
			This commit is contained in:
		
							parent
							
								
									b9da7e1b12
								
							
						
					
					
						commit
						2bd107056c
					
				
					 7 changed files with 30 additions and 35 deletions
				
			
		| 
						 | 
				
			
			@ -595,6 +595,9 @@ class BatchMasterView(MasterView):
 | 
			
		|||
        f.set_readonly('status_code')
 | 
			
		||||
        f.set_label('status_code', "Status")
 | 
			
		||||
 | 
			
		||||
        # status text
 | 
			
		||||
        f.set_readonly('status_text')
 | 
			
		||||
 | 
			
		||||
    def configure_mobile_row_form(self, f):
 | 
			
		||||
        super(BatchMasterView, self).configure_mobile_row_form(f)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -138,6 +138,19 @@ class PricingBatchView(BatchMasterView):
 | 
			
		|||
    def configure_row_form(self, f):
 | 
			
		||||
        super(PricingBatchView, self).configure_row_form(f)
 | 
			
		||||
 | 
			
		||||
        # readonly fields
 | 
			
		||||
        f.set_readonly('product')
 | 
			
		||||
        f.set_readonly('upc')
 | 
			
		||||
        f.set_readonly('brand_name')
 | 
			
		||||
        f.set_readonly('description')
 | 
			
		||||
        f.set_readonly('size')
 | 
			
		||||
        f.set_readonly('department_number')
 | 
			
		||||
        f.set_readonly('department_name')
 | 
			
		||||
        f.set_readonly('vendor')
 | 
			
		||||
 | 
			
		||||
        # product
 | 
			
		||||
        f.set_renderer('product', self.render_product)
 | 
			
		||||
 | 
			
		||||
        # currency fields
 | 
			
		||||
        f.set_type('old_price', 'currency')
 | 
			
		||||
        f.set_type('new_price', 'currency')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,11 +28,14 @@ from __future__ import unicode_literals, absolute_import
 | 
			
		|||
 | 
			
		||||
import datetime
 | 
			
		||||
 | 
			
		||||
import six
 | 
			
		||||
from sqlalchemy import orm
 | 
			
		||||
 | 
			
		||||
from rattail.db import model
 | 
			
		||||
from rattail.time import localtime
 | 
			
		||||
 | 
			
		||||
from webhelpers2.html import tags
 | 
			
		||||
 | 
			
		||||
from tailbone.views import MasterView
 | 
			
		||||
from tailbone.util import raw_datetime
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -166,14 +169,6 @@ class CustomerOrderItemsView(MasterView):
 | 
			
		|||
        url = self.request.route_url('custorders.view', uuid=order.uuid)
 | 
			
		||||
        return tags.link_to(text, url)
 | 
			
		||||
 | 
			
		||||
    def render_product(self, order, field):
 | 
			
		||||
        product = order.product
 | 
			
		||||
        if not product:
 | 
			
		||||
            return ""
 | 
			
		||||
        text = six.text_type(product)
 | 
			
		||||
        url = self.request.route_url('products.view', uuid=product.uuid)
 | 
			
		||||
        return tags.link_to(text, url)
 | 
			
		||||
 | 
			
		||||
    def get_row_data(self, item):
 | 
			
		||||
        return self.Session.query(model.CustomerOrderItemEvent)\
 | 
			
		||||
                           .filter(model.CustomerOrderItemEvent.item == item)\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -731,6 +731,14 @@ class MasterView(View):
 | 
			
		|||
            return obj.upc.pretty() if obj.upc else ''
 | 
			
		||||
        return getattr(obj, product_key)
 | 
			
		||||
 | 
			
		||||
    def render_product(self, obj, field):
 | 
			
		||||
        product = getattr(obj, field)
 | 
			
		||||
        if not product:
 | 
			
		||||
            return ""
 | 
			
		||||
        text = six.text_type(product)
 | 
			
		||||
        url = self.request.route_url('products.view', uuid=product.uuid)
 | 
			
		||||
        return tags.link_to(text, url)
 | 
			
		||||
 | 
			
		||||
    def before_create_flush(self, obj, form):
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -318,15 +318,7 @@ class PurchaseView(MasterView):
 | 
			
		|||
        f.set_renderer('department', self.render_row_department)
 | 
			
		||||
 | 
			
		||||
        # product
 | 
			
		||||
        f.set_renderer('product', self.render_row_product)
 | 
			
		||||
 | 
			
		||||
    def render_row_product(self, row, field):
 | 
			
		||||
        product = row.product
 | 
			
		||||
        if not product:
 | 
			
		||||
            return ""
 | 
			
		||||
        text = six.text_type(product)
 | 
			
		||||
        url = self.request.route_url('products.view', uuid=product.uuid)
 | 
			
		||||
        return tags.link_to(text, url)
 | 
			
		||||
        f.set_renderer('product', self.render_product)
 | 
			
		||||
 | 
			
		||||
    def render_row_department(self, row, field):
 | 
			
		||||
        return "{} {}".format(row.department_number, row.department_name)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -692,7 +692,7 @@ class PurchasingBatchView(BatchMasterView):
 | 
			
		|||
            f.set_readonly('upc')
 | 
			
		||||
            f.set_readonly('item_id')
 | 
			
		||||
            f.set_readonly('product')
 | 
			
		||||
            f.set_renderer('product', self.render_row_product)
 | 
			
		||||
            f.set_renderer('product', self.render_product)
 | 
			
		||||
 | 
			
		||||
            # TODO: what's up with this again?
 | 
			
		||||
            # f.remove_fields('po_total',
 | 
			
		||||
| 
						 | 
				
			
			@ -704,18 +704,10 @@ class PurchasingBatchView(BatchMasterView):
 | 
			
		|||
                f.remove_fields('brand_name',
 | 
			
		||||
                                'description',
 | 
			
		||||
                                'size')
 | 
			
		||||
                f.set_renderer('product', self.render_row_product)
 | 
			
		||||
                f.set_renderer('product', self.render_product)
 | 
			
		||||
            else:
 | 
			
		||||
                f.remove_field('product')
 | 
			
		||||
 | 
			
		||||
    def render_row_product(self, row, field):
 | 
			
		||||
        product = row.product
 | 
			
		||||
        if not product:
 | 
			
		||||
            return ""
 | 
			
		||||
        text = six.text_type(product)
 | 
			
		||||
        url = self.request.route_url('products.view', uuid=product.uuid)
 | 
			
		||||
        return tags.link_to(text, url)
 | 
			
		||||
 | 
			
		||||
    def configure_mobile_row_form(self, f):
 | 
			
		||||
        super(PurchasingBatchView, self).configure_mobile_row_form(f)
 | 
			
		||||
        # row = f.model_instance
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										8
									
								
								tailbone/views/vendors/catalogs.py
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								tailbone/views/vendors/catalogs.py
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -198,14 +198,6 @@ class VendorCatalogsView(FileBatchMasterView):
 | 
			
		|||
        super(VendorCatalogsView, self).configure_row_form(f)
 | 
			
		||||
        f.set_renderer('product', self.render_product)
 | 
			
		||||
 | 
			
		||||
    def render_product(self, row, field):
 | 
			
		||||
        product = row.product
 | 
			
		||||
        if not product:
 | 
			
		||||
            return ""
 | 
			
		||||
        text = six.text_type(product)
 | 
			
		||||
        url = self.request.route_url('products.view', uuid=product.uuid)
 | 
			
		||||
        return tags.link_to(text, url)
 | 
			
		||||
 | 
			
		||||
    def template_kwargs_create(self, **kwargs):
 | 
			
		||||
        parsers = self.get_parsers()
 | 
			
		||||
        for parser in parsers:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue