loops/external
helmutm 695a717448 improve (sort of customize) presentation of person data
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@2391 fd906abe-77d9-0310-91a1-e0d9ade77398
2008-02-12 11:41:36 +00:00
..
__init__.py merged Dojo 1.0 branch 2008-02-10 09:56:42 +00:00
base.py merged Dojo 1.0 branch 2008-02-10 09:56:42 +00:00
browser.py merged Dojo 1.0 branch 2008-02-10 09:56:42 +00:00
configure.zcml merged Dojo 1.0 branch 2008-02-10 09:56:42 +00:00
element.py merged Dojo 1.0 branch 2008-02-10 09:56:42 +00:00
exportimport.pt merged Dojo 1.0 branch 2008-02-10 09:56:42 +00:00
external.py merged Dojo 1.0 branch 2008-02-10 09:56:42 +00:00
interfaces.py merged Dojo 1.0 branch 2008-02-10 09:56:42 +00:00
pyfunc.py merged Dojo 1.0 branch 2008-02-10 09:56:42 +00:00
README.txt improve (sort of customize) presentation of person data 2008-02-12 11:41:36 +00:00
tests.py merged Dojo 1.0 branch 2008-02-10 09:56:42 +00:00

===============================================================
loops - Linked Objects for Organization and Processing Services
===============================================================

  ($Id$)

  >>> from zope import component
  >>> from zope.traversing.api import getName

Let's set up a loops site with basic and example concepts and resources.

  >>> from zope.app.testing.setup import placefulSetUp, placefulTearDown
  >>> site = placefulSetUp(True)

  >>> from loops.tests.setup import TestSite
  >>> t = TestSite(site)
  >>> concepts, resources, views = t.setup()
  >>> loopsRoot = site['loops']
  >>> len(concepts), len(resources), len(views)
  (11, 3, 0)


Importing loops Objects
=======================

Reading object information from an external source
--------------------------------------------------

  >>> from loops.external.pyfunc import PyReader

  >>> input = "concept('myquery', u'My Query', 'query', viewName='mystuff.html')"
  >>> reader = PyReader()
  >>> elements = reader.read(input)
  >>> elements
  [{'type': 'query', 'name': 'myquery', 'viewName': 'mystuff.html', 'title': u'My Query'}]

Creating the corresponding objects
----------------------------------

  >>> from loops.external.base import Loader

  >>> loader = Loader(loopsRoot)
  >>> loader.load(elements)
  >>> len(concepts), len(resources), len(views)
  (12, 3, 0)

  >>> from loops.common import adapted
  >>> adapted(concepts['myquery']).viewName
  'mystuff.html'


Exporting loops Objects
=======================

Extracting elements
-------------------

  >>> from loops.external.base import Extractor

  >>> extractor = Extractor(loopsRoot)
  >>> elements = list(extractor.extract())
  >>> len(elements)
  13

Writing object information to the external storage
--------------------------------------------------

  >>> from loops.external.pyfunc import PyWriter
  >>> from cStringIO import StringIO

  >>> output = StringIO()
  >>> writer = PyWriter()
  >>> writer.write(elements, output)
  >>> print output.getvalue()
  type(u'customer', u'Customer', options=u'', viewName=u'')...
  type(u'query', u'Query', options=u'', typeInterface='loops.query.IQueryConcept',
       viewName=u'')...
  concept(u'myquery', u'My Query', u'query', viewName='mystuff.html')...
  child(u'projects', u'customer', u'standard')...


The Export/Import View
======================

  >>> from loops.external.browser import ExportImport
  >>> from zope.publisher.browser import TestRequest

  >>> input = {'field.data': output}
  >>> view = ExportImport(loopsRoot, TestRequest(input))
  >>> view.upload()
  False