pyramid autocomplete renderer

This commit is contained in:
Andrew Mleczko
2011-06-18 16:06:44 +02:00
parent 682195ec2c
commit 340107eac4
2 changed files with 20 additions and 0 deletions
+11
View File
@@ -120,6 +120,7 @@ def formalchemy_admin(config, route_name,
request_method='GET',
permission='new',
**kw)
config.add_view(context='pyramid_formalchemy.resources.ModelListing',
renderer='pyramid_formalchemy:templates/admin/new.pt',
attr='create',
@@ -134,6 +135,7 @@ def formalchemy_admin(config, route_name,
request_method='GET',
permission='edit',
**kw)
config.add_view(context='pyramid_formalchemy.resources.Model',
renderer='pyramid_formalchemy:templates/admin/edit.pt',
name='edit',
@@ -141,6 +143,7 @@ def formalchemy_admin(config, route_name,
request_method='POST',
permission='edit',
**kw)
config.add_view(context='pyramid_formalchemy.resources.Model',
renderer='json',
name='',
@@ -156,6 +159,7 @@ def formalchemy_admin(config, route_name,
request_method='POST',
permission='delete',
**kw)
config.add_view(context='pyramid_formalchemy.resources.Model',
renderer='pyramid_formalchemy:templates/admin/edit.pt',
attr='delete',
@@ -171,3 +175,10 @@ def formalchemy_admin(config, route_name,
attr='show',
**kw)
config.add_view(context='pyramid_formalchemy.resources.ModelListing',
attr='autocomplete',
name='autocomplete',
request_method='GET',
permission='view',
**kw)
+9
View File
@@ -390,3 +390,12 @@ class ModelView(object):
return exc.HTTPFound(location=request.fa_url(request.model_name))
return self.render(id=request.model_id)
def autocomplete(self, *args, **kwargs):
filter_term = "%s%%" % self.request.params.get('term')
filter_attr = getattr(self.request.model_class, self.request.params.get('filter_by'))
query = self.session.query(self.request.model_class.id, filter_attr).filter(filter_attr.ilike(filter_term))
items = self.request.query_factory(self.request, query)
return Response(json.dumps([{'label' : x[1],
'value' : x[0]} for x in items ]),
content_type='text/plain')