allora.
io ho fatto riferimento alla classe
plone.app.controlpanel.types.TypesControlPanel.
Estrapolando un metodo di servizio e sostituendo una costante ho
ricopiato il codice, sicuramente sovrabbondante, da inglobare in un
import_step del profilo del tuo prodotto.
#####
#setuphandler.py
#####
from Products.CMFCore.utils import getToolByName
from plone.app.controlpanel.types import VERSION_POLICIES
MY_TYPE = 'tipo mio' # il portal_type del tuo tipo
def setupVarious(context):
site = context.getSite()
portal_types = getToolByName(site, 'portal_types')
portal_repository = getToolByName(site,
'portal_repository')
portal_properties = getToolByName(site,
'portal_properties')
site_properties = getattr(portal_properties, 'site_properties')
type_id = MY_TYPE
fti = getattr(portal_types, type_id)
# Set FTI properties
version_policy = 'automatic'
current_version_policy= ''
if type_id not in portal_repository.getVersionableContentTypes():
current_version_policy = "off"
policy = set(portal_repository.getPolicyMap().get(type_id, ()))
for info in VERSION_POLICIES:
if set(info["policy"]) == policy:
current_version_policy = info["id"]
current_version_policy = None
if version_policy!=current_version_policy:
newpolicy=[p for p in VERSION_POLICIES if p["id"]==version_policy][0]
versionable_types = list(portal_repository.getVersionableContentTypes())
if not newpolicy["policy"]:
if type_id in versionable_types:
versionable_types.remove(type_id)
else:
if type_id not in versionable_types:
versionable_types.append(type_id)
for policy in portal_repository.listPolicies():
policy_id = policy.getId()
if policy_id in newpolicy["policy"]:
portal_repository.addPolicyForContentType(type_id, policy_id)
else:
portal_repository.removePolicyFromContentType(type_id,
policy_id)
portal_repository.setVersionableContentTypes(versionable_types)
#####
#####
ripeto,
magari si puo' raffinare un tantino, ma di funzionare funziona :)
bye
Il 17 settembre 2009 14.11, Luca <[email protected]> ha scritto:
> 2009/9/17 SauZheR <[email protected]>:
>> mi ha risposto Aspeli sulla lista product developer.
>>
>> La cosa e' tremendamente semplice... (e ti pareva).
>> Non c'entra la storia historyaware. Basta andare nel pannello di
>> controllo dei tipi in plone, selezionare il proprio tipo dalla
>> tendina, e flaggare la checkbox relativa al versionamento.
>>
>> Il resto va da se.
>>
>
> :-)
>
> Ma per farlo automaticamente all'installazione del prodotto?!
>
> --
> -- luca
>
--
bye
SauZheR
************************************
l'iterazione รจ umana...
la ricorsione, Divina!
************************************
reply to: sauzher AT gmail DOT com
_______________________________________________
Plone-IT mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html