Ignore:
Timestamp:
3 Jul 2006, 14:11:56 (18 years ago)
Author:
joachim
Message:

=renamed uniportal to campus

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WAeUP_SRP/trunk/WAeUPTool.py

    r197 r282  
    2121"""
    2222
    23 from zLOG import LOG, DEBUG
     23#from zLOG import LOG, DEBUG
    2424from Globals import InitializeClass, HTMLFile
    2525from AccessControl import ClassSecurityInfo
     
    4242                      PortalFolder.manage_options[2:])
    4343
    44     _actions = ()
    45 
    46 
    47     #
    48     # ZMI
    49     #
    50     _properties = (
    51         {'id': 'title', 'type': 'string', 'mode': 'w',
    52          'label': 'Title'},
    53         {'id': 'uni_id', 'type': 'string', 'mode': 'w',
    54          'label': 'University ID'},
    55         {'id': 'uni_name', 'type': 'string', 'mode': 'w',
    56          'label': 'University Name'},
    57     )
    58     title = ''
    59     def __init__(self,uni_id,uni_name):
    60         self.manage_changeProperties(uni_id = uni_id,
    61                                      uni_name = uni_name,
    62                                      )
    63         PortalFolder.__init__(self, self.id)
    64 
    65 
    66     def verifyFaculties(self, academics): ###(
    67         """install Universityspecific Faculies with Departments"""
    68         faculties = [
    69 ##                     {'id': 'agri', ###(
    70 ##                      'Title': 'Agriculture',
     44##    _actions = ()
     45##
     46##
     47##    #
     48##    # ZMI
     49##    #
     50##    _properties = (
     51##        {'id': 'title', 'type': 'string', 'mode': 'w',
     52##         'label': 'Title'},
     53##        {'id': 'uni_id', 'type': 'string', 'mode': 'w',
     54##         'label': 'University ID'},
     55##        {'id': 'uni_name', 'type': 'string', 'mode': 'w',
     56##         'label': 'University Name'},
     57##    )
     58##    title = ''
     59##    def __init__(self,uni_id,uni_name):
     60##        self.manage_changeProperties(uni_id = uni_id,
     61##                                     uni_name = uni_name,
     62##                                     )
     63##        PortalFolder.__init__(self, self.id)
     64##
     65##
     66##    def verifyFaculties(self, academics): ###(
     67##        """install Universityspecific Faculies with Departments"""
     68##        faculties = [
     69####                     {'id': 'agri', ###(
     70####                      'Title': 'Agriculture',
     71####                      'departments': [
     72####                                     { 'id': 'dep1', ###(
     73####                                       'Title': 'One',
     74####                                     },
     75####                                     ],
     76####                      },###)
     77##                      { 'id': 'science',
     78##                      'Title': 'Science',
    7179##                      'departments': [
    72 ##                                     { 'id': 'dep1', ###(
    73 ##                                       'Title': 'One',
     80##                                     { 'id': 'bio', ###(
     81##                                       'Title': 'Biochemistry',
     82##                                     },
     83##                                     { 'id': 'bot',
     84##                                       'Title': 'Botany',
     85##                                     },
     86##                                     { 'id': 'che',
     87##                                       'Title': 'Chemistry',
     88##                                     },
     89##                                     { 'id': 'com',
     90##                                       'Title': 'Computer Science',
     91##                                     },
     92##                                     { 'id': 'geo',
     93##                                       'Title': 'Geologie',
     94##                                     },
     95##                                     { 'id': 'mat',
     96##                                       'Title': 'Mathematics',
     97##                                     },
     98##                                     { 'id': 'mic',
     99##                                       'Title': 'Microbiology',
     100##                                     },
     101##                                     { 'id': 'opt',
     102##                                       'Title': 'Optometry',
     103##                                     },
     104##                                     { 'id': 'phy',
     105##                                       'Title': 'Physics',
     106##                                     },
     107##                                     { 'id': 'zoo',
     108##                                       'Title': 'Zoology',
    74109##                                     },
    75110##                                     ],
    76111##                      },###)
    77                       { 'id': 'science',
    78                       'Title': 'Science',
    79                       'departments': [
    80                                      { 'id': 'bio', ###(
    81                                        'Title': 'Biochemistry',
    82                                      },
    83                                      { 'id': 'bot',
    84                                        'Title': 'Botany',
    85                                      },
    86                                      { 'id': 'che',
    87                                        'Title': 'Chemistry',
    88                                      },
    89                                      { 'id': 'com',
    90                                        'Title': 'Computer Science',
    91                                      },
    92                                      { 'id': 'geo',
    93                                        'Title': 'Geologie',
    94                                      },
    95                                      { 'id': 'mat',
    96                                        'Title': 'Mathematics',
    97                                      },
    98                                      { 'id': 'mic',
    99                                        'Title': 'Microbiology',
    100                                      },
    101                                      { 'id': 'opt',
    102                                        'Title': 'Optometry',
    103                                      },
    104                                      { 'id': 'phy',
    105                                        'Title': 'Physics',
    106                                      },
    107                                      { 'id': 'zoo',
    108                                        'Title': 'Zoology',
    109                                      },
    110                                      ],
    111                       },###)
    112                      ]###)
    113         #self.log('Verifying Faculties in %s' % academics.absolute_url(relative=1))
    114         for faculty in faculties:
    115             fid = faculty['id']
    116             f = getattr(academics,fid,None)
    117             #self.log('Checking Faculty %(id)s = %(Title)s' % faculty)
    118             if f is None:
    119                 #self.log('Creating Faculty %(id)s = %(Title)s' % faculty)
    120                 academics.invokeFactory('Faculty', fid)
    121                 f = getattr(academics,fid)
    122                 f.getContent().edit(mapping=faculty)
    123             for department in faculty['departments']:
    124                 #self.log('Checking Department %(id)s = %(Title)s' % department)
    125                 did = department['id']
    126                 d = getattr(f,did,None)
    127                 if d is None:
    128                     #self.log('Creating Department %(id)s = %(Title)s' % department)
    129                     f.invokeFactory('Department', did)
    130                     d = getattr(f,did)
    131                     d.getContent().edit(mapping=department)
    132     ###)
    133 
    134 InitializeClass(WAeUPTool)
    135 
    136 def verifyPortlets(portal, portlets=(), object=None): ###(
    137     """Verify the existence of given portet in the object's portlet
    138     container. If not found, a portlet is instantiated.
    139     Existing portlets are not affected.
    140     'portlets' is a tuple with the dictionaries given by the export tab
    141     as entries.
    142     The default object is the portal itself.
    143     return the list a new portlet ids.
    144     """
    145     #self.log('Verifying portlets on %s' % object.absolute_url(relative=1))
    146     #portlet_container = CPSInstaller.getPortletContainer(object, create=1)
    147     idpc = portal.portal_cpsportlets.getPortletContainerId()
    148     if not hasattr(object, idpc):
    149 ##            self.log("   Creating %s/%s" %
    150 ##                (object.absolute_url(relative=1), idpc))
    151         object.manage_addProduct['CPSPortlets'].addPortletsContainer()
    152     portlet_container = getattr(object, idpc, None)
    153     ttool = portal.portal_types
    154     returned = []
    155     for new_portlet in portlets:
    156         existing_portlets = portlet_container.listPortlets()
    157         updated = 0
    158         # Check if the portlet needs an update
    159         identifier = new_portlet.get('identifier')
    160         if identifier:
    161             for portlet in existing_portlets:
    162                 if identifier == portlet.identifier:
    163                     #portal.log(" Update of portlet: %s" % portlet)
    164                     portlet.edit(**new_portlet)
    165                     portlet_id = portlet.getId()
    166                     updated = 1
    167                     continue
    168         slot = new_portlet.get('slot')
    169         if slot:
    170             for portlet in existing_portlets:
    171                 if slot == portlet.slot:
    172                     #portal.log(" Update of portlet: %s" % portlet)
    173                     portlet.edit(**new_portlet)
    174                     portlet_id = portlet.getId()
    175                     updated = 1
    176                     continue
    177                
    178         if not updated:
    179             #portal.log("   Creation of portlet: %s" % new_portlet)
    180             portlet_id = portal.portal_cpsportlets.createPortlet(
    181             ptype_id=new_portlet['type'],
    182             context=object,
    183             **new_portlet)
    184         if portlet_id not in returned:
    185             returned.append(portlet_id)
    186     return returned
    187     ###)
    188 
    189 addWAeUPToolForm = HTMLFile('zmi/manage_addWAeUPUniversity',
    190                                                 globals())
    191 
    192 def addWAeUPTool(container, id,
    193                              title='WAeUP University',
    194                              description='',
    195                              langs_list=None,
    196                              manager_id='manager',
    197                              manager_sn='CPS',
    198                              manager_givenName='Manager',
    199                              manager_email='',
    200                              manager_password='',
    201                              manager_password_confirmation='',
    202                              REQUEST=None):
    203     """Add WAeUPTool"""
    204 
    205     _log = []
    206     def pr(bla, zlog=1, _log=_log):
    207         if bla == 'flush':
    208             return '<br/>\n'.join(_log)
    209         _log.append(bla)
    210         if (bla and zlog):
    211             LOG('addWAeUPUniversity:', INFO, bla)
    212 
    213     uni_id = id.strip()
    214     uni_name = title.strip()
    215     description = description.strip()
    216     manager_id = manager_id.strip()
    217 
    218 ##    if not id:
    219 ##        raise ValueError, "You have to provide an id for the portal!"
    220 ##    if not manager_id:
    221 ##        raise ValueError, "You have to provide an id for the CPS Administrator!"
    222 ##    if not manager_email:
    223 ##        raise ValueError, "You have to provide an email address for the CPS Administrator!"
    224 ##    if not manager_password:
    225 ##        raise ValueError, "You have to provide CPS Administrator password!"
    226 ##    if manager_password != manager_password_confirmation:
    227 ##        raise ValueError, "Password confirmation does not match password!"
    228 
    229     email_from_name = ('%s %s' % (manager_givenName, manager_sn)).strip()
    230     wt = WAeUPTool(uni_id,uni_name)
    231     id = wt.getId()
    232     container._setObject(id, wt)
    233     sections = getattr(container,'sections')
    234     workspaces = getattr(container,'workspaces')
    235     sections.invokeFactory('University',uni_id)
    236     uni = getattr(sections,uni_id)
    237     uni.getContent().edit(title=uni_name)
    238     uni.invokeFactory('StudentsFolder','students')
    239     students = getattr(uni,'students').getContent()
    240     students.edit(mapping={'Title':'Students'})
    241 ##    uni.folder_localrole_add(member_ids=('group:Students',),
    242 ##                                            member_role='SectionReviewer',
    243 ##                                            )
    244 ##        uni.content_create(type_name='AcademicsFolder',title='academics')
    245 ##        sections.uni.folder_localrole_add(member_ids=('group:StudentManager',),
    246 ##                                            member_role='SectionManager',
    247 ##                                            )
    248 ##        uni.students.manage_setLocalGroupRoles(groupid = 'Students',roles=('Contributor',))
    249     uni.invokeFactory('AcademicsFolder','academics', title='Academics')
    250     academics = getattr(uni,'academics').getContent()
    251     academics.edit(mapping={'Title':'Academics'})
    252     uni.invokeFactory('AccoFolder','accommodation', title='Accommodation')
    253     accommodation = getattr(uni,'accommodation').getContent()
    254     accommodation.edit(mapping={'Title':'Accommodation'})
    255     academics = getattr(uni,'academics',None)
    256     if academics is None:
    257         uni.invokeFactory('AcademicsFolder','academics')
    258         academics = getattr(uni,'academics')
    259         academics.getContent().edit(mapping={'Title':'Academics'})
    260     wt.verifyFaculties(academics)
    261     if not hasattr(uni,'accommodation'):
    262         uni.invokeFactory('AccoFolder','accommodation')
    263         accommodation = getattr(uni,'accommodation').getContent()
    264         accommodation.edit(mapping={'Title':'Accommodation'})
    265     #uni.manage_setLocalGroupRoles(groupid = 'role:Anonymous',roles=('SectionReader',))
    266     # portlets ###(
    267     #
    268     portlets = (
    269               {#'identifier': 'waeup_breadcrumbs',
    270               'type': 'Breadcrumbs Portlet',
    271               'slot': 'waeup_breadcrumbs',
    272               'first_item': 0,
    273               'display_site_root': 0,
    274               'Title': 'waeup_breadcrumbs',
    275               'display': 'horizontal_trail',
    276               'display_hidden_folders': 0,
    277               'order': 0,
    278               },
    279               {#'identifier': 'waeup_main_tab_actions',
    280               'type': 'Actions Portlet',
    281               'slot': 'main_tabs',
    282               'order': 0,
    283               'categories': ['main_tabs',],
    284               'Title': 'waep_main_tab_actions',
    285               },
    286               {#'identifier': 'waeup_object_actions',
    287               'type': 'Actions Portlet',
    288               'slot': 'waeup_object_actions',
    289               'order': 0,
    290               'categories': ['object',],
    291               'Title': 'waep_manager_actions',
    292               },
    293               {#'identifier': 'waeup_left_top',
    294               'type': 'Custom Portlet',
    295               'slot': 'left_top',
    296               'order': 0,
    297               'render_method': 'portlet_session_info',
    298               'Title': 'Session Info',
    299               },
    300             )
    301     #verifyPortletContainer(uni)
    302     verifyPortlets(container,portlets,uni)
    303 
    304     ###)
    305     if REQUEST is not None:
    306         url = container.absolute_url()
    307         REQUEST.RESPONSE.redirect('%s/manage_main' % url)
    308 
     112##                     ]###)
     113##        #self.log('Verifying Faculties in %s' % academics.absolute_url(relative=1))
     114##        for faculty in faculties:
     115##            fid = faculty['id']
     116##            f = getattr(academics,fid,None)
     117##            #self.log('Checking Faculty %(id)s = %(Title)s' % faculty)
     118##            if f is None:
     119##                #self.log('Creating Faculty %(id)s = %(Title)s' % faculty)
     120##                academics.invokeFactory('Faculty', fid)
     121##                f = getattr(academics,fid)
     122##                f.getContent().edit(mapping=faculty)
     123##            for department in faculty['departments']:
     124##                #self.log('Checking Department %(id)s = %(Title)s' % department)
     125##                did = department['id']
     126##                d = getattr(f,did,None)
     127##                if d is None:
     128##                    #self.log('Creating Department %(id)s = %(Title)s' % department)
     129##                    f.invokeFactory('Department', did)
     130##                    d = getattr(f,did)
     131##                    d.getContent().edit(mapping=department)
     132##    ###)
     133##
     134##InitializeClass(WAeUPTool)
     135##
     136##def verifyPortlets(portal, portlets=(), object=None): ###(
     137##    """Verify the existence of given portet in the object's portlet
     138##    container. If not found, a portlet is instantiated.
     139##    Existing portlets are not affected.
     140##    'portlets' is a tuple with the dictionaries given by the export tab
     141##    as entries.
     142##    The default object is the portal itself.
     143##    return the list a new portlet ids.
     144##    """
     145##    #self.log('Verifying portlets on %s' % object.absolute_url(relative=1))
     146##    #portlet_container = CPSInstaller.getPortletContainer(object, create=1)
     147##    idpc = portal.portal_cpsportlets.getPortletContainerId()
     148##    if not hasattr(object, idpc):
     149####            self.log("   Creating %s/%s" %
     150####                (object.absolute_url(relative=1), idpc))
     151##        object.manage_addProduct['CPSPortlets'].addPortletsContainer()
     152##    portlet_container = getattr(object, idpc, None)
     153##    ttool = portal.portal_types
     154##    returned = []
     155##    for new_portlet in portlets:
     156##        existing_portlets = portlet_container.listPortlets()
     157##        updated = 0
     158##        # Check if the portlet needs an update
     159##        identifier = new_portlet.get('identifier')
     160##        if identifier:
     161##            for portlet in existing_portlets:
     162##                if identifier == portlet.identifier:
     163##                    #portal.log(" Update of portlet: %s" % portlet)
     164##                    portlet.edit(**new_portlet)
     165##                    portlet_id = portlet.getId()
     166##                    updated = 1
     167##                    continue
     168##        slot = new_portlet.get('slot')
     169##        if slot:
     170##            for portlet in existing_portlets:
     171##                if slot == portlet.slot:
     172##                    #portal.log(" Update of portlet: %s" % portlet)
     173##                    portlet.edit(**new_portlet)
     174##                    portlet_id = portlet.getId()
     175##                    updated = 1
     176##                    continue
     177##               
     178##        if not updated:
     179##            #portal.log("   Creation of portlet: %s" % new_portlet)
     180##            portlet_id = portal.portal_cpsportlets.createPortlet(
     181##            ptype_id=new_portlet['type'],
     182##            context=object,
     183##            **new_portlet)
     184##        if portlet_id not in returned:
     185##            returned.append(portlet_id)
     186##    return returned
     187##    ###)
     188##
     189##addWAeUPToolForm = HTMLFile('zmi/manage_addWAeUPUniversity',
     190##                                                globals())
     191##
     192##def addWAeUPTool(container, id,
     193##                             title='WAeUP University',
     194##                             description='',
     195##                             langs_list=None,
     196##                             manager_id='manager',
     197##                             manager_sn='CPS',
     198##                             manager_givenName='Manager',
     199##                             manager_email='',
     200##                             manager_password='',
     201##                             manager_password_confirmation='',
     202##                             REQUEST=None):
     203##    """Add WAeUPTool"""
     204##
     205##    _log = []
     206##    def pr(bla, zlog=1, _log=_log):
     207##        if bla == 'flush':
     208##            return '<br/>\n'.join(_log)
     209##        _log.append(bla)
     210##        if (bla and zlog):
     211##            LOG('addWAeUPUniversity:', INFO, bla)
     212##
     213##    uni_id = id.strip()
     214##    uni_name = title.strip()
     215##    description = description.strip()
     216##    manager_id = manager_id.strip()
     217##
     218####    if not id:
     219####        raise ValueError, "You have to provide an id for the portal!"
     220####    if not manager_id:
     221####        raise ValueError, "You have to provide an id for the CPS Administrator!"
     222####    if not manager_email:
     223####        raise ValueError, "You have to provide an email address for the CPS Administrator!"
     224####    if not manager_password:
     225####        raise ValueError, "You have to provide CPS Administrator password!"
     226####    if manager_password != manager_password_confirmation:
     227####        raise ValueError, "Password confirmation does not match password!"
     228##
     229##    email_from_name = ('%s %s' % (manager_givenName, manager_sn)).strip()
     230##    wt = WAeUPTool(uni_id,uni_name)
     231##    id = wt.getId()
     232##    container._setObject(id, wt)
     233##    sections = getattr(container,'sections')
     234##    workspaces = getattr(container,'workspaces')
     235##    sections.invokeFactory('University',uni_id)
     236##    uni = getattr(sections,uni_id)
     237##    uni.getContent().edit(title=uni_name)
     238##    uni.invokeFactory('StudentsFolder','students')
     239##    students = getattr(uni,'students').getContent()
     240##    students.edit(mapping={'Title':'Students'})
     241####    uni.folder_localrole_add(member_ids=('group:Students',),
     242####                                            member_role='SectionReviewer',
     243####                                            )
     244####        uni.content_create(type_name='AcademicsFolder',title='academics')
     245####        sections.uni.folder_localrole_add(member_ids=('group:StudentManager',),
     246####                                            member_role='SectionManager',
     247####                                            )
     248####        uni.students.manage_setLocalGroupRoles(groupid = 'Students',roles=('Contributor',))
     249##    uni.invokeFactory('AcademicsFolder','academics', title='Academics')
     250##    academics = getattr(uni,'academics').getContent()
     251##    academics.edit(mapping={'Title':'Academics'})
     252##    uni.invokeFactory('AccoFolder','accommodation', title='Accommodation')
     253##    accommodation = getattr(uni,'accommodation').getContent()
     254##    accommodation.edit(mapping={'Title':'Accommodation'})
     255##    academics = getattr(uni,'academics',None)
     256##    if academics is None:
     257##        uni.invokeFactory('AcademicsFolder','academics')
     258##        academics = getattr(uni,'academics')
     259##        academics.getContent().edit(mapping={'Title':'Academics'})
     260##    wt.verifyFaculties(academics)
     261##    if not hasattr(uni,'accommodation'):
     262##        uni.invokeFactory('AccoFolder','accommodation')
     263##        accommodation = getattr(uni,'accommodation').getContent()
     264##        accommodation.edit(mapping={'Title':'Accommodation'})
     265##    #uni.manage_setLocalGroupRoles(groupid = 'role:Anonymous',roles=('SectionReader',))
     266##    # portlets ###(
     267##    #
     268##    portlets = (
     269##              {#'identifier': 'waeup_breadcrumbs',
     270##              'type': 'Breadcrumbs Portlet',
     271##              'slot': 'waeup_breadcrumbs',
     272##              'first_item': 0,
     273##              'display_site_root': 0,
     274##              'Title': 'waeup_breadcrumbs',
     275##              'display': 'horizontal_trail',
     276##              'display_hidden_folders': 0,
     277##              'order': 0,
     278##              },
     279##              {#'identifier': 'waeup_main_tab_actions',
     280##              'type': 'Actions Portlet',
     281##              'slot': 'main_tabs',
     282##              'order': 0,
     283##              'categories': ['main_tabs',],
     284##              'Title': 'waep_main_tab_actions',
     285##              },
     286##              {#'identifier': 'waeup_object_actions',
     287##              'type': 'Actions Portlet',
     288##              'slot': 'waeup_object_actions',
     289##              'order': 0,
     290##              'categories': ['object',],
     291##              'Title': 'waep_manager_actions',
     292##              },
     293##              {#'identifier': 'waeup_left_top',
     294##              'type': 'Custom Portlet',
     295##              'slot': 'left_top',
     296##              'order': 0,
     297##              'render_method': 'portlet_session_info',
     298##              'Title': 'Session Info',
     299##              },
     300##            )
     301##    #verifyPortletContainer(uni)
     302##    verifyPortlets(container,portlets,uni)
     303##
     304##    ###)
     305##    if REQUEST is not None:
     306##        url = container.absolute_url()
     307##        REQUEST.RESPONSE.redirect('%s/manage_main' % url)
     308##
Note: See TracChangeset for help on using the changeset viewer.