Metadata-Version: 1.0
Name: upfront.simplereferencefield
Version: 0.5
Summary: Store references on an object and not in the reference catalog
Home-page: UNKNOWN
Author: Roche Compaan
Author-email: roche@upfrontsystems.co.za
License: GPL
Description: simplereferencefield is an Archeteyps reference field implementation
        that stores the references directly on the object without indexing it in
        the reference_catalog.
        
        Create a document that references news.
        
          >>> self.loginAsPortalOwner()
          >>> self.portal.invokeFactory('Document', 'doc1')
          'doc1'
          >>> doc = self.portal['doc1']
          >>> doc.setRelatedItems(self.portal.news)
          >>> doc.reindexObject()
          >>> doc.getRelatedItems()
          [<ATFolder at /plone/news>]
        
        The document has a relationship.  
          >>> doc.getRelationships()
          ['relatesTo']
        
        Change relatedItems in the document's schema to be a
        SimpleReferenceField.
        
          >>> from Products.ATContentTypes.content.document import ATDocument
          >>> from upfront.simplereferencefield import SimpleReferenceField
          >>> ATDocument.schema['relatedItems'] = SimpleReferenceField(
          ...   'relatedItems', relationship='relatesTo', multiValued=1)
          >>> ATDocument.schema['relatedItems'].type
          'simplereference'
        
        Create a document that references news.
        
          >>> self.portal.invokeFactory('Document', 'doc2')
          'doc2'
          >>> doc = self.portal['doc2']
          >>> doc.setRelatedItems(self.portal.news)
          >>> doc.reindexObject()
          >>> doc.getRelatedItems()
          [<ATFolder at /plone/news>]
        
        The document has no relationships.  
        
          >>> doc.getRelationships()
          []
        
        If we reference doc1 from doc2, doc1 will have doc2 set as back
        reference.
        
          >>> self.portal.doc2.setRelatedItems(self.portal.doc1)
          >>> self.portal.doc2.getRelatedItems()
          [<ATDocument at /plone/doc1>]
          >>> self.portal.doc1.getRelatedItems()
          [<ATDocument at /plone/doc2>]
        
        Back references are set by default but can be disabled.
        
          >>> ATDocument.schema['relatedItems'] = SimpleReferenceField(
          ...   'relatedItems', relationship='relatesTo', multiValued=1,
          ...   set_backreference=False)
          >>> self.portal.invokeFactory('Document', 'doc3')
          'doc3'
          >>> self.portal.doc3.setRelatedItems(self.portal.doc1)
          >>> self.portal.doc3.getRelatedItems()
          [<ATDocument at /plone/doc1>]
          >>> self.portal.doc1.getRelatedItems()
          [<ATDocument at /plone/doc2>]
        
        Changelog
        =========
        
        0.5
        ---
        
        * Initial release
        
        
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Framework :: Zope2
Classifier: Framework :: Plone
