[Zope] ZClass and Permissions

douwe@oberon.nl douwe@oberon.nl
Mon, 24 Jun 2002 16:32:06 +0200


This is a multi-part message in MIME format.

------=_NextPart_000_000A_01C21B9C.ADDD12F0
Content-Type: text/plain;
	charset="US-ASCII"
Content-Transfer-Encoding: 7bit

> If your ZClass is independent of non-Core products, you can may
> an export and send it to me.
>
> I will try to figure out why you cannot add properties.
>
>
> Dieter
>

Hi,

Please find attached two .zexp files. test.zexp contains two z classes,
testFolder and testDoc. testFolder is derived from ZFolder and has four
methods, index_html, addItem, addProperty and editProperty. testDoc is
derived from ZDTMLDocument and has no methods.

Folder1.zexp contains a simple setup of these two classes, ie an instance of
testFolder named Folder1, containing Doc1 and item as testDoc objects and
acl_users, a User Folder. Also, a special role named IssueManager is defined
here. The 'Add testDoc' and 'Add testFolder' permissions are allowed for
IssueManager, Owner and Manager, everything else is Acquired.

One user is defined in acl_user, klant with password klant and role
IssueManager. This user can create instances of testDoc, which is testable
by running addItem on Folder1 (after deleting the item that I already put
there). This user however, cannot add properties (try running addProperty)
or modify properties (try running editProperty, after adding the property
with another user), although in the Define Permissions tab of testDoc the
permission of 'Manage properties' has been mapped on 'Add testDoc', a
permission the user klant has, since he can add instances of testDoc.

This is the simplest setup I could construct (and it doesn't even look that
simple), I hope you or somebody else can help me.

Douwe

------=_NextPart_000_000A_01C21B9C.ADDD12F0
Content-Type: application/octet-stream;
	name="Folder1.zexp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="Folder1.zexp"

WkVYUAAAAAAAABp4AAAAAAAAAuQoKFUZKnh2TjJFTWlZakZaTTV0djlpTzIvTkE9PXEBVQp0ZXN0
Rm9sZGVycQJ0cQNOdC59cQQoVRtfQWRkX3Rlc3RGb2xkZXJzX1Blcm1pc3Npb25xBShVDElzc3Vl
TWFuYWdlcnEGVQdNYW5hZ2VycQdVBU93bmVycQh0VQxfX2FjX3JvbGVzX19xCShoB2gIVQlBbm9u
eW1vdXNxClUNQXV0aGVudGljYXRlZHELaAZ0VQJpZHEMVQdGb2xkZXIxcQ1VEl9fYWNfbG9jYWxf
cm9sZXNfX3EOfXEPVQRyb290cRBdcRFoCGFzVQhfb2JqZWN0c3ESKH1xEyhVCW1ldGFfdHlwZXEU
VQd0ZXN0RG9jcRVoDFUERG9jMXEWdX1xFyhoFFULVXNlciBGb2xkZXJxGGgMVQlhY2xfdXNlcnNx
GXV9cRooVQltZXRhX3R5cGVxG1UHdGVzdERvY3EcVQJpZHEdVQRpdGVtcR51dFULX3Byb3BlcnRp
ZXNxHyh9cSAoaB1VBXRpdGxlcSFVBG1vZGVxIlUBd1UEdHlwZXEjVQZzdHJpbmdxJHV9cSUoaB1V
CXByb3BlcnR5MXEmaCNoJHV0aBkoVQgAAAAAAAAaenEnKFUSQWNjZXNzQ29udHJvbC5Vc2VycShV
ClVzZXJGb2xkZXJxKXR0UVUGX293bmVycSooXXEraBlhaBB0aB4oVQgAAAAAAAAahXEsKFUZKnJN
Qk92d3VFQVUyaTBKLzJZZVZTVEE9PXEtVQd0ZXN0RG9jcS50dFFVEF9fYWxsb3dfZ3JvdXBzX19x
LyhoJyhoKFUKVXNlckZvbGRlcnEwdHRRaBYoVQgAAAAAAAAaeXExKGgtVQd0ZXN0RG9jcTJ0dFFo
IVUAVRhfQWRkX3Rlc3REb2NzX1Blcm1pc3Npb25xMyhoBmgHaAh0aCZVHTIwMDIvMDYvMjQgMTQ6
NTg6NTguNjczIEdNVCsycTR1LgAAAAAAABp6AAAAAAAAAJ4oKFUSQWNjZXNzQ29udHJvbC5Vc2Vy
cQFVClVzZXJGb2xkZXJxAnRxA050Ln1xBChVEl9fYWNfbG9jYWxfcm9sZXNfX3EFfXEGVQRyb290
cQddcQhVBU93bmVycQlhc1UEZGF0YXEKKFUIAAAAAAAAGntxCyhVC1BlcnNpc3RlbmNlcQxVEVBl
cnNpc3RlbnRNYXBwaW5ncQ10dFF1LgAAAAAAABqFAAAAAAAAAU0oKFUZKnJNQk92d3VFQVUyaTBK
LzJZZVZTVEE9PXEBVQd0ZXN0RG9jcQJ0cQNOdC59cQQoVQNyYXdxBVUAVRJfX2FjX2xvY2FsX3Jv
bGVzX19xBn1xB1UFa2xhbnRxCF1xCVUFT3duZXJxCmFzVQhfX25hbWVfX3ELVQRpdGVtcQxVC19w
cm9wZXJ0aWVzcQ0ofXEOKFUCaWRxD1UFdGl0bGVxEFUEbW9kZXERVQF3VQR0eXBlcRJVBnN0cmlu
Z3ETdX1xFChoD1UJcHJvcGVydHkxcRVoEmgTdXRxFmgQVQBVB2dsb2JhbHNxF31xGFUGX293bmVy
cRkoXXEaKFUHRm9sZGVyMXEbVQlhY2xfdXNlcnNxHGVoCHRxHWgVVR0yMDAyLzA2LzI0IDE1OjAy
OjM0LjY5NCBHTVQrMnEeVQVfdmFyc3EffXEgdS4AAAAAAAAaeQAAAAAAAACcKChVGSpyTUJPdnd1
RUFVMmkwSi8yWWVWU1RBPT1xAVUHdGVzdERvY3ECdHEDTnQufXEEKFUDcmF3cQVVAFUSX19hY19s
b2NhbF9yb2xlc19fcQZ9cQdVBHJvb3RxCF1xCVUFT3duZXJxCmFzVQdnbG9iYWxzcQt9cQxVCF9f
bmFtZV9fcQ1VBERvYzFxDlUFX3ZhcnNxD31xEHUuAAAAAAAAGnsAAAAAAAAAeygoVQtQZXJzaXN0
ZW5jZXEBVRFQZXJzaXN0ZW50TWFwcGluZ3ECdHEDTnQufXEEVQpfY29udGFpbmVycQV9cQZVBWts
YW50cQcoVQgAAAAAAAAafHEIKFUSQWNjZXNzQ29udHJvbC5Vc2VycQlVBFVzZXJxCnR0UXNzLgAA
AAAAABp8AAAAAAAAAHcoKFUSQWNjZXNzQ29udHJvbC5Vc2VycQFVBFVzZXJxAnRxA050Ln1xBChV
BXJvbGVzcQVdcQZVDElzc3VlTWFuYWdlcnEHYVUEbmFtZXEIVQVrbGFudHEJVQdkb21haW5zcQpd
cQtVAl9fcQxVBWtsYW50cQ11Lv////////////////////8=

------=_NextPart_000_000A_01C21B9C.ADDD12F0
Content-Type: application/octet-stream;
	name="test.zexp"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="test.zexp"

