More basic field tweaks for mobile "view product" page
This commit is contained in:
parent
3a91ab6bec
commit
3b0292029d
|
@ -80,6 +80,7 @@ class ProductsView(MasterView):
|
||||||
has_versions = True
|
has_versions = True
|
||||||
|
|
||||||
labels = {
|
labels = {
|
||||||
|
'upc': "UPC",
|
||||||
'status_code': "Status",
|
'status_code': "Status",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,6 +117,8 @@ class ProductsView(MasterView):
|
||||||
'regular_price',
|
'regular_price',
|
||||||
'current_price',
|
'current_price',
|
||||||
'current_price_ends',
|
'current_price_ends',
|
||||||
|
'vendor',
|
||||||
|
'cost',
|
||||||
'deposit_link',
|
'deposit_link',
|
||||||
'tax',
|
'tax',
|
||||||
'organic',
|
'organic',
|
||||||
|
@ -135,8 +138,6 @@ class ProductsView(MasterView):
|
||||||
'last_sold',
|
'last_sold',
|
||||||
'inventory_on_hand',
|
'inventory_on_hand',
|
||||||
'inventory_on_order',
|
'inventory_on_order',
|
||||||
'vendor',
|
|
||||||
'cost',
|
|
||||||
]
|
]
|
||||||
|
|
||||||
mobile_form_fields = form_fields
|
mobile_form_fields = form_fields
|
||||||
|
@ -300,13 +301,51 @@ class ProductsView(MasterView):
|
||||||
g.set_link('item_id')
|
g.set_link('item_id')
|
||||||
g.set_link('description')
|
g.set_link('description')
|
||||||
|
|
||||||
g.set_label('upc', "UPC")
|
|
||||||
g.set_label('vendor', "Vendor (preferred)")
|
g.set_label('vendor', "Vendor (preferred)")
|
||||||
g.set_label('vendor_any', "Vendor (any)")
|
g.set_label('vendor_any', "Vendor (any)")
|
||||||
g.set_label('vendor', "Pref. Vendor")
|
g.set_label('vendor', "Pref. Vendor")
|
||||||
|
|
||||||
def configure_common_form(self, f):
|
def configure_common_form(self, f):
|
||||||
super(ProductsView, self).configure_common_form(f)
|
super(ProductsView, self).configure_common_form(f)
|
||||||
|
product = f.model_instance
|
||||||
|
|
||||||
|
# upc
|
||||||
|
f.set_type('upc', 'gpc')
|
||||||
|
|
||||||
|
# unit_size
|
||||||
|
f.set_type('unit_size', 'quantity')
|
||||||
|
|
||||||
|
# unit_of_measure
|
||||||
|
f.set_enum('unit_of_measure', self.enum.UNIT_OF_MEASURE)
|
||||||
|
f.set_label('unit_of_measure', "Unit of Measure")
|
||||||
|
|
||||||
|
# packs
|
||||||
|
if self.creating:
|
||||||
|
f.remove_field('packs')
|
||||||
|
elif self.viewing and product.packs:
|
||||||
|
f.set_renderer('packs', self.render_packs)
|
||||||
|
f.set_label('packs', "Pack Items")
|
||||||
|
else:
|
||||||
|
f.remove_field('packs')
|
||||||
|
|
||||||
|
# pack_size
|
||||||
|
if self.viewing and not product.is_pack_item():
|
||||||
|
f.remove_field('pack_size')
|
||||||
|
else:
|
||||||
|
f.set_type('pack_size', 'quantity')
|
||||||
|
|
||||||
|
# default_pack
|
||||||
|
if self.viewing and not product.is_pack_item():
|
||||||
|
f.remove_field('default_pack')
|
||||||
|
|
||||||
|
# unit
|
||||||
|
if self.creating:
|
||||||
|
f.remove_field('unit')
|
||||||
|
elif self.viewing and product.is_pack_item():
|
||||||
|
f.set_renderer('unit', self.render_unit)
|
||||||
|
f.set_label('unit', "Unit Item")
|
||||||
|
else:
|
||||||
|
f.remove_field('unit')
|
||||||
|
|
||||||
# regular_price
|
# regular_price
|
||||||
if self.creating:
|
if self.creating:
|
||||||
|
@ -344,6 +383,29 @@ class ProductsView(MasterView):
|
||||||
f.set_label('cost', "Preferred Unit Cost")
|
f.set_label('cost', "Preferred Unit Cost")
|
||||||
f.set_renderer('cost', self.render_cost)
|
f.set_renderer('cost', self.render_cost)
|
||||||
|
|
||||||
|
# last_sold
|
||||||
|
if self.creating:
|
||||||
|
f.remove_field('last_sold')
|
||||||
|
else:
|
||||||
|
f.set_readonly('last_sold')
|
||||||
|
f.set_renderer('last_sold', self.render_last_sold)
|
||||||
|
|
||||||
|
# inventory_on_hand
|
||||||
|
if self.creating:
|
||||||
|
f.remove_field('inventory_on_hand')
|
||||||
|
else:
|
||||||
|
f.set_readonly('inventory_on_hand')
|
||||||
|
f.set_renderer('inventory_on_hand', self.render_inventory_on_hand)
|
||||||
|
f.set_label('inventory_on_hand', "On Hand")
|
||||||
|
|
||||||
|
# inventory_on_order
|
||||||
|
if self.creating:
|
||||||
|
f.remove_field('inventory_on_order')
|
||||||
|
else:
|
||||||
|
f.set_readonly('inventory_on_order')
|
||||||
|
f.set_renderer('inventory_on_order', self.render_inventory_on_order)
|
||||||
|
f.set_label('inventory_on_order', "On Order")
|
||||||
|
|
||||||
def render_cost(self, product, field):
|
def render_cost(self, product, field):
|
||||||
cost = getattr(product, field)
|
cost = getattr(product, field)
|
||||||
if cost:
|
if cost:
|
||||||
|
@ -423,10 +485,6 @@ class ProductsView(MasterView):
|
||||||
super(ProductsView, self).configure_form(f)
|
super(ProductsView, self).configure_form(f)
|
||||||
product = f.model_instance
|
product = f.model_instance
|
||||||
|
|
||||||
# upc
|
|
||||||
f.set_type('upc', 'gpc')
|
|
||||||
f.set_label('upc', "UPC")
|
|
||||||
|
|
||||||
# department
|
# department
|
||||||
if self.creating or self.editing:
|
if self.creating or self.editing:
|
||||||
if 'department' in f.fields:
|
if 'department' in f.fields:
|
||||||
|
@ -559,47 +617,6 @@ class ProductsView(MasterView):
|
||||||
field_display=brand_display, service_url=brands_url))
|
field_display=brand_display, service_url=brands_url))
|
||||||
f.set_label('brand_uuid', "Brand")
|
f.set_label('brand_uuid', "Brand")
|
||||||
|
|
||||||
# unit_size
|
|
||||||
f.set_type('unit_size', 'quantity')
|
|
||||||
|
|
||||||
# unit_of_measure
|
|
||||||
f.set_enum('unit_of_measure', self.enum.UNIT_OF_MEASURE)
|
|
||||||
f.set_label('unit_of_measure', "Unit of Measure")
|
|
||||||
|
|
||||||
# packs
|
|
||||||
if self.creating:
|
|
||||||
f.remove_field('packs')
|
|
||||||
elif self.viewing and product.packs:
|
|
||||||
f.set_renderer('packs', self.render_packs)
|
|
||||||
f.set_label('packs', "Pack Items")
|
|
||||||
else:
|
|
||||||
f.remove_field('packs')
|
|
||||||
|
|
||||||
# unit
|
|
||||||
if self.creating:
|
|
||||||
f.remove_field('unit')
|
|
||||||
elif self.viewing and product.is_pack_item():
|
|
||||||
f.set_renderer('unit', self.render_unit)
|
|
||||||
f.set_label('unit', "Unit Item")
|
|
||||||
else:
|
|
||||||
f.remove_field('unit')
|
|
||||||
|
|
||||||
# pack_size
|
|
||||||
if self.viewing and not product.is_pack_item():
|
|
||||||
f.remove_field('pack_size')
|
|
||||||
else:
|
|
||||||
f.set_type('pack_size', 'quantity')
|
|
||||||
|
|
||||||
# default_pack
|
|
||||||
if self.viewing and not product.is_pack_item():
|
|
||||||
f.remove_field('default_pack')
|
|
||||||
|
|
||||||
# last_sold
|
|
||||||
if self.creating:
|
|
||||||
f.remove_field('last_sold')
|
|
||||||
else:
|
|
||||||
f.set_readonly('last_sold')
|
|
||||||
|
|
||||||
# status_code
|
# status_code
|
||||||
f.set_label('status_code', "Status")
|
f.set_label('status_code', "Status")
|
||||||
|
|
||||||
|
@ -609,22 +626,6 @@ class ProductsView(MasterView):
|
||||||
# notes
|
# notes
|
||||||
f.set_widget('notes', dfwidget.TextAreaWidget(cols=80, rows=10))
|
f.set_widget('notes', dfwidget.TextAreaWidget(cols=80, rows=10))
|
||||||
|
|
||||||
# inventory_on_hand
|
|
||||||
if self.creating:
|
|
||||||
f.remove_field('inventory_on_hand')
|
|
||||||
else:
|
|
||||||
f.set_readonly('inventory_on_hand')
|
|
||||||
f.set_renderer('inventory_on_hand', self.render_inventory_on_hand)
|
|
||||||
f.set_label('inventory_on_hand', "On Hand")
|
|
||||||
|
|
||||||
# inventory_on_order
|
|
||||||
if self.creating:
|
|
||||||
f.remove_field('inventory_on_order')
|
|
||||||
else:
|
|
||||||
f.set_readonly('inventory_on_order')
|
|
||||||
f.set_renderer('inventory_on_order', self.render_inventory_on_order)
|
|
||||||
f.set_label('inventory_on_order', "On Order")
|
|
||||||
|
|
||||||
if not self.request.has_perm('products.view_deleted'):
|
if not self.request.has_perm('products.view_deleted'):
|
||||||
f.remove('deleted')
|
f.remove('deleted')
|
||||||
|
|
||||||
|
@ -676,7 +677,7 @@ class ProductsView(MasterView):
|
||||||
else:
|
else:
|
||||||
code = pack.item_id
|
code = pack.item_id
|
||||||
text = "({}) {}".format(code, pack.full_description)
|
text = "({}) {}".format(code, pack.full_description)
|
||||||
url = self.get_action_url('view', pack)
|
url = self.get_action_url('view', pack, mobile=self.mobile)
|
||||||
links.append(tags.link_to(text, url))
|
links.append(tags.link_to(text, url))
|
||||||
|
|
||||||
items = [HTML.tag('li', c=[link]) for link in links]
|
items = [HTML.tag('li', c=[link]) for link in links]
|
||||||
|
@ -695,7 +696,7 @@ class ProductsView(MasterView):
|
||||||
code = unit.item_id
|
code = unit.item_id
|
||||||
|
|
||||||
text = "({}) {}".format(code, unit.full_description)
|
text = "({}) {}".format(code, unit.full_description)
|
||||||
url = self.get_action_url('view', unit)
|
url = self.get_action_url('view', unit, mobile=self.mobile)
|
||||||
return tags.link_to(text, url)
|
return tags.link_to(text, url)
|
||||||
|
|
||||||
def render_current_price_ends(self, product, field):
|
def render_current_price_ends(self, product, field):
|
||||||
|
@ -706,6 +707,9 @@ class ProductsView(MasterView):
|
||||||
return ""
|
return ""
|
||||||
return raw_datetime(self.request.rattail_config, value)
|
return raw_datetime(self.request.rattail_config, value)
|
||||||
|
|
||||||
|
def render_last_sold(self, product, field):
|
||||||
|
return "TODO: add default renderer for last sold"
|
||||||
|
|
||||||
def render_inventory_on_hand(self, product, field):
|
def render_inventory_on_hand(self, product, field):
|
||||||
if not product.inventory:
|
if not product.inventory:
|
||||||
return ""
|
return ""
|
||||||
|
|
Loading…
Reference in a new issue