source: products/quintagroup.transmogrifier/trunk/quintagroup/transmogrifier/portlets.txt @ 1564

Last change on this file since 1564 was 1564, checked in by koval, 14 years ago

implemented section for importing of portlet assignments

File size: 2.6 KB
Line 
1Portlets exporter and importer sections
2=======================================
3
4Portlets exporter and importer sections are used to migrate Plone 3 contextual
5portlet assignments and blacklist settings.
6The portlets exporter section blueprint name is
7``quintagroup.transmogrifier.portletsexporter`` and importer section blueprint
8name is ``quintagroup.transmogrifier.portletsimporter``.
9
10Portlet assignments and blacklists are stored in XML format. Both sections need
11relative path to the object with portlets assigned and importer also needs XML
12data for updating them.
13
14Both sections has ``path-key`` option which specifies key in item where path to
15object is stored (``_path`` is default) and ``files-key`` option that gives
16key where XML data will be or is stored.
17
18>>> import pprint
19>>> portlets = """
20... [transmogrifier]
21... pipeline =
22...     portletssource
23...     portletsexporter
24...     printer
25...     dataprinter
26...     portletsimporter
27...     
28... [portletssource]
29... blueprint = quintagroup.transmogrifier.tests.portletssource
30...
31... [portletsexporter]
32... blueprint = quintagroup.transmogrifier.portletsexporter
33...
34... [printer]
35... blueprint = collective.transmogrifier.sections.tests.pprinter
36...
37... [dataprinter]
38... blueprint = quintagroup.transmogrifier.tests.dataprinter
39... print =
40...     _files
41...     portlets
42...     data
43...
44... [portletsimporter]
45... blueprint = quintagroup.transmogrifier.portletsimporter
46... files-key = files
47... """
48>>> registerConfig(u'quintagroup.transmogrifier.tests.portlets', portlets)
49>>> transmogrifier(u'quintagroup.transmogrifier.tests.portlets') # doctest: +ELLIPSIS, +REPORT_NDIFF
50{}
51{'_path': 'not/existing/bar'}
52{'_path': 'spam/eggs/notassignable'}
53{'_files': {'portlets': {'data': ...
54                         'name': '.portlets.xml'}},
55 '_path': 'assignable'}
56<?xml version="1.0" encoding="utf-8"?>
57<portlets>
58  <assignment category="context" key="/assignable" manager="plone.leftcolumn" name="rss" type="portlets.rss">
59    <property name="count">
60      10
61    </property>
62    <property name="url">
63      http://sumno.com/feeds/main-page/
64    </property>
65    <property name="portlet_title">
66      RSS feed
67    </property>
68    <property name="timeout">
69      60
70    </property>
71  </assignment>
72</portlets>
73<BLANKLINE>
74{'_path': 'other-assignable',
75 'files': {'portlets': {'data': ...
76                        'name': '.portlets.xml'}}}
77>>> 'habra-rss' in mapping
78True
79>>> mapping['habra-rss'].count
8020
81>>> mapping['habra-rss'].url
82u'http://habrahabr.ru/rss/'
83>>> mapping['habra-rss'].portlet_title
84u'Habrahabr RSS feed'
85>>> mapping['habra-rss'].timeout
86120
Note: See TracBrowser for help on using the repository browser.