Refactored AutocompleteFieldRenderer.

Also improved some organization of renderers.
This commit is contained in:
Lance Edgar 2013-09-21 15:02:55 -07:00
parent c1d726d48c
commit 9f8a3d3a5c
8 changed files with 211 additions and 152 deletions

View file

@ -50,7 +50,7 @@ from rattail.gpc import GPC
from rattail.db.api import get_product_by_upc
from ..db import Session
from ..forms import AutocompleteFieldRenderer, GPCFieldRenderer, PriceFieldRenderer
from ..forms import GPCFieldRenderer, BrandFieldRenderer, PriceFieldRenderer
from . import CrudView
@ -225,14 +225,13 @@ class ProductCrud(CrudView):
def fieldset(self, model):
fs = self.make_fieldset(model)
fs.upc.set(renderer=GPCFieldRenderer)
fs.brand.set(renderer=AutocompleteFieldRenderer(
self.request.route_url('brands.autocomplete')))
fs.brand.set(options=[])
fs.regular_price.set(renderer=PriceFieldRenderer)
fs.current_price.set(renderer=PriceFieldRenderer)
fs.configure(
include=[
fs.upc.label("UPC"),
fs.brand,
fs.brand.with_renderer(BrandFieldRenderer),
fs.description,
fs.size,
fs.department,

View file

@ -32,7 +32,7 @@ from formalchemy.fields import SelectFieldRenderer
from edbob.pyramid.views import users
from . import SearchableAlchemyGridView, CrudView
from ..forms import PersonFieldRenderer
from ..forms import PersonFieldLinkRenderer
from ..db import Session
from rattail.db.model import User, Person, Role
from rattail.db.auth import guest_role
@ -143,8 +143,6 @@ class UserCrud(CrudView):
# Must set Person options to empty set to avoid unwanted magic.
fs.person.set(options=[])
fs.person.set(renderer=PersonFieldRenderer(
self.request.route_url('people.autocomplete')))
fs.append(users.PasswordField('password'))
fs.append(Field('confirm_password',
@ -155,7 +153,7 @@ class UserCrud(CrudView):
fs.configure(
include=[
fs.username,
fs.person,
fs.person.with_renderer(PersonFieldLinkRenderer),
fs.password.label("Set Password"),
fs.confirm_password,
fs.roles,

View file

@ -81,8 +81,6 @@ class VendorCrud(CrudView):
def fieldset(self, model):
fs = self.make_fieldset(model)
fs.append(AssociationProxyField('contact'))
fs.contact.set(renderer=PersonFieldRenderer(
self.request.route_url('people.autocomplete')))
fs.configure(
include=[
fs.id.label("ID"),
@ -90,7 +88,7 @@ class VendorCrud(CrudView):
fs.special_discount,
fs.phone.label("Phone Number").readonly(),
fs.email.label("Email Address").readonly(),
fs.contact.readonly(),
fs.contact.with_renderer(PersonFieldRenderer).readonly(),
])
return fs