Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from Products.CMFCore.utils import getToolByName
- from zope.app.component.hooks import getSite
- from Products.ATContentTypes.lib import constraintypes
- from betahaus.memberprofile.utilities import profileutils
- from betahaus.memberprofile.utilities import profileutils
- from zope.event import notify
- from Products.Archetypes.interfaces import IObjectInitializedEvent
- # -------------------------------------------------
- CIDSYSTEM_OBJ = "cid-system"
- CIDSYSTEM_TYP = "cidsystem"
- def checkSystem ( portal ):
- if portal.get ( CIDSYSTEM_OBJ, None ):
- return "<span class='cid-greenfont'>Existe</span>"
- return "<span class='cid-redfont'>No Existe</span>"
- def createSystem ( portal ):
- deleteSystem ( portal )
- checkGlobalAllow(portal,CIDSYSTEM_TYP)
- zodbObj = portal.invokeFactory(CIDSYSTEM_TYP, id=CIDSYSTEM_OBJ, title=u"Sistema de Seguimiento y Planeación")
- uncheckGlobalAllow(portal,CIDSYSTEM_TYP)
- def deleteSystem ( portal ):
- try:
- portal.manage_delObjects ( CIDSYSTEM_OBJ )
- except:
- pass
- # -------------------------------------------------
- def checkUsers ( portal ):
- pm = portal.portal_membership.listMemberIds()
- matched = 0
- for i in range(10):
- userName = "usuario" + str(i + 1)
- if userName in pm:
- matched = matched + 1
- if matched == 10:
- return "<span class='cid-greenfont'>Existe</span>"
- return "<span class='cid-redfont'>No Existe</span>"
- def createUsers ( portal ):
- deleteUsers ( portal )
- pm = portal.portal_membership
- pr = portal.portal_registration
- for i in range(10):
- userName = "usuario" + str(i + 1)
- email = userName + "@cid.org.co"
- fullname = "Usuario Nro " + str(i+1)
- firstname= "Usuario"
- firstlastname = "CID"
- secondlastname = "Nro " + str(i+1)
- password = "12345"
- memberData = {'username': userName,'fullname': fullname,
- 'firstname' : firstname, 'firstlastname' : firstlastname, 'secondlastname' : secondlastname,
- 'password': password, 'email': email}
- pr.addMember(userName, password, ('Member',), domains='',properties=memberData)
- profileutils.create_without_login(portal, userName)
- def deleteUsers ( portal ):
- pm = portal.portal_membership
- for i in range(10):
- userName = "usuario" + str(i + 1)
- try:
- pm.deleteMembers([userName],1)
- except:
- continue
- # -------------------------------------------------
- CIDDIRECCIONGENERAL_OBJ = "cid-direcciongeneral"
- CIDDIRECCIONGENERAL_TYP = "ciddirecciongeneral"
- CIDDIRECCIONPROGRAMATICA_OBJ = "cid-direccionprogramatica"
- CIDDIRECCIONPROGRAMATICA_TYP = "ciddireccionprogramatica"
- CIDDIRECCIONADMINISTRATIVAYFINANCIERA_OBJ = "cid-direccionadministrativayfinanciera"
- CIDDIRECCIONADMINISTRATIVAYFINANCIERA_TYP = "ciddireccionadministrativayfinanciera"
- def checkDirections ( portal ):
- cidsystem = portal.get ( CIDSYSTEM_OBJ, None )
- if cidsystem:
- ciddirecciongeneral = cidsystem.get ( CIDDIRECCIONGENERAL_OBJ, None )
- ciddireccionprogramatica = cidsystem.get ( CIDDIRECCIONPROGRAMATICA_OBJ, None )
- ciddireccionadministrativayfinanciera = cidsystem.get ( CIDDIRECCIONADMINISTRATIVAYFINANCIERA_OBJ, None )
- if ciddirecciongeneral and ciddireccionprogramatica and ciddireccionadministrativayfinanciera:
- return "<span class='cid-greenfont'>Existe</span>"
- return "<span class='cid-redfont'>No Existe</span>"
- def createDirections ( portal ):
- deleteDirections ( portal )
- cidsystem = portal.get ( CIDSYSTEM_OBJ, None )
- if cidsystem:
- zodbObj = cidsystem.invokeFactory(CIDDIRECCIONGENERAL_TYP, id=CIDDIRECCIONGENERAL_OBJ, title=u"Dirección General")
- zodbObj = cidsystem.invokeFactory(CIDDIRECCIONPROGRAMATICA_TYP, id=CIDDIRECCIONPROGRAMATICA_OBJ, title=u"Dirección Programática")
- zodbObj = cidsystem.invokeFactory(CIDDIRECCIONADMINISTRATIVAYFINANCIERA_TYP, id=CIDDIRECCIONADMINISTRATIVAYFINANCIERA_OBJ, title=u"Dirección Administrativa y Financiera")
- def deleteDirections ( portal ):
- cidsystem = portal.get ( CIDSYSTEM_OBJ, None )
- if cidsystem is not None:
- try:
- cidsystem.manage_delObjects ( CIDDIRECCIONGENERAL_OBJ )
- cidsystem.manage_delObjects ( CIDDIRECCIONPROGRAMATICA_OBJ )
- cidsystem.manage_delObjects ( CIDDIRECCIONADMINISTRATIVAYFINANCIERA_OBJ )
- except:
- pass
- # -------------------------------------------------
- CIDREGIONAL_TYP = "cidregional"
- def checkRegionals ( portal, regionals ):
- cidsystem = portal.get ( CIDSYSTEM_OBJ, None )
- if cidsystem:
- ciddireccionprogramatica = cidsystem.get ( CIDDIRECCIONPROGRAMATICA_OBJ, None )
- if ciddireccionprogramatica:
- esta = 1
- for regional in regionals.values():
- if ciddireccionprogramatica.get(regional, None) is None:
- esta = 0
- break
- if esta == 1:
- return "<span class='cid-greenfont'>Existe</span>"
- return "<span class='cid-redfont'>No Existe</span>"
- def createRegionals ( portal, regionals ):
- deleteRegionals ( portal )
- cidsystem = portal.get ( CIDSYSTEM_OBJ, None )
- if cidsystem:
- ciddireccionprogramatica = cidsystem.get ( CIDDIRECCIONPROGRAMATICA_OBJ, None )
- if ciddireccionprogramatica:
- for k, v in regionals.items():
- #print "KEY = ", k, " VALUE = ", v
- if ciddireccionprogramatica.get(v,None) is None:
- result = ciddireccionprogramatica.invokeFactory(CIDREGIONAL_TYP, id=v, title=k)
- obj = getattr (ciddireccionprogramatica, v )
- obj.objetivo_general = "Objetivo General"
- obj.objetivo_especifico = "Objetivo Específico"
- obj.reindexObject()
- def deleteRegionals ( portal ):
- cidsystem = portal.get ( CIDSYSTEM_OBJ, None )
- if cidsystem:
- ciddireccionprogramatica = cidsystem.get ( CIDDIRECCIONPROGRAMATICA_OBJ, None )
- if ciddireccionprogramatica:
- for objId in ciddireccionprogramatica.objectIds():
- try:
- ciddireccionprogramatica.manage_delObjects ( objId )
- except:
- pass
- # -------------------------------------------------
- CIDPROJECT_TYP = "cidproject"
- def checkProjects ( portal, regionals ):
- cidsystem = portal.get ( CIDSYSTEM_OBJ, None )
- if cidsystem:
- ciddirecciongeneral = cidsystem.get ( CIDDIRECCIONGENERAL_OBJ, None )
- ciddireccionprogramatica = cidsystem.get ( CIDDIRECCIONPROGRAMATICA_OBJ, None )
- ciddireccionadministrativayfinanciera = cidsystem.get ( CIDDIRECCIONADMINISTRATIVAYFINANCIERA_OBJ, None )
- if ciddireccionprogramatica and ciddirecciongeneral and ciddireccionadministrativayfinanciera:
- esta = 1
- # Regional Projects
- for k,v in regionals.items():
- if ciddireccionprogramatica.get(v, None) is None:
- esta = 0
- break
- # General
- if esta == 1 and len(ciddirecciongeneral.objectIds()) <= 0:
- esta = 0
- # Administrativa y Financiera
- if esta == 1 and len(ciddireccionadministrativayfinanciera.objectIds()) <= 0:
- esta = 0
- if esta == 1:
- return "<span class='cid-greenfont'>Existe</span>"
- return "<span class='cid-redfont'>No Existe</span>"
- def createProjects ( portal, regionals ):
- deleteProjects ( portal, regionals )
- cidsystem = portal.get ( CIDSYSTEM_OBJ, None )
- if cidsystem:
- ciddirecciongeneral = cidsystem.get ( CIDDIRECCIONGENERAL_OBJ, None )
- ciddireccionprogramatica = cidsystem.get ( CIDDIRECCIONPROGRAMATICA_OBJ, None )
- ciddireccionadministrativayfinanciera = cidsystem.get ( CIDDIRECCIONADMINISTRATIVAYFINANCIERA_OBJ, None )
- if ciddireccionprogramatica and ciddirecciongeneral and ciddireccionadministrativayfinanciera:
- esta = 1
- # Regional Projects
- for k,v in regionals.items():
- cidregional = ciddireccionprogramatica.get(v, None)
- if cidregional is None:
- esta = 0
- break
- else:
- id = "proyecto-regional-" + v
- title = "Proyecto Regional " + k
- cidregional.invokeFactory ( CIDPROJECT_TYP, id=id, title=title )
- obj = cidregional.get(id, None )
- obj.cid_proyecto_objetivo_general = "Objetivo General"
- obj.cid_proyecto_cooperante = "El Cooperante"
- obj.cid_proyecto_fecha_inicio = "2010-06-11 00:00:00"
- obj.cid_proyecto_fecha_fin = "2010-06-12 00:00:00"
- obj.setCid_proyecto_usuario_coordinador([portal.Members['usuario1'].UID(),portal.Members['usuario2'].UID()])
- obj.setCid_proyecto_usuario_operativo([portal.Members['usuario3'].UID(),portal.Members['usuario4'].UID()])
- obj.reindexObject()
- obj.__ac_local_roles_block__ = True
- for user in obj.getReferences("proyecto_usuario_operativo"):
- obj.manage_setLocalRoles(user.getId(),[ 'Reader' ])
- for user in obj.getReferences("proyecto_usuario_coordinador"):
- obj.manage_setLocalRoles(user.getId(),[ 'Contributor' ])
- obj.reindexObjectSecurity()
- # General
- ciddirecciongeneral.invokeFactory ( CIDPROJECT_TYP, id="proyecto-direccion-general", title=u"Proyecto Dirección General" )
- obj = ciddirecciongeneral.get("proyecto-direccion-general", None )
- obj.cid_proyecto_objetivo_general = "Objetivo General"
- obj.cid_proyecto_cooperante = "El Cooperante"
- obj.cid_proyecto_fecha_inicio = "2010-06-11 00:00:00"
- obj.cid_proyecto_fecha_fin = "2010-06-12 00:00:00"
- obj.setCid_proyecto_usuario_coordinador([portal.Members['usuario1'].UID(),portal.Members['usuario2'].UID()])
- obj.setCid_proyecto_usuario_operativo([portal.Members['usuario3'].UID(),portal.Members['usuario4'].UID()])
- obj.reindexObject()
- obj.__ac_local_roles_block__ = True
- for user in obj.getReferences("proyecto_usuario_operativo"):
- obj.manage_setLocalRoles(user.getId(),[ 'Reader' ])
- for user in obj.getReferences("proyecto_usuario_coordinador"):
- obj.manage_setLocalRoles(user.getId(),[ 'Contributor' ])
- obj.reindexObjectSecurity()
- # Administrativa y Financiera
- ciddireccionadministrativayfinanciera.invokeFactory ( CIDPROJECT_TYP, id="proyecto-direccion-administrativa-y-financiera", title=u"Proyecto Dirección Administrativa y Financiera" )
- obj = ciddireccionadministrativayfinanciera.get("proyecto-direccion-administrativa-y-financiera", None )
- obj.cid_proyecto_objetivo_general = "Objetivo General"
- obj.cid_proyecto_cooperante = "El Cooperante"
- obj.cid_proyecto_fecha_inicio = "2010-06-11 00:00:00"
- obj.cid_proyecto_fecha_fin = "2010-06-12 00:00:00"
- obj.setCid_proyecto_usuario_coordinador([portal.Members['usuario1'].UID(),portal.Members['usuario2'].UID()])
- obj.setCid_proyecto_usuario_operativo([portal.Members['usuario3'].UID(),portal.Members['usuario4'].UID()])
- obj.reindexObject()
- obj.__ac_local_roles_block__ = True
- for user in obj.getReferences("proyecto_usuario_operativo"):
- obj.manage_setLocalRoles(user.getId(),[ 'Reader' ])
- for user in obj.getReferences("proyecto_usuario_coordinador"):
- obj.manage_setLocalRoles(user.getId(),[ 'Contributor' ])
- obj.reindexObjectSecurity()
- def deleteProjects ( portal, regionals ):
- createDirections ( portal )
- createRegionals ( portal, regionals )
- # -------------------------------------------------
- CIDOBJETIVE_TYP = "cidobjetivoespecifico"
- CIDOBJETIVE_OBJ = "cid-objetivoespecifico"
- def checkObjetives ( portal, regionals ):
- cidsystem = portal.get ( CIDSYSTEM_OBJ, None )
- if cidsystem:
- ciddirecciongeneral = cidsystem.get ( CIDDIRECCIONGENERAL_OBJ, None )
- ciddireccionprogramatica = cidsystem.get ( CIDDIRECCIONPROGRAMATICA_OBJ, None )
- ciddireccionadministrativayfinanciera = cidsystem.get ( CIDDIRECCIONADMINISTRATIVAYFINANCIERA_OBJ, None )
- if ciddireccionprogramatica and ciddirecciongeneral and ciddireccionadministrativayfinanciera:
- esta = 1
- # Regional Projects
- for k,v in regionals.items():
- p = ciddireccionprogramatica.get(v, None)
- if p is None:
- esta = 0
- break
- else:
- if p.get ( CIDOBJETIVE_OBJ, None ) is None:
- esta = 0
- break
- # General
- if esta == 1 and len(ciddirecciongeneral.objectIds()) <= 0:
- esta = 0
- elif esta == 1 and len(ciddirecciongeneral.objectIds()) > 0:
- for p in ciddirecciongeneral.objectValues():
- if p.get ( CIDOBJETIVE_OBJ, None ) is None:
- esta = 0
- break
- # Administrativa y Financiera
- if esta == 1 and len(ciddireccionadministrativayfinanciera.objectIds()) <= 0:
- esta = 0
- elif esta == 1 and len(ciddireccionadministrativayfinanciera.objectIds()) > 0:
- for p in ciddireccionadministrativayfinanciera.objectValues():
- if p.get ( CIDOBJETIVE_OBJ, None ) is None:
- esta = 0
- break
- if esta == 1:
- return "<span class='cid-greenfont'>Existe</span>"
- return "<span class='cid-redfont'>No Existe</span>"
- def createObjetives ( portal, regionals ):
- deleteObjetives ( portal, regionals )
- cidsystem = portal.get ( CIDSYSTEM_OBJ, None )
- if cidsystem:
- ciddirecciongeneral = cidsystem.get ( CIDDIRECCIONGENERAL_OBJ, None )
- ciddireccionprogramatica = cidsystem.get ( CIDDIRECCIONPROGRAMATICA_OBJ, None )
- ciddireccionadministrativayfinanciera = cidsystem.get ( CIDDIRECCIONADMINISTRATIVAYFINANCIERA_OBJ, None )
- if ciddireccionprogramatica and ciddirecciongeneral and ciddireccionadministrativayfinanciera:
- esta = 1
- # Regional Projects
- for k,v in regionals.items():
- p = ciddireccionprogramatica.get(v, None)
- if p is None:
- esta = 0
- break
- else:
- if p.get ( CIDOBJETIVE_OBJ, None ) is None:
- newId = p.invokeFactory ( CIDOBJETIVE_TYP, id = CIDOBJETIVE_OBJ, title = "Objetivo Especifico para: " + p.title )
- obj = p.get ( CIDOBJETIVE_OBJ, None )
- obj.objetivo_especifico = "El objetivo específico es poner a prueba el sistema"
- obj.reindexObject()
- # General
- if esta == 1 and len(ciddirecciongeneral.objectIds()) <= 0:
- esta = 0
- elif esta == 1 and len(ciddirecciongeneral.objectIds()) > 0:
- for p in ciddirecciongeneral.objectValues():
- if p.get ( CIDOBJETIVE_OBJ, None ) is None:
- newId = p.invokeFactory ( CIDOBJETIVE_TYP, id = CIDOBJETIVE_OBJ, title = "Objetivo Especifico para: " + p.title )
- obj = p.get ( CIDOBJETIVE_OBJ, None )
- obj.objetivo_especifico = "El objetivo específico es poner a prueba el sistema"
- obj.reindexObject()
- # Administrativa y Financiera
- if esta == 1 and len(ciddireccionadministrativayfinanciera.objectIds()) <= 0:
- esta = 0
- elif esta == 1 and len(ciddireccionadministrativayfinanciera.objectIds()) > 0:
- for p in ciddireccionadministrativayfinanciera.objectValues():
- if p.get ( CIDOBJETIVE_OBJ, None ) is None:
- newId = p.invokeFactory ( CIDOBJETIVE_TYP, id = CIDOBJETIVE_OBJ, title = "Objetivo Especifico para: " + p.title )
- obj = p.get ( CIDOBJETIVE_OBJ, None )
- obj.objetivo_especifico = "El objetivo específico es poner a prueba el sistema"
- obj.reindexObject()
- def deleteObjetives ( portal, regionals ):
- createProjects ( portal, regionals )
- # -------------------------------------------------
- def checkGlobalAllow(portal,portal_type):
- try:
- portal.portal_types[portal_type].global_allow = True
- except:
- pass
- def uncheckGlobalAllow(portal,portal_type):
- try:
- portal.portal_types[portal_type].global_allow = False
- except:
- pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement