mirror of
https://github.com/wassname/pyramid_formalchemy.git
synced 2026-08-01 12:50:49 +08:00
use exceptions.NotFound. move views declaration to view.zcml
This commit is contained in:
+3
-2
@@ -2,13 +2,14 @@
|
||||
newest = false
|
||||
extensions = gp.vcsdevelop
|
||||
parts = eggs test
|
||||
develop = . pyramidapp
|
||||
develop = . pyramidapp ../fa.jquery
|
||||
|
||||
[eggs]
|
||||
recipe = zc.recipe.egg
|
||||
eggs =
|
||||
pyramid_formalchemy
|
||||
pyramidapp
|
||||
fa.jquery
|
||||
WebTest
|
||||
PasteScript
|
||||
Sphinx
|
||||
@@ -20,7 +21,7 @@ eggs =
|
||||
nose
|
||||
initialization =
|
||||
import os
|
||||
os.chdir('pyramidapp')
|
||||
os.chdir(os.path.join('${buildout:directory}', 'pyramidapp'))
|
||||
scripts=
|
||||
nosetests=nosetests
|
||||
paster=paster_serve
|
||||
|
||||
@@ -1,9 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
def include(config):
|
||||
"""include formalchemy's zcml"""
|
||||
config.load_zcml('pyramid.includes:configure.zcml')
|
||||
config.load_zcml('pyramid_formalchemy:configure.zcml')
|
||||
config.load_zcml('pyramid_formalchemy:views.zcml')
|
||||
|
||||
def configure(config, models=None, forms=None, session_factory=None, package=None):
|
||||
def include_jquery(config):
|
||||
"""include formalchemy's zcml"""
|
||||
config.load_zcml('pyramid.includes:configure.zcml')
|
||||
config.load_zcml('pyramid_formalchemy:configure.zcml')
|
||||
config.load_zcml('fa.jquery:configure.zcml')
|
||||
|
||||
def configure(config, models=None, forms=None, session_factory=None, package=None, use_jquery=True):
|
||||
"""configure formalchemy's admin interface"""
|
||||
if models:
|
||||
models = config.maybe_dotted(models)
|
||||
@@ -26,6 +35,9 @@ def configure(config, models=None, forms=None, session_factory=None, package=Non
|
||||
'fa.session_factory': session_factory,
|
||||
})
|
||||
|
||||
config.add_route('fa_admin', '/admin/*traverse',
|
||||
factory='pyramid_formalchemy.resources.AdminView')
|
||||
|
||||
if use_jquery:
|
||||
config.add_route('fa_admin', '/admin/*traverse',
|
||||
factory='pyramid_formalchemy.resources.AdminView')
|
||||
else:
|
||||
config.add_route('fa_admin', '/admin/*traverse',
|
||||
factory='pyramid_formalchemy.resources.AdminView')
|
||||
|
||||
@@ -1,122 +1,9 @@
|
||||
<?xml version="1.0"?>
|
||||
<configure xmlns="http://pylonshq.com/pyramid">
|
||||
|
||||
<include package="pyramid.includes" />
|
||||
|
||||
<static
|
||||
name="fa_admin"
|
||||
path="pyramid_formalchemy:static"
|
||||
/>
|
||||
|
||||
<view
|
||||
name=""
|
||||
route_name="fa_admin"
|
||||
context=".resources.AdminView"
|
||||
view=".views.ModelView"
|
||||
attr="models"
|
||||
request_method="GET"
|
||||
renderer="pyramid_formalchemy:templates/admin/models.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name=""
|
||||
route_name="fa_admin"
|
||||
context=".resources.ModelListing"
|
||||
view=".views.ModelView"
|
||||
attr="listing"
|
||||
request_method="GET"
|
||||
renderer="pyramid_formalchemy:templates/admin/listing.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name="new"
|
||||
route_name="fa_admin"
|
||||
context=".resources.ModelListing"
|
||||
view=".views.ModelView"
|
||||
attr="new"
|
||||
request_method="GET"
|
||||
renderer="pyramid_formalchemy:templates/admin/new.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name=""
|
||||
route_name="fa_admin"
|
||||
context=".resources.ModelListing"
|
||||
view=".views.ModelView"
|
||||
attr="create"
|
||||
request_method="POST"
|
||||
renderer="pyramid_formalchemy:templates/admin/new.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name="edit"
|
||||
route_name="fa_admin"
|
||||
context=".resources.ModelItem"
|
||||
view=".views.ModelView"
|
||||
attr="edit"
|
||||
request_method="GET"
|
||||
renderer="pyramid_formalchemy:templates/admin/edit.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name="edit"
|
||||
route_name="fa_admin"
|
||||
context=".resources.ModelItem"
|
||||
view=".views.ModelView"
|
||||
attr="update"
|
||||
request_method="POST"
|
||||
renderer="pyramid_formalchemy:templates/admin/edit.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name=""
|
||||
route_name="fa_admin"
|
||||
context=".resources.ModelItem"
|
||||
view=".views.ModelView"
|
||||
attr="update"
|
||||
request_method="POST"
|
||||
renderer="json"
|
||||
/>
|
||||
|
||||
<view
|
||||
name=""
|
||||
route_name="fa_admin"
|
||||
context=".resources.ModelItem"
|
||||
view=".views.ModelView"
|
||||
attr="update"
|
||||
request_method="PUT"
|
||||
renderer="json"
|
||||
/>
|
||||
|
||||
|
||||
<view
|
||||
name="delete"
|
||||
route_name="fa_admin"
|
||||
context=".resources.ModelItem"
|
||||
view=".views.ModelView"
|
||||
attr="delete"
|
||||
request_method="POST"
|
||||
renderer="pyramid_formalchemy:templates/admin/edit.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name=""
|
||||
route_name="fa_admin"
|
||||
context=".resources.ModelItem"
|
||||
view=".views.ModelView"
|
||||
attr="delete"
|
||||
request_method="DELETE"
|
||||
renderer="pyramid_formalchemy:templates/admin/edit.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name=""
|
||||
route_name="fa_admin"
|
||||
context=".resources.ModelItem"
|
||||
view=".views.ModelView"
|
||||
attr="show"
|
||||
request_method="GET"
|
||||
renderer="pyramid_formalchemy:templates/admin/show.pt"
|
||||
/>
|
||||
|
||||
</configure>
|
||||
|
||||
@@ -8,7 +8,7 @@ class AdminView(object):
|
||||
request.format = 'html'
|
||||
self.__parent__ = self.__name__ = None
|
||||
def __getitem__(self, item):
|
||||
if item in ('json',):
|
||||
if item in ('json', 'xhr'):
|
||||
self.request.format = item
|
||||
return self
|
||||
model = ModelListing(self.request, item)
|
||||
@@ -22,7 +22,7 @@ class ModelListing(object):
|
||||
self.__name__ = name
|
||||
self.__parent__ = None
|
||||
def __getitem__(self, item):
|
||||
if item in ('json',):
|
||||
if item in ('json', 'xhr'):
|
||||
self.request.format = item
|
||||
return self
|
||||
if item in ('new',):
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
<?xml version="1.0"?>
|
||||
<configure
|
||||
xmlns="http://namespaces.zope.org/zope"
|
||||
xmlns:browser="http://namespaces.zope.org/browser"
|
||||
>
|
||||
|
||||
<view
|
||||
name=""
|
||||
route_name="fa_admin"
|
||||
context="pyramid_formalchemy.resources.AdminView"
|
||||
view="pyramid_formalchemy.views.ModelView"
|
||||
attr="models"
|
||||
request_method="GET"
|
||||
renderer="pyramid_formalchemy:templates/admin/models.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name=""
|
||||
route_name="fa_admin"
|
||||
context="pyramid_formalchemy.resources.ModelListing"
|
||||
view="pyramid_formalchemy.views.ModelView"
|
||||
attr="listing"
|
||||
request_method="GET"
|
||||
renderer="pyramid_formalchemy:templates/admin/listing.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name="new"
|
||||
route_name="fa_admin"
|
||||
context="pyramid_formalchemy.resources.ModelListing"
|
||||
view="pyramid_formalchemy.views.ModelView"
|
||||
attr="new"
|
||||
request_method="GET"
|
||||
renderer="pyramid_formalchemy:templates/admin/new.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name=""
|
||||
route_name="fa_admin"
|
||||
context="pyramid_formalchemy.resources.ModelListing"
|
||||
view="pyramid_formalchemy.views.ModelView"
|
||||
attr="create"
|
||||
request_method="POST"
|
||||
renderer="pyramid_formalchemy:templates/admin/new.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name="edit"
|
||||
route_name="fa_admin"
|
||||
context="pyramid_formalchemy.resources.ModelItem"
|
||||
view="pyramid_formalchemy.views.ModelView"
|
||||
attr="edit"
|
||||
request_method="GET"
|
||||
renderer="pyramid_formalchemy:templates/admin/edit.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name="edit"
|
||||
route_name="fa_admin"
|
||||
context="pyramid_formalchemy.resources.ModelItem"
|
||||
view="pyramid_formalchemy.views.ModelView"
|
||||
attr="update"
|
||||
request_method="POST"
|
||||
renderer="pyramid_formalchemy:templates/admin/edit.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name=""
|
||||
route_name="fa_admin"
|
||||
context="pyramid_formalchemy.resources.ModelItem"
|
||||
view="pyramid_formalchemy.views.ModelView"
|
||||
attr="update"
|
||||
request_method="POST"
|
||||
renderer="json"
|
||||
/>
|
||||
|
||||
<view
|
||||
name=""
|
||||
route_name="fa_admin"
|
||||
context="pyramid_formalchemy.resources.ModelItem"
|
||||
view="pyramid_formalchemy.views.ModelView"
|
||||
attr="update"
|
||||
request_method="PUT"
|
||||
renderer="json"
|
||||
/>
|
||||
|
||||
|
||||
<view
|
||||
name="delete"
|
||||
route_name="fa_admin"
|
||||
context="pyramid_formalchemy.resources.ModelItem"
|
||||
view="pyramid_formalchemy.views.ModelView"
|
||||
attr="delete"
|
||||
request_method="POST"
|
||||
renderer="pyramid_formalchemy:templates/admin/edit.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name=""
|
||||
route_name="fa_admin"
|
||||
context="pyramid_formalchemy.resources.ModelItem"
|
||||
view="pyramid_formalchemy.views.ModelView"
|
||||
attr="delete"
|
||||
request_method="DELETE"
|
||||
renderer="pyramid_formalchemy:templates/admin/edit.pt"
|
||||
/>
|
||||
|
||||
<view
|
||||
name=""
|
||||
route_name="fa_admin"
|
||||
context="pyramid_formalchemy.resources.ModelItem"
|
||||
view="pyramid_formalchemy.views.ModelView"
|
||||
attr="show"
|
||||
request_method="GET"
|
||||
renderer="pyramid_formalchemy:templates/admin/show.pt"
|
||||
/>
|
||||
|
||||
</configure>
|
||||
@@ -11,7 +11,9 @@ from formalchemy import fatypes
|
||||
from pyramid.view import view_config
|
||||
from pyramid.renderers import render
|
||||
from pyramid.renderers import get_renderer
|
||||
from pyramid.response import Response
|
||||
from pyramid import httpexceptions as exc
|
||||
from pyramid.exceptions import NotFound
|
||||
|
||||
try:
|
||||
from formalchemy.ext.couchdb import Document
|
||||
@@ -99,7 +101,7 @@ class ModelView(object):
|
||||
return model
|
||||
elif hasattr(self.model, self.model_name):
|
||||
return getattr(self.model, self.model_name)
|
||||
raise exc.HTTPNotFound(description='model %s not found' % self.model_name)
|
||||
raise NotFound()
|
||||
|
||||
def get_fieldset(self, id):
|
||||
if self.forms and hasattr(self.forms, self.model_name):
|
||||
@@ -166,7 +168,7 @@ class ModelView(object):
|
||||
if meth is not None:
|
||||
return meth(**kwargs)
|
||||
else:
|
||||
return exc.HTTPNotfound()
|
||||
raise NotFound()
|
||||
kwargs.update(
|
||||
main = get_renderer('pyramid_formalchemy:templates/admin/master.pt').implementation(),
|
||||
model_name=self.model_name,
|
||||
@@ -196,18 +198,18 @@ class ModelView(object):
|
||||
return data
|
||||
|
||||
def render_xhr_format(self, fs=None, **kwargs):
|
||||
response.content_type = 'text/html'
|
||||
self.request.response_content_type = 'text/html'
|
||||
if fs is not None:
|
||||
if 'field' in request.GET:
|
||||
field_name = request.GET.get('field')
|
||||
if 'field' in self.request.GET:
|
||||
field_name = self.request.GET.get('field')
|
||||
fields = fs.render_fields
|
||||
if field_name in fields:
|
||||
field = fields[field_name]
|
||||
return field.render()
|
||||
else:
|
||||
return exc.HTTPNotfound()
|
||||
return fs.render()
|
||||
return ''
|
||||
raise NotFound()
|
||||
return Response(fs.render())
|
||||
return Response('')
|
||||
|
||||
def get_page(self, **kwargs):
|
||||
"""return a ``webhelpers.paginate.Page`` used to display ``Grid``.
|
||||
@@ -252,7 +254,7 @@ class ModelView(object):
|
||||
model = S.query(model).get(id)
|
||||
if model:
|
||||
return model
|
||||
raise exc.HTTPNotFound()
|
||||
raise NotFound()
|
||||
|
||||
def get_fieldset(self, id=None):
|
||||
"""return a ``FieldSet`` object bound to the correct record for ``id``.
|
||||
|
||||
Binary file not shown.
@@ -13,8 +13,8 @@ def main(global_config, **settings):
|
||||
config.add_static_view('static', 'pyramidapp:static')
|
||||
config.add_route('home', '/', view='pyramidapp.views.my_view',
|
||||
view_renderer='templates/mytemplate.pt')
|
||||
pyramid_formalchemy.include(config)
|
||||
pyramid_formalchemy.configure(config, package='pyramidapp')
|
||||
pyramid_formalchemy.include_jquery(config)
|
||||
pyramid_formalchemy.configure(config, package='pyramidapp', use_jquery=True)
|
||||
return config.make_wsgi_app()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user