fix model view registration

This commit is contained in:
Andrew Mleczko
2011-08-25 12:38:59 +02:00
parent 169f509f19
commit 608203d999
3 changed files with 11 additions and 5 deletions
+2
View File
@@ -5,6 +5,8 @@
- Adding IBeforeListingRenderEvent (amleczko)
- Fix problem with formalchemy_model_view registration (amleczko)
0.4.1 (2011-07-01)
------------------
+2 -2
View File
@@ -25,8 +25,8 @@ def formalchemy_model_view(config, route_name,
model = config.maybe_dotted(model)
context = config.maybe_dotted(context)
mixin_name = '%sCustom%s_%s_%s' % (model.__name__, context.__name__,
route_name, kwargs.get('request_method','GET'))
mixin_name = '%sCustom%s_%s_%s_%s' % (model.__name__, context.__name__,
route_name, name, kwargs.get('request_method','GET'))
factory = type(mixin_name, (context,), {})
config.registry.pyramid_formalchemy_views[factory.__name__] = factory
+7 -3
View File
@@ -100,7 +100,7 @@ class Models(Base):
self.request.model_name = item
model_class = self.get_model()
mixin_name = '%sCustom%s_%s_%s' % (model_class.__name__, ModelListing.__name__,
mixin_name = '%sCustom%s_%s__%s' % (model_class.__name__, ModelListing.__name__,
self.request.route_name, self.request.method)
mixin = type(mixin_name, (ModelListing, ), {})
factory = self.request.registry.pyramid_formalchemy_views.get(mixin.__name__, mixin)
@@ -134,8 +134,12 @@ class ModelListing(Base):
self.request.format = item
return self
mixin_name = '%sCustom%s_%s_%s' % (self.request.model_class.__name__, Model.__name__,
self.request.route_name, self.request.method)
name = self.request.path.split('/')[-1] #view name
if name == item:
name = ''
mixin_name = '%sCustom%s_%s_%s_%s' % (self.request.model_class.__name__, Model.__name__,
self.request.route_name, name, self.request.method)
mixin = type(str(mixin_name), (Model, ), {})
factory = self.request.registry.pyramid_formalchemy_views.get(mixin.__name__, mixin)
try: