Add grid, CRUD views for Setting
model.
This required some tweaks to the base CRUD view etc.
This commit is contained in:
parent
86507cf660
commit
cc2c2573e5
5 changed files with 205 additions and 32 deletions
|
@ -1,9 +1,8 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
################################################################################
|
||||
#
|
||||
# Rattail -- Retail Software Framework
|
||||
# Copyright © 2010-2012 Lance Edgar
|
||||
# Copyright © 2010-2014 Lance Edgar
|
||||
#
|
||||
# This file is part of Rattail.
|
||||
#
|
||||
|
@ -21,11 +20,20 @@
|
|||
# along with Rattail. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
"""
|
||||
FormAlchemy Grid Classes
|
||||
"""
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from sqlalchemy.orm import object_session
|
||||
|
||||
try:
|
||||
from sqlalchemy.inspection import inspect
|
||||
except ImportError:
|
||||
inspect = None
|
||||
from sqlalchemy.orm import class_mapper
|
||||
|
||||
from webhelpers.html import tags
|
||||
from webhelpers.html import HTML
|
||||
|
||||
|
@ -36,7 +44,6 @@ from edbob.util import prettify
|
|||
|
||||
from .core import Grid
|
||||
from ..db import Session
|
||||
from sqlalchemy.orm import object_session
|
||||
|
||||
__all__ = ['AlchemyGrid']
|
||||
|
||||
|
@ -78,14 +85,18 @@ class AlchemyGrid(Grid):
|
|||
return HTML.tag('th', class_=class_, field=field.key,
|
||||
title=self.column_titles.get(field.key), c=label)
|
||||
|
||||
def view_route_kwargs(self, row):
|
||||
return {'uuid': row.uuid}
|
||||
def crud_route_kwargs(self, row):
|
||||
if inspect:
|
||||
mapper = inspect(row.__class__)
|
||||
else:
|
||||
mapper = class_mapper(row.__class__)
|
||||
keys = [k.key for k in mapper.primary_key]
|
||||
values = [getattr(row, k) for k in keys]
|
||||
return dict(zip(keys, values))
|
||||
|
||||
def edit_route_kwargs(self, row):
|
||||
return {'uuid': row.uuid}
|
||||
|
||||
def delete_route_kwargs(self, row):
|
||||
return {'uuid': row.uuid}
|
||||
view_route_kwargs = crud_route_kwargs
|
||||
edit_route_kwargs = crud_route_kwargs
|
||||
delete_route_kwargs = crud_route_kwargs
|
||||
|
||||
def iter_fields(self):
|
||||
return self._formalchemy_grid.render_fields.itervalues()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue