Add StoreFieldRenderer.

Also try to set a good pattern for going forward..
This commit is contained in:
Lance Edgar 2015-07-15 23:18:53 -05:00
parent 5cbccb175a
commit 21486a5e55
4 changed files with 52 additions and 7 deletions

View file

@ -45,7 +45,7 @@ from pyramid.authentication import SessionAuthenticationPolicy
import tailbone.db
from tailbone.auth import TailboneAuthorizationPolicy
from tailbone.forms import GPCFieldRenderer
from tailbone.forms import renderers
log = logging.getLogger(__name__)
@ -119,7 +119,7 @@ def make_pyramid_config(settings):
# Configure FormAlchemy.
formalchemy.config.engine = TemplateEngine()
formalchemy.FieldSet.default_renderers[GPCType] = GPCFieldRenderer
formalchemy.FieldSet.default_renderers[GPCType] = renderers.GPCFieldRenderer
return config

View file

@ -1,9 +1,8 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
################################################################################
#
# Rattail -- Retail Software Framework
# Copyright © 2010-2012 Lance Edgar
# Copyright © 2010-2015 Lance Edgar
#
# This file is part of Rattail.
#
@ -21,7 +20,6 @@
# along with Rattail. If not, see <http://www.gnu.org/licenses/>.
#
################################################################################
"""
Forms
"""
@ -30,3 +28,5 @@ from .simpleform import *
from .alchemy import *
from .fields import *
from .renderers import *
from tailbone.forms import renderers

View file

@ -33,4 +33,8 @@ from tailbone.forms.renderers.common import (
from .people import *
from .employees import EmployeeFieldRenderer
from .products import *
from tailbone.forms.renderers.products import GPCFieldRenderer
from tailbone.forms.renderers.products import *
from tailbone.forms.renderers.stores import StoreFieldRenderer

View file

@ -0,0 +1,41 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Rattail -- Retail Software Framework
# Copyright © 2010-2015 Lance Edgar
#
# This file is part of Rattail.
#
# Rattail is free software: you can redistribute it and/or modify it under the
# terms of the GNU Affero General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# Rattail is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
# more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with Rattail. If not, see <http://www.gnu.org/licenses/>.
#
################################################################################
"""
Store Field Renderers
"""
from __future__ import unicode_literals
from formalchemy.fields import SelectFieldRenderer
class StoreFieldRenderer(SelectFieldRenderer):
"""
Renderer for :class:`rattail.db.model.Store` instance fields.
"""
def render_readonly(self, **kwargs):
store = self.raw_value
if not store:
return ''
return '{0} - {1}'.format(store.id, store.name)