ZEXP=00=00=00=00=00=00=1AG=00=00=00=00=00=00=03=D3((U=0BApp.Productq=01U=07=
Productq=02tq=03Nt.}q=04(U=07testDocq=05(U=08=00=00=00=00=00=00=1Alq=06(U=
=0FZClasses.ZClassq=07U=06ZClassq=08ttQU=08_objectsq	(}q=0A=
(U	meta_typeq=0BU=0CProduct =
Helpq=0CU=02idq=0DU=04Helpq=0Eu}q=0F(h=0BU=07Z Classq=10h=0DU=0A=
testFolderq=11u}q=12(h=0BU=0BDTML =
Methodq=13h=0DU=12testFolder_addFormq=14u}q=15(h=0Bh=13h=0DU=0EtestFolder=
_addq=16u}q=17(h=0BU=0FZope =
Permissionq=18h=0DU=19testFolder_add_permissionq=19u}q=1A(h=0BU=0CZope =
Factoryq=1Bh=0DU=12testFolder_factoryq=1Cu}q=1D(h=0Bh=10h=0Dh=05u}q=1E(h=0B=
h=13h=0DU=0FtestDoc_addFormq=1Fu}q =
(h=0Bh=13h=0DU=0BtestDoc_addq!u}q"(h=0Bh=18h=0DU=16testDoc_add_permission=
q#u}q$(h=0Bh=1Bh=0DU=0FtestDoc_factoryq%uth=0DU=04testq&h=14(U=08=00=00=00=
=00=00=00=1A_q'(U=0EOFS.DTMLMethodq(U=0A=
DTMLMethodq)ttQh=1F(U=08=00=00=00=00=00=00=1Amq*(h(U=0A=
DTMLMethodq+ttQh=11(U=08=00=00=00=00=00=00=1Aaq,(h=07U=06ZClassq-ttQU=12_=
_ac_local_roles__q.}q/U=04rootq0]q1U=05Ownerq2ash#(U=08=00=00=00=00=00=00=
=1Anq3(U=0EApp.Permissionq4U=0A=
Permissionq5ttQh=0E(U=08=00=00=00=00=00=00=1AHq6(U=0FHelpSys.HelpSysq7U=0B=
ProductHelpq8ttQh=19(U=08=00=00=00=00=00=00=1A`q9(h4U=0A=
Permissionq:ttQh=16(U=08=00=00=00=00=00=00=1Acq;(h(U=0A=
DTMLMethodq<ttQU=05titleq=3DU=00h%(U=08=00=00=00=00=00=00=1Aoq>(U=0BApp.F=
actoryq?U=07Factoryq@ttQh=1C(U=08=00=00=00=00=00=00=1AbqA(h?U=07FactoryqB=
ttQh!(U=08=00=00=00=00=00=00=1ApqC(h(U=0A=
DTMLMethodqDttQu.=00=00=00=00=00=00=1Al=00=00=00=00=00=00=02=11((U=0FZCla=
sses.ZClassq=01U=06ZClassq=02tq=03Nt.}q=04(U=11_permissionMapperq=05cAcce=
ssControl.PermissionMapping=0A=
PM=0A=
q=06NRq=07}q=08(U"_Create_class_instances_Permissionq	=
U=18_Add_testDocs_Permissionq=0A=
U=1D_Manage_properties_Permissionq=0BU=18_Add_testDocs_Permissionq=0CU=10=
_View_Permissionq=0DU=10_View_Permissionq=0EubU=1C_zclass_propertysheets_=
classq=0FU=08=00=00=00=00=00=00=1Aqq=10QU=02idq=11U=07testDocq=12U=07_zba=
sesq=13]q=14(cZClasses.ZClass=0A=
ZObject=0A=
q=15cProducts.OFSP=0A=
ZDTMLDocument=0A=
q=16eU=12__ac_local_roles__q=17}q=18U=04rootq=19]q=1AU=05Ownerq=1BasU=08_=
zclass_q=1CU=08=00=00=00=00=00=00=1Arq=1DQU=05titleq=1EU=00U=0Epropertysh=
eetsq=1FU=08=00=00=00=00=00=00=1Asq =
Qu.=00=00=00=00=00=00=1A_=00=00=00=00=00=00=02!((U=0EOFS.DTMLMethodq=01U=0A=
DTMLMethodq=02tq=03Nt.}q=04(U=12__ac_local_roles__q=05}q=06U=04rootq=07]q=
=08U=05Ownerq	asU=08__name__q=0A=
U=12testFolder_addFormq=0BU=05titleq=0CU!testFolder constructor input =
formq=0DU=07globalsq=0E}q=0FU=03rawq=10TL=01=00=00<HTML> =0A=
<HEAD><TITLE>Add testFolder</TITLE></HEAD> =0A=
<BODY BGCOLOR=3D"#FFFFFF" LINK=3D"#000099" VLINK=3D"#555555"> =0A=
<H2>Add testFolder</H2> =0A=
<form action=3D"testFolder_add"><table> =0A=
<tr><th>Id</th> =0A=
    <td><input type=3Dtext name=3Did></td> =0A=
</tr> =0A=
<tr><td></td><td><input type=3Dsubmit value=3D" Add "></td></tr> =0A=
</table></form> =0A=
</body></html> =0A=
q=11U=05_varsq=12}q=13u.=00=00=00=00=00=00=1Am=00=00=00=00=00=00=02=12((U=
=0EOFS.DTMLMethodq=01U=0A=
DTMLMethodq=02tq=03Nt.}q=04(U=12__ac_local_roles__q=05}q=06U=04rootq=07]q=
=08U=05Ownerq	asU=08__name__q=0A=
U=0FtestDoc_addFormq=0BU=05titleq=0CU=1EtestDoc constructor input =
formq=0DU=07globalsq=0E}q=0FU=03rawq=10TC=01=00=00<HTML> =0A=
<HEAD><TITLE>Add testDoc</TITLE></HEAD> =0A=
<BODY BGCOLOR=3D"#FFFFFF" LINK=3D"#000099" VLINK=3D"#555555"> =0A=
<H2>Add testDoc</H2> =0A=
<form action=3D"testDoc_add"><table> =0A=
<tr><th>Id</th> =0A=
    <td><input type=3Dtext name=3Did></td> =0A=
</tr> =0A=
<tr><td></td><td><input type=3Dsubmit value=3D" Add "></td></tr> =0A=
</table></form> =0A=
</body></html> =0A=
q=11U=05_varsq=12}q=13u.=00=00=00=00=00=00=1Aa=00=00=00=00=00=00=01=AB((U=
=0FZClasses.ZClassq=01U=06ZClassq=02tq=03Nt.}q=04(U=11_permissionMapperq=05=
cAccessControl.PermissionMapping=0A=
PM=0A=
q=06NRq=07}q=08U"_Create_class_instances_Permissionq	=
U=1B_Add_testFolders_Permissionq=0A=
sbU=1C_zclass_propertysheets_classq=0BU=08=00=00=00=00=00=00=1Adq=0CQU=02=
idq=0DU=0A=
testFolderq=0EU=07_zbasesq=0F]q=10(cZClasses.ZClass=0A=
ZObject=0A=
q=11cProducts.OFSP=0A=
ZFolder=0A=
q=12eU=12__ac_local_roles__q=13}q=14U=04rootq=15]q=16U=05Ownerq=17asU=08_=
zclass_q=18U=08=00=00=00=00=00=00=1Aeq=19QU=05titleq=1AU=00U=0Epropertysh=
eetsq=1BU=08=00=00=00=00=00=00=1Afq=1CQu.=00=00=00=00=00=00=1An=00=00=00=00=
=00=00=00=C0((U=0EApp.Permissionq=01U=0A=
Permissionq=02tq=03Nt.}q=04(U=05titleq=05U=1EtestDoc constructor =
permissionq=06U=02idq=07U=16testDoc_add_permissionq=08U=04nameq	U=0CAdd =
testDocsq=0A=
U=12__ac_local_roles__q=0B}q=0CU=04rootq=0D]q=0EU=05Ownerq=0Fasu.=00=00=00=
=00=00=00=1AH=00=00=00=00=00=00=00=95((U=0FHelpSys.HelpSysq=01U=0BProduct=
Helpq=02tq=03Nt.}q=04(U=05titleq=05U=04testq=06U=02idq=07U=04Helpq=08U=07=
catalogq	(U=08=00=00=00=00=00=00=1AIq=0A=
(U=1AProducts.ZCatalog.ZCatalogq=0BU=08ZCatalogq=0CttQu.=00=00=00=00=00=00=
=1A`=00=00=00=00=00=00=00=C9((U=0EApp.Permissionq=01U=0A=
Permissionq=02tq=03Nt.}q=04(U=05titleq=05U!testFolder constructor =
permissionq=06U=02idq=07U=19testFolder_add_permissionq=08U=04nameq	=
U=0FAdd testFoldersq=0A=
U=12__ac_local_roles__q=0B}q=0CU=04rootq=0D]q=0EU=05Ownerq=0Fasu.=00=00=00=
=00=00=00=1Ac=00=00=00=00=00=00=06=8B((U=0EOFS.DTMLMethodq=01U=0A=
DTMLMethodq=02tq=03Nt.}q=04(U=12__ac_local_roles__q=05}q=06U=04rootq=07]q=
=08U=05Ownerq	asU=08__name__q=0A=
U=0EtestFolder_addq=0BU=05titleq=0CU=16testFolder =
constructorq=0DU=07globalsq=0E}q=0FU=03rawq=10T=C5=05=00=00<HTML>=0A=
<HEAD><TITLE>Add testFolder</TITLE></HEAD>=0A=
<BODY BGCOLOR=3D"#FFFFFF" LINK=3D"#000099" VLINK=3D"#555555">=0A=
=0A=
<dtml-comment> We add the new object by calling the class in=0A=
                a with tag.  Not only does this get the thing=0A=
                added, it adds the new thing's attributes to=0A=
                the DTML name space, so we can call methods=0A=
                to initialize the object.=0A=
</dtml-comment>=0A=
=0A=
<dtml-with "testFolder.createInObjectManager(REQUEST['id'], REQUEST)">=0A=
=0A=
  <dtml-comment>=0A=
=0A=
     You can add code that modifies the new instance here.=0A=
=0A=
     For example, if you have a property sheet that you want to update=0A=
     from form values, you can call it here:=0A=
=0A=
       <dtml-call "propertysheets.Basic.manage_editProperties(=0A=
                  REQUEST)">=0A=
=0A=
  </dtml-comment>=0A=
=0A=
</dtml-with>=0A=
=0A=
<dtml-comment> Now we need to return something.  We do this via=0A=
                a redirect so that the URL is correct.=0A=
=0A=
                Unfortunately, the way we do this depends on=0A=
                whether we live in a product or in a class.=0A=
                If we live in a product, we need to use DestinationURL=0A=
                to decide where to go. If we live in a class,=0A=
                DestinationURL won't be available, so we use URL2.=0A=
</dtml-comment>=0A=
<dtml-if DestinationURL>=0A=
=0A=
 <dtml-call "RESPONSE.redirect(=0A=
       DestinationURL+'/manage_workspace')">=0A=
=0A=
<dtml-else>=0A=
=0A=
    <dtml-call "RESPONSE.redirect(=0A=
           URL2+'/manage_workspace')">=0A=
</dtml-if>=0A=
</body></html>=0A=
q=11U=05_varsq=12}q=13u.=00=00=00=00=00=00=1Ao=00=00=00=00=00=00=01_((U=0B=
App.Factoryq=01U=07Factoryq=02tq=03Nt.}q=04(U=11_permissionMapperq=05cAcc=
essControl.PermissionMapping=0A=
PM=0A=
q=06NRq=07}q=08U=19_Use_Factories_Permissionq	=
U=18_Add_testDocs_Permissionq=0A=
sbU=02idq=0BU=0FtestDoc_factoryq=0CU=12__ac_local_roles__q=0D}q=0EU=04roo=
tq=0F]q=10U=05Ownerq=11asU=07initialq=12U=0FtestDoc_addFormq=13U=0A=
permissionq=14U=0CAdd testDocsq=15U=05titleq=16U=0FtestDoc =
factoryq=17U=0Bobject_typeq=18U=07testDocq=19u.=00=00=00=00=00=00=1Ab=00=00=
=00=00=00=00=01q((U=0BApp.Factoryq=01U=07Factoryq=02tq=03Nt.}q=04(U=11_pe=
rmissionMapperq=05cAccessControl.PermissionMapping=0A=
PM=0A=
q=06NRq=07}q=08U=19_Use_Factories_Permissionq	=
U=1B_Add_testFolders_Permissionq=0A=
sbU=02idq=0BU=12testFolder_factoryq=0CU=12__ac_local_roles__q=0D}q=0EU=04=
rootq=0F]q=10U=05Ownerq=11asU=07initialq=12U=12testFolder_addFormq=13U=0A=
permissionq=14U=0FAdd testFoldersq=15U=05titleq=16U=12testFolder =
factoryq=17U=0Bobject_typeq=18U=0A=
testFolderq=19u.=00=00=00=00=00=00=1Ap=00=00=00=00=00=00=06=7F((U=0EOFS.D=
TMLMethodq=01U=0A=
DTMLMethodq=02tq=03Nt.}q=04(U=12__ac_local_roles__q=05}q=06U=04rootq=07]q=
=08U=05Ownerq	asU=08__name__q=0A=
U=0BtestDoc_addq=0BU=05titleq=0CU=13testDoc =
constructorq=0DU=07globalsq=0E}q=0FU=03rawq=10T=BF=05=00=00<HTML>=0A=
<HEAD><TITLE>Add testDoc</TITLE></HEAD>=0A=
<BODY BGCOLOR=3D"#FFFFFF" LINK=3D"#000099" VLINK=3D"#555555">=0A=
=0A=
<dtml-comment> We add the new object by calling the class in=0A=
                a with tag.  Not only does this get the thing=0A=
                added, it adds the new thing's attributes to=0A=
                the DTML name space, so we can call methods=0A=
                to initialize the object.=0A=
</dtml-comment>=0A=
=0A=
<dtml-with "testDoc.createInObjectManager(REQUEST['id'], REQUEST)">=0A=
=0A=
  <dtml-comment>=0A=
=0A=
     You can add code that modifies the new instance here.=0A=
=0A=
     For example, if you have a property sheet that you want to update=0A=
     from form values, you can call it here:=0A=
=0A=
       <dtml-call "propertysheets.Basic.manage_editProperties(=0A=
                  REQUEST)">=0A=
=0A=
  </dtml-comment>=0A=
=0A=
</dtml-with>=0A=
=0A=
<dtml-comment> Now we need to return something.  We do this via=0A=
                a redirect so that the URL is correct.=0A=
=0A=
                Unfortunately, the way we do this depends on=0A=
                whether we live in a product or in a class.=0A=
                If we live in a product, we need to use DestinationURL=0A=
                to decide where to go. If we live in a class,=0A=
                DestinationURL won't be available, so we use URL2.=0A=
</dtml-comment>=0A=
<dtml-if DestinationURL>=0A=
=0A=
 <dtml-call "RESPONSE.redirect(=0A=
       DestinationURL+'/manage_workspace')">=0A=
