def finish(self):
        self.setCatalogs()
        self.setupPortalFactoryProps()
        self.setWorkflow()
        if self.is_default:
            adder = getAdderUtility(self.context)
            adder.default_member_type = self.type

        return "set %s: workflow->%s, catalogs->%s" % (
            self.type, self.workflow, self.catalogs)
Exemple #2
0
    def finish(self):
        self.setCatalogs()
        self.setupPortalFactoryProps()
        self.setWorkflow()
        if self.is_default:
            adder = getAdderUtility(self.context)
            adder.default_member_type = self.type

        return "set %s: workflow->%s, catalogs->%s" % (
            self.type, self.workflow, self.catalogs)
def setMemberType(portal, out=None):
    mtype = 'OpenMember'
    print >> out, 'Specifying %s as default member type' % mtype
    adder = getAdderUtility(portal)
    adder.default_member_type = mtype

    # have to REset the MDC allowed types, since remember's install
    # undid what we have specified in the GenericSetup profile
    ttool = getToolByName(portal, 'portal_types')
    mdc_fti = ttool._getOb('MemberDataContainer')
    mdc_fti.manage_changeProperties(allowed_content_types=('Member',
                                                           'OpenMember',
                                                           ))
Exemple #4
0
 def testSetupNewDefaultMember(self):
     """ Did we set the proper default user? """
     addr = getAdderUtility(self.portal)
     self.failUnless(addr.default_member_type == DEFAULT_MEMBER_TYPE)
Exemple #5
0
 def getDefaultMemType(self):
     adder = getAdderUtility(self.context)
     return adder.default_member_type
Exemple #6
0
 def action_submit(self, action, data):
     adder = getAdderUtility(self.context)
     adder.default_member_type = data['default_mem_type']
Exemple #7
0
 def getDefaultMemType(self):
     adder = getAdderUtility(self.context)
     return adder.default_member_type
Exemple #8
0
 def action_submit(self, action, data):
     adder = getAdderUtility(self.context)
     adder.default_member_type = data['default_mem_type']
def install(self):
    """ Do stuff that GS will do for us soon ..
    """
    out = StringIO()

    # XXX: this doesn't actually work, as it steps on work done in
    # Install.py
    #
    # Note that we can apply profiles after adding a Plone site using
    # instancemanager: does it make more sense to leave it to
    # instancemanager?
    #
    # # Apply membrane and remember profiles (we can't QI them)
    # membrane_tool = getToolByName(self, 'membrane_tool')
    # if not membrane_tool:
    #     setup_tool = getToolByName(self, 'portal_setup')
    #     for p in ('membrane', 'remember', ):
    #         setup_tool.setImportContext('profile-%s:default' % p)
    #         out.write( 'Switched to profile: %s \n' % p)
    #         result = setup_tool.runAllImportSteps()
    #         print >>out,  'Steps run: %s \n' % ', '.join(result['steps'])

    # Change default member to MemberOfPublic
    plone = getToolByName(self, "portal_url").getPortalObject()
    adder = getAdderUtility(plone)
    adder.default_member_type = "MemberOfPublic"

    # Require approval for the adding of plain old members
    workflow_tool = getToolByName(self, "portal_workflow")
    workflow_tool.setChainForPortalTypes(["Member"], "MemberApprovalWorkflow")

    # Repair status_map for our new types.
    # TODO: setting their workflow *after* registering the types in
    # TODO: Install.py messes with the default active state(s) of the
    # TODO: members. Fix AGX to generate them after workflow
    # TODO: registration.
    membrane_tool = getToolByName(self, "membrane_tool")
    cat_map = ICategoryMapper(membrane_tool)
    for portal_type in ["MemberOfParliament", "Staff", "MemberOfPublic"]:
        cat_set = generateCategorySetIdForType(portal_type)
        # states = getAllWFStatesForType(self, portal_type)
        states = ACTIVE_MEMBRANE_STATES[portal_type]
        cat_map.replaceCategoryValues(cat_set, ACTIVE_STATUS_CATEGORY, states)

    # Change the default workflow
    workflow_tool = getToolByName(self, "portal_workflow")
    workflow_tool.setDefaultChain("BungeniWorkflow")
    workflow_tool.setChainForPortalTypes(["Folder", "Large Plone Folder"], "BungeniWorkflow")
    workflow_tool.updateRoleMappings()

    # Enable syndication
    # XXX: Figure out a better way to identify the content that needs syndication
    syndication_tool = getToolByName(self, "portal_syndication")
    if not syndication_tool.isSiteSyndicationAllowed():
        syndication_tool.editProperties(isAllowed=1)
    if not syndication_tool.isSyndicationAllowed(self.events):
        syndication_tool.enableSyndication(self.events)

    # # Change the default roles managed by teams
    # teams_tool = getToolByName(self, 'portal_teams')
    # allowed_roles = teams_tool.getDefaultAllowedRoles()
    # teams_tool.setDefaultAllowedRoles(
    #         allowed_roles+['ReviewerForSpeaker', 'CurrentMP'])
    teams_tool = getToolByName(self, "portal_teams")
    teams_tool.setAllowedTeamTypes(TEAM_TYPES)

    # Replace the default MailHost with a MaildropHost
    if shasattr(plone, "MailHost") and plone.MailHost.meta_type != "Secure Maildrop Host":
        plone.manage_delObjects("MailHost")
    if not shasattr(plone, "MailHost"):
        plone.manage_addProduct["SecureMaildropHost"].manage_addSecureMaildropHost("MailHost")

    return out.getvalue()
