mò ,á¸Ec@sªdkZdkZdkZdkZdklZdklZdkl Z dk l Z dk Z d„Z deifd„ƒYZdeifd „ƒYZeeƒdS( N(sInitializeClass(sClassSecurityInfo(saqwrap(sUnownableOwnerc Cs;h}xDttƒD]6}tt|ƒ}t|tiƒo|||scCs^|idƒƒi|ƒ}ttƒi|dƒdt ƒ}|||i |ƒ}|i|ƒS(Nt _getProductst__FactoryDispatcher__(Rt aq_acquiret_productR"RRRtgetR!tFactoryDispatchertdispatcher_classt aq_parenttREQUESTt dispatchert__of__(RR,R"RR-R*((RR As  (t__name__t __module__t__doc__t*__allow_access_to_unprotected_subobjects__R#R (((RR9s  R)cBstZdZeƒZeZed„Zei dƒd„Z ei dƒe Z ei dƒd„Z d„Z eiZZeZdd „ZRS( s.Provide a namespace for product "methods" cCs‘t|dƒo |i}n||_||_|dj oQy|d}Wnt j oqX||i dƒ }||i dƒ |_ ndS(Ntaq_basetURLt/( RRR3RR'tdestt_dR,R!tvtKeyErrorRt_u(RRR6R,R8((Rt__init__Us    t DestinationcCs |idS(s)Return the destination for factory outputR7N(Rt__dict__(R((RR<bstthistDestinationURLcCs9t|ddƒ}|djo|iƒiƒ}n|S(s5Return the URL for the destination for factory outputR:N(RRR!turlR<t absolute_url(RR@((RR?js  cCsæ|id}|i}t||ƒoc|i|ƒoS||}t|ddƒ}|dj o"t |t|d|ƒ|ƒ}n|Snd|i }t ii|ƒo0t i|ii|ƒot i|i|Snt|‚dS(NR't_permissionMapperR3s Products.%s(RR=tptdRR"RRRR!twtaqwraptidtsystmodulest_mtAttributeError(RR"RRCRERD((Rt __getattr__qs     " -icCs3|odpd}|di|iƒ|ƒdS(sBImplement a contents view by redirecting to the true view s/manage_main?update_menu=1s /manage_maintRESPONSEN(t update_menuRDR,tredirectRR?(ttrueselfRR,RNRD((Rt manage_mainŠs(R/R0R1tClassSecurityInfotsecuritytUnownableOwnert_ownerR!R;t declarePublicR<R>R?RLt AcquisitiontAcquiredt _setObjectt_getObRQ(((RR)Ms         (R RWRHRtGlobalstInitializeClasst AccessControlRRtAccessControl.PermissionMappingRFtAccessControl.OwnedRTR RtImplicitRR)( RFRTR RRR\RHRRR R)RRW((Rt?s       !C