=0A=
<dtml-else>=0A=
=0A=
    <dtml-call "RESPONSE.redirect(=0A=
           URL2+'/manage_workspace')">=0A=
</dtml-if>=0A=
</body></html>=0A=
q=11U=05_varsq=12}q=13u.=00=00=00=00=00=00=1Aq=00=00=00=00=00=00=00=FF(cE=
xtensionClass=0A=
ExtensionClass=0A=
q=01(U=1BtestDoc_PropertySheetsClassq=02(cZClasses.ZClass=0A=
PersistentClass=0A=
q=03cZClasses.Property=0A=
ZInstanceSheets=0A=
q=04tq=05}q=06(U=04iconq=07U=00U=0A=
_p_changedq=08K=00U=07__doc__q	U=17testDoc Property Sheetsq=0A=
U=06_p_oidq=0BU=08=00=00=00=00=00=00=1Aqq=0CU=0A=
__module__q=0DNutq=0Et.N.=00=00=00=00=00=00=1Ar=00=00=00=00=00=00=05k(cEx=
tensionClass=0A=
ExtensionClass=0A=
q=01(U=07testDocq=02(cZClasses.ZClass=0A=
PersistentClass=0A=
q=03cOFS.DTMLDocument=0A=
DTMLDocument=0A=
q=04cOFS.SimpleItem=0A=
SimpleItem=0A=
q=05tq=06}q=07(U=04iconq=08U=00U=0A=
_p_changedq	K=01U=07__doc__q=0A=
U=07testDocq=0BU=06_p_oidq=0CU=08=00=00=00=00=00=00=1Arq=0DU	=
meta_typeq=0EU=07testDocq=0FU=0Epropertysheetsq=10U=08=00=00=00=00=00=00=1A=
wq=11QU=0A=
index_htmlq=12(U=08=00=00=00=00=00=00=1A=80q=13(U=0FZClasses.Methodq=14U=03=
MWpq=15ttQU=0Emanage_optionsq=16(}q=17(U=05labelq=18U=04Editq=19U=04helpq=
=1A(U=04OFSPq=1BU=1EDTML-DocumentOrMethod_Edit.stxq=1Ctq=1DU=06actionq=1E=
U=0Bmanage_mainq=1Fu}q =
(h=18U=04Viewq!h=1A(h=1BU=1EDTML-DocumentOrMethod_View.stxq"tq#h=1EU=00u}=
q$(h=18U=0A=
Propertiesq%h=1A(h=1BU=0EProperties.stxq&tq'h=1EU=15manage_propertiesForm=
q(u}q)(h=18U=05Proxyq*h=1A(h=1BU=1FDTML-DocumentOrMethod_Proxy.stxq+tq,h=1E=
U=10manage_proxyFormq-u}q.(h=18U=07Historyq/h=1A(h=1BU=0BHistory.stxq0tq1=
h=1EU=1Amanage_change_history_pageq2u}q3(h=18U=08Securityq4h=1A(h=1BU=0CS=
ecurity.stxq5tq6h=1EU=0Dmanage_accessq7U=06filterq8cAccessControl.Role=0A=
_isNotBeingUsedAsAMethod=0A=
q9u}q:(h=18U=12Define =
Permissionsq;h=1A(h=1BU=1FSecurity_Define-Permissions.stxq<tq=3Dh=1Eh7h8c=
AccessControl.Role=0A=
_isBeingUsedAsAMethod=0A=
q>u}q?(h=18U=04Undoq@h=1A(h=1BU=08Undo.stxqAtqBh=1EU=0Fmanage_UndoFormqCu=
}qD(h=18U	=
OwnershipqEh=1A(h=1BU=0DOwnership.stxqFtqGh=1EU=0Cmanage_ownerqHh8cAccess=
Control.Owned=0A=
ownableFilter=0A=
qIu}qJ(h=18U=05CacheqKh=1A(h=1BU=18Cacheable-properties.stxqLtqMh8cOFS.Ca=
che=0A=
filterCacheTab=0A=
qNh=1EU=11ZCacheable_manageqOutqPU=12__ac_permissions__qQ((U=0CAdd =
testDocsqR)(U=07ManagerqStqTtqUtqVU	_p_serialqWU=08=03E=A6=86=99$=BA;qXU=0A=
__module__qYU=19*rMBOvwuEAU2i0J/2YeVSTA=3D=3DqZutq[t.N.=00=00=00=00=00=00=
=1As=00=00=00=00=00=00=00=A4(U=08=00=00=00=00=00=00=1Atq=01QNt.}q=02(U=06=
commonq=03(U=08=00=00=00=00=00=00=1Auq=04(U=11ZClasses.Propertyq=05U=14ZI=
nstanceSheetsSheetq=06ttQU=07methodsq=07(U=08=00=00=00=00=00=00=1Avq=08(U=
=0FZClasses.Methodq	U=12ZClassMethodsSheetq=0A=
ttQu.=00=00=00=00=00=00=1Ad=00=00=00=00=00=00=01=05(cExtensionClass=0A=
ExtensionClass=0A=
q=01(U=1EtestFolder_PropertySheetsClassq=02(cZClasses.ZClass=0A=
PersistentClass=0A=
q=03cZClasses.Property=0A=
ZInstanceSheets=0A=
q=04tq=05}q=06(U=04iconq=07U=00U=0A=
_p_changedq=08K=00U=07__doc__q	U=1AtestFolder Property Sheetsq=0A=
U=06_p_oidq=0BU=08=00=00=00=00=00=00=1Adq=0CU=0A=
__module__q=0DNutq=0Et.N.=00=00=00=00=00=00=1Ae=00=00=00=00=00=00=05,(cEx=
tensionClass=0A=
ExtensionClass=0A=
q=01(U=0A=
testFolderq=02(cZClasses.ZClass=0A=
PersistentClass=0A=
q=03cOFS.Folder=0A=
Folder=0A=
q=04cOFS.SimpleItem=0A=
SimpleItem=0A=
q=05tq=06}q=07(U=04iconq=08U=00U=0A=
_p_changedq	K=01U=07__doc__q=0A=
U=0A=
testFolderq=0BU=0CeditPropertyq=0C(U=08=00=00=00=00=00=00=1A=88q=0D(U=0FZ=
Classes.Methodq=0EU=03MWpq=0FttQU=14_v_manage_path_rolesq=10U=0Ftest/test=
Folderq=11U=06_p_oidq=12U=08=00=00=00=00=00=00=1Aeq=13U	meta_typeq=14U=0A=
testFolderq=15U=0Epropertysheetsq=16U=08=00=00=00=00=00=00=1Ajq=17QU=0A=
index_htmlq=18(U=08=00=00=00=00=00=00=1A}q=19(h=0EU=03MWpq=1AttQU=0Emanag=
e_optionsq=1B(}q=1C(U=05labelq=1DU=08Contentsq=1EU=04helpq=1F(U=04OFSPq =
U=1AObjectManager_Contents.stxq!tU=06actionq"U=0Bmanage_mainq#u}q$(h=1DU=04=
Viewq%h=1F(h U=0FFolder_View.stxq&th"h=18u}q'(h=1DU=0A=
Propertiesq(h=1F(h =
U=0EProperties.stxq)th"U=15manage_propertiesFormq*u}q+(h=1DU=08Securityq,=
h=1F(h U=0CSecurity.stxq-tU=06filterq.cAccessControl.Role=0A=
_isNotBeingUsedAsAMethod=0A=
q/h"U=0Dmanage_accessq0u}q1(h=1DU=12Define Permissionsq2h=1F(h =
U=1FSecurity_Define-Permissions.stxq3th.cAccessControl.Role=0A=
_isBeingUsedAsAMethod=0A=
q4h"h0u}q5(h=1DU=04Undoq6h=1F(h =
U=08Undo.stxq7th"U=0Fmanage_UndoFormq8u}q9(h=1DU	Ownershipq:h=1F(h =
U=0DOwnership.stxq;th.cAccessControl.Owned=0A=
ownableFilter=0A=
q<h"U=0Cmanage_ownerq=3Du}q>(h=1DU=04Findq?U=06targetq@h#h=1F(h =
U=08Find.stxqAth"U=0Fmanage_findFormqButqCU=07addItemqD(U=08=00=00=00=00=00=
=00=1A=81qE(h=0EU=03MWpqFttQU=12__ac_permissions__qG((U=0FAdd =
testFoldersqH)(U=07ManagerqItttqJU=0BaddPropertyqK(U=08=00=00=00=00=00=00=
=1A=86qL(h=0EU=03MWpqMttQU	_p_serialqNU=08=03E=A7A=F9tv=80qOU=0A=
__module__qPU=19*xvN2EMiYjFZM5tv9iO2/NA=3D=3DqQutqRt.N.=00=00=00=00=00=00=
=1Af=00=00=00=00=00=00=00=A4(U=08=00=00=00=00=00=00=1Agq=01QNt.}q=02(U=06=
commonq=03(U=08=00=00=00=00=00=00=1Ahq=04(U=11ZClasses.Propertyq=05U=14ZI=
nstanceSheetsSheetq=06ttQU=07methodsq=07(U=08=00=00=00=00=00=00=1Aiq=08(U=
=0FZClasses.Methodq	U=12ZClassMethodsSheetq=0A=
ttQu.=00=00=00=00=00=00=1AI=00=00=00=00=00=00=01`((U=1AProducts.ZCatalog.=
ZCatalogq=01U=08ZCatalogq=02tq=03Nt.}q=04(U=02idq=05U=07catalogq=06U=08_o=
bjectsq=07(}q=08(U	meta_typeq	U=0A=
Vocabularyq=0A=
h=05h=0A=
utq=0BU	thresholdq=0CM=10'U=08vocab_idq=0Dh=0A=
U=0A=
vocabularyq=0E(U=08=00=00=00=00=00=00=1AJq=0F(U+Products.PluginIndexes.Te=
xtIndex.Vocabularyq=10U=0A=
Vocabularyq=11ttQU=08_catalogq=12(U=08=00=00=00=00=00=00=1AKq=13(U=19Prod=
ucts.ZCatalog.Catalogq=14U=07Catalogq=15ttQU=05titleq=16U=00h=0A=
(h=0F(h=10U=0A=
Vocabularyq=17ttQu.=00=00=00=00=00=00=1Aw=00=00=00=00=00=00=00=15(U=08=00=
=00=00=00=00=00=1Aqq=01QNt.}q=02.=00=00=00=00=00=00=1A=80=00=00=00=00=00=00=
=00k((U=0FZClasses.Methodq=01U=03MWpq=02tq=03Nt.(U=08=00=00=00=00=00=00=1A=
=7Fq=04(U#Products.PythonScripts.PythonScriptq=05U=0CPythonScriptq=06ttQ.=
=00=00=00=00=00=00=1At=00=00=00=00=00=00=01V(cExtensionClass=0A=
ExtensionClass=0A=
q=01(U=1CtestDoc_ZPropertySheetsClassq=02(cZClasses.ZClass=0A=
PersistentClass=0A=
q=03cOFS.PropertySheets=0A=
PropertySheets=0A=
q=04cZClasses.ZClass=0A=
ZClassSheets=0A=
q=05cApp.PersistentExtra=0A=
Persistent=0A=
q=06tq=07}q=08(U=04iconq	U=00U=0A=
_p_changedq=0A=
K=00U=07__doc__q=0BU=1CtestDoc_ZPropertySheetsClassq=0CU=06_p_oidq=0DU=08=
=00=00=00=00=00=00=1Atq=0EU	meta_typeq=0Fh=0CU=0A=
__module__q=10Nutq=11t.N.=00=00=00=00=00=00=1Au=00=00=00=00=00=00=009((U=11=
ZClasses.Propertyq=01U=14ZInstanceSheetsSheetq=02tq=03Nt.}q=04.=00=00=00=00=
=00=00=1Av=00=00=00=00=00=00=00=96((U=0FZClasses.Methodq=01U=12ZClassMeth=
odsSheetq=02tq=03Nt.}q=04(U=03_mdq=05}q=06U=02idq=07U=07methodsq=08U=08_o=
bjectsq	(}q=0A=
(U	meta_typeq=0BU=0FScript (Python)q=0Ch=07U=0Bindex_html =
q=0Dutu.=00=00=00=00=00=00=1A=88=00=00=00=00=00=00=00k((U=0FZClasses.Meth=
odq=01U=03MWpq=02tq=03Nt.(U=08=00=00=00=00=00=00=1A=89q=04(U#Products.Pyt=
honScripts.PythonScriptq=05U=0CPythonScriptq=06ttQ.=00=00=00=00=00=00=1Aj=
=00=00=00=00=00=00=00=15(U=08=00=00=00=00=00=00=1Adq=01QNt.}q=02.=00=00=00=
=00=00=00=1A}=00=00=00=00=00=00=00k((U=0FZClasses.Methodq=01U=03MWpq=02tq=
=03Nt.(U=08=00=00=00=00=00=00=1A~q=04(U#Products.PythonScripts.PythonScri=
ptq=05U=0CPythonScriptq=06ttQ.=00=00=00=00=00=00=1A=81=00=00=00=00=00=00=00=
k((U=0FZClasses.Methodq=01U=03MWpq=02tq=03Nt.(U=08=00=00=00=00=00=00=1A=82=
q=04(U#Products.PythonScripts.PythonScriptq=05U=0CPythonScriptq=06ttQ.=00=
=00=00=00=00=00=1A=86=00=00=00=00=00=00=00k((U=0FZClasses.Methodq=01U=03M=
Wpq=02tq=03Nt.(U=08=00=00=00=00=00=00=1A=87q=04(U#Products.PythonScripts.=
PythonScriptq=05U=0CPythonScriptq=06ttQ.=00=00=00=00=00=00=1Ag=00=00=00=00=
=00=00=01\(cExtensionClass=0A=
ExtensionClass=0A=
q=01(U=1FtestFolder_ZPropertySheetsClassq=02(cZClasses.ZClass=0A=
PersistentClass=0A=
q=03cOFS.PropertySheets=0A=
PropertySheets=0A=
q=04cZClasses.ZClass=0A=
ZClassSheets=0A=
q=05cApp.PersistentExtra=0A=
Persistent=0A=
q=06tq=07}q=08(U=04iconq	U=00U=0A=
_p_changedq=0A=
K=00U=07__doc__q=0BU=1FtestFolder_ZPropertySheetsClassq=0CU=06_p_oidq=0DU=
=08=00=00=00=00=00=00=1Agq=0EU	meta_typeq=0Fh=0CU=0A=
__module__q=10Nutq=11t.N.=00=00=00=00=00=00=1Ah=00=00=00=00=00=00=009((U=11=
ZClasses.Propertyq=01U=14ZInstanceSheetsSheetq=02tq=03Nt.}q=04.=00=00=00=00=
=00=00=1Ai=00=00=00=00=00=00=01=04((U=0FZClasses.Methodq=01U=12ZClassMeth=
odsSheetq=02tq=03Nt.}q=04(U=03_mdq=05}q=06U=02idq=07U=07methodsq=08U=08_o=
bjectsq	(}q=0A=
(U	meta_typeq=0BU=0FScript (Python)q=0Ch=07U=0Bindex_html =
q=0Du}q=0E(h=0Bh=0Ch=07U=08addItem q=0Fu}q=10(U	meta_typeq=11U=0FScript =
(Python)q=12U=02idq=13U=0CaddProperty =
q=14u}q=15(h=11h=12h=13U=0DeditProperty =
q=16utu.=00=00=00=00=00=00=1AJ=00=00=00=00=00=00=01)((U+Products.PluginIn=
dexes.TextIndex.Vocabularyq=01U=0A=
Vocabularyq=02tq=03Nt.}q=04(U=0BuseSplitterq=05U=0CZopeSplitterq=06U=02id=
q=07U=0A=
Vocabularyq=08U=12__ac_local_roles__q	}q=0A=
U=04rootq=0B]q=0CU=05Ownerq=0DasU=08globbingq=0EK=01U=05titleq=0Fh=08U=07=
lexiconq=10(U=08=00=00=00=00=00=00=1A[q=11(U0Products.PluginIndexes.TextI=
ndex.GlobbingLexiconq=12U=0FGlobbingLexiconq=13ttQu.=00=00=00=00=00=00=1A=
K=00=00=00=00=00=00=02l((U=19Products.ZCatalog.Catalogq=01U=07Catalogq=02=
tq=03Nt.}q=04(U=06schemaq=05}q=06(U=0Bpermissionsq=07K=01U=0A=
categoriesq=08K=00U=0Btitle_or_idq	K=02U=02idq=0A=
K=04U=03urlq=0BK=03uU=07__len__q=0C(U=08=00=00=00=00=00=00=1ALq=0D(U=0DBT=
rees.Lengthq=0EU=06Lengthq=0FttQU=04dataq=10(U=08=00=00=00=00=00=00=1AMq=11=
(U=0EBTrees.IOBTreeq=12U=07IOBTreeq=13ttQU=05namesq=14(h=08h=07h	h=0Bh=0A=
tq=15U=07indexesq=16}q=17(U=0ESearchableTextq=18(U=08=00=00=00=00=00=00=1A=
Nq=19(U*Products.PluginIndexes.TextIndex.TextIndexq=1AU	=
TextIndexq=1BttQh=08(U=08=00=00=00=00=00=00=1AOq=1C(U0Products.PluginInde=
xes.KeywordIndex.KeywordIndexq=1DU=0CKeywordIndexq=1EttQh=07(U=08=00=00=00=
=00=00=00=1APq=1F(h=1DU=0CKeywordIndexq =
ttQuU=04uidsq!(U=08=00=00=00=00=00=00=1AQq"(U=0EBTrees.OIBTreeq#U=07OIBTr=
eeq$ttQU=07lexiconq%U=0A=
Vocabularyq&U=05pathsq'(U=08=00=00=00=00=00=00=1ARq((h=12U=07IOBTreeq)ttQ=
u.=00=00=00=00=00=00=1A=7F=00=00=00=00=00=00=07=C5((U#Products.PythonScri=
pts.PythonScriptq=01U=0CPythonScriptq=02tq=03Nt.}q=04(U	=
func_codeq=05(cShared.DC.Scripts.Signature=0A=
FuncCode=0A=
q=06oq=07}q=08(U=0Bco_varnamesq	(U	_getattr_q=0A=
U=08_getattrq=0BU=07_print_q=0CU=06_printq=0DU=1FProducts.PythonScripts.s=
tandardq=0EU=0A=
html_quoteq=0FU	=
containerq=10U=07requestq=11U=08RESPONSEq=12U=06scriptq=13tU=0Bco_argcoun=
tq=14K=00ubU=02idq=15U=0A=
index_htmlq=16U=12__ac_local_roles__q=17}q=18U=04rootq=19]q=1AU=05Ownerq=1B=
asU=0B_bind_namesq=1C(cShared.DC.Scripts.Bindings=0A=
NameAssignments=0A=
q=1Doq=1E}q=1FU=06_asgnsq =
}q!(U=0Ename_containerq"h=10U=0Cname_subpathq#U=10traverse_subpathq$U=0Cn=
ame_contextq%U=07contextq&U=0Bname_m_selfq'h=13usbU=0Dfunc_defaultsq(NU=05=
_codeq)Tv=03=00=00c=00=00=00=00=01=00=10=00s=13=00=00=00=7F=00=00=7F=01=00=
d=01=00=84=00=00Z=00=00d=00=00S(=02=00=00=00Nc=00=00=0A=
=00=12=00=13=00s=DC=00=00=00=7F=01=00t=00=00}=01=00t=02=00=83=00=00}=03=00=
=7F=04=00d=01=00k=04=00l=05=00}=05=00=01=7F=05=00|=01=00t=06=00d=02=00=83=
=02=00}=07=00=7F=06=00|=01=00|=07=00d=03=00=83=02=00}=08=00=7F	=
=00|=03=00=04d=04=00=02I=04|=01=00t	=
=00d=05=00=83=02=00=02I=04d=06=00|=01=00t	=
=00d=07=00=83=02=00=83=00=00=16=02I=01|=01=00=7F=0A=
=00t	=00d=08=00=83=02=00o$=00=01=7F=0B=00|=03=00=04d	=00|=05=00|=01=00t	=
=00d=08=00=83=02=00=83=01=00=16=02I=01n=01=00=01=7F=0C=00|=03=00=04d=0A=
=00=02I=04|=01=00t=06=00d=0B=00=83=02=00=83=00=00=02IJ=7F=0D=00|=03=00=83=
=00=00Sd=00=00S(=0C=00=00=00N(=01=00=00=00s=0A=
=00=00=00html_quotes=07=00=00=00REQUESTs=08=00=00=00RESPONSEs=0B=00=00=00=
This is thes	=
=00=00=00meta_types=04=00=00=00"%s"s=05=00=00=00getIds=05=00=00=00titles=04=
=00=00=00(%s)s=02=00=00=00ins=0C=00=00=00absolute_url(=0A=
=00=00=00s	=
=00=00=00_getattr_s=08=00=00=00_getattrs=07=00=00=00_print_s=06=00=00=00_=
prints=1F=00=00=00Products.PythonScripts.standards=0A=
=00=00=00html_quotes	=
=00=00=00containers=07=00=00=00requests=08=00=00=00RESPONSEs=06=00=00=00s=
cript(=0A=
=00=00=00s	=
=00=00=00_getattr_s=08=00=00=00_getattrs=07=00=00=00_print_s=06=00=00=00_=
prints=1F=00=00=00Products.PythonScripts.standards=0A=
=00=00=00html_quotes	=
=00=00=00containers=07=00=00=00requests=08=00=00=00RESPONSEs=06=00=00=00s=
cript(=00=00=00=00(=00=00=00=00s=0F=00=00=00Script (Python)s=0A=
=00=00=00index_html=01=00s=10=00=00=00=12=03=10=01=12=01=12=035=01=10=01$=
=01=1F=01(=01=00=00=00s=0A=
=00=00=00index_html(=01=00=00=00s=0A=
=00=00=00index_html(=00=00=00=00(=00=00=00=00s=0F=00=00=00Script =
(Python)s=08=00=00=00<module>=01=00s=00=00=00=00q*U=05_bodyq+T=AC=01=00=00=
# Example code:=0A=
=0A=
# Import a standard function, and get the HTML request and response =
objects.=0A=
from Products.PythonScripts.standard import html_quote=0A=
request =3D container.REQUEST=0A=
RESPONSE =3D  request.RESPONSE=0A=
=0A=
# Return a string identifying this script.=0A=
print "This is the", script.meta_type, '"%s"' % script.getId(),=0A=
if script.title:=0A=
    print "(%s)" % html_quote(script.title),=0A=
print "in", container.absolute_url()=0A=
return printed=0A=
q,U=0CScript_magicq-K=03U=08warningsq.)U=06errorsq/)U=0CPython_magicq0U=04=
*=EB
q1u.=00=00=00=00=00=00=1A=89=00=00=00=00=00=00=04=84((U#Products.PythonSc=
ripts.PythonScriptq=01U=0CPythonScriptq=02tq=03Nt.}q=04(U	=
func_codeq=05(cShared.DC.Scripts.Signature=0A=
FuncCode=0A=
q=06oq=07}q=08(U=0Bco_varnamesq	(U	_getattr_q=0A=
U=08_getattrq=0BU=07contextq=0CU=03strq=0DU=08DateTimeq=0EtU=0Bco_argcoun=
tq=0FK=00ubU=07_paramsq=10U=00U=02idq=11U=0CeditPropertyq=12U=12__ac_loca=
l_roles__q=13}q=14U=04rootq=15]q=16U=05Ownerq=17asU=0B_bind_namesq=18(cSh=
ared.DC.Scripts.Bindings=0A=
NameAssignments=0A=
q=19oq=1A}q=1BU=06_asgnsq=1C}q=1D(U=0Ename_containerq=1EU	=
containerq=1FU=0Cname_subpathq =
U=10traverse_subpathq!U=0Cname_contextq"h=0CU=0Bname_m_selfq#U=06scriptq$=
usbU=0Dfunc_defaultsq%NU=05_codeq&T=C8=01=00=00c=00=00=00=00=01=00=10=00s=
=13=00=00=00=7F=00=00=7F=01=00d=01=00=84=00=00Z=00=00d=00=00S(=02=00=00=00=
Nc=00=00=05=00=06=00=13=00s9=00=00=00=7F=01=00t=00=00}=01=00|=01=00t=02=00=
d=01=00=83=02=00h=00=00=04t=03=00t=04=00=83=00=00=83=01=00=02d=02=00<=83=01=
=00=01=7F=02=00d=03=00Sd=00=00S(=04=00=00=00Ns=15=00=00=00manage_editProp=
ertiess	=00=00=00property1s=0F=00=00=00property edited(=05=00=00=00s	=
=00=00=00_getattr_s=08=00=00=00_getattrs=07=00=00=00contexts=03=00=00=00s=
trs=08=00=00=00DateTime(=05=00=00=00s	=
=00=00=00_getattr_s=08=00=00=00_getattrs=07=00=00=00contexts=03=00=00=00s=
trs=08=00=00=00DateTime(=00=00=00=00(=00=00=00=00s=0F=00=00=00Script =
(Python)s=0C=00=00=00editProperty=01=00s=02=00=00=00.=01(=01=00=00=00s=0C=
=00=00=00editProperty(=01=00=00=00s=0C=00=00=00editProperty(=00=00=00=00(=
=00=00=00=00s=0F=00=00=00Script =
(Python)s=08=00=00=00<module>=01=00s=00=00=00=00q'U=05_bodyq(UYcontext.ma=
nage_editProperties( {'property1': str(DateTime())} )=0A=
return 'property edited'=0A=
q)U=0CScript_magicq*K=03U=08warningsq+)U=06errorsq,)U=0CPython_magicq-U=04=
*=EB
q.u.=00=00=00=00=00=00=1A~=00=00=00=00=00=00=07=C7((U#Products.PythonScri=
pts.PythonScriptq=01U=0CPythonScriptq=02tq=03Nt.}q=04(U	=
func_codeq=05(cShared.DC.Scripts.Signature=0A=
FuncCode=0A=
q=06oq=07}q=08(U=0Bco_varnamesq	(U	_getattr_q=0A=
U=08_getattrq=0BU=07_print_q=0CU=06_printq=0DU=1FProducts.PythonScripts.s=
tandardq=0EU=0A=
html_quoteq=0FU	=
containerq=10U=07requestq=11U=08RESPONSEq=12U=06scriptq=13tq=14U=0Bco_arg=
countq=15K=00ubU=02idq=16U=0A=
index_htmlq=17U=12__ac_local_roles__q=18}q=19U=04rootq=1A]q=1BU=05Ownerq=1C=
asU=0B_bind_namesq=1D(cShared.DC.Scripts.Bindings=0A=
NameAssignments=0A=
q=1Eoq=1F}q =
U=06_asgnsq!}q"(U=0Ename_containerq#h=10U=0Cname_subpathq$U=10traverse_su=
bpathq%U=0Cname_contextq&U=07contextq'U=0Bname_m_selfq(h=13usbU=0Dfunc_de=
faultsq)NU=05_codeq*Tv=03=00=00c=00=00=00=00=01=00=10=00s=13=00=00=00=7F=00=
=00=7F=01=00d=01=00=84=00=00Z=00=00d=00=00S(=02=00=00=00Nc=00=00=0A=
=00=12=00=13=00s=DC=00=00=00=7F=01=00t=00=00}=01=00t=02=00=83=00=00}=03=00=
=7F=04=00d=01=00k=04=00l=05=00}=05=00=01=7F=05=00|=01=00t=06=00d=02=00=83=
=02=00}=07=00=7F=06=00|=01=00|=07=00d=03=00=83=02=00}=08=00=7F	=
=00|=03=00=04d=04=00=02I=04|=01=00t	=
=00d=05=00=83=02=00=02I=04d=06=00|=01=00t	=
=00d=07=00=83=02=00=83=00=00=16=02I=01|=01=00=7F=0A=
=00t	=00d=08=00=83=02=00o$=00=01=7F=0B=00|=03=00=04d	=00|=05=00|=01=00t	=
=00d=08=00=83=02=00=83=01=00=16=02I=01n=01=00=01=7F=0C=00|=03=00=04d=0A=
=00=02I=04|=01=00t=06=00d=0B=00=83=02=00=83=00=00=02IJ=7F=0D=00|=03=00=83=
=00=00Sd=00=00S(=0C=00=00=00N(=01=00=00=00s=0A=
=00=00=00html_quotes=07=00=00=00REQUESTs=08=00=00=00RESPONSEs=0B=00=00=00=
This is thes	=
=00=00=00meta_types=04=00=00=00"%s"s=05=00=00=00getIds=05=00=00=00titles=04=
=00=00=00(%s)s=02=00=00=00ins=0C=00=00=00absolute_url(=0A=
=00=00=00s	=
=00=00=00_getattr_s=08=00=00=00_getattrs=07=00=00=00_print_s=06=00=00=00_=
prints=1F=00=00=00Products.PythonScripts.standards=0A=
=00=00=00html_quotes	=
=00=00=00containers=07=00=00=00requests=08=00=00=00RESPONSEs=06=00=00=00s=
cript(=0A=
=00=00=00s	=
=00=00=00_getattr_s=08=00=00=00_getattrs=07=00=00=00_print_s=06=00=00=00_=
prints=1F=00=00=00Products.PythonScripts.standards=0A=
=00=00=00html_quotes	=
=00=00=00containers=07=00=00=00requests=08=00=00=00RESPONSEs=06=00=00=00s=
cript(=00=00=00=00(=00=00=00=00s=0F=00=00=00Script (Python)s=0A=
=00=00=00index_html=01=00s=10=00=00=00=12=03=10=01=12=01=12=035=01=10=01$=
=01=1F=01(=01=00=00=00s=0A=
=00=00=00index_html(=01=00=00=00s=0A=
=00=00=00index_html(=00=00=00=00(=00=00=00=00s=0F=00=00=00Script =
(Python)s=08=00=00=00<module>=01=00s=00=00=00=00q+U=05_bodyq,T=AC=01=00=00=
# Example code:=0A=
=0A=
# Import a standard function, and get the HTML request and response =
objects.=0A=
from Products.PythonScripts.standard import html_quote=0A=
request =3D container.REQUEST=0A=
RESPONSE =3D  request.RESPONSE=0A=
=0A=
# Return a string identifying this script.=0A=
print "This is the", script.meta_type, '"%s"' % script.getId(),=0A=
if script.title:=0A=
    print "(%s)" % html_quote(script.title),=0A=
print "in", container.absolute_url()=0A=
return printed=0A=
q-U=0CScript_magicq.K=03U=08warningsq/)U=06errorsq0)U=0CPython_magicq1U=04=
*=EB
q2u.=00=00=00=00=00=00=1A=82=00=00=00=00=00=00=06%((U#Products.PythonScri=
pts.PythonScriptq=01U=0CPythonScriptq=02tq=03Nt.}q=04(U	=
func_codeq=05(cShared.DC.Scripts.Signature=0A=
FuncCode=0A=
q=06oq=07}q=08(U=0Bco_varnamesq	(U	_getitem_q=0A=
U=08_getitemq=0BU	_getattr_q=0CU=08_getattrq=0DU	=
containerq=0EU=07requestq=0FU=08RESPONSEq=10U=07contextq=11U=03objq=12tU=0B=
co_argcountq=13K=00ubU=07_paramsq=14U=00U=02idq=15U=07addItemq=16U=12__ac=
_local_roles__q=17}q=18U=04rootq=19]q=1AU=05Ownerq=1BasU=0B_bind_namesq=1C=
(cShared.DC.Scripts.Bindings=0A=
NameAssignments=0A=
q=1Doq=1E}q=1FU=06_asgnsq =
}q!(U=0Ename_containerq"h=0EU=0Cname_subpathq#U=10traverse_subpathq$U=0Bn=
ame_m_selfq%U=06scriptq&U=0Cname_contextq'h=11usbU=0Dfunc_defaultsq(NU=05=
_codeq)T=A8=02=00=00c=00=00=00=00=01=00=10=00s=13=00=00=00=7F=00=00=7F=01=
=00d=01=00=84=00=00Z=00=00d=00=00S(=02=00=00=00Nc=00=00	=
=00=07=00=13=00sq=00=00=00=7F=01=00t=00=00}=01=00t=02=00}=03=00|=03=00t=04=
=00d=01=00=83=02=00}=05=00=7F=02=00|=03=00|=05=00d=02=00=83=02=00}=06=00=7F=
=04=00|=03=00|=03=00|=01=00|=03=00t=07=00d=03=00=83=02=00d=04=00=83=02=00=
d=05=00=83=02=00d=06=00=83=02=00d=07=00|=05=00=83=02=00}=08=00=7F	=
=00d=08=00Sd=00=00S(	=
=00=00=00Ns=07=00=00=00REQUESTs=08=00=00=00RESPONSEs=11=00=00=00manage_ad=
dProducts=04=00=00=00tests=07=00=00=00testDocs=15=00=00=00createInObjectM=
anagers=04=00=00=00items=19=00=00=00object succesfully added.(	=
=00=00=00s	=00=00=00_getitem_s=08=00=00=00_getitems	=
=00=00=00_getattr_s=08=00=00=00_getattrs	=
=00=00=00containers=07=00=00=00requests=08=00=00=00RESPONSEs=07=00=00=00c=
ontexts=03=00=00=00obj(	=00=00=00s	=
=00=00=00_getitem_s=08=00=00=00_getitems	=
=00=00=00_getattr_s=08=00=00=00_getattrs	=
=00=00=00containers=07=00=00=00requests=08=00=00=00RESPONSEs=07=00=00=00c=
ontexts=03=00=00=00obj(=00=00=00=00(=00=00=00=00s=0F=00=00=00Script =
(Python)s=07=00=00=00addItem=01=00s=06=00=00=00=1E=01=12=026=05(=01=00=00=
=00s=07=00=00=00addItem(=01=00=00=00s=07=00=00=00addItem(=00=00=00=00(=00=
=00=00=00s=0F=00=00=00Script =
(Python)s=08=00=00=00<module>=01=00s=00=00=00=00q*U=05_bodyq+U=F9request =
=3D container.REQUEST=0A=
RESPONSE =3D  request.RESPONSE=0A=
=0A=
obj=3Dcontext.manage_addProduct['test'].testDoc.createInObjectManager('it=
em',request)=0A=
=0A=
#request.set( 'id', 'item' )=0A=
#context.testDoc_add( request, context )=0A=
=0A=
return 'object succesfully added.'=0A=
q,U=0CScript_magicq-K=03U=08warningsq.)U=06errorsq/)U=0CPython_magicq0U=04=
*=EB
q1u.=00=00=00=00=00=00=1A=87=00=00=00=00=00=00=04D((U#Products.PythonScri=
pts.PythonScriptq=01U=0CPythonScriptq=02tq=03Nt.}q=04(U	=
func_codeq=05(cShared.DC.Scripts.Signature=0A=
FuncCode=0A=
q=06oq=07}q=08(U=0Bco_varnamesq	(U	_getattr_q=0A=
U=08_getattrq=0BU=07contextq=0CtU=0Bco_argcountq=0DK=00ubU=07_paramsq=0EU=
=00U=02idq=0FU=0BaddPropertyq=10U=12__ac_local_roles__q=11}q=12U=04rootq=13=
]q=14U=05Ownerq=15asU=0B_bind_namesq=16(cShared.DC.Scripts.Bindings=0A=
NameAssignments=0A=
q=17oq=18}q=19U=06_asgnsq=1A}q=1B(U=0Ename_containerq=1CU	=
containerq=1DU=0Cname_subpathq=1EU=10traverse_subpathq=1FU=0Cname_context=
q =
h=0CU=0Bname_m_selfq!U=06scriptq"usbU=0Dfunc_defaultsq#NU=05_codeq$T=A0=01=
=00=00c=00=00=00=00=01=00=10=00s=13=00=00=00=7F=00=00=7F=01=00d=01=00=84=00=
=00Z=00=00d=00=00S(=02=00=00=00Nc=00=00=03=00=05=00=13=00s-=00=00=00=7F=01=
=00t=00=00}=01=00|=01=00t=02=00d=01=00=83=02=00d=02=00d=03=00d=04=00=83=03=
=00=01=7F=02=00d=05=00Sd=00=00S(=06=00=00=00Ns=12=00=00=00manage_addPrope=
rtys	=
=00=00=00property1s=05=00=00=00values=06=00=00=00strings=0E=00=00=00prope=
rty added(=03=00=00=00s	=
=00=00=00_getattr_s=08=00=00=00_getattrs=07=00=00=00context(=03=00=00=00s=
	=
=00=00=00_getattr_s=08=00=00=00_getattrs=07=00=00=00context(=00=00=00=00(=
=00=00=00=00s=0F=00=00=00Script =
(Python)s=0B=00=00=00addProperty=01=00s=02=00=00=00"=01(=01=00=00=00s=0B=00=
=00=00addProperty(=01=00=00=00s=0B=00=00=00addProperty(=00=00=00=00(=00=00=
=00=00s=0F=00=00=00Script =
(Python)s=08=00=00=00<module>=01=00s=00=00=00=00q%U=05_bodyq&UUcontext.ma=
nage_addProperty( 'property1', 'value', 'string' )=0A=
return 'property added'=0A=
q'U=0CScript_magicq(K=03U=08warningsq))U=06errorsq*)U=0CPython_magicq+U=04=
*=EB
q,u.=00=00=00=00=00=00=1A[=00=00=00=00=00=00=01x((U0Products.PluginIndexe=
s.TextIndex.GlobbingLexiconq=01U=0FGlobbingLexiconq=02tq=03Nt.}q=04(U=0Bu=
seSplitterq=05U=0CZopeSplitterq=06U=0CSplitterFuncq=07cProducts.PluginInd=
exes.TextIndex.Splitter.ZopeSplitter=0A=
Splitter=0A=
q=08U=0B_inverseLexq	(U=08=00=00=00=00=00=00=1A\q=0A=
(U=0EBTrees.IOBTreeq=0BU=07IOBTreeq=0CttQU=08_digramsq=0D(U=08=00=00=00=00=
=00=00=1A]q=0E(U=0EBTrees.OOBTreeq=0FU=07OOBTreeq=10ttQU=08_lexiconq=11(U=
=08=00=00=00=00=00=00=1A^q=12(U=0EBTrees.OIBTreeq=13U=07OIBTreeq=14ttQu.=00=
=00=00=00=00=00=1AL=00=00=00=00=00=00=00&((U=0DBTrees.Lengthq=01U=06Lengt=
hq=02tq=03Nt.K=00.=00=00=00=00=00=00=1AM=00=00=00=00=00=00=00'((U=0EBTree=
s.IOBTreeq=01U=07IOBTreeq=02tq=03Nt.N.=00=00=00=00=00=00=1AN=00=00=00=00=00=
=00=01i((U*Products.PluginIndexes.TextIndex.TextIndexq=01U	=
TextIndexq=02tq=03Nt.}q=04(U=02idq=05U=0ESearchableTextq=06U=08_lexiconq=07=
NU=0BuseOperatorq=08U=02orq	U=0Ccall_methodsq=0A=
NU	=
ignore_exq=0BNU=08_unindexq=0C(U=08=00=00=00=00=00=00=1AYq=0D(U=0EBTrees.=
IOBTreeq=0EU=07IOBTreeq=0FttQU=07catalogq=10(U=08=00=00=00=00=00=00=1AIq=11=
(U=1AProducts.ZCatalog.ZCatalogq=12U=08ZCatalogq=13ttQU=0Dvocabulary_idq=14=
U=0A=
Vocabularyq=15U=06_indexq=16(U=08=00=00=00=00=00=00=1AZq=17(h=0EU=07IOBTr=
eeq=18ttQu.=00=00=00=00=00=00=1AO=00=00=00=00=00=00=01=98((U0Products.Plu=
ginIndexes.KeywordIndex.KeywordIndexq=01U=0CKeywordIndexq=02tq=03Nt.}q=04=
(U=07__len__q=05(U=08=00=00=00=00=00=00=1AVq=06(U=0DBTrees.Lengthq=07U=06=
Lengthq=08ttQU=02idq	U=0A=
categoriesq=0A=
U=06_indexq=0B(U=08=00=00=00=00=00=00=1AWq=0C(U=0EBTrees.OOBTreeq=0DU=07O=
OBTreeq=0EttQU=0BuseOperatorq=0FU=02orq=10U=0Ccall_methodsq=11NU	=
ignore_exq=12(U=08=00=00=00=00=00=00=1AIq=13(U=1AProducts.ZCatalog.ZCatal=
ogq=14U=08ZCatalogq=15ttQU	=
operatorsq=16]q=17(h=10U=03andq=18eU=08_unindexq=19(U=08=00=00=00=00=00=00=
=1AXq=1A(U=0EBTrees.IOBTreeq=1BU=07IOBTreeq=1CttQu.=00=00=00=00=00=00=1AP=
=00=00=00=00=00=00=01=99((U0Products.PluginIndexes.KeywordIndex.KeywordIn=
dexq=01U=0CKeywordIndexq=02tq=03Nt.}q=04(U=07__len__q=05(U=08=00=00=00=00=
=00=00=1ASq=06(U=0DBTrees.Lengthq=07U=06Lengthq=08ttQU=02idq	=
U=0Bpermissionsq=0A=
U=06_indexq=0B(U=08=00=00=00=00=00=00=1ATq=0C(U=0EBTrees.OOBTreeq=0DU=07O=
OBTreeq=0EttQU=0BuseOperatorq=0FU=02orq=10U=0Ccall_methodsq=11NU	=
ignore_exq=12(U=08=00=00=00=00=00=00=1AIq=13(U=1AProducts.ZCatalog.ZCatal=
ogq=14U=08ZCatalogq=15ttQU	=
operatorsq=16]q=17(h=10U=03andq=18eU=08_unindexq=19(U=08=00=00=00=00=00=00=
=1AUq=1A(U=0EBTrees.IOBTreeq=1BU=07IOBTreeq=1CttQu.=00=00=00=00=00=00=1AQ=
=00=00=00=00=00=00=00'((U=0EBTrees.OIBTreeq=01U=07OIBTreeq=02tq=03Nt.N.=00=
=00=00=00=00=00=1AR=00=00=00=00=00=00=00'((U=0EBTrees.IOBTreeq=01U=07IOBT=
reeq=02tq=03Nt.N.=00=00=00=00=00=00=1A\=00=00=00=00=00=00=00'((U=0EBTrees=
.IOBTreeq=01U=07IOBTreeq=02tq=03Nt.N.=00=00=00=00=00=00=1A]=00=00=00=00=00=
=00=00'((U=0EBTrees.OOBTreeq=01U=07OOBTreeq=02tq=03Nt.N.=00=00=00=00=00=00=
=1A^=00=00=00=00=00=00=00'((U=0EBTrees.OIBTreeq=01U=07OIBTreeq=02tq=03Nt.=
N.=00=00=00=00=00=00=1AY=00=00=00=00=00=00=00'((U=0EBTrees.IOBTreeq=01U=07=
IOBTreeq=02tq=03Nt.N.=00=00=00=00=00=00=1AZ=00=00=00=00=00=00=00'((U=0EBT=
rees.IOBTreeq=01U=07IOBTreeq=02tq=03Nt.N.=00=00=00=00=00=00=1AV=00=00=00=00=
=00=00=00&((U=0DBTrees.Lengthq=01U=06Lengthq=02tq=03Nt.K=00.=00=00=00=00=00=
=00=1AW=00=00=00=00=00=00=00'((U=0EBTrees.OOBTreeq=01U=07OOBTreeq=02tq=03=
Nt.N.=00=00=00=00=00=00=1AX=00=00=00=00=00=00=00'((U=0EBTrees.IOBTreeq=01=
U=07IOBTreeq=02tq=03Nt.N.=00=00=00=00=00=00=1AS=00=00=00=00=00=00=00&((U=0D=
BTrees.Lengthq=01U=06Lengthq=02tq=03Nt.K=00.=00=00=00=00=00=00=1AT=00=00=00=
=00=00=00=00'((U=0EBTrees.OOBTreeq=01U=07OOBTreeq=02tq=03Nt.N.=00=00=00=00=
=00=00=1AU=00=00=00=00=00=00=00'((U=0EBTrees.IOBTreeq=01U=07IOBTreeq=02tq=
=03Nt.N.=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF
------=_NextPart_000_000A_01C21B9C.ADDD12F0--