コード例 #1
0
ファイル: keyreference.py プロジェクト: kapilt/zope-alchemist
 def __init__( self, object ):
     self.klass = named( object.__class__ )
     primary_key = getPrimaryKey( object )
     if len( primary_key ) == 1:
         self.primary_key = primary_key[0]
     else:
         self.primary_key = primary_key
コード例 #2
0
 def __init__(self, object):
     self.klass = named(object.__class__)
     primary_key = getPrimaryKey(object)
     if len(primary_key) == 1:
         self.primary_key = primary_key[0]
     else:
         self.primary_key = primary_key
コード例 #3
0
 def defineMapping(self, annotated_table, **kw):
     table_mapper = mapper(annotated_table.domain_class,
                           annotated_table.table, **kw)
     self.mappers[named(annotated_table.domain_class)] = table_mapper
     annotated_table.domain_class.mapper = table_mapper
     self.table_classes[
         annotated_table.table.name] = annotated_table.domain_class
コード例 #4
0
    def setUpViewlet(self, domain_model):
        model_schema = list(interface.implementedBy(domain_model))[0]
        mapper = orm.class_mapper(domain_model)
        domain_annotation = model.queryModelDescriptor(model_schema)

        grouped = util.OrderedDict()

        for property in mapper.iterate_properties:
            if not self.checkProperty(property, model_schema,
                                      domain_annotation):
                continue

            property_name = property.key
            descriptor = domain_annotation.get(property_name)
            if descriptor.group in grouped:
                grouped[descriptor.group].append(property_name)
            else:
                grouped[descriptor.group] = [property_name]

        for group in grouped:

            viewlet_name = self.viewlet_name_template % (domain_model.__name__,
                                                         group)
            viewlet_name.replace('_', '')

            if getattr(content, viewlet_name, None):
                continue

            inverse_model = mapper.get_property(
                grouped[group][0]).mapper.class_
            d = dict(group_name=group,
                     properties=grouped[group],
                     domain_model=inverse_model)
            viewlet_class = type(viewlet_name, (self.base_viewlet, ), d)

            zcml_snippet = self.zcml_template % (
                "%s.%s" % (domain_model.__name__, group), named(model_schema),
                viewlet_name)

            setattr(content, viewlet_name, viewlet_class)
コード例 #5
0
ファイル: ui.py プロジェクト: kapilt/zope-alchemist
    def setUpViewlet( self, domain_model ):
        model_schema = list( interface.implementedBy(domain_model) )[0]                
        mapper = orm.class_mapper( domain_model )
        domain_annotation = model.queryModelDescriptor( model_schema )

        grouped = util.OrderedDict()
        
        for property in mapper.iterate_properties:
            if not self.checkProperty( property, model_schema, domain_annotation ):
                continue

            property_name = property.key
            descriptor = domain_annotation.get( property_name )
            if descriptor.group in grouped:
                grouped[ descriptor.group ].append( property_name )
            else:
                grouped[ descriptor.group ] = [ property_name ]

        for group in grouped:
            
            viewlet_name = self.viewlet_name_template % ( domain_model.__name__, group )            
            viewlet_name.replace('_', '')
            
            if getattr( content, viewlet_name, None):
                continue

            inverse_model = mapper.get_property( grouped[group][0] ).mapper.class_
            d = dict( group_name = group, properties=grouped[group], domain_model=inverse_model)
            viewlet_class = type( viewlet_name, (self.base_viewlet,), d )
            
            zcml_snippet = self.zcml_template%(
                "%s.%s"%(domain_model.__name__, group),
                named( model_schema ),
                viewlet_name
                )
            
            setattr( content, viewlet_name, viewlet_class )
コード例 #6
0
ファイル: model.py プロジェクト: kapilt/zope-alchemist
 def defineMapping( self, annotated_table, **kw ):
     table_mapper = mapper( annotated_table.domain_class, annotated_table.table, **kw)
     self.mappers[ named( annotated_table.domain_class ) ] = table_mapper
     annotated_table.domain_class.mapper = table_mapper
     self.table_classes[ annotated_table.table.name ] = annotated_table.domain_class
コード例 #7
0
ファイル: model.py プロジェクト: kapilt/zope-alchemist
 def addMapping( self, mapping ):
     self.klasses[ named( mapping.class_ ) ] = mapping.class_
     self.mappers[ named( mapping.class_ ) ] = mapping
コード例 #8
0
ファイル: model.py プロジェクト: kapilt/zope-alchemist
 def loadMapping( self, domain_class, domain_table, **kw ):
     self.klasses[ named( domain_class ) ] = domain_class
     self.tables[ named( domain_table ) ]  = domain_table
     mapper = mapper( domain_class, domain_table, **kw)
     self.mappers[ named( domain_class ) ] = mapper
     return mapper
コード例 #9
0
 def addMapping(self, mapping):
     self.klasses[named(mapping.class_)] = mapping.class_
     self.mappers[named(mapping.class_)] = mapping
コード例 #10
0
 def loadMapping(self, domain_class, domain_table, **kw):
     self.klasses[named(domain_class)] = domain_class
     self.tables[named(domain_table)] = domain_table
     mapper = mapper(domain_class, domain_table, **kw)
     self.mappers[named(domain_class)] = mapper
     return mapper