Usando el documentation en plone.org junto con algunos en el foro, pude obtener un administrador de portlets personalizado debajo de mi contenido en Plone 4.0.8. El objetivo, en realidad, es tener 4 gerentes personalizados debajo del contenido dispuestos como el tablero.¿Cómo agrego portlets de stock (desde plone.app.portlets) a mi administrador de portlets personalizado?
De todos modos, mi administrador solo me permite agregar portlets estáticos y de recopilación. Después de revisar el código, descubrí que cuando el sistema va a llenar ese menú desplegable 'Agregar nuevo portlet', pasa por todos los portlets. Luego, recorre el atributo 'for_' de cada portlet para verificar si las interfaces son proporcionadas por uno mismo: mi administrador de portlet.
def getAddablePortletTypes(self):
addable = []
for p in getUtilitiesFor(IPortletType):
# BBB - first condition, because starting with Plone 3.1
#every p[1].for_ should be a list
if not isinstance(p[1].for_, list):
logger.warning("Deprecation Warning ..." % p[1].addview)
if p[1].for_ is None or p[1].for_.providedBy(self):
addable.append(p[1])
elif [i for i in p[1].for_ if i.providedBy(self)]:
addable.append(p[1])
return addable
¿Cómo agrego la interfaz de mi administrador a la lista de interfaces "for_" de cada portlet?
me cambió la interfaz del gestor de mi clase 'IBottomPortletManager (IPortletManager)' a clase 'IBottomPortletManager (IPortletManager, iColumn)' iColumn se define en plone.app.portlets, por lo que los módulos de función ya están registrados para gerentes que proporcionan IColumn. Ahora, ¿es esta la forma ideal de hacer esto? – Travv15