Changeset edf380 in indico


Ignore:
Timestamp:
02/04/11 15:59:41 (2 years ago)
Author:
Jose Benito <jose.benito.gonzalez@…>
Branches:
master, burotel, hello-world-walkthrough, ipv6, v0.98-series, v0.98.2, v0.98.3, v0.98b1, v0.98b2, v0.99, 051b2622c51afb171a1dedb46a0df4fbb0cbd02e, 4c7d4152dff271ba5df5a8606605969cab454080
Children:
2ed6e4
Parents:
2deaca
git-author:
Leszek Syroka <leszek.marek.syroka@…> (11/16/10 11:00:05)
git-committer:
Jose Benito <jose.benito.gonzalez@…> (02/04/11 15:59:41)
Message:

[FIX] Show past events

  • information about from which categories past events should be displayed is stored in the session variable
  • in user profile settings one can choose an option to show past events by default (every time category display webpage is opened)
  • user preferences tab activated
  • language, my timezone, display timezone moved to user preferences
  • fix#523
Location:
indico
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • indico/MaKaC/services/implementation/category.py

    r064d40 redf380  
    160160                    if month < self._fromDate.month: 
    161161                        pastEvents.setdefault(year,{})[month] = allEvents[year][month] 
    162  
    163162        return WConferenceListEvents(pastEvents, self._aw).getHTML() 
     163 
     164class GetPastEventsFromCateg(CategoryDisplayBase): 
     165 
     166    def _checkParams(self): 
     167        CategoryDisplayBase._checkParams(self) 
     168        self._getPastEvents = bool(self._params.get("getPastEvents",False)) 
     169 
     170    def _getAnswer( self ): 
     171        session = self._aw.getSession() 
     172        if not session.getVar("fetchPastEventsFrom"): 
     173            session.setVar("fetchPastEventsFrom",set()) 
     174        if self._getPastEvents: 
     175            session.getVar("fetchPastEventsFrom").add(self._categ.getId()) 
     176        else: 
     177            session.getVar("fetchPastEventsFrom").remove(self._categ.getId()) 
    164178 
    165179class CategoryProtectionUserList(CategoryModifBase): 
     
    208222    "getCategoryList": GetCategoryList, 
    209223    "getPastEventsList": GetPastEventsList, 
     224    "getPastEventsFromCateg": GetPastEventsFromCateg, 
    210225    "canCreateEvent": CanCreateEvent, 
    211226    "protection.getAllowedUsersList": CategoryProtectionUserList, 
  • indico/MaKaC/services/implementation/user.py

    rd25c08 redf380  
    3434from MaKaC.rb_location import CrossLocationQueries 
    3535 
     36from MaKaC.i18n import langList, languageNames 
     37from MaKaC.webinterface.common.timezones import TimezoneRegistry 
     38 
    3639class UserComparator(object): 
    3740 
     
    211214 
    212215    def _getAnswer( self): 
    213  
    214216        if self._info == None: 
    215217            return UserGetPersonalInfo(self._params, self._aw.getIP(), self._aw.getSession()).process() 
     
    264266            return True 
    265267        return False 
     268 
     269class UserShowPastEvents(LoggedOnlyService): 
     270 
     271    def _checkParams(self): 
     272        LoggedOnlyService._checkParams(self) 
     273        self._target = self.getAW().getUser() 
     274 
     275    def _getAnswer( self): 
     276        self._target.setShowPastEvents(True) 
     277        return True 
     278 
     279 
     280class UserHidePastEvents(LoggedOnlyService): 
     281 
     282    def _checkParams(self): 
     283        LoggedOnlyService._checkParams(self) 
     284        self._target = self.getAW().getUser() 
     285 
     286    def _getAnswer( self): 
     287        self._target.setShowPastEvents(False) 
     288        return True 
     289 
     290 
     291class UserGetLanguages(LoggedOnlyService): 
     292 
     293    def _getAnswer( self): 
     294        userLang = self.getAW().getUser().getLang() 
     295        languages = [v for k,v in langList() if k != userLang] 
     296        languages.insert(0, languageNames[userLang]) 
     297        return languages 
     298 
     299 
     300class UserSetLanguage(LoggedOnlyService): 
     301 
     302    def _checkParams(self): 
     303        LoggedOnlyService._checkParams(self) 
     304        self._user = self.getAW().getUser() 
     305        self._lang = self._params.get("lang",None) 
     306 
     307    def _getAnswer( self): 
     308        if self._lang: 
     309            for k,v in langList(): 
     310                if v == self._lang: 
     311                    self._user.setLang(k) 
     312                    return True 
     313        return False 
     314 
     315 
     316class UserGetTimezones(LoggedOnlyService): 
     317 
     318    def _getAnswer( self): 
     319        userTz = self.getAW().getUser().getTimezone() 
     320        timezones = [tz for tz in TimezoneRegistry.getList() if tz != userTz] 
     321        timezones.insert(0, userTz) 
     322        return timezones 
     323 
     324 
     325class UserSetTimezone(LoggedOnlyService): 
     326 
     327    def _checkParams(self): 
     328        LoggedOnlyService._checkParams(self) 
     329        self._user = self.getAW().getUser() 
     330        self._tz = self._params.get("tz",None) 
     331 
     332    def _getAnswer( self): 
     333        if self._tz and self._tz in TimezoneRegistry.getList(): 
     334            self._user.setTimezone(self._tz) 
     335            return True 
     336        return False 
     337 
     338 
     339class UserGetDisplayTimezones(LoggedOnlyService): 
     340 
     341    def _getAnswer( self): 
     342        if self.getAW().getUser().getDisplayTZMode() == "Event Timezone": 
     343            tzMode = ["Event Timezone", "MyTimezone"] 
     344        else: 
     345            tzMode = ["MyTimezone", "Event Timezone"] 
     346        return tzMode 
     347 
     348 
     349class UserSetDisplayTimezone(LoggedOnlyService): 
     350 
     351    def _checkParams(self): 
     352        LoggedOnlyService._checkParams(self) 
     353        self._user = self.getAW().getUser() 
     354        self._tzMode = self._params.get("tzMode",None) 
     355 
     356    def _getAnswer( self): 
     357        if self._tzMode and self._tzMode in ["Event Timezone", "MyTimezone"]: 
     358            self._user.setDisplayTZMode(self._tzMode) 
     359            return True 
     360        return False 
     361 
    266362 
    267363methodMap = { 
     
    276372    "session.timezone.get": UserGetSessionTimezone, 
    277373    "session.language.get": UserGetSessionLanguage, 
    278     "canBook": UserCanBook 
     374    "canBook": UserCanBook, 
     375    "showPastEvents": UserShowPastEvents, 
     376    "hidePastEvents": UserHidePastEvents, 
     377    "getLanguages": UserGetLanguages, 
     378    "setLanguage": UserSetLanguage, 
     379    "getTimezones": UserGetTimezones, 
     380    "setTimezone": UserSetTimezone, 
     381    "getDisplayTimezones": UserGetDisplayTimezones, 
     382    "setDisplayTimezone": UserSetDisplayTimezone, 
    279383} 
  • indico/MaKaC/user.py

    r1dc8fd redf380  
    488488        self.key = utils.newKey() #key to activate the account 
    489489        self.registrants = {} 
     490        self._showPastEvents = False #determines if past events in category overview will be shown 
    490491 
    491492        minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance() 
     
    13251326        self._lang =lang 
    13261327 
     1328    def getShowPastEvents(self): 
     1329        if not hasattr(self, "_showPastEvents"): 
     1330            self._showPastEvents = False 
     1331        return self._showPastEvents 
     1332 
     1333    def setShowPastEvents(self, value): 
     1334        self._showPastEvents = value 
     1335 
    13271336 
    13281337class AvatarHolder( ObjectHolder ): 
  • indico/MaKaC/webinterface/pages/admins.py

    r043895 redf380  
    14451445        self._avatar = av 
    14461446 
    1447     def getHTML( self, params ): 
    1448         params['user'] = self._avatar; 
    1449         return wcomponents.WTemplated.getHTML( self, params ) 
     1447    def getVars(self): 
     1448        vars = wcomponents.WTemplated.getVars( self ) 
     1449        vars["showPastEvents"] = self._avatar.getShowPastEvents() 
     1450        return vars 
    14501451 
    14511452class WUserDetails(wcomponents.WTemplated): 
     
    14691470        vars["telephon"] = self.htmlText(u.getTelephones()[0]) 
    14701471        vars["fax"] = self.htmlText(u.getFaxes()[0]) 
    1471  
    1472  
    1473         try: 
    1474             vars["timezone"] = self.htmlText(u.getTimezone()) 
    1475         except: 
    1476             u.setTimezone("UTC") 
    1477             vars["timezone"] = self.htmlText(u.getTimezone()) 
    1478  
    1479         try: 
    1480             vars["displayTZMode"] = self.htmlText(u.getDisplayTZMode()) 
    1481         except: 
    1482             u.setDisplayTZMode("MyTimezone") 
    1483             vars["displayTZMode"] = self.htmlText(u.getDisplayTZMode()) 
    1484  
    1485  
    14861472        vars["locator"] = self.htmlText(self._avatar.getLocator().getWebForm()) 
    14871473        vars["identities"] = "" 
     
    15371523            a side menu. Maybe the tab is needed in the future. 
    15381524        """ 
    1539         #self._tabPreferences = self._tabCtrl.newTab( "preferences", _("Preferences"), \ 
    1540         #        urlHandlers.UHUserPreferences.getURL() ) 
     1525        self._tabPreferences = self._tabCtrl.newTab( "preferences", _("Preferences"), \ 
     1526                urlHandlers.UHUserPreferences.getURL() ) 
    15411527 
    15421528        self._tabBaskets = self._tabCtrl.newTab( "baskets", _("Favorites"), \ 
     
    15931579        vars["titles"] = TitlesRegistry().getSelectItemsHTML(t) 
    15941580        vars["locator"] = u.getLocator().getWebForm() 
    1595         tz = u.getTimezone() 
    1596         vars["timezone"] = TimezoneRegistry.getShortSelectItemsHTML(tz) 
    1597         try: 
    1598             vars["displayTZMode"] = DisplayTimezoneRegistry.getSelectItemsHTML(u.getDisplayTZMode()) 
    1599         except: 
    1600             vars["displayTZMode"] = "None" 
    16011581        vars["Wtitle"] = _("Modifying an existing user") 
    16021582        vars["name"] = vars.get("name", u.getName()) 
     
    16101590        vars["telephone"] = vars.get("telephone", u.getTelephones()[0]) 
    16111591        vars["fax"] =  vars.get("fax", u.getFaxes()[0]) 
     1592 
    16121593        return vars 
    16131594 
  • indico/MaKaC/webinterface/pages/category.py

    r65d13e redf380  
    140140            vars["contents"] = cl.getHTML( self._aw, params ) 
    141141        elif len(confs) > 0: 
    142             cl = wcomponents.WConferenceList( self._target, self._wfReg ) 
     142            pastEvents = self._aw.getSession().getVar("fetchPastEventsFrom") 
     143            showPastEvents = pastEvents and self._target.getId() in pastEvents or self._aw.getUser() and self._aw.getUser().getShowPastEvents() 
     144            cl = wcomponents.WConferenceList( self._target, self._wfReg, showPastEvents) 
    143145            params = {"conferenceDisplayURLGen": vars["confDisplayURLGen"], "material": self._getMaterialHTML()} 
    144146            vars["contents"] = cl.getHTML( self._aw, params ) 
  • indico/MaKaC/webinterface/rh/users.py

    rbdd862 redf380  
    4848        minfo.setAuthorisedAccountCreation(not minfo.getAuthorisedAccountCreation()) 
    4949        self._redirect(urlHandlers.UHUserManagement.getURL()) 
    50          
     50 
    5151class RHUserManagementSwitchNotifyAccountCreation( admins.RHAdminBase ): 
    5252 
     
    6262        minfo.setModerateAccountCreation(not minfo.getModerateAccountCreation()) 
    6363        self._redirect(urlHandlers.UHUserManagement.getURL()) 
    64          
     64 
    6565class RHUserManagement( admins.RHAdminBase ): 
    6666 
     
    6868        admins.RHAdminBase._checkParams( self, params ) 
    6969        self._params = params 
    70          
     70 
    7171    def _process( self ): 
    7272        p = adminPages.WPUserManagement( self, self._params ) 
     
    7878        admins.RHAdminBase._checkParams( self, params ) 
    7979        self._params = params 
    80      
     80 
    8181    def _process( self ): 
    8282        p = adminPages.WPUserList( self, self._params ) 
     
    8484 
    8585class RHUserManagementLogMeAs( admins.RHAdminBase ): 
    86      
     86 
    8787    def _checkParams( self, params ): 
    8888        admins.RHAdminBase._checkParams( self, params ) 
     
    9090        self._userId = None 
    9191        self._av = None 
    92          
     92 
    9393        self._returnURL = urlHandlers.UHWelcome.getURL() 
    9494        if "returnURL" in params.keys(): 
    9595            self._returnURL = params["returnURL"] 
    96          
     96 
    9797        if "selectedPrincipals" in params.keys() and not "cancel" in params: 
    9898            self._userId = params["selectedPrincipals"] 
     
    101101            except: 
    102102                raise MaKaCError("can't found user with id %s"%self._userId) 
    103      
     103 
    104104    def _process( self ): 
    105105        if self._av: 
     
    116116class RHUserCreation( RH ): 
    117117    _uh = urlHandlers.UHUserCreation 
    118      
     118 
    119119    def _checkProtection( self ): 
    120120        minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance() 
     
    123123        if not minfo.getAuthorisedAccountCreation(): 
    124124            raise MaKaCError( _("User registration has been disabled by the site administrator")) 
    125      
     125 
    126126    def _checkParams( self, params ): 
    127127        self._params = params 
    128128        RH._checkParams( self, params ) 
    129129        self._save = params.get("Save", "") 
    130      
     130 
    131131    def _process( self ): 
    132132        save = False 
     
    175175                    self._redirect( urlHandlers.UHUserExistWithIdentity.getURL(a)) 
    176176                    return 
    177                 else:    
     177                else: 
    178178                    #create the identity to the user and send the comfirmatio email 
    179179                    _UserUtils.setUserData( a, self._params ) 
    180                     li = user.LoginInfo( self._params["login"], self._params["password"] )    
     180                    li = user.LoginInfo( self._params["login"], self._params["password"] ) 
    181181                    id = ih.createIdentity( li, a, "Local" ) 
    182182                    ih.add( id ) 
     
    192192                _UserUtils.setUserData( a, self._params ) 
    193193                ah.add(a) 
    194                 li = user.LoginInfo( self._params["login"], self._params["password"] )    
     194                li = user.LoginInfo( self._params["login"], self._params["password"] ) 
    195195                id = ih.createIdentity( li, a, "Local" ) 
    196196                ih.add( id ) 
     
    220220 
    221221class RHUserCreated( RH ): 
    222      
     222 
    223223    def _checkParams( self, params ): 
    224224        self._av = user.AvatarHolder().getById(params["userId"]) 
    225      
     225 
    226226    def _process( self ): 
    227227        minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance() 
     
    234234 
    235235#class RHUserModify( RHProtected ): 
    236 #     
     236# 
    237237#    def _checkProtection( self ): 
    238238#        if self._getUser() and ( (not self._getUser() in AdminList.getInstance().getList()) or (self._av != self._getUser()) ): 
    239239#            raise errors.AccessError("User Modification") 
    240240#        RHProtected._checkProtection( self ) 
    241 #     
     241# 
    242242#    def _checkParams( self, params ): 
    243243#        self._av = user.AvatarHolder().getById(params["userId"]) 
    244 #     
     244# 
    245245#    def _process( self ): 
    246246#        p = users.WPUserModify( self, self._av ) 
     
    249249 
    250250class RHUserExistWithIdentity( RH ): 
    251      
     251 
    252252    def _checkParams( self, params ): 
    253253        self._av = user.AvatarHolder().getById(params["userId"]) 
    254      
     254 
    255255    def _process( self ): 
    256256        minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance() 
     
    263263 
    264264class _UserUtils: 
    265      
     265 
    266266    def setUserData( self, a, userData): 
    267267        a.setName( userData["name"] ) 
     
    269269        a.setTitle( userData["title"] ) 
    270270        a.setOrganisation( userData["organisation"] ) 
    271         a.setLang( userData["lang"] ) 
     271        if userData.has_key("lang"): 
     272            a.setLang( userData["lang"] ) 
    272273        a.setAddress( userData["address"] ) 
    273274        a.setEmail( userData["email"] ) 
     
    275276        a.setTelephone( userData["telephone"] ) 
    276277        a.setFax( userData["fax"] ) 
     278        if userData.has_key("showPastEvents"): 
     279            a.setShowPastEvents( userData.has_key("showPastEvents")) 
    277280 
    278281        ################################# 
    279282        # Fermi timezone awareness      # 
    280283        ################################# 
    281  
    282         a.setTimezone(userData["timezone"]) 
    283         a.setDisplayTZMode(userData["displayTZMode"]) 
     284        if userData.has_key("timezone"): 
     285            a.setTimezone(userData["timezone"]) 
     286        if userData.has_key("displayTZMode"): 
     287            a.setDisplayTZMode(userData["displayTZMode"]) 
    284288 
    285289        ################################# 
     
    291295 
    292296class RHUserBase( RHProtected ): 
    293      
     297 
    294298    def _checkParams( self, params ): 
    295299        if "userId" not in params or params["userId"].strip() == "": 
    296300            raise MaKaCError( _("user id not specified")) 
    297301        ah = user.AvatarHolder() 
    298         self._target = self._avatar = ah.getById( params["userId"] )         
    299      
     302        self._target = self._avatar = ah.getById( params["userId"] ) 
     303 
    300304    def _checkProtection( self ): 
    301          
     305 
    302306        RHProtected._checkProtection( self ) 
    303307        if not self._avatar.canUserModify( self._getUser() ): 
    304             raise ModificationError("user")         
     308            raise ModificationError("user") 
    305309 
    306310 
    307311class RHUserDetails( RHUserBase): 
    308312    _uh = urlHandlers.UHUserDetails 
    309      
     313 
    310314    def _checkProtection( self ): 
    311315        RHUserBase._checkProtection( self ) 
    312316        if self._aw.getUser(): 
    313317            if not self._avatar.canModify( self._aw ): 
    314                 raise errors.AccessControlError("user")              
    315      
     318                raise errors.AccessControlError("user") 
     319 
    316320    def _process( self ): 
    317321        p = adminPages.WPUserDetails( self, self._avatar ) 
    318322        return p.display() 
    319      
    320      
     323 
     324 
    321325class RHUserBaskets( base.RHProtected ): 
    322326    _uh = urlHandlers.UHUserBaskets 
    323      
     327 
    324328    def _process( self ): 
    325329        p = adminPages.WPUserBaskets( self, self._getUser() ) 
     
    328332class RHUserPreferences( base.RHProtected ): 
    329333    _uh = urlHandlers.UHUserPreferences 
    330      
     334 
    331335    def _process( self ): 
    332336        p = adminPages.WPUserPreferences( self, self._getUser() ) 
     
    342346        RHProtected._checkSessionUser( self ) 
    343347        if not self._aw.getUser(): 
    344             raise errors.AccessControlError("user")              
     348            raise errors.AccessControlError("user") 
    345349 
    346350class RHUserEvents(RHUserPersBase): 
    347351    _uh = urlHandlers.UHGetUserEventPage 
    348      
     352 
    349353    def _process( self ): 
    350354        p = personalization.WPDisplayUserEvents( self ) 
     
    363367        self._addEmail = params.get("addSecEmail", "") 
    364368        self._removeEmail = params.get("removeSecEmail", "") 
    365          
     369 
    366370    def _process( self ): 
    367371        if self._cancel: 
     
    409413            name.indexUser(self._avatar) 
    410414            surName.indexUser(self._avatar) 
    411              
     415 
    412416            #----Grant rights if anything 
    413417            ph=pendingQueues.PendingQueuesHolder() 
     
    417421            tzUtil = timezoneUtils.SessionTZ(self._aw.getUser()) 
    418422            tz = tzUtil.getSessionTZ() 
    419             websession.setVar("ActiveTimezone",tz)  
     423            websession.setVar("ActiveTimezone",tz) 
    420424            self._redirect(urlHandlers.UHUserDetails.getURL(self._avatar)) 
    421              
     425 
    422426        elif self._addEmail: 
    423427            self._params["secEmails"] = self._normaliseListParam(self._params.get("secEmails",[])) 
     
    434438            return p.display() 
    435439        elif self._removeEmail: 
    436              
     440 
    437441            emails = self._normaliseListParam(self._params.get("secEmailRemove",[])) 
    438442            self._params["secEmails"] = self._normaliseListParam(self._params["secEmails"]) 
     
    444448            tzUtil = timezoneUtils.SessionTZ(self._aw.getUser()) 
    445449            tz = tzUtil.getSessionTZ() 
    446             websession.setVar("ActiveTimezone",tz)  
     450            websession.setVar("ActiveTimezone",tz) 
    447451            return p.display() 
    448452        else: 
     
    451455            tzUtil = timezoneUtils.SessionTZ(self._aw.getUser()) 
    452456            tz = tzUtil.getSessionTZ() 
    453             websession.setVar("ActiveTimezone",tz)  
     457            websession.setVar("ActiveTimezone",tz) 
    454458            return p.display() 
    455459        """ 
     
    460464 
    461465class RHUserActive( RHUserBase ): 
    462      
     466 
    463467    def _checkProtection( self ): 
    464468        al = AdminList.getInstance() 
    465469        if not (self._aw.getUser() in al.getList()): 
    466470            raise errors.AccessError("user status") 
    467      
     471 
    468472    def _process( self ): 
    469473        self._avatar.activateAccount() 
     
    479483#class RHUserPerformModification( RHUserBase ): 
    480484#    _uh = urlHandlers.UHUserPerformModification 
    481 #     
     485# 
    482486#    def _checkParams( self, params ): 
    483487#        RHUserBase._checkParams( self, params ) 
    484488#        self._userData = params 
    485 #     
     489# 
    486490#    def _process( self ): 
    487491#        _UserUtils.setUserData( self._avatar, self._userData ) 
     
    490494 
    491495class RHUserIdentityBase( RHUserBase ): 
    492      
     496 
    493497    def _checkProtection( self ): 
    494498        if self._avatar.getIdentityList() == []: 
    495             return  
     499            return 
    496500        RHUserBase._checkProtection( self ) 
    497501        if not self._avatar.canModify( self._aw ): 
     
    501505class RHUserIdentityCreation( RHUserIdentityBase ): 
    502506    _uh = urlHandlers.UHUserIdentityCreation 
    503      
    504     def _checkParams( self, params ):         
     507 
     508    def _checkParams( self, params ): 
    505509        RHUserIdentityBase._checkParams( self, params ) 
    506510        self._login = params.get("login", "") 
     
    510514        self._ok = params.get("OK", "") 
    511515        self._params = params 
    512      
    513     def _process( self ): 
    514          
    515         if self._params.get("Cancel",None) is not None :             
     516 
     517    def _process( self ): 
     518 
     519        if self._params.get("Cancel",None) is not None : 
    516520            p = adminPages.WPUserDetails( self, self._avatar ) 
    517521            return p.display() 
    518              
     522 
    519523        msg = "" 
    520524        ok = False 
     
    535539            if ok: 
    536540                #create the indentity 
    537                 li = user.LoginInfo( self._login, self._pwd )    
     541                li = user.LoginInfo( self._login, self._pwd ) 
    538542                id = ih.createIdentity( li, self._avatar, self._system ) 
    539543                ih.add( id ) 
    540544                self._redirect( urlHandlers.UHUserDetails.getURL( self._avatar ) ) 
    541545                return 
    542              
     546 
    543547        self._params["msg"] = msg 
    544548        p = adminPages.WPIdentityCreation( self, self._avatar, self._params ) 
     
    549553class RHUserIdPerformCreation( RHUserIdentityBase ): 
    550554    _uh = urlHandlers.UHUserIdPerformCreation 
    551      
     555 
    552556    def _checkParams( self, params ): 
    553557        RHUserIdentityBase._checkParams( self, params ) 
     
    557561        self._fromURL = params.get("fromURL", "") 
    558562        self._system = params.get("system", "") 
    559              
     563 
    560564    def _process( self ): 
    561565        ih = AuthenticatorMgr() 
     
    569573            return 
    570574        #create the indentity 
    571         li = user.LoginInfo( self._login, self._pwd )    
     575        li = user.LoginInfo( self._login, self._pwd ) 
    572576        id = ih.createIdentity( li, self._avatar, self._system ) 
    573577        ih.add( id ) 
     
    581585class RHUserIdentityChangePassword( RHUserIdentityBase ): 
    582586    _uh = urlHandlers.UHUserIdentityChangePassword 
    583      
    584     def _checkParams( self, params ):         
     587 
     588    def _checkParams( self, params ): 
    585589        RHUserIdentityBase._checkParams( self, params ) 
    586590        self._params = params 
    587      
    588     def _process( self ):                 
    589         if self._params.get("OK",None) is not None :                         
     591 
     592    def _process( self ): 
     593        if self._params.get("OK",None) is not None : 
    590594            if self._params.get("password","") == "" or self._params.get("passwordBis","") == "" : 
    591595                self._params["msg"] = _("Both password and password confirmation fields must be filled up") 
    592                 del self._params["OK"]                
    593                 p = adminPages.WPIdentityChangePassword( self, self._avatar, self._params )         
     596                del self._params["OK"] 
     597                p = adminPages.WPIdentityChangePassword( self, self._avatar, self._params ) 
    594598                return p.display() 
    595599            if self._params.get("password","") != self._params.get("passwordBis","") : 
    596600                self._params["msg"] = _("Password and password confirmation are not equal") 
    597                 del self._params["OK"]                
    598                 p = adminPages.WPIdentityChangePassword( self, self._avatar, self._params )         
     601                del self._params["OK"] 
     602                p = adminPages.WPIdentityChangePassword( self, self._avatar, self._params ) 
    599603                return p.display() 
    600604            identity = self._avatar.getIdentityById(self._params["login"], "Local") 
     
    605609            p = adminPages.WPUserDetails( self, self._avatar ) 
    606610            return p.display() 
    607              
     611 
    608612        self._params["msg"] = "" 
    609         p = adminPages.WPIdentityChangePassword( self, self._avatar, self._params )         
     613        p = adminPages.WPIdentityChangePassword( self, self._avatar, self._params ) 
    610614        return p.display() 
    611615 
    612616 
    613617class RHUserRemoveIdentity( RHUserIdentityBase ): 
    614      
     618 
    615619    def _checkParams( self, params ): 
    616620        RHUserIdentityBase._checkParams( self, params ) 
    617621        self._identityList = self._normaliseListParam(params.get("selIdentities",[])) 
    618      
     622 
    619623    def _process( self ): 
    620624        am = AuthenticatorMgr() 
     
    627631class RHCreateExternalUsers(RH): 
    628632    _uh = urlHandlers.UHUserSearchCreateExternalUser 
    629      
     633 
    630634    def _checkProtection( self ): 
    631635        pass 
    632      
     636 
    633637    def _checkParams( self, params ): 
    634638        from copy import copy 
     
    638642        if self._params.has_key( "addURL" ): 
    639643            self._addURL = self._params["addURL"] 
    640             del self._params["addURL"]         
     644            del self._params["addURL"] 
    641645        self._identityList = self._normaliseListParam(self._params.get("selectedPrincipals",[])) 
    642646        if self._params.has_key("selectedPrincipals"): 
    643647            del self._params["selectedPrincipals"] 
    644                      
     648 
    645649    def _process( self ): 
    646650        from MaKaC.common.Configuration import Config 
     
    672676 
    673677 
    674      
     678 
  • indico/MaKaC/webinterface/tpls/ConferenceList.tpl

    rf25f07 redf380  
    1 <%!  
     1<%! 
    22def sortAndReturn(list): 
    33        list.sort() 
     
    1414                </span> 
    1515        <% end %> 
    16      
     16 
    1717    <% if numOfEventsInTheFuture > 0: %> 
    1818    <div class="topBar" style="margin-bottom: 10px"> 
     
    2121    <div id="futureEvents" style="visibility: hidden; overflow:hidden;"> 
    2222        <% includeTpl('ConferenceListEvents', items=futureItems, aw=self._aw, conferenceDisplayURLGen=conferenceDisplayURLGen) %> 
    23                  
     23 
    2424    </div> 
    2525    <% end %> 
     
    2828    </div> 
    2929 
    30     <% if numOfEventsInThePast > 0: %>     
     30    <% if numOfEventsInThePast > 0: %> 
    3131    <div id="pastEvents" style="display:none"></div> 
    3232 
     
    5151    function toogleFutureEvents() { 
    5252        if (futureSwitch) { 
    53             IndicoUI.Effect.slide("futureEvents", futureEventsDivHeight);  
     53            IndicoUI.Effect.slide("futureEvents", futureEventsDivHeight); 
    5454            $E("futureEventsText").dom.innerHTML = "There are <%= numOfEventsInTheFuture %> more events in the <em>future</em>. <span class='fakeLink' onclick='toogleFutureEvents()'>Show them.</a>"; 
    5555        }else { 
    56             IndicoUI.Effect.slide("futureEvents", futureEventsDivHeight);  
     56            IndicoUI.Effect.slide("futureEvents", futureEventsDivHeight); 
    5757            $E("futureEventsText").dom.innerHTML = '<span class="fakeLink" onclick="toogleFutureEvents()">Hide</span> the events in the future (<%= numOfEventsInTheFuture %>).'; 
    5858        } 
    5959        futureSwitch = !futureSwitch; 
    60     }  
     60    } 
    6161    <%end%> 
    6262 
     
    6464    var callDone = false; 
    6565    var pastSwitch = false; 
     66 
     67    function getPastEventsFromCateg(value){ 
     68        indicoRequest('category.getPastEventsFromCateg', 
     69                { 
     70                    categId: '<%= categ.getId() %>', 
     71                    getPastEvents: value 
     72                }, 
     73                function(result, error){} 
     74            ) 
     75    } 
     76 
    6677    function tooglePastEvents() { 
    6778        if (!callDone) { 
    6879            $E("loadingPast").dom.style.display = "inline"; 
    6980            fetchPastEvents() 
     81            getPastEventsFromCateg(true) 
    7082        }else { 
    7183            if (pastSwitch) { 
    7284                $E("pastEvents").dom.style.display = "none"; 
    7385                $E("pastEventsText").dom.innerHTML = "There are <%= numOfEventsInThePast %> more events in the <em>past</em>. <span class='fakeLink' onclick='tooglePastEvents()'>Show them.</a>"; 
     86                getPastEventsFromCateg(false) 
    7487            }else { 
    75                 $E("pastEvents").dom.style.display = "inline";  
     88                $E("pastEvents").dom.style.display = "inline"; 
    7689                $E("pastEventsText").dom.innerHTML = '<span class="fakeLink" onclick="tooglePastEvents()">Hide</span> the events in the past (<%= numOfEventsInThePast %>).'; 
     90                getPastEventsFromCateg(true) 
    7791            } 
    7892            pastSwitch = !pastSwitch; 
    7993        } 
    8094    } 
     95 
    8196 
    8297    function fetchPastEvents() { 
     
    96111            ) 
    97112    } 
     113    <% if showPastEvents: %> 
     114        $E("loadingPast").dom.style.display = "inline"; 
     115        fetchPastEvents() 
     116    <% end %> 
    98117 
    99118    <% end %> 
    100      
     119 
    101120</script> 
  • indico/MaKaC/webinterface/tpls/UserDetails.tpl

    r9033fd redf380  
    2323    </tr> 
    2424    <tr> 
    25         <td nowrap class="dataCaptionTD"><span class="dataCaptionFormat"><%= _("Language")%></span></td> 
    26         <td class="blacktext"><%= _(lang)%></td> 
    27     </tr> 
    28     <tr> 
    2925        <td nowrap class="dataCaptionTD"><span class="dataCaptionFormat"><%= _("Address")%></span></td> 
    3026        <td class="blacktext"><pre>&nbsp;&nbsp;%(address)s</pre></td> 
     
    3834        <td class="blacktext">%(fax)s</td> 
    3935    </tr> 
    40     <!-- Fermi timezone awareness --> 
    41     <tr> 
    42         <td nowrap class="dataCaptionTD"><span class="dataCaptionFormat"><%= _("My Timezone")%></span></td> 
    43         <td class="blacktext">%(timezone)s</td> 
    44     </tr> 
    45     <tr> 
    46         <td nowrap class="dataCaptionTD"><span class="dataCaptionFormat"><%= _("Display Timezone")%></span></td> 
    47         <td class="blacktext">%(displayTZMode)s</td> 
    48     </tr> 
    49     <!-- Fermi timezone awareness(end) --> 
    50  
    5136    <tr> 
    5237        <td>&nbsp;</td> 
  • indico/MaKaC/webinterface/tpls/UserModify.tpl

    r9033fd redf380  
    22 
    33<center> 
    4 <form action="%(postURL)s" method="POST">    
     4<form action="%(postURL)s" method="POST"> 
    55    %(locator)s 
    66    <table width="80%%"> 
     
    5252        </tr> 
    5353        <tr> 
    54             <td align="right"><font color="gray"><font color="red">* </font><%= _("Language")%></font></td> 
    55                 <td bgcolor="white" width="100%%" align="left"> 
    56                   <select size=1 name="lang"> 
    57                    <% for l in langList(): %> 
    58                        <option <% if l[0] == lang: %> 
    59                          selected 
    60                        <% end %> value="<%= l[0] %>"><%= l[1] %></option> 
    61                    <% end %> 
    62                  </select> 
    63                 </td> 
    64         </tr> 
    65         <tr> 
    6654            <td align="right"><font color="gray"><%= _("Address")%></font></td> 
    6755            <td align="left"><textarea name="address" rows="5" cols="75">%(address)s</textarea></td> 
     
    7563            <td align="left"><input type="text" name="fax" value="%(fax)s" size="25"></td> 
    7664        </tr> 
    77         <!-- Fermi timezone awareness --> 
    78         <tr> 
    79             <td align="right"><font color="gray"><%= _("My Timezone")%><font></td> 
    80             <td align="left"> 
    81                 <select name="timezone"> 
    82                     %(timezone)s 
    83                 </select> 
    84             </td> 
    85         </tr> 
    86         <tr> 
    87             <td align="right"><font color="gray"><%= _("Display Timezone")%><font></td> 
    88             <td align="left"> 
    89                 <select name="displayTZMode"> 
    90                     %(displayTZMode)s 
    91                 </select> 
    92             </td> 
    93         </tr> 
    94         <!-- Fermi timezone awareness(end) --> 
    9565        <tr> 
    9666            <td colspan="2"> 
  • indico/MaKaC/webinterface/tpls/UserPreferences.tpl

    r9033fd redf380  
    66            <td class="blacktext spaceLeft" id="tabExpandSelect"></td> 
    77        </tr> 
     8    <tr> 
     9        <td class="titleCellTD"><span class="titleCellFormat"><%= _("Language")%></span></td> 
     10        <td class="blacktext spaceLeft" id="selectLanguage"></td> 
     11    </tr> 
     12    <tr> 
     13        <td class="titleCellTD"><span class="titleCellFormat"><%= _("My Timezone")%></span></td> 
     14        <td class="blacktext spaceLeft" id="myTimezone"></td> 
     15    </tr> 
     16    <tr> 
     17        <td class="titleCellTD"><span class="titleCellFormat"><%= _("Display Timezone")%></span></td> 
     18        <td class="blacktext spaceLeft" id="displayTimezone"></td> 
     19    </tr> 
     20    <tr> 
     21        <td class="titleCellTD"><span class="titleCellFormat"><%= _("Show past events by default")%></span></td> 
     22        <td class="blacktext spaceLeft" id="tabShowPastEvents" style="vertical-align:middle"></td> 
     23    </tr> 
    824</table> 
    925 
     
    1632           // wait for the source to be loaded 
    1733           if (state == SourceState.Loaded) { 
    18                 IndicoUI.Widgets.Generic.sourceSelectionField($E('tabExpandSelect'),  
     34                IndicoUI.Widgets.Generic.sourceSelectionField($E('tabExpandSelect'), 
    1935                                                  $C(source.accessor('tabAdvancedMode'), { 
    2036                                                     toTarget: function(value) { 
     
    2642                                                  }), 
    2743                                                 {'false': 'Basic', 
    28                                                   'true': 'Advanced'});              
     44                                                  'true': 'Advanced'}); 
    2945           } 
    3046        }); 
    31          
    3247 
     48    var langCallback = function(){ 
     49        $E("selectLanguage").set(languageSelector.draw()); 
     50        languageSelector.observe(function(){ 
     51            indicoSource('user.setLanguage', {"lang":languageSelector.get()}); 
     52        }); 
     53    }; 
     54    var languageSelector = new SelectRemoteWidget("user.getLanguages",{},langCallback) 
    3355 
     56    var tzCallback = function(){ 
     57        $E("myTimezone").set(myTimezoneSelector.draw()); 
     58        myTimezoneSelector.observe(function(){ 
     59            indicoSource('user.setTimezone', {"tz":myTimezoneSelector.get()}); 
     60        }); 
     61    }; 
     62    var myTimezoneSelector = new SelectRemoteWidget("user.getTimezones",{},tzCallback); 
     63 
     64    var displayTzCallback = function(){ 
     65        $E("displayTimezone").set(displayTimezoneSelector.draw()); 
     66        displayTimezoneSelector.observe(function(){ 
     67            indicoSource('user.setDisplayTimezone', {"tzMode":displayTimezoneSelector.get()}); 
     68        }); 
     69    }; 
     70    var displayTimezoneSelector = new SelectRemoteWidget("user.getDisplayTimezones",{},displayTzCallback); 
     71 
     72        $E("tabShowPastEvents").set(new RemoteSwitchButton(<% if showPastEvents: %>true<% end %><% else: %>false<% end %>, 
     73            Html.img({src:imageSrc("tick.png")}), Html.img({src:imageSrc("cross.png")}), "user.hidePastEvents", "user.showPastEvents",{}).draw()); 
    3474</script> 
  • indico/MaKaC/webinterface/wcomponents.py

    rebf84a redf380  
    32363236class WConferenceList(WTemplated): 
    32373237 
    3238     def __init__( self, category, wfReg ): 
     3238    def __init__( self, category, wfRegm, showPastEvents ): 
    32393239        self._categ = category 
    32403240        self._list = category.getConferenceList() 
     3241        self._showPastEvents = showPastEvents 
    32413242 
    32423243    def getHTML( self, aw, params ): 
     
    33773378        vars["categ"] = self._categ 
    33783379        vars["ActiveTimezone"] = DisplayTZ(self._aw,self._categ,useServerTZ=1).getDisplayTZ() 
     3380        vars["showPastEvents"] = self._showPastEvents 
    33793381 
    33803382        return vars 
  • indico/htdocs/css/Default.css

    r010517 redf380  
    38733873.spaceLeft { 
    38743874    padding-left: 10px; 
     3875    padding-bottom: 10px; 
    38753876} 
    38763877 
Note: See TracChangeset for help on using the changeset viewer.