[Checkins] SVN: grok/trunk/src/grok/ - refactored __new__ of
grok.Model into a function that is called during grok
Christian Theune
ct at gocept.com
Thu Oct 19 14:56:42 EDT 2006
Log message for revision 70817:
- refactored __new__ of grok.Model into a function that is called during grok
time
Changed:
U grok/trunk/src/grok/_grok.py
U grok/trunk/src/grok/components.py
-=-
Modified: grok/trunk/src/grok/_grok.py
===================================================================
--- grok/trunk/src/grok/_grok.py 2006-10-19 17:35:41 UTC (rev 70816)
+++ grok/trunk/src/grok/_grok.py 2006-10-19 18:56:41 UTC (rev 70817)
@@ -109,7 +109,10 @@
register_unassociated_templates(context, templates, module_info)
register_subscribers(subscribers)
+ # Do various other initializations
+ initialize_schema(models)
+
def scan_module(module_info):
components = {
grok.Model: [],
@@ -197,6 +200,12 @@
if not getCheckerForInstancesOf(model):
defineChecker(model, NoProxy)
+def initialize_schema(models):
+ # Set the default values as class attributes to make formlib work
+ for model in models:
+ for field in components.schema_fields(model):
+ setattr(model, field.__name__, field.default)
+
def register_adapters(context, adapters):
for factory in adapters:
adapter_context = util.determine_class_context(factory, context)
Modified: grok/trunk/src/grok/components.py
===================================================================
--- grok/trunk/src/grok/components.py 2006-10-19 17:35:41 UTC (rev 70816)
+++ grok/trunk/src/grok/components.py 2006-10-19 18:56:41 UTC (rev 70817)
@@ -39,15 +39,11 @@
from grok import util, security
+
class Model(persistent.Persistent):
- def __new__(class_, *args, **kw):
- instance = super(Model, class_).__new__(class_, args, kw)
+ pass
- for field in schema_fields(instance):
- setattr(instance, field.__name__, field.default)
- return instance
-
class Container(BTreeContainer):
pass
@@ -196,7 +192,7 @@
def _init(self):
fields = schema_fields(self.context)
self.form_fields = form.Fields(*fields)
-
+
self.template = component.getAdapter(self, INamedTemplate,
name='default')
def __call__(self):
More information about the Checkins
mailing list