mirror of
https://github.com/wassname/pyramid_formalchemy.git
synced 2026-09-10 12:20:32 +08:00
refactor config in the pyramid 1.0 way
This commit is contained in:
@@ -1,19 +1,23 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
def include(config):
|
||||
def includeme(config):
|
||||
"""include formalchemy's zcml"""
|
||||
config.load_zcml('pyramid.includes:configure.zcml')
|
||||
config.load_zcml('pyramid_formalchemy:configure.zcml')
|
||||
config.load_zcml('pyramid_formalchemy:view.zcml')
|
||||
config.add_static_view('fa_admin', 'pyramid_formalchemy:static')
|
||||
config.add_directive('formalchemy_admin', 'pyramid_formalchemy.formalchemy_admin')
|
||||
|
||||
def include_jquery(config):
|
||||
"""include formalchemy and fa.jquery's zcml """
|
||||
config.load_zcml('pyramid.includes:configure.zcml')
|
||||
config.load_zcml('pyramid_formalchemy:configure.zcml')
|
||||
config.load_zcml('fa.jquery:configure.zcml')
|
||||
config.add_static_view('fa_admin', 'fa.jquery:static')
|
||||
|
||||
def configure(config, models=None, forms=None, session_factory=None, package=None, prefix='/admin', use_jquery=True):
|
||||
|
||||
def formalchemy_admin(config, route_name,
|
||||
factory='pyramid_formalchemy.resources.Models',
|
||||
view='pyramid_formalchemy.views.ModelView',
|
||||
package=None, models=None, forms=None, session_factory=None):
|
||||
"""configure formalchemy's admin interface"""
|
||||
|
||||
kw = dict(route_name=route_name, view=view)
|
||||
|
||||
if models:
|
||||
models = config.maybe_dotted(models)
|
||||
if forms:
|
||||
@@ -29,19 +33,88 @@ def configure(config, models=None, forms=None, session_factory=None, package=Non
|
||||
if not session_factory:
|
||||
session_factory = config.maybe_dotted('%s.models.DBSession' % package)
|
||||
|
||||
config.registry.settings.update({
|
||||
'fa.models': models,
|
||||
'fa.forms': forms,
|
||||
'fa.session_factory': session_factory,
|
||||
})
|
||||
factory_args = {
|
||||
'__models__': models,
|
||||
'__forms__': forms,
|
||||
'__session_factory__': session_factory,
|
||||
'__fa_route_name__': route_name,
|
||||
}
|
||||
|
||||
prefix = prefix.rstrip('/')
|
||||
if not prefix:
|
||||
prefix = '/'
|
||||
factory = config.maybe_dotted(factory)
|
||||
|
||||
factory = type('%s_%s' % (factory.__name__, route_name), (factory,), factory_args)
|
||||
|
||||
config.add_route(route_name, '%s/*traverse' % route_name,
|
||||
factory=factory)
|
||||
|
||||
config.add_view(context=factory,
|
||||
renderer='pyramid_formalchemy:templates/admin/models.pt',
|
||||
attr='models',
|
||||
request_method='GET',
|
||||
permission='view',
|
||||
**kw)
|
||||
|
||||
config.add_view(context='pyramid_formalchemy.resources.ModelListing',
|
||||
renderer='pyramid_formalchemy:templates/admin/listing.pt',
|
||||
attr='listing',
|
||||
request_method='GET',
|
||||
permission='view',
|
||||
**kw)
|
||||
|
||||
config.add_view(context='pyramid_formalchemy.resources.ModelListing',
|
||||
renderer='pyramid_formalchemy:templates/admin/new.pt',
|
||||
name='new',
|
||||
attr='new',
|
||||
request_method='GET',
|
||||
permission='new',
|
||||
**kw)
|
||||
config.add_view(context='pyramid_formalchemy.resources.ModelListing',
|
||||
renderer='pyramid_formalchemy:templates/admin/new.pt',
|
||||
attr='create',
|
||||
request_method='POST',
|
||||
permission='new',
|
||||
**kw)
|
||||
|
||||
config.add_view(context='pyramid_formalchemy.resources.Model',
|
||||
renderer='pyramid_formalchemy:templates/admin/edit.pt',
|
||||
name='edit',
|
||||
attr='edit',
|
||||
request_method='GET',
|
||||
permission='edit',
|
||||
**kw)
|
||||
config.add_view(context='pyramid_formalchemy.resources.Model',
|
||||
renderer='pyramid_formalchemy:templates/admin/edit.pt',
|
||||
name='edit',
|
||||
attr='update',
|
||||
request_method='POST',
|
||||
permission='edit',
|
||||
**kw)
|
||||
config.add_view(context='pyramid_formalchemy.resources.Model',
|
||||
renderer='json',
|
||||
attr='update',
|
||||
request_method='POST',
|
||||
permission='edit',
|
||||
**kw)
|
||||
|
||||
config.add_view(context='pyramid_formalchemy.resources.Model',
|
||||
renderer='pyramid_formalchemy:templates/admin/edit.pt',
|
||||
name='delete',
|
||||
attr='delete',
|
||||
request_method='POST',
|
||||
permission='delete',
|
||||
**kw)
|
||||
config.add_view(context='pyramid_formalchemy.resources.Model',
|
||||
renderer='pyramid_formalchemy:templates/admin/edit.pt',
|
||||
attr='delete',
|
||||
request_method='DELETE',
|
||||
permission='delete',
|
||||
**kw)
|
||||
|
||||
config.add_view(context='pyramid_formalchemy.resources.Model',
|
||||
renderer='pyramid_formalchemy:templates/admin/show.pt',
|
||||
request_method='GET',
|
||||
permission='view',
|
||||
name='',
|
||||
attr='show',
|
||||
**kw)
|
||||
|
||||
if use_jquery:
|
||||
config.add_route('fa_admin', '%s/*traverse' % prefix,
|
||||
factory='pyramid_formalchemy.resources.AdminView')
|
||||
else:
|
||||
config.add_route('fa_admin', '%s/*traverse' % prefix,
|
||||
factory='pyramid_formalchemy.resources.AdminView')
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<configure xmlns="http://pylonshq.com/pyramid">
|
||||
|
||||
<static
|
||||
name="fa_admin"
|
||||
path="pyramid_formalchemy:static"
|
||||
/>
|
||||
|
||||
</configure>
|
||||
@@ -1,12 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
class AdminView(object):
|
||||
def __init__(self, request):
|
||||
class Base(object):
|
||||
|
||||
def __init__(self, request, name):
|
||||
self.__name__ = name
|
||||
self.__parent__ = None
|
||||
self.request = request
|
||||
if hasattr(self, '__fa_route_name__'):
|
||||
request.forms = self.__forms__
|
||||
request.model = self.__models__
|
||||
request.route_name = self.__fa_route_name__
|
||||
request.session_factory = self.__session_factory__
|
||||
|
||||
class Models(Base):
|
||||
|
||||
def __init__(self, request):
|
||||
Base.__init__(self, request, None)
|
||||
request.model_name = None
|
||||
request.model_id = None
|
||||
request.format = 'html'
|
||||
self.__parent__ = self.__name__ = None
|
||||
|
||||
def __getitem__(self, item):
|
||||
if item in ('json', 'xhr'):
|
||||
self.request.format = item
|
||||
@@ -15,25 +28,25 @@ class AdminView(object):
|
||||
model.__parent__ = self
|
||||
return model
|
||||
|
||||
class ModelListing(object):
|
||||
class ModelListing(Base):
|
||||
|
||||
def __init__(self, request, name):
|
||||
self.request = request
|
||||
Base.__init__(self, request, name)
|
||||
request.model_name = name
|
||||
self.__name__ = name
|
||||
self.__parent__ = None
|
||||
|
||||
def __getitem__(self, item):
|
||||
if item in ('json', 'xhr'):
|
||||
self.request.format = item
|
||||
return self
|
||||
if item in ('new',):
|
||||
raise KeyError()
|
||||
model = ModelItem(self.request, item)
|
||||
model = Model(self.request, item)
|
||||
model.__parent__ = self
|
||||
return model
|
||||
|
||||
class ModelItem(object):
|
||||
class Model(Base):
|
||||
|
||||
def __init__(self, request, name):
|
||||
Base.__init__(self, request, name)
|
||||
request.model_id = name
|
||||
self.__name__ = name
|
||||
self.__parent__ = None
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<table class="layout-grid" tal:content="structure fs.render()" />
|
||||
<p>
|
||||
<a class="ui-widget-header ui-widget-link ui-corner-all"
|
||||
tal:attributes="href request.route_url('fa_admin', traverse='%s/new' % request.model_name)">
|
||||
tal:attributes="href request.route_url(request.route_name, traverse='%s/new' % request.model_name)">
|
||||
<span class="ui-icon ui-icon-circle-plus"></span>
|
||||
${F_('New')} ${model_name}
|
||||
</a>
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<input type="submit" value="${F_('Save')}" />
|
||||
</a>
|
||||
<a class="ui-widget-header ui-widget-link ui-corner-all"
|
||||
tal:attributes="href request.route_url('fa_admin', traverse=request.model_name)">
|
||||
tal:attributes="href request.route_url(request.route_name, traverse=request.model_name)">
|
||||
<span class="ui-icon ui-icon-circle-arrow-w"></span>
|
||||
${F_('Cancel')}
|
||||
</a>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div metal:fill-slot="main">
|
||||
<div tal:repeat="item models">
|
||||
<div>
|
||||
<a tal:attributes="href request.route_url('fa_admin', traverse=item)"
|
||||
<a tal:attributes="href request.route_url(request.route_name, traverse=item)"
|
||||
tal:content="item"></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<body>
|
||||
<div metal:fill-slot="main">
|
||||
<form method="POST" enctype="multipart/form-data"
|
||||
tal:attributes="action request.route_url('fa_admin', traverse=request.model_name)"
|
||||
tal:attributes="action request.route_url(request.route_name, traverse=request.model_name)"
|
||||
>
|
||||
<div tal:content="structure fs.render()" />
|
||||
<div metal:use-macro="main.macros['buttons']">
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:tal="http://xml.zope.org/namespaces/tal">
|
||||
<head>
|
||||
<title>The Pyramid Web Application Development Framework</title>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
<meta name="keywords" content="python web application" />
|
||||
<meta name="description" content="pyramid web application" />
|
||||
<link rel="shortcut icon" href="${request.static_url('pyramid_formalchemy:static/favicon.ico')}" />
|
||||
<link rel="stylesheet" href="${request.static_url('pyramid_formalchemy:static/pylons.css')}" type="text/css" media="screen" charset="utf-8" />
|
||||
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Neuton&subset=latin" type="text/css" media="screen" charset="utf-8" />
|
||||
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Nobile:regular,italic,bold,bolditalic&subset=latin" type="text/css" media="screen" charset="utf-8" />
|
||||
<!--[if lte IE 6]>
|
||||
<link rel="stylesheet" href="${request.static_url('pyramid_formalchemy:static/ie6.css')}" type="text/css" media="screen" charset="utf-8" />
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<div id="wrap">
|
||||
<div id="top">
|
||||
<div class="top align-center">
|
||||
<div><img src="${request.static_url('pyramid_formalchemy:static/pyramid.png')}" width="750" height="169" alt="pyramid"/></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="middle">
|
||||
<div class="middle align-center">
|
||||
<p class="app-welcome">
|
||||
Welcome to <span class="app-name">${project}</span>, an application generated by<br/>
|
||||
the Pyramid web application development framework.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="bottom">
|
||||
<div class="bottom">
|
||||
<div id="left" class="align-right">
|
||||
<h2>Search documentation</h2>
|
||||
<form method="get" action="http://docs.pylonshq.com/pyramid/dev/search.html">
|
||||
<input type="text" id="q" name="q" value="" />
|
||||
<input type="submit" id="x" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
<div id="right" class="align-left">
|
||||
<h2>Pyramid links</h2>
|
||||
<ul class="links">
|
||||
<li>
|
||||
<a href="http://pylonshq.com">Pylons Website</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://docs.pylonshq.com/pyramid/dev/#narrative-documentation">Narrative Documentation</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://docs.pylonshq.com/pyramid/dev/#api-documentation">API Documentation</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://docs.pylonshq.com/pyramid/dev/#tutorials">Tutorials</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://docs.pylonshq.com/pyramid/dev/#change-history">Change History</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://docs.pylonshq.com/pyramid/dev/#sample-applications">Sample Applications</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://docs.pylonshq.com/pyramid/dev/#support-and-development">Support and Development</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="irc://irc.freenode.net#pyramid">IRC Channel</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<div class="footer">© Copyright 2008-2011, Agendaless Consulting.</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,115 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<configure xmlns="http://pylonshq.com/pyramid">
|
||||
|
||||
<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>
|
||||
@@ -46,11 +46,9 @@ class ModelView(object):
|
||||
def __init__(self, context, request):
|
||||
self.context = context
|
||||
self.request = request
|
||||
self.settings = request.registry.settings
|
||||
self.model = self.settings['fa.models']
|
||||
self.forms = self.settings.get('fa.forms', None)
|
||||
self.FieldSet = self.settings.get('fa.fieldset', FieldSet)
|
||||
self.Grid = self.settings.get('fa.grid', Grid)
|
||||
|
||||
self.FieldSet = FieldSet
|
||||
self.Grid = Grid
|
||||
|
||||
@property
|
||||
def model_name(self):
|
||||
@@ -61,22 +59,22 @@ class ModelView(object):
|
||||
return None
|
||||
|
||||
def route_url(self, *args):
|
||||
return self.request.route_url('fa_admin', traverse='/'.join([str(a) for a in args]))
|
||||
return self.request.route_url(self.request.route_name, traverse='/'.join([str(a) for a in args]))
|
||||
|
||||
def Session(self):
|
||||
"""return a Session object. You **must** override this."""
|
||||
return self.settings['fa.session_factory']()
|
||||
return self.request.session_factory()
|
||||
|
||||
def models(self, **kwargs):
|
||||
"""Models index page"""
|
||||
request = self.request
|
||||
models = {}
|
||||
if isinstance(self.model, list):
|
||||
for model in self.model:
|
||||
if isinstance(request.model, list):
|
||||
for model in request.model:
|
||||
key = model.__name__
|
||||
models[key] = self.route_url(key, request.format)
|
||||
else:
|
||||
for key, obj in self.model.__dict__.iteritems():
|
||||
for key, obj in request.model.__dict__.iteritems():
|
||||
if not key.startswith('_'):
|
||||
if Document is not None:
|
||||
try:
|
||||
@@ -95,32 +93,33 @@ class ModelView(object):
|
||||
return self.render(models=models)
|
||||
|
||||
def get_model(self):
|
||||
if isinstance(self.model, list):
|
||||
for model in self.model:
|
||||
request = self.request
|
||||
if isinstance(request.model, list):
|
||||
for model in request.model:
|
||||
if model.__name__ == self.model_name:
|
||||
return model
|
||||
elif hasattr(self.model, self.model_name):
|
||||
return getattr(self.model, self.model_name)
|
||||
elif hasattr(request.model, self.model_name):
|
||||
return getattr(request.model, self.model_name)
|
||||
raise NotFound()
|
||||
|
||||
def get_fieldset(self, id):
|
||||
if self.forms and hasattr(self.forms, self.model_name):
|
||||
fs = getattr(self.forms, self.model_name)
|
||||
if request.forms and hasattr(request.forms, self.model_name):
|
||||
fs = getattr(request.forms, self.model_name)
|
||||
fs.engine = fs.engine or self.engine
|
||||
return id and fs.bind(self.get(id)) or fs
|
||||
raise KeyError(self.model_name)
|
||||
|
||||
def get_add_fieldset(self):
|
||||
if self.forms and hasattr(self.forms, '%sAdd' % self.model_name):
|
||||
fs = getattr(self.forms, '%sAdd' % self.model_name)
|
||||
if request.forms and hasattr(request.forms, '%sAdd' % self.model_name):
|
||||
fs = getattr(request.forms, '%sAdd' % self.model_name)
|
||||
fs.engine = fs.engine or self.engine
|
||||
return fs
|
||||
return self.get_fieldset(id=None)
|
||||
|
||||
def get_grid(self):
|
||||
model_name = self.model_name
|
||||
if self.forms and hasattr(self.forms, '%sGrid' % model_name):
|
||||
g = getattr(self.forms, '%sGrid' % model_name)
|
||||
if request.forms and hasattr(request.forms, '%sGrid' % model_name):
|
||||
g = getattr(request.forms, '%sGrid' % model_name)
|
||||
g.engine = g.engine or self.engine
|
||||
g.readonly = True
|
||||
self.update_grid(g)
|
||||
@@ -191,7 +190,7 @@ class ModelView(object):
|
||||
data = dict(fields=fields)
|
||||
pk = _pk(fs.model)
|
||||
if pk:
|
||||
data['item_url'] = request.route_url('fa_admin', traverse='%s/json/%s' % (self.model_name, pk))
|
||||
data['item_url'] = self.route_url(self.model_name, 'json', pk)
|
||||
else:
|
||||
data = {}
|
||||
data.update(kwargs)
|
||||
@@ -265,8 +264,9 @@ class ModelView(object):
|
||||
fs.engine = fs.engine or self.engine
|
||||
return fs
|
||||
"""
|
||||
if self.forms and hasattr(self.forms, self.model_name):
|
||||
fs = getattr(self.forms, self.model_name)
|
||||
request = self.request
|
||||
if request.forms and hasattr(request.forms, self.model_name):
|
||||
fs = getattr(request.forms, self.model_name)
|
||||
fs.engine = fs.engine or self.engine
|
||||
return id and fs.bind(self.get(id)) or fs
|
||||
fs = self.FieldSet(self.get(id))
|
||||
@@ -300,9 +300,10 @@ class ModelView(object):
|
||||
self.update_grid(grid)
|
||||
return grid
|
||||
"""
|
||||
request = self.request
|
||||
model_name = self.model_name
|
||||
if self.forms and hasattr(self.forms, '%sGrid' % model_name):
|
||||
g = getattr(self.forms, '%sGrid' % model_name)
|
||||
if request.forms and hasattr(request.forms, '%sGrid' % model_name):
|
||||
g = getattr(request.forms, '%sGrid' % model_name)
|
||||
g.engine = g.engine or self.engine
|
||||
g.readonly = True
|
||||
self.update_grid(g)
|
||||
|
||||
@@ -3,9 +3,6 @@ from sqlalchemy import engine_from_config
|
||||
|
||||
from pyramidapp.models import initialize_sql
|
||||
|
||||
# import
|
||||
import pyramid_formalchemy
|
||||
|
||||
def main(global_config, **settings):
|
||||
""" This function returns a Pyramid WSGI application.
|
||||
"""
|
||||
@@ -17,8 +14,8 @@ def main(global_config, **settings):
|
||||
view_renderer='templates/mytemplate.pt')
|
||||
|
||||
# pyramid_formalchemy's configuration
|
||||
pyramid_formalchemy.include(config)
|
||||
pyramid_formalchemy.configure(config, package='pyramidapp')
|
||||
config.include('pyramid_formalchemy')
|
||||
config.formalchemy_admin('admin', package='pyramidapp')
|
||||
|
||||
return config.make_wsgi_app()
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ here = os.path.abspath(os.path.dirname(__file__))
|
||||
README = open(os.path.join(here, 'README.txt')).read()
|
||||
CHANGES = open(os.path.join(here, 'CHANGES.txt')).read()
|
||||
|
||||
requires = ['pyramid', 'WebError', 'FormAlchemy']
|
||||
requires = ['pyramid>=1.0', 'WebError', 'FormAlchemy']
|
||||
|
||||
setup(name='pyramid_formalchemy',
|
||||
version='0.0',
|
||||
|
||||
Reference in New Issue
Block a user