Refactor several more straggler views to use master3
This commit is contained in:
parent
3097f46aa1
commit
ce0195bd51
|
@ -2,7 +2,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Rattail -- Retail Software Framework
|
# Rattail -- Retail Software Framework
|
||||||
# Copyright © 2010-2017 Lance Edgar
|
# Copyright © 2010-2018 Lance Edgar
|
||||||
#
|
#
|
||||||
# This file is part of Rattail.
|
# This file is part of Rattail.
|
||||||
#
|
#
|
||||||
|
@ -33,10 +33,7 @@ from sqlalchemy import orm
|
||||||
from rattail.db import model
|
from rattail.db import model
|
||||||
from rattail.time import localtime
|
from rattail.time import localtime
|
||||||
|
|
||||||
import formalchemy as fa
|
from tailbone.views import MasterView3 as MasterView
|
||||||
|
|
||||||
from tailbone import forms
|
|
||||||
from tailbone.views import MasterView2 as MasterView
|
|
||||||
from tailbone.util import raw_datetime
|
from tailbone.util import raw_datetime
|
||||||
|
|
||||||
|
|
||||||
|
@ -78,6 +75,21 @@ class CustomerOrderItemsView(MasterView):
|
||||||
'note',
|
'note',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
form_fields = [
|
||||||
|
'person',
|
||||||
|
'product',
|
||||||
|
'product_brand',
|
||||||
|
'product_description',
|
||||||
|
'product_size',
|
||||||
|
'case_quantity',
|
||||||
|
'cases_ordered',
|
||||||
|
'units_ordered',
|
||||||
|
'unit_price',
|
||||||
|
'total_price',
|
||||||
|
'paid_amount',
|
||||||
|
'status_code',
|
||||||
|
]
|
||||||
|
|
||||||
def query(self, session):
|
def query(self, session):
|
||||||
return session.query(model.CustomerOrderItem)\
|
return session.query(model.CustomerOrderItem)\
|
||||||
.join(model.CustomerOrder)\
|
.join(model.CustomerOrder)\
|
||||||
|
@ -118,36 +130,49 @@ class CustomerOrderItemsView(MasterView):
|
||||||
value = localtime(self.rattail_config, item.order.created, from_utc=True)
|
value = localtime(self.rattail_config, item.order.created, from_utc=True)
|
||||||
return raw_datetime(self.rattail_config, value)
|
return raw_datetime(self.rattail_config, value)
|
||||||
|
|
||||||
def _preconfigure_fieldset(self, fs):
|
def configure_form(self, f):
|
||||||
fs.order.set(renderer=forms.renderers.CustomerOrderFieldRenderer)
|
super(CustomerOrderItemsView, self).configure_form(f)
|
||||||
fs.product.set(renderer=forms.renderers.ProductFieldRenderer)
|
|
||||||
fs.product_unit_of_measure.set(renderer=forms.renderers.EnumFieldRenderer(self.enum.UNIT_OF_MEASURE))
|
|
||||||
fs.case_quantity.set(renderer=forms.renderers.QuantityFieldRenderer)
|
|
||||||
fs.cases_ordered.set(renderer=forms.renderers.QuantityFieldRenderer)
|
|
||||||
fs.units_ordered.set(renderer=forms.renderers.QuantityFieldRenderer)
|
|
||||||
fs.unit_price.set(renderer=forms.renderers.CurrencyFieldRenderer)
|
|
||||||
fs.total_price.set(renderer=forms.renderers.CurrencyFieldRenderer)
|
|
||||||
fs.paid_amount.set(renderer=forms.renderers.CurrencyFieldRenderer)
|
|
||||||
fs.status_code.set(label="Status")
|
|
||||||
fs.append(fa.Field('person', value=lambda i: i.order.person,
|
|
||||||
renderer=forms.renderers.PersonFieldRenderer))
|
|
||||||
|
|
||||||
def configure_fieldset(self, fs):
|
# order
|
||||||
fs.configure(
|
f.set_renderer('order', self.render_order)
|
||||||
include=[
|
|
||||||
fs.person,
|
# product
|
||||||
fs.product,
|
f.set_renderer('product', self.render_product)
|
||||||
fs.product_brand,
|
|
||||||
fs.product_description,
|
# product uom
|
||||||
fs.product_size,
|
f.set_enum('product_unit_of_measure', self.enum.UNIT_OF_MEASURE)
|
||||||
fs.case_quantity,
|
|
||||||
fs.cases_ordered,
|
# quantity fields
|
||||||
fs.units_ordered,
|
f.set_type('case_quantity', 'quantity')
|
||||||
fs.unit_price,
|
f.set_type('cases_ordered', 'quantity')
|
||||||
fs.total_price,
|
f.set_type('units_ordered', 'quantity')
|
||||||
fs.paid_amount,
|
|
||||||
fs.status_code,
|
# currency fields
|
||||||
])
|
f.set_type('unit_price', 'currency')
|
||||||
|
f.set_type('total_price', 'currency')
|
||||||
|
f.set_type('paid_amount', 'currency')
|
||||||
|
|
||||||
|
# person
|
||||||
|
f.set_renderer('person', self.render_person)
|
||||||
|
|
||||||
|
# label overrides
|
||||||
|
f.set_label('status_code', "Status")
|
||||||
|
|
||||||
|
def render_order(self, item, field):
|
||||||
|
order = item.order
|
||||||
|
if not order:
|
||||||
|
return ""
|
||||||
|
text = six.text_type(order)
|
||||||
|
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):
|
def get_row_data(self, item):
|
||||||
return self.Session.query(model.CustomerOrderItemEvent)\
|
return self.Session.query(model.CustomerOrderItemEvent)\
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Rattail -- Retail Software Framework
|
# Rattail -- Retail Software Framework
|
||||||
# Copyright © 2010-2017 Lance Edgar
|
# Copyright © 2010-2018 Lance Edgar
|
||||||
#
|
#
|
||||||
# This file is part of Rattail.
|
# This file is part of Rattail.
|
||||||
#
|
#
|
||||||
|
@ -26,13 +26,15 @@ Customer Order Views
|
||||||
|
|
||||||
from __future__ import unicode_literals, absolute_import
|
from __future__ import unicode_literals, absolute_import
|
||||||
|
|
||||||
|
import six
|
||||||
from sqlalchemy import orm
|
from sqlalchemy import orm
|
||||||
|
|
||||||
from rattail.db import model
|
from rattail.db import model
|
||||||
|
|
||||||
from tailbone import forms
|
from webhelpers2.html import tags
|
||||||
|
|
||||||
from tailbone.db import Session
|
from tailbone.db import Session
|
||||||
from tailbone.views import MasterView2 as MasterView
|
from tailbone.views import MasterView as MasterView
|
||||||
|
|
||||||
|
|
||||||
class CustomerOrdersView(MasterView):
|
class CustomerOrdersView(MasterView):
|
||||||
|
@ -53,6 +55,14 @@ class CustomerOrdersView(MasterView):
|
||||||
'status_code',
|
'status_code',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
form_fields = [
|
||||||
|
'id',
|
||||||
|
'customer',
|
||||||
|
'person',
|
||||||
|
'created',
|
||||||
|
'status_code',
|
||||||
|
]
|
||||||
|
|
||||||
def query(self, session):
|
def query(self, session):
|
||||||
return session.query(model.CustomerOrder)\
|
return session.query(model.CustomerOrder)\
|
||||||
.options(orm.joinedload(model.CustomerOrder.customer))
|
.options(orm.joinedload(model.CustomerOrder.customer))
|
||||||
|
@ -81,22 +91,29 @@ class CustomerOrdersView(MasterView):
|
||||||
g.set_label('status_code', "Status")
|
g.set_label('status_code', "Status")
|
||||||
g.set_label('id', "ID")
|
g.set_label('id', "ID")
|
||||||
|
|
||||||
def _preconfigure_fieldset(self, fs):
|
def configure_form(self, f):
|
||||||
fs.customer.set(options=[])
|
super(CustomerOrdersView, self).configure_form(f)
|
||||||
fs.id.set(label="ID", readonly=True)
|
|
||||||
fs.person.set(renderer=forms.renderers.PersonFieldRenderer)
|
|
||||||
fs.created.set(readonly=True)
|
|
||||||
fs.status_code.set(label="Status")
|
|
||||||
|
|
||||||
def configure_fieldset(self, fs):
|
# id
|
||||||
fs.configure(
|
f.set_readonly('id')
|
||||||
include=[
|
f.set_label('id', "ID")
|
||||||
fs.id,
|
|
||||||
fs.customer,
|
# person
|
||||||
fs.person,
|
f.set_renderer('person', self.render_person)
|
||||||
fs.created,
|
|
||||||
fs.status_code,
|
# created
|
||||||
])
|
f.set_readonly('created')
|
||||||
|
|
||||||
|
# label overrides
|
||||||
|
f.set_label('status_code', "Status")
|
||||||
|
|
||||||
|
def render_person(self, order, field):
|
||||||
|
person = order.person
|
||||||
|
if not person:
|
||||||
|
return ""
|
||||||
|
text = six.text_type(person)
|
||||||
|
url = self.request.route_url('people.view', uuid=person.uuid)
|
||||||
|
return tags.link_to(text, url)
|
||||||
|
|
||||||
|
|
||||||
def includeme(config):
|
def includeme(config):
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Rattail -- Retail Software Framework
|
# Rattail -- Retail Software Framework
|
||||||
# Copyright © 2010-2017 Lance Edgar
|
# Copyright © 2010-2018 Lance Edgar
|
||||||
#
|
#
|
||||||
# This file is part of Rattail.
|
# This file is part of Rattail.
|
||||||
#
|
#
|
||||||
|
@ -29,7 +29,7 @@ from __future__ import unicode_literals, absolute_import
|
||||||
from rattail.db import model
|
from rattail.db import model
|
||||||
|
|
||||||
from tailbone import forms
|
from tailbone import forms
|
||||||
from tailbone.views import MasterView2 as MasterView
|
from tailbone.views import MasterView3 as MasterView
|
||||||
|
|
||||||
|
|
||||||
class DepositLinksView(MasterView):
|
class DepositLinksView(MasterView):
|
||||||
|
@ -46,6 +46,12 @@ class DepositLinksView(MasterView):
|
||||||
'amount',
|
'amount',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
form_fields = [
|
||||||
|
'code',
|
||||||
|
'description',
|
||||||
|
'amount',
|
||||||
|
]
|
||||||
|
|
||||||
def configure_grid(self, g):
|
def configure_grid(self, g):
|
||||||
super(DepositLinksView, self).configure_grid(g)
|
super(DepositLinksView, self).configure_grid(g)
|
||||||
g.filters['description'].default_active = True
|
g.filters['description'].default_active = True
|
||||||
|
@ -55,14 +61,6 @@ class DepositLinksView(MasterView):
|
||||||
g.set_link('code')
|
g.set_link('code')
|
||||||
g.set_link('description')
|
g.set_link('description')
|
||||||
|
|
||||||
def configure_fieldset(self, fs):
|
|
||||||
fs.configure(
|
|
||||||
include=[
|
|
||||||
fs.code,
|
|
||||||
fs.description,
|
|
||||||
fs.amount,
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
def includeme(config):
|
def includeme(config):
|
||||||
DepositLinksView.defaults(config)
|
DepositLinksView.defaults(config)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Rattail -- Retail Software Framework
|
# Rattail -- Retail Software Framework
|
||||||
# Copyright © 2010-2017 Lance Edgar
|
# Copyright © 2010-2018 Lance Edgar
|
||||||
#
|
#
|
||||||
# This file is part of Rattail.
|
# This file is part of Rattail.
|
||||||
#
|
#
|
||||||
|
@ -28,7 +28,7 @@ from __future__ import unicode_literals, absolute_import
|
||||||
|
|
||||||
from rattail.db import model
|
from rattail.db import model
|
||||||
|
|
||||||
from tailbone.views import MasterView2 as MasterView
|
from tailbone.views import MasterView3 as MasterView
|
||||||
|
|
||||||
|
|
||||||
class FamiliesView(MasterView):
|
class FamiliesView(MasterView):
|
||||||
|
@ -46,19 +46,17 @@ class FamiliesView(MasterView):
|
||||||
'name',
|
'name',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
form_fields = [
|
||||||
|
'code',
|
||||||
|
'name',
|
||||||
|
]
|
||||||
|
|
||||||
def configure_grid(self, g):
|
def configure_grid(self, g):
|
||||||
|
super(FamiliesView, self).configure_grid(g)
|
||||||
g.filters['name'].default_active = True
|
g.filters['name'].default_active = True
|
||||||
g.filters['name'].default_verb = 'contains'
|
g.filters['name'].default_verb = 'contains'
|
||||||
g.set_sort_defaults('code')
|
g.set_sort_defaults('code')
|
||||||
|
|
||||||
def configure_fieldset(self, fs):
|
|
||||||
fs.configure(
|
|
||||||
include=[
|
|
||||||
fs.code,
|
|
||||||
fs.name,
|
|
||||||
])
|
|
||||||
return fs
|
|
||||||
|
|
||||||
|
|
||||||
def includeme(config):
|
def includeme(config):
|
||||||
FamiliesView.defaults(config)
|
FamiliesView.defaults(config)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Rattail -- Retail Software Framework
|
# Rattail -- Retail Software Framework
|
||||||
# Copyright © 2010-2017 Lance Edgar
|
# Copyright © 2010-2018 Lance Edgar
|
||||||
#
|
#
|
||||||
# This file is part of Rattail.
|
# This file is part of Rattail.
|
||||||
#
|
#
|
||||||
|
@ -30,9 +30,8 @@ from rattail.db import model
|
||||||
|
|
||||||
from pyramid.httpexceptions import HTTPFound
|
from pyramid.httpexceptions import HTTPFound
|
||||||
|
|
||||||
from tailbone import forms
|
|
||||||
from tailbone.db import Session
|
from tailbone.db import Session
|
||||||
from tailbone.views import MasterView2 as MasterView
|
from tailbone.views import MasterView3 as MasterView
|
||||||
|
|
||||||
|
|
||||||
class ProfilesView(MasterView):
|
class ProfilesView(MasterView):
|
||||||
|
@ -51,6 +50,16 @@ class ProfilesView(MasterView):
|
||||||
'visible',
|
'visible',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
form_fields = [
|
||||||
|
'ordinal',
|
||||||
|
'code',
|
||||||
|
'description',
|
||||||
|
'printer_spec',
|
||||||
|
'formatter_spec',
|
||||||
|
'format',
|
||||||
|
'visible',
|
||||||
|
]
|
||||||
|
|
||||||
def configure_grid(self, g):
|
def configure_grid(self, g):
|
||||||
super(ProfilesView, self).configure_grid(g)
|
super(ProfilesView, self).configure_grid(g)
|
||||||
g.set_sort_defaults('ordinal')
|
g.set_sort_defaults('ordinal')
|
||||||
|
@ -58,20 +67,11 @@ class ProfilesView(MasterView):
|
||||||
g.set_link('code')
|
g.set_link('code')
|
||||||
g.set_link('description')
|
g.set_link('description')
|
||||||
|
|
||||||
def configure_fieldset(self, fs):
|
def configure_form(self, f):
|
||||||
fs.printer_spec.set(renderer=forms.renderers.StrippedTextFieldRenderer)
|
super(ProfilesView, self).configure_form(f)
|
||||||
fs.formatter_spec.set(renderer=forms.renderers.StrippedTextFieldRenderer)
|
|
||||||
fs.format.set(renderer=forms.renderers.CodeTextAreaFieldRenderer)
|
# format
|
||||||
fs.configure(
|
f.set_type('format', 'codeblock')
|
||||||
include=[
|
|
||||||
fs.ordinal,
|
|
||||||
fs.code,
|
|
||||||
fs.description,
|
|
||||||
fs.printer_spec,
|
|
||||||
fs.formatter_spec,
|
|
||||||
fs.format,
|
|
||||||
fs.visible,
|
|
||||||
])
|
|
||||||
|
|
||||||
def after_create(self, profile):
|
def after_create(self, profile):
|
||||||
self.after_edit(profile)
|
self.after_edit(profile)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8; -*-
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Rattail -- Retail Software Framework
|
# Rattail -- Retail Software Framework
|
||||||
# Copyright © 2010-2017 Lance Edgar
|
# Copyright © 2010-2018 Lance Edgar
|
||||||
#
|
#
|
||||||
# This file is part of Rattail.
|
# This file is part of Rattail.
|
||||||
#
|
#
|
||||||
|
@ -30,8 +30,8 @@ from rattail.db import model
|
||||||
|
|
||||||
from webhelpers2.html import tags
|
from webhelpers2.html import tags
|
||||||
|
|
||||||
from tailbone import forms, grids
|
from tailbone import grids
|
||||||
from tailbone.views import MasterView2 as MasterView
|
from tailbone.views import MasterView3 as MasterView
|
||||||
|
|
||||||
|
|
||||||
class PurchaseCreditView(MasterView):
|
class PurchaseCreditView(MasterView):
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Rattail -- Retail Software Framework
|
# Rattail -- Retail Software Framework
|
||||||
# Copyright © 2010-2017 Lance Edgar
|
# Copyright © 2010-2018 Lance Edgar
|
||||||
#
|
#
|
||||||
# This file is part of Rattail.
|
# This file is part of Rattail.
|
||||||
#
|
#
|
||||||
|
@ -28,7 +28,7 @@ from __future__ import unicode_literals, absolute_import
|
||||||
|
|
||||||
from rattail.db import model
|
from rattail.db import model
|
||||||
|
|
||||||
from tailbone.views import MasterView2 as MasterView
|
from tailbone.views import MasterView3 as MasterView
|
||||||
|
|
||||||
|
|
||||||
class ReportCodesView(MasterView):
|
class ReportCodesView(MasterView):
|
||||||
|
@ -44,6 +44,11 @@ class ReportCodesView(MasterView):
|
||||||
'name',
|
'name',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
form_fields = [
|
||||||
|
'code',
|
||||||
|
'name',
|
||||||
|
]
|
||||||
|
|
||||||
def configure_grid(self, g):
|
def configure_grid(self, g):
|
||||||
super(ReportCodesView, self).configure_grid(g)
|
super(ReportCodesView, self).configure_grid(g)
|
||||||
g.filters['name'].default_active = True
|
g.filters['name'].default_active = True
|
||||||
|
@ -52,14 +57,6 @@ class ReportCodesView(MasterView):
|
||||||
g.set_link('code')
|
g.set_link('code')
|
||||||
g.set_link('name')
|
g.set_link('name')
|
||||||
|
|
||||||
def configure_fieldset(self, fs):
|
|
||||||
fs.configure(
|
|
||||||
include=[
|
|
||||||
fs.code,
|
|
||||||
fs.name,
|
|
||||||
])
|
|
||||||
return fs
|
|
||||||
|
|
||||||
|
|
||||||
def includeme(config):
|
def includeme(config):
|
||||||
ReportCodesView.defaults(config)
|
ReportCodesView.defaults(config)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Rattail -- Retail Software Framework
|
# Rattail -- Retail Software Framework
|
||||||
# Copyright © 2010-2017 Lance Edgar
|
# Copyright © 2010-2018 Lance Edgar
|
||||||
#
|
#
|
||||||
# This file is part of Rattail.
|
# This file is part of Rattail.
|
||||||
#
|
#
|
||||||
|
@ -26,7 +26,7 @@ Views with info about the underlying Rattail tables
|
||||||
|
|
||||||
from __future__ import unicode_literals, absolute_import
|
from __future__ import unicode_literals, absolute_import
|
||||||
|
|
||||||
from tailbone.views import MasterView2 as MasterView
|
from tailbone.views import MasterView3 as MasterView
|
||||||
|
|
||||||
|
|
||||||
class TablesView(MasterView):
|
class TablesView(MasterView):
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Rattail -- Retail Software Framework
|
# Rattail -- Retail Software Framework
|
||||||
# Copyright © 2010-2017 Lance Edgar
|
# Copyright © 2010-2018 Lance Edgar
|
||||||
#
|
#
|
||||||
# This file is part of Rattail.
|
# This file is part of Rattail.
|
||||||
#
|
#
|
||||||
|
@ -28,7 +28,7 @@ from __future__ import unicode_literals, absolute_import
|
||||||
|
|
||||||
from rattail.db import model
|
from rattail.db import model
|
||||||
|
|
||||||
from tailbone.views import MasterView2 as MasterView
|
from tailbone.views import MasterView3 as MasterView
|
||||||
|
|
||||||
|
|
||||||
class TaxesView(MasterView):
|
class TaxesView(MasterView):
|
||||||
|
@ -46,6 +46,12 @@ class TaxesView(MasterView):
|
||||||
'rate',
|
'rate',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
form_fields = [
|
||||||
|
'code',
|
||||||
|
'description',
|
||||||
|
'rate',
|
||||||
|
]
|
||||||
|
|
||||||
def configure_grid(self, g):
|
def configure_grid(self, g):
|
||||||
super(TaxesView, self).configure_grid(g)
|
super(TaxesView, self).configure_grid(g)
|
||||||
g.filters['description'].default_active = True
|
g.filters['description'].default_active = True
|
||||||
|
@ -54,14 +60,6 @@ class TaxesView(MasterView):
|
||||||
g.set_link('code')
|
g.set_link('code')
|
||||||
g.set_link('description')
|
g.set_link('description')
|
||||||
|
|
||||||
def configure_fieldset(self, fs):
|
|
||||||
fs.configure(
|
|
||||||
include=[
|
|
||||||
fs.code,
|
|
||||||
fs.description,
|
|
||||||
fs.rate,
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
def includeme(config):
|
def includeme(config):
|
||||||
TaxesView.defaults(config)
|
TaxesView.defaults(config)
|
||||||
|
|
|
@ -32,7 +32,7 @@ from rattail.time import localtime
|
||||||
|
|
||||||
from tailbone import forms
|
from tailbone import forms
|
||||||
from tailbone.db import TrainwreckSession
|
from tailbone.db import TrainwreckSession
|
||||||
from tailbone.views import MasterView2 as MasterView
|
from tailbone.views import MasterView3 as MasterView
|
||||||
|
|
||||||
|
|
||||||
class TransactionView(MasterView):
|
class TransactionView(MasterView):
|
||||||
|
@ -77,6 +77,27 @@ class TransactionView(MasterView):
|
||||||
'void',
|
'void',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
form_fields = [
|
||||||
|
'system',
|
||||||
|
'system_id',
|
||||||
|
'terminal_id',
|
||||||
|
'receipt_number',
|
||||||
|
'start_time',
|
||||||
|
'end_time',
|
||||||
|
'upload_time',
|
||||||
|
'cashier_id',
|
||||||
|
'cashier_name',
|
||||||
|
'customer_id',
|
||||||
|
'customer_name',
|
||||||
|
'shopper_id',
|
||||||
|
'shopper_name',
|
||||||
|
'subtotal',
|
||||||
|
'discounted_subtotal',
|
||||||
|
'tax',
|
||||||
|
'total',
|
||||||
|
'void',
|
||||||
|
]
|
||||||
|
|
||||||
def configure_grid(self, g):
|
def configure_grid(self, g):
|
||||||
super(TransactionView, self).configure_grid(g)
|
super(TransactionView, self).configure_grid(g)
|
||||||
g.filters['receipt_number'].default_active = True
|
g.filters['receipt_number'].default_active = True
|
||||||
|
@ -98,39 +119,24 @@ class TransactionView(MasterView):
|
||||||
g.set_link('customer_name')
|
g.set_link('customer_name')
|
||||||
g.set_link('total')
|
g.set_link('total')
|
||||||
|
|
||||||
def _preconfigure_fieldset(self, fs):
|
def configure_form(self, f):
|
||||||
fs.system.set(renderer=forms.renderers.EnumFieldRenderer(self.enum.TRAINWRECK_SYSTEM))
|
super(TransactionView, self).configure_form(f)
|
||||||
fs.system_id.set(label="System ID")
|
|
||||||
fs.terminal_id.set(label="Terminal")
|
|
||||||
fs.cashier_id.set(label="Cashier ID")
|
|
||||||
fs.customer_id.set(label="Customer ID")
|
|
||||||
fs.shopper_id.set(label="Shopper ID")
|
|
||||||
fs.subtotal.set(renderer=forms.renderers.CurrencyFieldRenderer)
|
|
||||||
fs.discounted_subtotal.set(renderer=forms.renderers.CurrencyFieldRenderer)
|
|
||||||
fs.tax.set(renderer=forms.renderers.CurrencyFieldRenderer)
|
|
||||||
fs.total.set(renderer=forms.renderers.CurrencyFieldRenderer)
|
|
||||||
|
|
||||||
def configure_fieldset(self, fs):
|
# system
|
||||||
fs.configure(include=[
|
f.set_enum('system', self.enum.TRAINWRECK_SYSTEM)
|
||||||
fs.system,
|
|
||||||
fs.system_id,
|
# currency fields
|
||||||
fs.terminal_id,
|
f.set_type('subtotal', 'currency')
|
||||||
fs.receipt_number,
|
f.set_type('discounted_subtotal', 'currency')
|
||||||
fs.start_time,
|
f.set_type('tax', 'currency')
|
||||||
fs.end_time,
|
f.set_type('total', 'currency')
|
||||||
fs.upload_time,
|
|
||||||
fs.cashier_id,
|
# label overrides
|
||||||
fs.cashier_name,
|
f.set_label('system_id', "System ID")
|
||||||
fs.customer_id,
|
f.set_label('terminal_id', "Terminal")
|
||||||
fs.customer_name,
|
f.set_label('cashier_id', "Cashier ID")
|
||||||
fs.shopper_id,
|
f.set_label('customer_id', "Customer ID")
|
||||||
fs.shopper_name,
|
f.set_label('shopper_id', "Shopper ID")
|
||||||
fs.subtotal,
|
|
||||||
fs.discounted_subtotal,
|
|
||||||
fs.tax,
|
|
||||||
fs.total,
|
|
||||||
fs.void,
|
|
||||||
])
|
|
||||||
|
|
||||||
def get_row_data(self, transaction):
|
def get_row_data(self, transaction):
|
||||||
return self.Session.query(self.model_row_class)\
|
return self.Session.query(self.model_row_class)\
|
||||||
|
|
Loading…
Reference in a new issue