Ignore:
Timestamp:
19 May 2011, 13:50:45 (13 years ago)
Author:
uli
Message:
  • Praise emacs for having a delete-trailing-whitespace command.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py

    r6126 r6146  
    2121    from zope.app.security.interfaces import (
    2222        IAuthentication, IUnauthenticatedPrincipal, ILogout)
    23 from zope.securitypolicy.interfaces import IPrincipalRoleManager, IPrincipalRoleMap
     23from zope.securitypolicy.interfaces import (
     24    IPrincipalRoleManager, IPrincipalRoleMap)
    2425from zope.component import (
    2526    getUtility, createObject,getAllUtilitiesRegisteredFor)
     
    3233    WAeUPDisplayFormPage, NullValidator)
    3334from waeup.sirp.browser.interfaces import (
    34     IUniversity, IFacultyContainer, IFaculty, IFacultyAdd, 
     35    IUniversity, IFacultyContainer, IFaculty, IFacultyAdd,
    3536    IDepartment, IDepartmentAdd, ICourse, ICourseAdd, ICertificate,
    3637    ICertificateAdd, ICertificateCourse, ICertificateCourseAdd)
     
    3839from waeup.sirp.interfaces import(
    3940    IWAeUPObject, IUserContainer, IUserAccount, IDataCenter,
    40     IWAeUPXMLImporter, IWAeUPXMLExporter, IBatchProcessor)
     41    IWAeUPXMLImporter, IWAeUPXMLExporter, IBatchProcessor,
     42    ILocalRolesAssignable)
    4143from waeup.sirp.university.catalog import search
    42 from waeup.sirp.university.faculty import local_roles as faculty_local_roles
    4344from waeup.sirp.university.vocabularies import course_levels
    4445from waeup.sirp.widgets.restwidget import ReSTDisplayWidget
     
    99100    grok.require('waeup.Public')
    100101    grok.name('logout')
    101    
     102
    102103    def update(self):
    103104        if not IUnauthenticatedPrincipal.providedBy(self.request.principal):
     
    119120    grok.context(IUniversity)
    120121    pnav = 0
    121    
     122
    122123    form_fields = grok.AutoFields(IUniversity)
    123124    form_fields['frontpage'].custom_widget = ReSTDisplayWidget
     
    145146        self.flash('Settings have been saved.')
    146147        return
    147    
     148
    148149    @grok.action('Save and return')
    149150    def saveAndReturn(self, **data):
     
    164165        self.redirect(self.url(self.context))
    165166        return
    166        
     167
    167168#class RemoveFormPage(WAeUPPage):
    168169#    grok.require('waeup.manageUniversity')
     
    237238    def entries(self):
    238239        return ()
    239    
     240
    240241#
    241242# User container pages...
    242243#
    243    
     244
    244245class UserContainerPage(WAeUPPage):
    245246    """Overview page for all local users.
     
    249250    grok.name('index')
    250251    title = 'Portal Users'
    251    
     252
    252253    def update(self, userid=None, adduser=None, edit=None, delete=None):
    253254        if edit is not None and userid is not None:
     
    290291    grok.context(IUserAccount)
    291292    grok.name('index')
    292    
     293
    293294    form_fields = grok.AutoFields(IUserAccount)
    294295    grok.require('waeup.manageUsers')
     
    301302        self.flash('User settings have been saved.')
    302303        return
    303    
     304
    304305    @grok.action('Save and return')
    305306    def saveAndReturn(self, **data):
     
    350351        self.hitlist = search(query=self.query, view=self)
    351352        return
    352        
     353
    353354#
    354355# Contact forms...
     
    360361    grok.require('waeup.Public')
    361362    pnav = 2
    362    
     363
    363364    def title(self):
    364365        """Return True if the calling user is authenticated.
     
    366367        userid = self.request.principal.id
    367368        if userid != 'zope.anybody':
    368             tt = u'Contact' 
     369            tt = u'Contact'
    369370        else:
    370             tt = u'Enquiries'         
    371         return tt     
    372        
     371            tt = u'Enquiries'
     372        return tt
     373
    373374    def update(self, *args, **kw):
    374375        form = self.request.form
     
    381382        if not (fullname and email and descr):
    382383            self.flash('Error: All fields must be filled!')
    383             return       
     384            return
    384385        if not re.match("^[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+.[a-zA-Z]{2,6}$",
    385386                        email):
     
    394395        msg = MIMEText(text % (fullname,regno,descr))
    395396        msg['From'] = '%s <%s>' % (fullname,email)
    396        
     397
    397398        # These parameters should be part of the portal configuration.
    398399        msg['To'] = 'contact@waeup.org'
     
    404405        server = smtplib.SMTP('localhost')
    405406        server.sendmail(email,'contact@waeup.org',msg.as_string())
    406        
     407
    407408        server.quit()
    408409        self.flash('Your message has been sent.')
    409         return 
     410        return
    410411
    411412#
     
    426427    title = u'Data Center Upload'
    427428    pnav = 0
    428    
     429
    429430    def update(self, uploadfile=None, CANCEL=None, SUBMIT=None):
    430431        if CANCEL is not None:
     
    480481                continue
    481482            yield file
    482    
     483
    483484    def update(self, filename=None, select=None, cancel=None):
    484485        if cancel is not None:
     
    512513        reader = csv.reader(open(self.fullpath, 'rb'))
    513514        return reader.next()
    514    
     515
    515516    def getPreviewBody(self):
    516517        """Get the first 5 rows of attached CSV file.
     
    553554        session = ISession(self.request)['waeup.sirp']
    554555        self.filename = session.get('import_filename', None)
    555        
     556
    556557        if self.filename is None or back1 is not None:
    557558            self.redirect(self.url(self.context, '@@import1'))
     
    588589    mode = None
    589590    importername = None
    590    
     591
    591592    @property
    592593    def nextstep(self):
     
    598599        reader = csv.reader(open(self.fullpath, 'rb'))
    599600        return reader.next()
    600    
     601
    601602    def getPreviewBody(self):
    602603        """Get the first 5 rows of attached CSV file.
     
    636637            result.append(fatal)
    637638        return result
    638    
     639
    639640    @property
    640641    def nextstep(self):
     
    646647        self.mode = session.get('import_mode', None)
    647648        self.importername = session.get('import_importer', None)
    648        
     649
    649650        if None in (self.filename, self.mode, self.importername):
    650651            self.redirect(self.url(self.context, '@@import2'))
     
    665666            self.redirect(self.url(self.context, '@@import4'))
    666667            return
    667        
     668
    668669        self.importer = getUtility(IBatchProcessor, name=self.importername)
    669670        self.reader = csv.DictReader(open(self.fullpath, 'rb'))
     
    697698        self.importername = session.get('import_importer', None)
    698699        self.headerfields = session.get('import_headerfields', None)
    699        
     700
    700701        if None in (self.filename, self.mode, self.importername,
    701702                    self.headerfields):
     
    708709            self.redirect(self.url(self.context, '@@show'))
    709710            return
    710            
     711
    711712        self.fullpath = os.path.join(self.context.storage, self.filename)
    712713        self.importer = getUtility(IBatchProcessor, name=self.importername)
     
    804805    grok.name('export.xml')
    805806    grok.require('waeup.manageUniversity')
    806    
     807
    807808    def render(self):
    808809        exporter = IWAeUPXMLExporter(self.context)
     
    865866    #        try:
    866867    #            del self.context[code]
    867     #            self.flash('Faculty %s successfully removed.' % code)               
     868    #            self.flash('Faculty %s successfully removed.' % code)
    868869    #        except:
    869870    #            self.flash('Could not delete %s.' % code)
    870    
    871    
     871
     872
    872873class FacultyContainerManageFormPage(WAeUPEditFormPage):
    873874    """Manage the basic properties of a `Faculty` instance.
     
    885886    def label(self):
    886887        return 'Manage academic section'
    887        
     888
    888889    def update(self):
    889890        tabs.need()
     
    908909        if len(deleted):
    909910            self.flash('Successfully removed: %s' % ', '.join(deleted))
    910         self.redirect(self.url(self.context, '@@manage')+'#tab-1')   
    911         return       
     911        self.redirect(self.url(self.context, '@@manage')+'#tab-1')
     912        return
    912913
    913914    @grok.action('Add faculty', validator=NullValidator)
    914915    def addFaculty(self, **data):
    915916        self.redirect(self.url(self.context, '@@add'))
    916         return   
    917        
     917        return
     918
    918919    @grok.action('Cancel', validator=NullValidator)
    919920    def cancel(self, **data):
    920921        self.redirect(self.url(self.context))
    921922        return
    922    
     923
    923924
    924925class FacultyAddFormPage(WAeUPAddFormPage):
     
    948949            return
    949950        self.redirect(self.url(self.context, u'@@manage')+'#tab-1')
    950        
     951
    951952    @grok.action('Cancel')
    952953    def cancel(self, **data):
     
    954955
    955956#class RemoveFacultyFormPage(RemoveFormPage):
    956 #   """ Remove Faculty Page 
     957#   """ Remove Faculty Page
    957958#    """
    958959#    grok.context(IFacultyContainer)
     
    974975    def title(self):
    975976        return self.context.longtitle()
    976        
     977
    977978    @property
    978979    def label(self):
     
    984985    #        try:
    985986    #            del self.context[code]
    986     #            self.flash('Department %s successfully removed.' % code)               
     987    #            self.flash('Department %s successfully removed.' % code)
    987988    #        except:
    988989    #            self.flash('Could not delete %s.' % code)
    989    
     990
    990991class FacultyManageFormPage(WAeUPEditFormPage):
    991992    """Manage the basic properties of a `Faculty` instance.
     
    10061007    def label(self):
    10071008        return 'Manage faculty'
    1008        
     1009
    10091010    @property
    10101011    def title(self):
     
    10121013
    10131014    def getLocalRoles(self):
    1014         #import pdb; pdb.set_trace()
    1015         return faculty_local_roles
    1016        
     1015        roles = ILocalRolesAssignable(self.context)
     1016        return roles()
     1017
    10171018    def getUsers(self):
    10181019        """Get a list of all users.
     
    10321033        self.applyData(self.context, **data)
    10331034        return
    1034          
     1035
    10351036    # ToDo: Show warning message before deletion
    10361037    @grok.action('Remove selected')
     
    10501051        if len(deleted):
    10511052            self.flash('Successfully removed: %s' % ', '.join(deleted))
    1052         self.redirect(self.url(self.context, u'@@manage')+'#tab-2')   
    1053         return       
     1053        self.redirect(self.url(self.context, u'@@manage')+'#tab-2')
     1054        return
    10541055
    10551056    @grok.action('Add department', validator=NullValidator)
    10561057    def addDepartment(self, **data):
    10571058        self.redirect(self.url(self.context, '@@add'))
    1058         return   
    1059        
     1059        return
     1060
    10601061    @grok.action('Cancel', validator=NullValidator)
    10611062    def cancel(self, **data):
    10621063        self.redirect(self.url(self.context))
    10631064        return
    1064        
     1065
    10651066    @grok.action('Add local role', validator=NullValidator)
    10661067    def addLocalRole(self, **data):
     
    10881089    def title(self):
    10891090        return self.context.longtitle()
    1090    
     1091
    10911092    @grok.action('Add department')
    10921093    def addDepartment(self, **data):
     
    11041105            return
    11051106        self.redirect(self.url(self.context, u'@@manage')+'#tab-2')
    1106        
     1107
    11071108    @grok.action('Cancel')
    11081109    def cancel(self, **data):
     
    11121113
    11131114#class RemoveDepartmentFormPage(RemoveFormPage):
    1114 #    """ Remove Department Page 
     1115#    """ Remove Department Page
    11151116#    """
    11161117#    grok.context(IFaculty)
     
    11341135    def title(self):
    11351136        return self.context.longtitle()
    1136    
     1137
    11371138    def update(self):
    11381139        tabs.need()
    1139         datatable.need() 
     1140        datatable.need()
    11401141        super(DepartmentPage, self).update()
    11411142        return
    1142        
     1143
    11431144    def getCourses(self):
    11441145        """Get a list of all stored courses.
     
    11461147        for key, val in self.context.courses.items():
    11471148            url = self.url(val)
    1148             yield(dict(url=url, name=key, container=val)) 
     1149            yield(dict(url=url, name=key, container=val))
    11491150
    11501151    def getCertificates(self):
     
    11531154        for key, val in self.context.certificates.items():
    11541155            url = self.url(val)
    1155             yield(dict(url=url, name=key, container=val))             
     1156            yield(dict(url=url, name=key, container=val))
    11561157
    11571158class DepartmentManageFormPage(WAeUPEditFormPage):
     
    11701171    def label(self):
    11711172        return 'Manage department'
    1172        
    1173     @property
    1174     def title(self):
    1175         return self.context.longtitle()   
    1176        
     1173
     1174    @property
     1175    def title(self):
     1176        return self.context.longtitle()
     1177
    11771178    def getCourses(self):
    11781179        """Get a list of all stored courses.
     
    11801181        for key, val in self.context.courses.items():
    11811182            url = self.url(val)
    1182             yield(dict(url=url, name=key, container=val)) 
     1183            yield(dict(url=url, name=key, container=val))
    11831184
    11841185    def getCertificates(self):
     
    11871188        for key, val in self.context.certificates.items():
    11881189            url = self.url(val)
    1189             yield(dict(url=url, name=key, container=val))                     
     1190            yield(dict(url=url, name=key, container=val))
    11901191
    11911192    def update(self):
    11921193        tabs.need()
    1193         datatable.need() 
     1194        datatable.need()
    11941195        super(DepartmentManageFormPage, self).update()
    11951196        return
     
    12011202        self.applyData(self.context, **data)
    12021203        return
    1203        
     1204
    12041205    # ToDo: Show warning message before deletion
    12051206    @grok.action('Remove selected courses')
     
    12191220        if len(deleted):
    12201221            self.flash('Successfully removed: %s' % ', '.join(deleted))
    1221         self.redirect(self.url(self.context, u'@@manage')+'#tab-2')   
    1222         return       
    1223      
    1224     @grok.action('Remove selected certificates')   
     1222        self.redirect(self.url(self.context, u'@@manage')+'#tab-2')
     1223        return
     1224
     1225    @grok.action('Remove selected certificates')
    12251226    def delCertificates(self, **data):
    12261227        form = self.request.form
     
    12381239        if len(deleted):
    12391240            self.flash('Successfully removed: %s' % ', '.join(deleted))
    1240         self.redirect(self.url(self.context, u'@@manage')+'#tab-3')   
    1241         return               
     1241        self.redirect(self.url(self.context, u'@@manage')+'#tab-3')
     1242        return
    12421243
    12431244    @grok.action('Add course', validator=NullValidator)
    12441245    def addCourse(self, **data):
    12451246        self.redirect(self.url(self.context, 'addcourse'))
    1246         return   
    1247        
     1247        return
     1248
    12481249    @grok.action('Add certificate', validator=NullValidator)
    12491250    def addCertificate(self, **data):
    12501251        self.redirect(self.url(self.context, 'addcertificate'))
    1251         return                     
    1252    
     1252        return
     1253
    12531254    @grok.action('Cancel', validator=NullValidator)
    12541255    def cancel(self, **data):
     
    12651266    form_fields = grok.AutoFields(ICourseAdd)
    12661267    pnav = 1
    1267    
    1268     @property
    1269     def title(self):
    1270         return self.context.longtitle()       
    1271    
     1268
     1269    @property
     1270    def title(self):
     1271        return self.context.longtitle()
     1272
    12721273    @grok.action('Add course')
    12731274    def addCourse(self, **data):
     
    12841285                                  'in the database')
    12851286            return
    1286         self.redirect(self.url(self.context, u'@@manage')+'#tab-2')   
     1287        self.redirect(self.url(self.context, u'@@manage')+'#tab-2')
    12871288
    12881289    @grok.action('Cancel', validator=NullValidator)
     
    13001301    form_fields = grok.AutoFields(ICertificateAdd)
    13011302    pnav = 1
    1302    
    1303     @property
    1304     def title(self):
    1305         return self.context.longtitle()       
    1306        
     1303
     1304    @property
     1305    def title(self):
     1306        return self.context.longtitle()
     1307
    13071308    @grok.action('Add certificate')
    13081309    def addCertificate(self, **data):
    13091310        certificate = createObject(u'waeup.Certificate')
    13101311        self.applyData(certificate, **data)
    1311        
     1312
    13121313        #try:
    13131314        #    self.applyData(certificate, **data)
     
    13171318        #                          'available in workflow.')
    13181319        #    return
    1319        
     1320
    13201321        try:
    13211322            self.context.certificates.addCertificate(certificate)
     
    13281329                                  'in the database')
    13291330            return
    1330         self.redirect(self.url(self.context, u'@@manage')+'#tab-3')   
     1331        self.redirect(self.url(self.context, u'@@manage')+'#tab-3')
    13311332
    13321333    @grok.action('Cancel', validator=NullValidator)
     
    13611362
    13621363    form_fields = grok.AutoFields(ICourse)
    1363    
     1364
    13641365    @property
    13651366    def title(self):
     
    13701371        self.applyData(self.context, **data)
    13711372        return
    1372    
     1373
    13731374    @grok.action('Save and return')
    13741375    def saveAndReturn(self, **data):
     
    13981399    def title(self):
    13991400        return "Certificate: %s (%s)" % (self.context.title, self.context.code)
    1400        
     1401
    14011402    def update(self):
    14021403        tabs.need()
    14031404        #warning.need()
    1404         datatable.need() 
     1405        datatable.need()
    14051406        return super(CertificatePage, self).update()
    14061407
     
    14131414    pnav = 1
    14141415    label = 'Edit certificate'
    1415    
     1416
    14161417    form_fields = grok.AutoFields(ICertificate)
    1417    
     1418
    14181419    pnav = 1
    14191420    grok.template('certificatemanagepage')
     
    14241425    def label(self):
    14251426        return 'Manage certificate'
    1426        
    1427     @property
    1428     def title(self):
    1429         return "Certificate: %s (%s)" % (self.context.title, self.context.code) 
     1427
     1428    @property
     1429    def title(self):
     1430        return "Certificate: %s (%s)" % (self.context.title, self.context.code)
    14301431
    14311432    def update(self):
    14321433        tabs.need()
    14331434        #warning.need()
    1434         datatable.need() 
     1435        datatable.need()
    14351436        return super(CertificateManageFormPage, self).update()
    1436        
     1437
    14371438    form_fields = grok.AutoFields(ICertificate)
    14381439
     
    14411442        self.applyData(self.context, **data)
    14421443        return
    1443        
     1444
    14441445    # ToDo: Show warning message before deletion
    14451446    @grok.action('Remove selected course referrers')
     
    14591460        if len(deleted):
    14601461            self.flash('Successfully removed: %s' % ', '.join(deleted))
    1461         self.redirect(self.url(self.context, u'@@manage')+'#tab-2')   
    1462         return       
    1463      
     1462        self.redirect(self.url(self.context, u'@@manage')+'#tab-2')
     1463        return
     1464
    14641465
    14651466    @grok.action('Add course referrer', validator=NullValidator)
    14661467    def addCertificateCourse(self, **data):
    14671468        self.redirect(self.url(self.context, 'addcertificatecourse'))
    1468         return   
    1469        
     1469        return
     1470
    14701471    @grok.action('Cancel', validator=NullValidator)
    14711472    def cancel(self, **data):
    14721473        self.redirect(self.url(self.context))
    14731474        return
    1474    
    1475    
     1475
     1476
    14761477class CertificateCourseAddFormPage(WAeUPAddFormPage):
    14771478    """Add-page to add a course ref to a certificate
     
    14831484    pnav = 1
    14841485    label = 'Add course referrer'
    1485    
     1486
    14861487    @property
    14871488    def title(self):
     
    15231524    def title(self):
    15241525        return 'Course Referrer: %s' % (self.context.longtitle())
    1525    
    1526     @property   
     1526
     1527    @property
    15271528    def leveltitle(self):
    15281529        return course_levels.getTerm(self.context.level).title
     
    15371538    label = 'Edit course referrer'
    15381539    pnav = 1
    1539    
     1540
    15401541    @property
    15411542    def title(self):
    15421543        return 'Course Referrer: %s' % (self.context.__name__)
    1543    
     1544
    15441545    @grok.action('Save and return')
    15451546    def saveAndReturn(self, **data):
Note: See TracChangeset for help on using the changeset viewer.