from Acquisition import aq_base

def install(self):
    """ Initialize the necessarry folders. """
    portal = self.portal_url.getPortalObject()
    pt = portal.portal_types
    
    # Create a default associations folder
    assocfolderid = 'associations'
    
    assocfolder = getattr(portal, assocfolderid, None)
    if assocfolder is None:
        portal.invokeFactory(type_name="CMF BTree Folder", id=assocfolderid)
        assocfolder = getattr(portal, assocfolderid)
    
    if self._language == 'en':
        assocfolder.setTitle('Associations')
    elif self._language == 'no':
        assocfolder.setTitle('Assosiasjoner')
    else:
        raise AssertionError, "Not a currently supported language"
    
    # System folder
    system_id = 'system'
    
    systemfolder = getattr(portal, system_id, None)
    if systemfolder is None:
        portal.invokeFactory(type_name='CMF BTree Folder', id=system_id)
        systemfolder = getattr(portal, system_id)
        systemfolder.setTitle('System')
    
    # System folders
    if self._language == 'no':
        sysfolders = { 'topictypes':'Emnetyper',
                       'occurrencetypes':'Forekomsttyper',
                       'roletypes':'Rolletyper',
                       'associationtypes': 'Assosiasjonstyper',
                       'scopetypes':'Perspektivtyper',
                       'nametypes':'Navnetyper',
                       'associations':'Assosiasjoner',
                       'reifiers':'Reifiers',
                       'languages':'Spr\xe5k',
                     }
    elif self._language == 'en':
        sysfolders = { 'topictypes':'Topictypes',
                       'occurrencetypes':'Occurrencetypes',
                       'roletypes':'Roletypes',
                       'associationtypes': 'Associationtypes',
                       'scopetypes':'Scopetypes',
                       'nametypes':'Nametypes',
                       'associations':'Associations',
                       'reifiers':'Reifiers',
                       'languages':'Languages',
                     }
    else:
        raise AssertionError, "Not a currently supported language"

    for folderid, title in sysfolders.items():
        if getattr(aq_base(systemfolder), folderid, None) is None:
            systemfolder.invokeFactory(type_name='CMF BTree Folder', id=folderid)
            getattr(systemfolder, folderid).setTitle(title)
    

