Add UI support for Product.last_sold and current_price_ends pseudo-field.

This commit is contained in:
Lance Edgar 2015-03-10 17:51:12 -05:00
parent 42da24a047
commit 3fed317805
2 changed files with 22 additions and 2 deletions

View file

@ -33,6 +33,7 @@
<%def name="render_price_fields(form)">
${render_field_readonly(form.fieldset.regular_price)}
${render_field_readonly(form.fieldset.current_price)}
${render_field_readonly(form.fieldset.current_price_ends)}
${render_field_readonly(form.fieldset.deposit_link)}
${render_field_readonly(form.fieldset.tax)}
</%def>
@ -46,6 +47,10 @@
${render_field_readonly(form.fieldset.deleted)}
</%def>
<%def name="render_movement_fields(form)">
${render_field_readonly(form.fieldset.last_sold)}
</%def>
<div class="form-wrapper">
<ul class="context-menu">
${self.context_menu_items()}
@ -96,6 +101,13 @@
</div>
</div>
<div class="panel">
<h2>Movement</h2>
<div class="panel-body">
${self.render_movement_fields(form)}
</div>
</div>
<div class="panel-grid" id="product-costs">
<h2>Vendor Sources</h2>
<div class="grid full hoverable no-border">

View file

@ -32,8 +32,8 @@ import re
from sqlalchemy import and_
from sqlalchemy.orm import joinedload, aliased
import formalchemy
from webhelpers.html.tags import link_to
from pyramid.httpexceptions import HTTPFound
from pyramid.renderers import render_to_response
@ -54,7 +54,7 @@ from rattail.pod import get_image_url, get_image_path
from tailbone.views import SearchableAlchemyGridView, CrudView
from tailbone.views.continuum import VersionView, version_defaults
from tailbone.forms import EnumFieldRenderer
from tailbone.forms import EnumFieldRenderer, DateTimeFieldRenderer
from tailbone.db import Session
from tailbone.forms import GPCFieldRenderer, BrandFieldRenderer, PriceFieldRenderer
from tailbone.progress import SessionProgress
@ -249,6 +249,12 @@ class ProductCrud(CrudView):
fs.unit_of_measure.set(renderer=EnumFieldRenderer(enum.UNIT_OF_MEASURE))
fs.regular_price.set(renderer=PriceFieldRenderer)
fs.current_price.set(renderer=PriceFieldRenderer)
fs.append(formalchemy.Field('current_price_ends'))
fs.current_price_ends.set(value=lambda p: p.current_price.ends if p.current_price else None)
fs.current_price_ends.set(renderer=DateTimeFieldRenderer(self.request.rattail_config))
fs.last_sold.set(renderer=DateTimeFieldRenderer(self.request.rattail_config))
fs.configure(
include=[
fs.upc.label("UPC"),
@ -266,6 +272,7 @@ class ProductCrud(CrudView):
fs.report_code,
fs.regular_price,
fs.current_price,
fs.current_price_ends,
fs.deposit_link,
fs.tax,
fs.organic,
@ -273,6 +280,7 @@ class ProductCrud(CrudView):
fs.special_order,
fs.not_for_sale,
fs.deleted,
fs.last_sold,
])
if not self.readonly:
del fs.regular_price