Exemple #10
0
def install(self):
    """ Do stuff that GS will do for us soon ..
    """
    out = StringIO()

    # XXX: this doesn't actually work, as it steps on work done in
    # Install.py
    #
    # Note that we can apply profiles after adding a Plone site using
    # instancemanager: does it make more sense to leave it to
    # instancemanager?
    #
    # # Apply membrane and remember profiles (we can't QI them)
    # membrane_tool = getToolByName(self, 'membrane_tool')
    # if not membrane_tool:
    #     setup_tool = getToolByName(self, 'portal_setup')
    #     for p in ('membrane', 'remember', ):
    #         setup_tool.setImportContext('profile-%s:default' % p)
    #         out.write( 'Switched to profile: %s \n' % p)
    #         result = setup_tool.runAllImportSteps()
    #         print >>out,  'Steps run: %s \n' % ', '.join(result['steps'])

    # Change default member to MemberOfPublic
    plone = getToolByName(self, 'portal_url').getPortalObject()
    adder = getAdderUtility(plone)
    adder.default_member_type = 'MemberOfPublic'

    # Require approval for the adding of plain old members
    workflow_tool = getToolByName(self, 'portal_workflow')
    workflow_tool.setChainForPortalTypes(['Member'], "MemberApprovalWorkflow")

    # Repair status_map for our new types.
    # TODO: setting their workflow *after* registering the types in
    # TODO: Install.py messes with the default active state(s) of the
    # TODO: members. Fix AGX to generate them after workflow
    # TODO: registration.
    membrane_tool = getToolByName(self, 'membrane_tool')
    cat_map = ICategoryMapper(membrane_tool)
    for portal_type in ['MemberOfParliament', 'Staff', 'MemberOfPublic']:
        cat_set = generateCategorySetIdForType(portal_type)
        # states = getAllWFStatesForType(self, portal_type)
        states = ACTIVE_MEMBRANE_STATES[portal_type]
        cat_map.replaceCategoryValues(cat_set, ACTIVE_STATUS_CATEGORY, states)

    # Change the default workflow
    workflow_tool = getToolByName(self, 'portal_workflow')
    workflow_tool.setDefaultChain('BungeniWorkflow')
    workflow_tool.setChainForPortalTypes(['Folder', 'Large Plone Folder'],
                                         "BungeniWorkflow")
    workflow_tool.updateRoleMappings()

    # Enable syndication
    # XXX: Figure out a better way to identify the content that needs syndication
    syndication_tool = getToolByName(self, 'portal_syndication')
    if not syndication_tool.isSiteSyndicationAllowed():
        syndication_tool.editProperties(isAllowed=1)
    if not syndication_tool.isSyndicationAllowed(self.events):
        syndication_tool.enableSyndication(self.events)

    # # Change the default roles managed by teams
    # teams_tool = getToolByName(self, 'portal_teams')
    # allowed_roles = teams_tool.getDefaultAllowedRoles()
    # teams_tool.setDefaultAllowedRoles(
    #         allowed_roles+['ReviewerForSpeaker', 'CurrentMP'])
    teams_tool = getToolByName(self, 'portal_teams')
    teams_tool.setAllowedTeamTypes(TEAM_TYPES)

    # Replace the default MailHost with a MaildropHost
    if (shasattr(plone, 'MailHost')
            and plone.MailHost.meta_type != 'Secure Maildrop Host'):
        plone.manage_delObjects('MailHost')
    if not shasattr(plone, 'MailHost'):
        plone.manage_addProduct[
            'SecureMaildropHost'].manage_addSecureMaildropHost('MailHost')

    return out.getvalue()
Exemple #11
0
def setupNewDefaultMember(context):
    """ Setup preferred default_member_type """
    portal = context.getSite()
    addr = getAdderUtility(portal)
    addr.default_member_type = DEFAULT_MEMBER_TYPE