Changeset 690cc2 in indico


Ignore:
Timestamp:
02/03/10 19:07:04 (3 years ago)
Author:
Jose Benito <jose.benito.gonzalez@…>
Branches:
master, burotel, hello-world-walkthrough, ipv6, new-webex, prov-dual-interface, v0.97-series, v0.98-series, v0.98.2, v0.98.3, v0.98b1, v0.98b2, v0.99, b8c30da8ebdbdcbd675a873997cc3e95f567de49, 36509dd327b5670bb394f5ec070c14653b4c9c19
Children:
de203c
Parents:
c83d00
git-author:
Jose Benito <jose.benito.gonzalez@…> (02/03/10 19:00:23)
git-committer:
Jose Benito <jose.benito.gonzalez@…> (02/03/10 19:07:04)
Message:

[IMP] search inside category

fixes #30

Location:
indico/MaKaC/webinterface
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • indico/MaKaC/webinterface/tpls/SearchBox.tpl

    rba29e6 r690cc2  
    11<form method="get" action="%(searchAction)s" id="searchBoxForm" style="margin: 0px;"> 
    2 <input type="hidden" id="searchCategId" name="categId" value="0"/> 
     2<input type="hidden" id="searchCategId" name="categId" value="<%=categId%>"/> 
    33<div id="UISearchBox"> 
    44    <div id="searchControls"> 
  • indico/MaKaC/webinterface/wcomponents.py

    ra1b323e r690cc2  
    9494 
    9595 
    96         if DBMgr.getInstance().isConnected():         
    97             template = info.HelperMaKaCInfo.getMaKaCInfoInstance().getDefaultTemplateSet()     
    98          
     96        if DBMgr.getInstance().isConnected(): 
     97            template = info.HelperMaKaCInfo.getMaKaCInfoInstance().getDefaultTemplateSet() 
     98 
    9999            if template != None : 
    100100                specTpl = "%s.%s.%s" % (tplId, template, extension) 
    101              
    102                 if os.path.exists(os.path.join(dir,specTpl)):           
     101 
     102                if os.path.exists(os.path.join(dir,specTpl)): 
    103103                    return specTpl 
    104104 
    105          
     105 
    106106        return "%s.%s" % (tplId, extension) 
    107107 
     
    115115        dir = cfg.getTPLDir() 
    116116        file = cfg.getTPLFile( self.tplId ) 
    117          
     117 
    118118        if file == "": 
    119119            file = self._getSpecificTPL(dir,self.tplId) 
     
    123123                                              self.tplId, 
    124124                                              extension='wohl') 
    125      
     125 
    126126        self.helpFile = os.path.join(dir,'chelp',hfile) 
    127          
     127 
    128128 
    129129    def getVars( self ): 
     
    139139        cfg = Configuration.Config.getInstance() 
    140140        vars = cfg.getTPLVars() 
    141          
     141 
    142142        for paramName in self.__params: 
    143143            vars[ paramName ] = self.__params[ paramName ] 
     
    146146        else: 
    147147            vars["errorMsg"] = "" 
    148          
     148 
    149149        if len(vars.get("infoMsg", [])) > 0 : 
    150150            vars["infoMsg"] = WInfoMessage().getHTML(vars) 
     
    163163        from MaKaC.webinterface.rh.base import RH 
    164164        self._rh = RH._currentRH 
    165         if self.tplId == None:             
     165        if self.tplId == None: 
    166166            self.tplId = self.__class__.__name__[1:] 
    167167        self._setTPLFile() 
     
    185185            except exceptions.IOError: 
    186186                pass 
    187          
     187 
    188188        vars = self.getVars() 
    189189        vars['__rh__'] = self._rh 
    190190        vars['self'] = self 
    191                  
     191 
    192192        tempHTML = TemplateExec.executeTemplate( text, vars, self.tplId ) 
    193193 
    194         if helpText == None:             
     194        if helpText == None: 
    195195            return tempHTML 
    196196        else: 
     
    202202                else: 
    203203                    raise e 
    204              
     204 
    205205 
    206206    def htmlText(param): 
     
    220220    textToHTML = staticmethod( textToHTML ) 
    221221 
    222     def _escapeChars(self, text):         
     222    def _escapeChars(self, text): 
    223223        return text.replace('%','%%') 
    224224 
    225225class WHTMLHeader(WTemplated): 
    226      
    227      
    228      
     226 
     227 
     228 
    229229    def __init__(self, tpl_name = None): 
    230230        WTemplated.__init__(self) 
    231          
    232     def getVars( self ): 
    233         vars = WTemplated.getVars( self ) 
    234                  
     231 
     232    def getVars( self ): 
     233        vars = WTemplated.getVars( self ) 
     234 
    235235        if DBMgr.getInstance().isConnected(): 
    236             vars['stylesheet'] = Config.getInstance().getCssStylesheetName()  
     236            vars['stylesheet'] = Config.getInstance().getCssStylesheetName() 
    237237        else: 
    238238            vars['stylesheet'] = 'Default.css' 
     
    251251        self.__isFrontPage = isFrontPage 
    252252        self.__currentCategory = currentCategory 
    253     
     253 
    254254    """ 
    255255        Returns the current active timezone. 
     
    262262 
    263263        return tz 
    264      
     264 
    265265    """ 
    266266        Returns timezone string that is show to the user. 
     
    276276 
    277277    def getVars( self ): 
    278         vars = WTemplated.getVars( self )         
     278        vars = WTemplated.getVars( self ) 
    279279        #urlHandlers.UHUserDetails.getURL(self._currentuser) 
    280280        vars["logMeAs"] = "" 
     
    283283            vars["userInfo"] = """<font size="-1"><a class="topbar" href="%s" target="_blank">%s</a> - <a href="%s">logout</a></font>"""%(urlHandlers.UHUserDetails.getURL(self._currentuser), self._currentuser.getFullName(), vars["logoutURL"]) 
    284284            vars["userDetails"] = """class="topbar" href="%s" target="_blank\""""%urlHandlers.UHUserDetails.getURL(self._currentuser) 
    285              
     285 
    286286            if self._currentuser.isAdmin(): 
    287287                vars["logMeAs"] = vars["loginAsURL"] 
     
    290290            vars["userDetails"] = "" 
    291291        # ***************** 
    292         
     292 
    293293        vars["currentUser"] = self._currentuser 
    294         
     294 
    295295        imgLogo=Configuration.Config.getInstance().getSystemIconURL( "logoIndico" ) 
    296296        imgLogin=Configuration.Config.getInstance().getSystemIconURL( "login" ) 
     
    299299## 
    300300#        if Configuration.Config.getInstance().getLoginURL().startswith("https"): 
    301 #             
     301# 
    302302#            # Set proper PROTOCOL for images requested via SSL 
    303303#            imgLogo=imgLogo.replace("http://", "https://") 
    304304#            imgLogin=imgLogin.replace("http://", "https://") 
    305 #             
     305# 
    306306#            # Set proper PORT for images requested via SSL 
    307307#            imgLogo = urlHandlers.setSSLPort( imgLogo ) 
    308 #            imgLogin = urlHandlers.setSSLPort( imgLogin )  
    309 #             
     308#            imgLogin = urlHandlers.setSSLPort( imgLogin ) 
     309# 
    310310        vars["imgLogo"] = imgLogo 
    311311        vars["imgLogin"] = imgLogin 
    312312        vars["isFrontPage"] = self.__isFrontPage 
    313313        vars["currentCategory"] = self.__currentCategory 
    314          
     314 
    315315        if self._aw.getSession(): 
    316316            selLang = self._aw.getSession().getLang() 
     
    318318            minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance() 
    319319            selLang = minfo.getLang() 
    320          
     320 
    321321        #language list related 
    322322        languages = {} 
     
    329329 
    330330        vars["SelectedLanguage"] = selLang; 
    331          
     331 
    332332        vars["ActiveTimezone"] = self._getActiveTimezone(); 
    333333        """ 
     
    339339        """ 
    340340        vars["ActiveTimezoneDisplay"] = self._getTimezoneDisplay(vars["ActiveTimezone"]) 
    341          
     341 
    342342        if DBMgr.getInstance().isConnected(): 
    343343            vars["title"] = info.HelperMaKaCInfo.getMaKaCInfoInstance().getTitle() 
     
    346346            vars["title"] = "Indico" 
    347347            vars["organization"] = "" 
    348          
    349          
     348 
     349 
    350350        # Search box, in case search is active 
    351351        if Config.getInstance().getIndicoSearchServer() != '' : 
    352             vars['searchBox'] = WCategorySearchBox().getHTML() 
     352            categId = 0 
     353            if self.__currentCategory: 
     354                categId = self.__currentCategory.getId() 
     355            vars['searchBox'] = WCategorySearchBox(categId=categId).getHTML() 
    353356        else: 
    354357            vars['searchBox'] = "" 
    355          
     358 
    356359        # Check if room booking module is active 
    357360        minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance() 
    358361        vars['roomBooking'] = minfo.getRoomBookingModuleActive() 
    359          
     362 
    360363        #Build a list of items for the administration menu 
    361364        adminList = AdminList.getInstance() 
     
    370373            if webcast.HelperWebcastManager.getWebcastManagerInstance().isManager(self._currentuser): 
    371374                adminItemList.append({'url': urlHandlers.UHWebcast.getURL(), 'text': _("Webcast Admin")}) 
    372              
    373              
     375 
     376 
    374377        vars["adminItemList"] = adminItemList 
    375          
     378 
    376379        return vars 
    377380 
    378381 
    379382class WStaticWebHeader( WTemplated ): 
    380     """Templating web component for generating the HTML header for  
     383    """Templating web component for generating the HTML header for 
    381384        the static web interface when generating a DVD. 
    382385    """ 
     
    384387        vars = WTemplated.getVars( self ) 
    385388        return vars 
    386      
     389 
    387390class WManagementHeader( WHeader ): 
    388     """Templating web component for generating the HTML header for  
     391    """Templating web component for generating the HTML header for 
    389392        the management web interface. 
    390393    """ 
     
    392395 
    393396class WHelpHeader( WHeader ): 
    394     """Templating web component for generating the HTML header for  
     397    """Templating web component for generating the HTML header for 
    395398        the help web interface. 
    396399    """ 
    397400    pass 
    398      
     401 
    399402class WRoomBookingHeader( WHeader ): 
    400     """Templating web component for generating the HTML header for  
     403    """Templating web component for generating the HTML header for 
    401404        the (standalone) room booking web interface. 
    402405    """ 
     
    404407 
    405408class WConferenceHeader( WHeader ): 
    406     """Templating web component for generating the HTML header for  
     409    """Templating web component for generating the HTML header for 
    407410        the conferences' web interface. 
    408411    """ 
     
    414417        tzUtil = DisplayTZ(self._aw,self._conf) 
    415418        self._locTZ = tzUtil.getDisplayTZ() 
    416       
     419 
    417420    def getVars( self ): 
    418421        vars = WHeader.getVars( self ) 
    419422        vars["categurl"] = urlHandlers.UHCategoryDisplay.getURL(self._conf.getOwnerList()[0]) 
    420          
     423 
    421424        vars["conf"] = self._conf; 
    422          
     425 
    423426        vars["imgLogo"] = Configuration.Config.getInstance().getSystemIconURL( "miniLogo" ) 
    424427        vars["MaKaCHomeURL"] = urlHandlers.UHCategoryDisplay.getURL(self._conf.getOwnerList()[0]) 
    425          
     428 
    426429        #moved here from WHeader in order to be able to use DisplayTZ with self._conf (in some pages WHeader has no self._conf). 
    427430        #TODO: Is this needed? 
    428431        #vars["Timezones"] = Config.getInstance().getTimezoneList() 
    429   
    430   
     432 
     433 
    431434#        if self._conf.getModifKey() != '': 
    432435#            url = urlHandlers.UHConfEnterModifKey.getURL(self._conf) 
     
    463466        styleMgr = info.HelperMaKaCInfo.getMaKaCInfoInstance().getStyleManager() 
    464467        stylesheets = styleMgr.getStylesheetListForEventType(vars["type"]) 
    465         
     468 
    466469        # View Menu 
    467470        viewoptions = [] 
     
    525528        # Save to session 
    526529        vars["hideContributions"] = hideContributions; 
    527          
     530 
    528531        if self._conf.getType() == "meeting" and self._conf.getParticipation().isAllowedForApplying() and self._conf.getStartDate() > nowutc(): 
    529532            vars["applyForParticipation"] = _("""<a href="%s">_("Apply for participation")</a>""")%urlHandlers.UHConfParticipantsNewPending.getURL(self._conf) 
     
    559562            vars["searchBox"] = "" 
    560563 
    561          
     564 
    562565        return vars 
    563566 
    564567class WMenuMeetingHeader( WConferenceHeader ): 
    565     """Templating web component for generating the HTML header for  
     568    """Templating web component for generating the HTML header for 
    566569        the meetings web interface with a menu 
    567570    """ 
     
    573576        tzUtil = DisplayTZ(self._aw,self._conf) 
    574577        self._locTZ = tzUtil.getDisplayTZ() 
    575         
     578 
    576579 
    577580    def getVars( self ): 
    578581        vars = WConferenceHeader.getVars( self ) 
    579          
     582 
    580583        vars["categurl"] = urlHandlers.UHCategoryDisplay.getURL(self._conf.getOwnerList()[0]) 
    581584        #vars["confModif"] =  _("""<a href=%s> _("manage")</a>""")%quoteattr(str(urlHandlers.UHConfEnterModifKey.getURL(self._conf))) 
     
    598601        vars["showExportToPDF"] = True 
    599602        vars["showMore"] = True 
    600                  
     603 
    601604        # Dates Menu 
    602605        tz = DisplayTZ(self._aw,self._conf,useServerTZ=1).getDisplayTZ() 
     
    620623            sdate = sdate + timedelta(days=1) 
    621624        vars["datesMenu"] = "".join(dates); 
    622          
     625 
    623626        # Sessions Menu 
    624627        sessions = [] 
     
    641644            sessions.append(""" <option value="%s" %s>%s</option> """%(id, selected, title)) 
    642645        vars["sessionsMenu"] = "".join(sessions); 
    643          
     646 
    644647        # Handle hide/show contributions option 
    645648        hideContributions = None; 
     
    651654                    hideContributions = "" 
    652655        vars["hideContributions"] = hideContributions; 
    653          
     656 
    654657        if Config.getInstance().getIndicoSearchServer() != '' : 
    655             vars["searchBox"] = WCategorySearchBox(optionsClass='meetingHeaderSearchBox').getHTML()             
     658            vars["searchBox"] = WCategorySearchBox(optionsClass='meetingHeaderSearchBox').getHTML() 
    656659        else: 
    657660            vars["searchBox"] = "" 
    658          
     661 
    659662        urlCustPrint = urlHandlers.UHConferenceOtherViews.getURL(self._conf) 
    660663        urlCustPrint.addParam("showDate", vars.get("selectedDate", "all")) 
     
    664667        urlCustPrint.addParam("view", vars["currentView"]) 
    665668        vars["printURL"]=str(urlCustPrint) 
    666          
     669 
    667670 
    668671        urlCustPDF=urlHandlers.UHConfTimeTableCustomizePDF.getURL(self._conf) 
     
    671674        vars["pdfURL"]=str(urlCustPDF) 
    672675 
    673          
     676 
    674677        return vars 
    675678 
    676679class WMenuSimpleEventHeader( WMenuMeetingHeader ): 
    677     """Templating web component for generating the HTML header for  
     680    """Templating web component for generating the HTML header for 
    678681        the simple event' web interface with a menu 
    679682    """ 
    680      
     683 
    681684    def getVars( self ): 
    682685        vars = WMenuMeetingHeader.getVars( self ) 
     
    693696        vars["viewoptions"] = viewoptions 
    694697        vars["SelectedStyle"] = styleMgr.getStylesheetName(vars["currentView"]) 
    695          
     698 
    696699        vars["showFilterButton"] = False 
    697700        vars["showExportToPDF"] = False 
    698701        vars["showMore"] = True 
    699              
     702 
    700703        vars["accessWrapper"] = self._aw 
    701704        return vars 
    702705 
    703706 
    704      
     707 
    705708class WFooter(WTemplated): 
    706     """Templating web component for generating a common HTML footer for the  
     709    """Templating web component for generating a common HTML footer for the 
    707710        web interface. 
    708711    """ 
    709      
     712 
    710713    def __init__(self, tpl_name = None, isFrontPage = False): 
    711714        WTemplated.__init__(self, tpl_name) 
    712715        self.__isFrontPage = isFrontPage 
    713          
    714     def getVars( self ): 
    715         vars = WTemplated.getVars( self ) 
    716          
     716 
     717    def getVars( self ): 
     718        vars = WTemplated.getVars( self ) 
     719 
    717720        vars["isFrontPage"] = self.__isFrontPage; 
    718          
     721 
    719722        if not vars.has_key("modificationDate"): 
    720723            vars["modificationDate"] = "" 
    721          
     724 
    722725        if not vars.has_key("shortURL"): 
    723726            vars["shortURL"] = "" 
    724          
    725         return vars 
    726      
     727 
     728        return vars 
     729 
    727730class WNavigationDrawer(WTemplated): 
    728731 
     
    732735        self._track = pars.get("track", None) #for abstracts viewed inside a track 
    733736        self._bgColor = bgColor 
    734          
     737 
    735738        """ 
    736739            The appendPath is an array with dictionaries: {"url": x, "title": x}. 
    737             Each of these links are added in the end of the breadcrumb  
     740            Each of these links are added in the end of the breadcrumb 
    738741        """ 
    739742        self._appendPath = appendPath 
     
    747750        vars["appendPath"] = self._appendPath 
    748751        return vars 
    749      
     752 
    750753    def getHTML(self, params=None): 
    751754        return WTemplated.getHTML(self, params) 
    752755 
    753756class WSimpleNavigationDrawer(WTemplated): 
    754      
     757 
    755758    def __init__( self, title, handler = None, bgColor = None, **pars  ): 
    756759        self._urlHandler = handler 
     
    758761        self._title = title 
    759762        self._bgColor = bgColor 
    760          
     763 
    761764    def getVars( self ): 
    762765        vars = WTemplated.getVars( self ) 
     
    766769        vars["bgColor"] = self._bgColor 
    767770        return vars 
    768      
     771 
    769772    def getHTML(self, params=None): 
    770773        return WTemplated.getHTML(self, params) 
    771      
     774 
    772775class WBannerModif(WTemplated): 
    773      
     776 
    774777    def __init__( self, path = [], itemType = "", title = "" ): 
    775778        WTemplated.__init__( self, "BannerModif" ) 
     
    777780        self._title = title 
    778781        self._type = itemType 
    779          
     782 
    780783    def getHTML(self): 
    781784        """ Retrieves the HTML of the banner of the modification interface 
     
    785788            of the breadcrumb showed in the banner. 
    786789        """ 
    787          
     790 
    788791        return WTemplated.getHTML(self, {"type" : self._type, "path": self._path, "title": self._title}) 
    789792 
     
    800803        title = target.getTitle() 
    801804        WBannerModif.__init__(self, path, itemType, title) 
    802          
     805 
    803806    def _getOwnerBasePath(self, target): 
    804807        path = [] 
     
    815818 
    816819class WContribListBannerModif(WTimetableBannerModif): 
    817      
     820 
    818821    def __init__(self, target ): 
    819822        ## PATH 
     
    826829        title = target.getTitle() 
    827830        WBannerModif.__init__(self, path, itemType, title) 
    828      
     831 
    829832 
    830833class WNotifTplBannerModif(WBannerModif): 
    831      
     834 
    832835    def __init__( self, target ): 
    833836        path = [{"url": urlHandlers.UHConfModifCFA.getURL(target), "title":_("Call for abstracts setup")}] 
     
    837840 
    838841class WAbstractBannerModif(WBannerModif): 
    839      
     842 
    840843    def __init__( self, target ): 
    841844        path = [{"url": urlHandlers.UHConfAbstractManagment.getURL(target), "title":_("Abstracts list")}] 
     
    843846        title=target.getTitle() 
    844847        WBannerModif.__init__(self, path, itemType, title) 
    845          
     848 
    846849class WTrackBannerModif(WBannerModif): 
    847      
     850 
    848851    def __init__( self, track, abstract=None ): 
    849852        path = [] 
     
    858861        title=target.getTitle() 
    859862        WBannerModif.__init__(self, path, itemType, title) 
    860          
     863 
    861864class WCategoryBannerModif(WBannerModif): 
    862      
     865 
    863866    def __init__( self, target ): 
    864867        itemType="Category" 
     
    867870 
    868871class WRegFormBannerModif(WBannerModif): 
    869      
     872 
    870873    def __init__( self, registrant ): 
    871874        path=[{"url": urlHandlers.UHConfModifRegistrantList.getURL(registrant.getConference()), "title":_("Registrants list")}] 
    872          
     875 
    873876        itemType="Registrant" 
    874877        title=registrant.getFullName() 
     
    876879 
    877880class WRegFormSectionBannerModif(WBannerModif): 
    878      
     881 
    879882    def __init__( self, target, conf ): 
    880883        path=[{"url": urlHandlers.UHConfModifRegForm.getURL(conf), "title":_("Registration form setup")}] 
    881          
     884 
    882885        itemType="Registration form Section" 
    883886        title=target.getTitle() 
     
    885888 
    886889class WEpaymentBannerModif(WBannerModif): 
    887      
     890 
    888891    def __init__( self, target, conf ): 
    889892        path=[{"url": urlHandlers.UHConfModifEPayment.getURL(conf), "title":_("Epayment setup")}] 
    890          
     893 
    891894        itemType="Epayment plugin" 
    892895        title=target.getTitle() 
     
    894897 
    895898class WListingsBannerModif(WBannerModif): 
    896      
     899 
    897900    def __init__( self, conf ): 
    898901        path=[{"url": urlHandlers.UHConfModifListings.getURL(conf), "title":_("All listings")}] 
    899          
     902 
    900903        itemType="Pending queues" 
    901904        title="" 
     
    903906 
    904907class WParticipantsBannerModif(WBannerModif): 
    905      
     908 
    906909    def __init__( self, conf ): 
    907910        path=[{"url": urlHandlers.UHConfModifParticipants.getURL(conf), "title":_("Participants list")}] 
    908          
     911 
    909912        itemType="Pending participants" 
    910913        title="" 
     
    913916 
    914917class WConfLogsBannerModif(WBannerModif): 
    915      
     918 
    916919    def __init__( self, conf ): 
    917920        path=[{"url": urlHandlers.UHConfModifLog.getURL(conf), "title":_("Logs")}] 
    918          
     921 
    919922        itemType="Log item" 
    920923        title="" 
     
    922925 
    923926class WCategModifHeader(WTemplated): 
    924      
     927 
    925928    def __init__(self, targetConf ): 
    926929        self._conf = targetConf 
    927          
     930 
    928931    def _getSingleCategHTML( self, categ, URLGen ): 
    929        
     932 
    930933        return """<a href="%s">%s</a>"""%(URLGen( categ ), categ.getName()) 
    931   
     934 
    932935    def _getMultipleCategHTML( self, categList, URLGen ): 
    933936        l = [] 
     
    939942                        <input type="submit" class="btn" value="_("go")"> 
    940943                    </form>""")%(URLGen(), "".join(l)) 
    941     
    942     def getVars( self ): 
    943          
     944 
     945    def getVars( self ): 
     946 
    944947        vars = WTemplated.getVars( self ) 
    945948        #raise "%s"%(type(self._conf)) 
     
    950953        #raise "%s"%ol 
    951954        URLGen = vars.get("categDisplayURLGen", urlHandlers.UHCategoryDisplay.getURL ) 
    952          
     955 
    953956        try: 
    954957            if len(ol)>1: 
     
    960963            vars["categ"] = self._getSingleCategHTML( ol, URLGen) 
    961964            vars["viewImageURL"] = Configuration.Config.getInstance().getSystemIconURL( "view" ) 
    962          
     965 
    963966        return vars 
    964967 
    965968 
    966969class WCategoryModificationHeader(WTemplated): 
    967      
    968      
     970 
     971 
    969972    def __init__( self, category ): 
    970973        self._categ = category 
     
    972975    def getVars( self ): 
    973976        vars = WTemplated.getVars( self ) 
    974          
     977 
    975978        vars["confTitle"] = self._categ.getName() 
    976979        vars["title"] = self._categ.getName() 
     
    981984        vars["eventCaption"]= "Category" 
    982985        return vars 
    983          
     986 
    984987    def getIntermediateVTabPixels( self ): 
    985988        return 0 
    986          
     989 
    987990    def getTitleTabPixels( self ): 
    988991        return 260 
    989992 
    990993class WConfModifHeader(WTemplated): 
    991      
     994 
    992995    def __init__( self, conf, aw ): 
    993996        self._conf = conf 
     
    10171020            type = "lecture" 
    10181021        vars["eventCaption"]=type.capitalize()#"Event" 
    1019          
    1020          
     1022 
     1023 
    10211024        return vars 
    10221025 
    10231026 
    10241027class WSessionModifHeader(WTemplated): 
    1025      
     1028 
    10261029    def __init__( self, session, aw ): 
    10271030        self._session = session 
     
    10421045 
    10431046class WBreakModifHeader(WTemplated): 
    1044      
     1047 
    10451048    def __init__( self, breakSlot, aw ): 
    10461049        self._break = breakSlot 
     
    10581061 
    10591062class WContribModifHeader(WTemplated): 
    1060      
     1063 
    10611064    def __init__( self, contrib, aw): 
    10621065        self._contrib = contrib 
     
    10751078        vars = WTemplated.getVars( self ) 
    10761079        vars["imgGestionGrey"] = Configuration.Config.getInstance().getSystemIconURL( "gestionGrey" ) 
    1077         vars["title"] = escape(self._contrib.getTitle())         
     1080        vars["title"] = escape(self._contrib.getTitle()) 
    10781081        urlGen = vars.get( "contribDisplayURLGen", urlHandlers.UHContributionDisplay.getURL ) 
    10791082        vars["contribDisplayURL"] = urlGen(self._contrib) 
     
    10841087 
    10851088class WContribModifTool(WTemplated): 
    1086      
     1089 
    10871090    def __init__( self, contrib ): 
    10881091        self._contrib = contrib 
    1089      
     1092 
    10901093    def getVars( self ): 
    10911094        vars = WTemplated.getVars( self ) 
     
    10941097        vars["writeIconURL"] = Configuration.Config.getInstance().getSystemIconURL("write_minutes") 
    10951098        return vars 
    1096          
     1099 
    10971100 
    10981101 
    10991102class WContributionDeletion(object): 
    1100      
     1103 
    11011104    def __init__( self, contribList ): 
    11021105        self._contribList = contribList 
     
    11211124                </ul> 
    11221125                </td></tr> 
    1123             </table>  
     1126            </table> 
    11241127              """)%("".join(l)) 
    11251128        wc = WConfirmation() 
     
    11381141 
    11391142class WContribModifSC(WTemplated): 
    1140      
     1143 
    11411144    def __init__( self, contrib ): 
    11421145        self._contrib = contrib 
    11431146        self._conf = self._contrib.getConference() 
    1144          
     1147 
    11451148 
    11461149    def getSubContItems(self,SCModifURL): 
     
    11701173                </table>"""%"".join( temp ) 
    11711174        return html 
    1172      
     1175 
    11731176    def getVars( self ): 
    11741177        vars = WTemplated.getVars( self ) 
     
    11781181        vars["contribId"] = self._contrib.getId() 
    11791182        vars["deleteItemsURL"] = vars["moveSubContribURL"] 
    1180          
     1183 
    11811184        return vars 
    11821185###ness################################################################################## 
     
    12091212 
    12101213class WMaterialModifHeader(WTemplated): 
    1211      
     1214 
    12121215    def __init__( self, material, aw ): 
    12131216        self._mat = material 
     
    12371240        return vars 
    12381241 
    1239      
     1242 
    12401243class WConferenceModifFrame(WTemplated): 
    1241      
     1244 
    12421245    def __init__( self, conference, aw,): 
    12431246        self.__conf = conference 
     
    12461249    def getHTML( self, body, **params ): 
    12471250        params["body"] = body 
    1248         return WTemplated.getHTML( self, params )  
     1251        return WTemplated.getHTML( self, params ) 
    12491252 
    12501253    def getVars( self ): 
     
    12551258 
    12561259        return vars 
    1257      
     1260 
    12581261class WCategoryModifFrame(WTemplated): 
    1259      
     1262 
    12601263    def __init__( self, conference): 
    12611264        self.__conf = conference 
    1262          
     1265 
    12631266 
    12641267    def getHTML( self, body, **params ): 
    12651268        params["body"] = body 
    1266         return WTemplated.getHTML( self, params )  
     1269        return WTemplated.getHTML( self, params ) 
    12671270 
    12681271    def getVars( self ): 
     
    12791282        return vars 
    12801283 
    1281      
     1284 
    12821285    def getIntermediateVTabPixels( self ): 
    12831286        return 0 
    1284          
     1287 
    12851288    def getTitleTabPixels( self ): 
    12861289        return 260 
    1287      
     1290 
    12881291    def getCloseHeaderTags( self ): 
    12891292        return "" 
    12901293 
    12911294class WNotifTPLModifFrame(WTemplated): 
    1292      
     1295 
    12931296    def __init__(self, notifTpl, aw): 
    12941297        self._notifTpl = notifTpl 
    12951298        self._aw = aw 
    1296      
     1299 
    12971300    def getHTML( self, body, **params ): 
    12981301        params["body"] = body 
    12991302        return WTemplated.getHTML( self, params ) 
    1300      
     1303 
    13011304    def getVars( self ): 
    13021305        vars = WTemplated.getVars( self ) 
     
    13131316        wc = WConferenceModifFrame(owner, self._aw) 
    13141317        return wc 
    1315          
     1318 
    13161319    def getIntermediateVTabPixels( self ): 
    13171320        wc = self.getOwnerComponent() 
    13181321        return 7 + wc.getIntermediateVTabPixels() 
    1319          
     1322 
    13201323    def getTitleTabPixels( self ): 
    13211324        wc = self.getOwnerComponent() 
    13221325        return wc.getTitleTabPixels() - 7 
    1323      
     1326 
    13241327    def getCloseHeaderTags( self ): 
    13251328        wc = self.getOwnerComponent() 
     
    13281331 
    13291332class WScheduleContributionModifFrame(WTemplated): 
    1330      
     1333 
    13311334    def __init__( self, contribution, aw, days, handler=urlHandlers.UHContributionModification): 
    13321335        self._contrib = contribution 
     
    13361339        self._handler = handler 
    13371340 
    1338     def getHTML( self, body, **params ):         
    1339          
     1341    def getHTML( self, body, **params ): 
     1342 
    13401343        params["body"] = body 
    1341          
     1344 
    13421345        dateList = [d.getDate() for d in self._days] 
    1343          
     1346 
    13441347        # Keep contributions that happen in the selected day(s) 
    13451348 
     
    13501353 
    13511354        ### 
    1352              
     1355 
    13531356        l = [] 
    13541357        for contrib in self._conf.getContributionList(): 
     
    13571360        params["contribList"] = l 
    13581361        params["handler"] = self._handler 
    1359          
     1362 
    13601363        return WTemplated.getHTML( self, params ) 
    13611364 
    13621365class WContributionModifFrame(WTemplated): 
    1363      
     1366 
    13641367    def __init__( self, contribution, aw): 
    13651368        self._contrib = contribution 
     
    13771380 
    13781381class WMaterialModifFrame(WTemplated): 
    1379      
     1382 
    13801383    def __init__( self, material, aw): 
    13811384        self._material = material 
     
    13951398        elif isinstance(owner, conference.Session): 
    13961399            wc = WSessionModifHeader( owner, self._aw ) 
    1397         elif isinstance(owner, conference.SubContribution):          
     1400        elif isinstance(owner, conference.SubContribution): 
    13981401            wc = WSubContribModifHeader( owner, self._aw ) 
    13991402        elif isinstance(owner, conference.Category) : 
    1400             wc = WCategoryModificationHeader(owner)   
    1401         else:        
     1403            wc = WCategoryModificationHeader(owner) 
     1404        else: 
    14021405            wc = WConfModifHeader( owner, self._aw ) 
    14031406        vars["context"] = wc.getHTML( vars ) 
     
    14081411        vars["materialDisplayURL"] = vars["materialDisplayURLGen"]( self._material ) 
    14091412        return vars 
    1410          
     1413 
    14111414    def getOwnerComponent( self ): 
    14121415        owner = self._material.getOwner() 
     
    14171420        elif isinstance(owner, conference.SubContribution): 
    14181421            wc = WSubContributionModifFrame(owner, self._aw) 
    1419          
     1422 
    14201423        else: 
    14211424            wc = WConferenceModifFrame(owner, self._aw) 
    14221425        return wc 
    1423          
     1426 
    14241427    def getIntermediateVTabPixels( self ): 
    14251428        wc = self.getOwnerComponent() 
    14261429        return 7 + wc.getIntermediateVTabPixels() 
    1427          
     1430 
    14281431    def getTitleTabPixels( self ): 
    14291432        wc = self.getOwnerComponent() 
    14301433        return wc.getTitleTabPixels() - 7 
    1431      
     1434 
    14321435    def getCloseHeaderTags( self ): 
    14331436        wc = self.getOwnerComponent() 
     
    14361439 
    14371440class WResourceModifFrame(WTemplated): 
    1438      
     1441 
    14391442    def __init__( self, resource, aw): 
    14401443        self._resource = resource 
     
    14541457        vars["closeHeaderTags"] = self.getCloseHeaderTags() 
    14551458        return vars 
    1456          
     1459 
    14571460    def getOwnerComponent( self ): 
    14581461        owner = self._resource.getOwner() 
    14591462        wc = WMaterialModifFrame(owner, self._aw) 
    14601463        return wc 
    1461          
     1464 
    14621465    def getIntermediateVTabPixels( self ): 
    14631466        wc = self.getOwnerComponent() 
    14641467        return 7 + wc.getIntermediateVTabPixels() 
    1465          
     1468 
    14661469    def getTitleTabPixels( self ): 
    14671470        wc = self.getOwnerComponent() 
    14681471        return wc.getTitleTabPixels() - 7 
    1469      
     1472 
    14701473    def getCloseHeaderTags( self ): 
    14711474        wc = self.getOwnerComponent() 
     
    14831486 
    14841487class ModifFrameFactory: 
    1485      
     1488 
    14861489    def getFrameClass( cls, target ): 
    14871490        if isinstance(target, conference.Conference): 
     
    15011504        return None 
    15021505    getFrameClass = classmethod( getFrameClass ) 
    1503          
     1506 
    15041507    def getModifFrame( target ): 
    15051508        f = ModifFrameFactory.getFrameClass( target ) 
     
    15111514 
    15121515class WSubContributionDisplay: 
    1513      
     1516 
    15141517    def __init__(self, aw, subContrib): 
    15151518        self._aw = aw 
     
    15261529 
    15271530class WSubContributionDisplayBase(WTemplated): 
    1528      
     1531 
    15291532    def __init__(self, aw, subContrib): 
    15301533        self._aw = aw 
     
    15761579 
    15771580class WMaterialDisplayItem(WTemplated): 
    1578      
     1581 
    15791582    def getHTML( self, aw, material, URL="", icon=Configuration.Config.getInstance().getSystemIconURL( "material" ) ): 
    15801583        if material.canView( aw ): 
    1581              
     1584 
    15821585            return """<a href=%s>%s</a>"""%(quoteattr( str( URL ) ), WTemplated.htmlText( material.getTitle() ) ) 
    15831586        return "" 
     
    15851588 
    15861589class WBreakDataModification(WTemplated): 
    1587      
     1590 
    15881591    def __init__(self,sch,breakEntry=None,targetDay=None,conf=None): 
    15891592        self._break=breakEntry 
     
    16611664            vars["ownerRoom"] = ownerRoom.getName() 
    16621665        vars["roomName"] = quoteattr(str(roomName)) 
    1663              
     1666 
    16641667        vars["WPtitle"]=wpTitle 
    16651668        vars["title"]=quoteattr(str(title)) 
     
    17061709        vars['rbActive'] = info.HelperMaKaCInfo.getMaKaCInfoInstance().getRoomBookingModuleActive() 
    17071710        return vars 
    1708   
     1711 
    17091712 
    17101713class WMaterialTable( WTemplated ): 
    17111714    # Deprecated - used in old file management scheme 
    1712      
     1715 
    17131716    def __init__(self, matOwner, registry = None ): 
    17141717        self._owner = matOwner 
    17151718        self._fr = registry 
    1716      
     1719 
    17171720    def _getAdditionalMaterialItems( self ): 
    17181721        l = [] 
     
    17401743        return "".join(l) 
    17411744 
    1742     def _getSpecialMaterialItems( self ):  
     1745    def _getSpecialMaterialItems( self ): 
    17431746        if not self._fr: 
    17441747            return "" 
     
    17761779 
    17771780        hiddenParams = self._owner.getLocator().getWebForm() 
    1778              
     1781 
    17791782        return WTemplated.getHTML( self, params ) 
    17801783 
     
    17951798 
    17961799class WAccessControlFrame(WTemplated): 
    1797          
     1800 
    17981801    def getHTML( self, target, setVisibilityURL, addAllowedURL, removeAllowedURL): 
    17991802        self.__target = target 
     
    18251828 
    18261829        return vars 
    1827      
     1830 
    18281831 
    18291832class WConfAccessControlFrame(WTemplated): 
    1830      
     1833 
    18311834    def getHTML( self, target, setVisibilityURL, addAllowedURL, removeAllowedURL,  setAccessKeyURL): 
    18321835        self.__target = target 
     
    18381841 
    18391842    def getVars( self ): 
    1840         vars = WTemplated.getVars( self )         
     1843        vars = WTemplated.getVars( self ) 
    18411844        if self.__target.getAccessProtectionLevel() == -1: 
    18421845            vars["privacy"] = "ABSOLUTELY PUBLIC%s" % WInlineContextHelp('The object will stay public regardless of the protection of its parent (no more inheritance)').getHTML() 
     
    18591862            vars["changePrivacy"] = """make it <input type="submit" class="btn" name="visibility" value="PRIVATE"> by itself<br/>""" 
    18601863            vars["changePrivacy"] += """make it <input type="submit" class="btn" name="visibility" value="ABSOLUTELY PUBLIC">%s""" % WInlineContextHelp('The object will stay public regardless of the protection of its parent').getHTML() 
    1861              
     1864 
    18621865        vars["locator"] = self.__target.getLocator().getWebForm() 
    18631866        vars["userTable"] = WPrincipalTable().getHTML( self.__target.getAllowedToAccessList(), 
     
    19191922 
    19201923class WGroupTableItem(WTemplated): 
    1921      
     1924 
    19221925    def __init__(self, multi=True): 
    19231926        self._multi = multi 
    1924      
     1927 
    19251928    def getHTML( self, group, selected=False, selectable=True ): 
    19261929        self.__group = group 
     
    19461949 
    19471950class WGroupNICETableItem(WTemplated): 
    1948      
     1951 
    19491952    def __init__(self, multi=True): 
    19501953        self._multi = multi 
    1951      
     1954 
    19521955    def getHTML( self, group, selected=False, selectable=True ): 
    19531956        self.__group = group 
     
    19721975 
    19731976class WAuthorTableItem(WTemplated): 
    1974      
     1977 
    19751978    def __init__(self, multi=False): 
    19761979        self._multi = multi 
    1977      
     1980 
    19781981    def getHTML( self, author, selected=False ): 
    19791982        self.__author = author 
     
    19972000 
    19982001class WPrincipalTable(WTemplated): 
    1999      
     2002 
    20002003    def getHTML( self, principalList, target, addPrincipalsURL, removePrincipalsURL, pendings=[], selectable=True ): 
    20012004        self.__principalList = principalList 
     
    20302033 
    20312034class WModificationControlFrame(WTemplated): 
    2032      
     2035 
    20332036    def getHTML( self, target, addManagersURL, removeManagersURL ): 
    20342037        self.__target = target 
     
    20402043        vars = WTemplated.getVars( self ) 
    20412044        vars["locator"] = self.__target.getLocator().getWebForm() 
    2042         vars["principalTable"] = WPrincipalTable().getHTML( self.__target.getManagerList(),  
     2045        vars["principalTable"] = WPrincipalTable().getHTML( self.__target.getManagerList(), 
    20432046                                                            self.__target,vars["addManagersURL"], 
    20442047                                                            vars["removeManagersURL"], 
    20452048                                                            pendings=self.__target.getAccessController().getModificationEmail(), 
    20462049                                                            selectable=False) 
    2047          
     2050 
    20482051        return vars 
    20492052 
    20502053 
    20512054class WConfModificationControlFrame(WTemplated): 
    2052      
     2055 
    20532056    def getHTML( self, target, addManagersURL, removeManagersURL, setModifKeyURL ): 
    20542057        self.__target = target 
     
    20612064        vars = WTemplated.getVars( self ) 
    20622065        vars["locator"] = self.__target.getLocator().getWebForm() 
    2063         vars["principalTable"] = WPrincipalTable().getHTML( self.__target.getManagerList(),  
     2066        vars["principalTable"] = WPrincipalTable().getHTML( self.__target.getManagerList(), 
    20642067                                                            self.__target, vars["addManagersURL"], 
    20652068                                                            vars["removeManagersURL"], 
     
    20702073 
    20712074class WConfRegistrarsControlFrame(WTemplated): 
    2072      
     2075 
    20732076    def getHTML(self, target, addRegistrarURL, removeRegistrarURL): 
    20742077        self.__target = target 
     
    20862089 
    20872090class WAlarmFrame(WTemplated): 
    2088      
     2091 
    20892092    def getHTML( self, target, addAlarmURL, deleteAlarmURL, modifyAlarmURL ): 
    20902093        self.__target = target 
     
    20932096        params = { "addAlarmURL": addAlarmURL, \ 
    20942097                   "deleteAlarmURL": deleteAlarmURL, \ 
    2095                    "modifyAlarmURL": modifyAlarmURL                    
     2098                   "modifyAlarmURL": modifyAlarmURL 
    20962099                   } 
    20972100        return  WTemplated.getHTML( self, params ) 
     
    21072110            for user in al.getToUserList(): 
    21082111                addr = addr + user.getEmail() + " <br> " 
    2109              
     2112 
    21102113            if al.getToAllParticipants() : 
    21112114                addr = "to all participants" 
     
    21512154 
    21522155class WDomainControlFrame(WTemplated): 
    2153      
     2156 
    21542157    def __init__( self, target ): 
    21552158        self._target = target 
     
    21692172        for dom in domain.DomainHolder().getList(): 
    21702173            if dom not in self._target.getDomainList(): 
    2171                 l.append("""<option value="%s">%s</option>"""%(dom.getId(), dom.getName()))  
     2174                l.append("""<option value="%s">%s</option>"""%(dom.getId(), dom.getName())) 
    21722175        vars["domainsToAdd"] = "".join(l) 
    21732176        vars["removeURL"] = self._removeURL 
     
    21752178        vars["locator"] = self._target.getLocator().getWebForm() 
    21762179        return vars 
    2177      
    2178      
     2180 
     2181 
    21792182class WMaterialDataModificationBase(WTemplated): 
    2180      
     2183 
    21812184    def __init__( self, material ): 
    21822185        self._material = material 
    21832186        self._owner = material.getOwner() 
    2184      
     2187 
    21852188    def _setMaterialValues( self, material, materialData ): 
    21862189        material.setTitle( materialData["title"] ) 
     
    21882191        if "type" in materialData: 
    21892192            material.setType( materialData["type"] ) 
    2190      
     2193 
    21912194    def _getTypesSelectItems( self, default = "misc" ): 
    21922195        definedTypes = ["misc"] 
     
    22022205 
    22032206class WMaterialCreation(WMaterialDataModificationBase): 
    2204      
     2207 
    22052208    def __init__( self, owner): 
    22062209        self._owner = owner 
    22072210 
    2208      
     2211 
    22092212    def getVars( self ): 
    22102213        vars = WMaterialDataModificationBase.getVars( self ) 
     
    22142217        vars["locator"] = self._owner.getLocator().getWebForm() 
    22152218        return vars 
    2216      
     2219 
    22172220    def create( self, materialData ): 
    22182221        m = conference.Material() 
     
    22202223        self._owner.addMaterial( m ) 
    22212224        return m 
    2222      
     2225 
    22232226class WInlineContextHelp(WTemplated): 
    22242227 
     
    22312234        vars["imgSrc"] = Config.getInstance().getSystemIconURL( "help" ) 
    22322235        return vars 
    2233          
     2236 
    22342237#class WPaperDataModification( WMaterialDataModification ): 
    22352238#    pass 
    22362239 
    22372240#class WMaterialModification( WTemplated ): 
    2238 #     
     2241# 
    22392242#    def __init__( self, material ): 
    22402243#        self._material = material 
     
    22422245#        self.__session = material.getSession() 
    22432246#        self.__contrib = material.getContribution() 
    2244 #     
     2247# 
    22452248#    def getVars( self ): 
    22462249#        vars = WTemplated.getVars( self ) 
     
    22932296#            self._matParent = self._contrib 
    22942297#        if materialId != None and materialId != "": 
    2295 #            self._material = self._matParent.getMaterialById( materialId )  
     2298#            self._material = self._matParent.getMaterialById( materialId ) 
    22962299# 
    22972300#    def getHTML( self, confId, sessionId, contribId, materialId, params ): 
     
    23112314 
    23122315#class WFileSubmission(WTemplated): 
    2313 #     
     2316# 
    23142317#    def __init__(self, material): 
    23152318#        self.__material = material 
     
    23372340 
    23382341#class WLinkSubmission(WResourceSubmission): 
    2339 #     
     2342# 
    23402343#    def __init__(self, material): 
    23412344#        self.__material = material 
     
    23622365 
    23632366class WResourceModification(WTemplated): 
    2364      
     2367 
    23652368    def __init__( self, resource ): 
    23662369        self._resource = resource 
     
    23692372        self._contrib = resource.getContribution() 
    23702373        self._material = resource.getOwner() 
    2371      
     2374 
    23722375    def getVars( self ): 
    23732376        vars = WTemplated.getVars( self ) 
     
    23902393                                                    vars["setModifKeyURL"] ) 
    23912394        return vars 
    2392      
     2395 
    23932396 
    23942397class WResourceDataModification(WResourceModification): 
    2395      
     2398 
    23962399    def getHTML(self, params): 
    23972400        str = """ 
     
    24032406                   self._resource.getLocator().getWebForm(),\ 
    24042407                   WTemplated.getHTML( self, params ) ) 
    2405         return str     
     2408        return str 
    24062409 
    24072410    def getVars( self ): 
     
    24132416 
    24142417class WUserRegistration(WTemplated): 
    2415      
     2418 
    24162419    def __init__( self, av = None ): 
    24172420        self._avatar = av 
     
    24552458            vars = self.__defineExistingUserVars( vars ) 
    24562459            vars["locator"] = self._avatar.getLocator().getWebForm() 
    2457          
     2460 
    24582461        #note: there's a reason this line is TitlesRegistry() and not just TitlesRegistry 
    24592462        #methods in TitlesRegistry cannot be classmethods because _items cannot be a class 
     
    24752478 
    24762479class WUserCreated(WTemplated): 
    2477      
     2480 
    24782481    def __init__( self, av = None ): 
    24792482        self._avatar = av 
    2480      
     2483 
    24812484    def getVars( self ): 
    24822485        vars = WTemplated.getVars( self ) 
     
    24912494 
    24922495class WUserSendIdentity(WTemplated): 
    2493      
     2496 
    24942497    def __init__( self, av = None ): 
    24952498        self._avatar = av 
    2496      
     2499 
    24972500    def getVars( self ): 
    24982501        vars = WTemplated.getVars( self ) 
     
    25092512 
    25102513class WUserSearchResultsTable( WTemplated ): 
    2511      
     2514 
    25122515    def __init__(self, multi=True): 
    25132516        self._multi = multi 
     
    25232526            return WAuthorTableItem 
    25242527        return None 
    2525      
     2528 
    25262529    def getHTML( self, resultList ): 
    25272530        self.__resultList = resultList 
     
    25442547        return vars 
    25452548 
    2546      
     2549 
    25472550class WSignIn(WTemplated): 
    25482551 
     
    25702573 
    25712574class WConfirmation(WTemplated): 
    2572      
     2575 
    25732576    def getHTML( self, message, postURL, passingArgs, **opts): 
    25742577        params = {} 
     
    25882591 
    25892592class WDisplayConfirmation(WTemplated): 
    2590      
     2593 
    25912594    def getHTML( self, message, postURL, passingArgs, **opts): 
    25922595        params = {} 
     
    26122615        self._sections = [] 
    26132616        self._userStatus = userStatus 
    2614         
    2615     def addSection(self, section, top=False):     
     2617 
     2618    def addSection(self, section, top=False): 
    26162619        if top: 
    26172620            self._sections.insert(0, section) 
    26182621        else: 
    26192622            self._sections.append(section) 
    2620          
     2623 
    26212624    def getSections(self): 
    26222625        return self._sections 
    2623          
     2626 
    26242627class ManagementSideMenu(SideMenu): 
    2625          
     2628 
    26262629    def getHTML(self): 
    26272630        return WSideMenu(self, self._userStatus, type="management").getHTML() 
    2628      
     2631 
    26292632class BasicSideMenu(SideMenu): 
    2630      
     2633 
    26312634    def getHTML(self): 
    26322635        return WSideMenu(self, self._userStatus, type="basic").getHTML() 
    26332636 
    26342637class SideMenuSection: 
    2635     """ class coment  
     2638    """ class coment 
    26362639    """ 
    2637      
     2640 
    26382641    def __init__(self, title=None, active=False, currentPage = None, visible=True): 
    26392642        """ -title is the words that will be displayed int he side menu. 
     
    26532656    def getItems(self): 
    26542657        return self._items 
    2655      
     2658 
    26562659    def addItem(self, item): 
    26572660        self._items.append(item) 
    26582661        item.setSection(self) 
    2659      
     2662 
    26602663    def isActive(self): 
    26612664        return self._active 
    2662          
     2665 
    26632666    def setActive(self, val): 
    26642667        self._active = val 
    2665          
     2668 
    26662669    def checkActive(self): 
    2667          
     2670 
    26682671        self._active = False 
    2669          
     2672 
    26702673        for item in self._items: 
    26712674            if item.isActive(): 
    26722675                self._active = True 
    26732676                break 
    2674       
     2677 
    26752678    def getCurrentPage(self): 
    26762679        return self._currentPage 
    2677       
     2680 
    26782681    def setCurrentPage(self, currentPage): 
    26792682        self._currentPage = currentPage 
    2680          
     2683 
    26812684    def isVisible(self): 
    26822685        return self._visible 
    2683      
     2686 
    26842687    def setVisible(self, visible): 
    26852688        self._visible = visible 
    2686          
     2689 
    26872690    def hasVisibleItems(self): 
    26882691        for item in self._items: 
     
    26902693                return True 
    26912694        return False 
    2692     
     2695 
    26932696class SideMenuItem: 
    2694      
     2697 
    26952698    def __init__(self, title, url, active=False, enabled=True, errorMessage = "msgNoPermissions", visible=True): 
    26962699        """ errorMessage: one of the error messages in SideMenu.wohl 
     
    27022705        self._errorMessage = errorMessage 
    27032706        self._visible = visible 
    2704      
     2707 
    27052708    def getTitle(self): 
    27062709        return self._title; 
    2707      
     2710 
    27082711    def setSection(self, section): 
    27092712        self._section = section 
    2710      
     2713 
    27112714    def getURL(self): 
    27122715        return self._url 
    2713      
     2716 
    27142717    def setURL(self, url): 
    27152718        self._url = url 
    2716      
     2719 
    27172720    def isActive(self): 
    27182721        return self._active 
    2719      
     2722 
    27202723    def isEnabled(self): 
    27212724        return self._enabled 
    2722      
     2725 
    27232726    def getErrorMessage(self): 
    27242727        return self._errorMessage 
    2725      
     2728 
    27262729    def setActive(self, val=True): 
    27272730        self._active = val 
    27282731        self._section.checkActive() 
    2729          
     2732 
    27302733    def setEnabled(self, val): 
    27312734        self._enabled = val 
    2732          
     2735 
    27332736    def setErrorMessage(self, val): 
    27342737        self._errorMessage = val 
    2735              
     2738 
    27362739    def isVisible(self): 
    27372740        return self._visible 
    2738      
     2741 
    27392742    def setVisible(self, visible): 
    27402743        self._visible = visible 
    27412744 
    27422745class WSideMenu(WTemplated): 
    2743      
     2746 
    27442747    def __init__(self, menu, loggedIn, type="basic"): 
    27452748        """ 
     
    27482751        self._menu = menu 
    27492752        self._type = type 
    2750          
     2753 
    27512754        # is the user logged in? used for changing some tooltips 
    27522755        self._loggedIn = loggedIn 
    2753      
     2756 
    27542757    def getVars(self): 
    27552758        vars = WTemplated.getVars(self) 
    2756          
     2759 
    27572760        vars['menu'] = self._menu 
    27582761        vars['loggedIn'] = self._loggedIn 
     
    27892792    def setCurrentItem( self, item ): 
    27902793        self.currentItem = item 
    2791          
     2794 
    27922795    def isFirstItem( self, item): 
    27932796        return self.items[0] == item 
    2794          
     2797 
    27952798    def isLastItem( self, item ): 
    27962799        return self.items[len(self.items)-1] == item 
    2797          
     2800 
    27982801    def getHTML( self ): 
    27992802        return WTBDrawer(self).getHTML() 
     
    28012804 
    28022805class WTBItem: 
    2803      
     2806 
    28042807    def __init__( self, caption, **args): 
    28052808        self.owner = None 
     
    28372840    def isEnabled( self ): 
    28382841        return self.enabled 
    2839          
     2842 
    28402843    def hasIcon( self ): 
    2841         return self.icon != ""     
     2844        return self.icon != "" 
    28422845 
    28432846    def addItem( self, newItem ): 
     
    28452848            self.subItems.append( newItem ) 
    28462849            newItem.setOwner( self.owner ) 
    2847      
     2850 
    28482851    def removeItem( self, item ): 
    28492852        if item in self.subItems: 
     
    28522855    def getItemList( self ): 
    28532856        return self.subItems 
    2854          
     2857 
    28552858    def isFirstItem( self, item): 
    28562859        return self.subItems[0] == item 
    2857          
     2860 
    28582861    def isLastItem( self, item ): 
    28592862        i = len(self.subItems)-1 
     
    28632866 
    28642867    def setOwner( self, owner ): 
    2865         self.owner = owner  
     2868        self.owner = owner 
    28662869        for item in self.getItemList(): 
    28672870            item.setOwner( self.owner ) 
     
    28692872 
    28702873class WTBSeparator(WTBItem): 
    2871      
     2874 
    28722875    def __init__( self ): 
    28732876        WTBItem.__init__(self, "") 
    28742877 
    28752878    def setCurrent( self ): 
    2876         return  
     2879        return 
    28772880 
    28782881class WTBGroup( WTBItem ): 
    2879      
     2882 
    28802883    def __init__( self, caption, **args ): 
    28812884        WTBItem.__init__( self, caption, **args ) 
     
    28862889            self.items.append( newItem ) 
    28872890            newItem.setOwner( self.owner ) 
    2888      
     2891 
    28892892    def removeItem( self, item ): 
    28902893        if item in self.items: 
     
    28932896    def getItemList( self ): 
    28942897        return self.items 
    2895          
     2898 
    28962899    def isFirstItem( self, item): 
    28972900        return self.items[0] == item 
    2898          
     2901 
    28992902    def isLastItem( self, item ): 
    29002903        i = len(self.items)-1 
     
    29022905            i -= 1 
    29032906        return self.items[i] == item 
    2904      
     2907 
    29052908    def setOwner( self, owner ): 
    2906         self.owner = owner  
     2909        self.owner = owner 
    29072910        for item in self.getItemList(): 
    29082911            item.setOwner( self.owner ) 
    29092912 
    29102913class WTBSection( WTBItem ): 
    2911      
     2914 
    29122915    def __init__( self, caption, **args ): 
    29132916        WTBItem.__init__( self, caption, **args ) 
     
    29192922            self.items.append( newItem ) 
    29202923            newItem.setOwner( self.owner ) 
    2921      
     2924 
    29222925    def removeItem( self, item ): 
    29232926        if item in self.items: 
     
    29262929    def getItemList( self ): 
    29272930        return self.items 
    2928          
     2931 
    29292932    def isFirstItem( self, item): 
    29302933        return self.items[0] == item 
    2931          
     2934 
    29322935    def isLastItem( self, item ): 
    29332936        i = len(self.items)-1 
     
    29352938            i -= 1 
    29362939        return self.items[i] == item 
    2937      
     2940 
    29382941    def setOwner( self, owner ): 
    2939         self.owner = owner  
     2942        self.owner = owner 
    29402943        for item in self.getItemList(): 
    29412944            item.setOwner( self.owner ) 
    2942      
     2945 
    29432946    def setDrawer( self, d ): 
    29442947        self.drawer = d(self) 
    2945          
     2948 
    29462949    def getDrawer( self ): 
    29472950        return self.drawer 
    2948          
     2951 
    29492952    def hasDrawer( self ): 
    29502953        return self.drawer != None 
     
    29532956    def __init__( self, toolbar ): 
    29542957        self.toolbar = toolbar 
    2955      
     2958 
    29562959    def getHTML( self ): 
    29572960        l = [] 
     
    29672970            l.append(drawer.getHTML()) 
    29682971        return "".join(l) 
    2969          
     2972 
    29702973class WStdTBDrawer(WTemplated): 
    29712974 
    29722975    def __init__( self, item ): 
    29732976        self.item = item 
    2974          
     2977 
    29752978    def _getTBItemCaption( self, item): 
    29762979        return """<tr> 
     
    29892992         style="vertical-align:middle" alt=""></td>"""%(style,\ 
    29902993                         Configuration.Config.getInstance().getSystemIconURL("arrowLeft")) 
    2991      
     2994 
    29922995    def _getIconHTML( self, item, style ): 
    29932996        return """<td class="%s">&nbsp;<img src="%s" alt="" hspace="3" vspace="2"> 
     
    30343037        vars = WTemplated.getVars( self ) 
    30353038        l = [] 
    3036          
     3039 
    30373040        if self.item != None: 
    30383041            for tbItem in self.item.getItemList(): 
     
    30583061        vars["items"] = "".join(l) 
    30593062        return vars 
    3060      
     3063 
    30613064 
    30623065class WStdSectionDrawer(WStdTBDrawer): 
     
    31183121                                            item.getCaption()) 
    31193122        return str 
    3120          
     3123 
    31213124    def _getCurrentIconForItem( self, item, style ): 
    31223125        if item.hasIcon(): 
    31233126            return self._getIconHTML(item, style) 
    31243127        return "" 
    3125          
     3128 
    31263129    def _getStyleForItem( self): 
    31273130        return "menuadd" 
     
    31503153 
    31513154class WConferenceListEvents(WTemplated): 
    3152      
     3155 
    31533156    def __init__( self, items, aw): 
    31543157        self._items = items 
    31553158        self._aw = aw 
    3156          
    3157     def getVars( self ): 
    3158         vars = WTemplated.getVars( self ) 
    3159         vars["items"] = self._items         
     3159 
     3160    def getVars( self ): 
     3161        vars = WTemplated.getVars( self ) 
     3162        vars["items"] = self._items 
    31603163        vars["conferenceDisplayURLGen"] = urlHandlers.UHConferenceDisplay.getURL 
    31613164        vars["aw"] = self._aw 
     
    31643167 
    31653168class WConferenceList(WTemplated): 
    3166      
     3169 
    31673170    def __init__( self, category, wfReg ): 
    31683171        self._categ = category 
     
    31753178    @staticmethod 
    31763179    def sortEvents(list): 
    3177          
     3180 
    31783181        # populate a year -> month -> day -> event (4 level) tree in O(N) time 
    31793182        # each node is a dictionary, so that O(1) is reached for lookup of leaves 
    3180          
     3183 
    31813184        def __addLeaf(map, path, leaf): 
    3182              
     3185 
    31833186            # stop condition 
    31843187            if path == []: 
    31853188                map[leaf.getId()] = leaf 
    31863189                return; 
    3187              
     3190 
    31883191            if not map.has_key(path[0]): 
    31893192                map[path[0]] = {} # virgin node 
    3190                  
     3193 
    31913194            # this reminds me of Prolog... beautiful... 
    31923195            __addLeaf(map[path[0]], path[1:], leaf) 
    3193             
     3196 
    31943197        fList = {} 
    31953198        listByMonth = {} 
     
    32003203            listByMonth.setdefault(startDate.year,{}).setdefault(startDate.month,[]).append(conf) 
    32013204        return fList, listByMonth 
    3202      
     3205 
    32033206    def getPresentPastFutureEvents(self, allEvents, eventsByMonth, numEvents): 
    32043207        """ 
    32053208        @param allEvents: is a dictionary with the format expected by the template ConferenceListItem 
    32063209        @param eventsByMonth: is a dictionary with all the events by year and month. E.g. eventsByMonth[2009][1] == [conf1, conf2,...] 
    3207         @return:   
     3210        @return: 
    32083211            - a dictionary with the same format as allEvents but just with the events to display 
    32093212            - a dictionary with the same format as allEvents but just with the future events 
     
    32123215            - the oldest date of the events that are shown by default 
    32133216        """ 
    3214          
     3217 
    32153218        def getPrevMonth(d): 
    32163219            year = d.year 
     
    32203223                year -= 1 
    32213224            return date(year, prevMonth, 1) 
    3222                  
    3223          
     3225 
     3226 
    32243227        def getNextMonth(d): 
    32253228            year = d.year 
     
    32303233                year += 1 
    32313234            return date(year, nextMonth, 1) 
    3232          
     3235 
    32333236        MAX_NUMBER_OF_EVENTS_SHOWN = 10 
    32343237        if numEvents < MAX_NUMBER_OF_EVENTS_SHOWN: 
    32353238            MAX_NUMBER_OF_EVENTS_SHOWN = numEvents 
    32363239        todayDate = nowutc().date() 
    3237         previousMonthDate, nextMonthDate, newerDateUsed, olderDateUsed = todayDate, todayDate, todayDate, todayDate  
     3240        previousMonthDate, nextMonthDate, newerDateUsed, olderDateUsed = todayDate, todayDate, todayDate, todayDate 
    32383241        nextMonthDate = todayDate 
    3239          
     3242 
    32403243        ## CREATE Present Events dict 
    32413244        presentEvents = {} 
     
    32463249            presentCounter = len(eventsByMonth[todayDate.year][todayDate.month]) 
    32473250        while presentCounter < MAX_NUMBER_OF_EVENTS_SHOWN: 
    3248             previousMonthDate = getPrevMonth(previousMonthDate)  
     3251            previousMonthDate = getPrevMonth(previousMonthDate) 
    32493252            nextMonthDate = getNextMonth(nextMonthDate) 
    32503253            # add nextMonth 
     
    32603263                presentCounter += len(eventsByMonth[previousMonthDate.year][previousMonthDate.month]) 
    32613264                olderDateUsed = previousMonthDate 
    3262              
     3265 
    32633266        ## CREATE future events dict and future/past counter 
    32643267        futureEvents = {} 
     
    32803283                    elif olderDateUsed.year == year and month < olderDateUsed.month: 
    32813284                        pastCounter += len(eventsByMonth[year][month]) 
    3282          
     3285 
    32833286        return presentEvents, futureEvents, futureCounter, pastCounter, olderDateUsed 
    32843287 
     
    32863289        vars = WTemplated.getVars( self ) 
    32873290        allEvents, eventsByMonth = WConferenceList.sortEvents(self._list) 
    3288         #vars["items"], vars["futureItems"], vars["numOfEventsInTheFuture"], vars["numOfEventsInThePast"] = allEvents, allEvents, 0, 0  
     3291        #vars["items"], vars["futureItems"], vars["numOfEventsInTheFuture"], vars["numOfEventsInThePast"] = allEvents, allEvents, 0, 0 
    32893292        vars["presentItems"], vars["futureItems"], vars["numOfEventsInTheFuture"], vars["numOfEventsInThePast"], vars["oldestMonthDate"] =  self.getPresentPastFutureEvents(allEvents, eventsByMonth, len(self._list)) 
    32903293        vars["categ"] = self._categ 
     
    32953298 
    32963299class WCategoryList(WTemplated): 
    3297          
     3300 
    32983301    def __init__( self, categ ): 
    32993302        self._categ = categ 
     
    33053308 
    33063309    def getVars( self ): 
    3307          
    3308         vars = WTemplated.getVars( self )            
     3310 
     3311        vars = WTemplated.getVars( self ) 
    33093312        vars["items"] = self._list 
    33103313        vars["categ"] = self._categ; 
    3311          
     3314 
    33123315        return vars 
    33133316 
     
    33333336 
    33343337class WCategoryStatisticsList(WTemplated): 
    3335      
     3338 
    33363339    def __init__( self, statsName, stats ): 
    33373340        self._stats = stats 
     
    33693372 
    33703373class WConfCreationControlFrame(WTemplated): 
    3371      
     3374 
    33723375    def __init__( self, categ ): 
    33733376        self._categ = categ 
     
    33883391 
    33893392class WWriteMinutes(WTemplated): 
    3390      
     3393 
    33913394    def __init__( self, target ): 
    33923395        self._target = target 
     
    34083411 
    34093412class WMinutesDisplay(WTemplated): 
    3410      
     3413 
    34113414    def __init__( self, target ): 
    34123415        self._target = target 
     
    34183421 
    34193422class TabControl: 
    3420      
     3423 
    34213424    def __init__( self, parent=None, child=None ): 
    34223425        self._tabs = [] 
     
    34523455        if tab in self._tabs: 
    34533456            self._active = tab 
    3454      
     3457 
    34553458    def getActiveTab( self ): 
    34563459        return self._active 
     
    34753478        # retrieve child TabControl 
    34763479        return self._child 
    3477      
     3480 
    34783481    def getLevel( self ): 
    34793482        tmp = self.getParent() 
     
    34833486            tmp = tmp.getParent() 
    34843487        return level 
    3485     
     3488 
    34863489class Tab: 
    3487      
     3490 
    34883491    def __init__( self, owner, id, caption, URL, hidden = False ): 
    34893492        self._owner = owner 
     
    35123515    def isDefault( self ): 
    35133516        return self._owner.getDefaultTab() == self 
    3514      
     3517 
    35153518    def isActive( self ): 
    35163519        return self._owner.getActiveTab() == self 
     
    35443547        if not self._subtabControl: 
    35453548            self._subtabControl = TabControl(parent=self._owner) 
    3546              
     3549 
    35473550        tab=self._subtabControl.newTab( id, caption, url ) 
    35483551        return tab 
    35493552 
    35503553class WConfModifAC: 
    3551      
     3554 
    35523555    def __init__( self, conference ): 
    35533556        self.__conf = conference 
     
    35693572 
    35703573#class WTrackModifSubTrack( WTemplated ): 
    3571 #     
     3574# 
    35723575#    def __init__( self, track ): 
    35733576#        self.__track = track 
     
    35883591 
    35893592#class WSubTrackDataModification(WTemplated): 
    3590 #     
     3593# 
    35913594#    def __init__( self, subTrack ): 
    35923595#        self.__subTrack = subTrack 
    35933596#        self.__track = subTrack.getTrack() 
    3594 #     
     3597# 
    35953598#    def getVars( self ): 
    35963599#        vars = WTemplated.getVars(self) 
    3597 #         
     3600# 
    35983601#        vars["title"] = self.__subTrack.getTitle() 
    35993602#        vars["description"] = self.__subTrack.getDescription() 
    3600 #         
     3603# 
    36013604#        vars["locator"] = self.__subTrack.getLocator().getWebForm() 
    3602 #         
     3605# 
    36033606#        return vars 
    36043607 
    36053608#class WCFAModifFrame(WTemplated): 
    3606 #     
     3609# 
    36073610#    def __init__( self, conf, aw): 
    36083611#        self.__conf = conf 
     
    36153618#    def getVars( self ): 
    36163619#        vars = WTemplated.getVars( self ) 
    3617 #         
     3620# 
    36183621#        vars["context"] = WConfModifHeader( self.__conf, self._aw ).getHTML(vars) 
    3619 #        
    3620 #         
     3622# 
     3623# 
    36213624#        return vars 
    36223625 
    36233626#class WCFAModifMain(WTemplated): 
    3624 #     
     3627# 
    36253628#    def __init__( self, conf ): 
    36263629#        self.__conf = conf 
    3627 #     
     3630# 
    36283631#    def getVars( self ): 
    36293632#        vars = WTemplated.getVars( self ) 
    36303633#        abMgr = self.__conf.getAbstractMgr() 
    3631 #         
     3634# 
    36323635#        vars["startDate"] = abMgr.getStartSubmissionDate().strftime("%A %d %B %Y") 
    36333636#        vars["endDate"] = abMgr.getEndSubmissionDate().strftime("%A %d %B %Y") 
    3634 #         
     3637# 
    36353638#        typeList = "" 
    36363639#        for type in self._conf.getContribTypeList(): 
    36373640#            typeList += "<input type=\"checkbox\" name=\"types\" value=\"%s\">%s<br>\n"%(type.getId(), type.getName()) 
    36383641#        vars["typeList"] = typeList 
    3639 #         
     3642# 
    36403643#        return vars 
    36413644 
    36423645#class WCFARefereeList(WTemplated): 
    3643 #     
     3646# 
    36443647#    def __init__( self, conf ): 
    36453648#        self.__conf = conf 
    3646 #     
     3649# 
    36473650#    def getVars( self ): 
    36483651#        vars = WTemplated.getVars(self) 
     
    36533656    _unSelTabCls="Unselected" 
    36543657    _selTabCls="Selected" 
    3655      
     3658 
    36563659    def __init__( self, ctrl, accessWrapper, **params ): 
    36573660        self._tabCtrl = ctrl 
     
    36683671 
    36693672        html = [] 
    3670    
     3673 
    36713674        # Which css class prefix to use 
    36723675        tabClassPrefix = "" 
     
    36983701                continue 
    36993702            cls=self.__class__._unSelTabCls 
    3700                  
     3703 
    37013704            # Don't add the right border if in sub level and if last elemnt 
    37023705            borderRight = "" 
     
    37103713                self._activeTab = tab 
    37113714                cls=self.__class__._selTabCls 
    3712                      
     3715 
    37133716                if tab.getSubTabControl(): 
    37143717                    self._getTabsHTML(tab.getSubTabControl(), maxtabs) 
     
    37163719            if (tab.isHidden()): 
    37173720                hasHiddenOptions = True 
    3718                  
     3721 
    37193722                hiddenClass = ' hiddenTab' 
    37203723            else: 
     
    37263729            if addGradientDiv: 
    37273730                gradientDiv = """<div class="tabGradient"><div class="tabBorderGradient" style="float: left;"></div><div class="tabBorderGradient" style="float: right;"></div></div>""" 
    3728   
     3731 
    37293732            cssClass = "" 
    37303733            if tabCtrl.getLevel() == 0: 
     
    37343737 
    37353738            self._tabsBars.append("".join(html)) 
    3736              
     3739 
    37373740            return True 
    37383741 
     
    37493752        self._body = body 
    37503753        return WTemplated.getHTML( self ) 
    3751      
     3754 
    37523755    def getVars( self ): 
    37533756        vars = WTemplated.getVars( self ) 
     
    37593762 
    37603763#class WAbstractFilterCtrl( WTemplated ): 
    3761 #     
     3764# 
    37623765#    def __init__(self, conf, filter, sorter): 
    37633766#        self._filter = filter 
    37643767#        self._conf = conf 
    37653768#        self._sorter = sorter 
    3766 #     
     3769# 
    37673770#    def getVars( self ): 
    37683771#        vars = WTemplated.getVars(self) 
    37693772#        abMgr = self._conf.getAbstractMgr() 
    3770 #         
     3773# 
    37713774#        trackFilter = "<option value=\"\">No filter</option>\n" 
    37723775#        for track in self._conf.getTrackList(): 
     
    37763779#            trackFilter += "<option value=\"%s\" %s>%s</option>\n"%(track.getId(), selected, track.getTitle()) 
    37773780#        vars["trackFilter"] = trackFilter 
    3778 #         
     3781# 
    37793782#        typeFilter = "<option value=\"\">No filter</option>\n" 
    37803783#        for type in self._conf.getContribTypeList(): 
     
    37843787#            typeFilter += "<option value=\"%s\" %s>%s</option>\n"%(type.getId(), selected, type) 
    37853788#        vars["typeFilter"] = typeFilter 
    3786 #         
     3789# 
    37873790#        statusFilter = "<option value=\"\">No filter</option>\n" 
    37883791#        for name in StatusName().getNameList(): 
     
    37923795#            statusFilter += "<option value=\"%s\" %s>%s</option>\n"%(name, selected, name) 
    37933796#        vars["statusFilter"] = statusFilter 
    3794 #         
     3797# 
    37953798#        fDay = "<option value=\"\"> </option>\n" 
    37963799#        for i in range(1,32): 
     
    38013804#            fDay += "<option value=\"%s\" %s>%s</option>\n"%(i, selected, i) 
    38023805#        vars["fDay"] = fDay 
    3803 #         
     3806# 
    38043807#        fMonth = "<option value=\"\"> </option>\n" 
    38053808#        month = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] 
     
    38113814#            fMonth += "<option value=\"%s\" %s>%s</option>\n"%(i, selected, month[i-1]) 
    38123815#        vars["fMonth"] = fMonth 
    3813 #         
     3816# 
    38143817#        fYear = "<option value=\"\"> </option>\n" 
    38153818#        for i in range(2000,2011): 
     
    38203823#            fYear += "<option value=\"%s\" %s>%s</option>\n"%(i, selected, i) 
    38213824#        vars["fYear"] = fYear 
    3822 #         
    3823 #         
    3824 #         
     3825# 
     3826# 
     3827# 
    38253828#        tDay = "<option value=\"\"> </option>\n" 
    38263829#        for i in range(1,32): 
     
    38313834#            tDay += "<option value=\"%s\" %s>%s</option>\n"%(i, selected, i) 
    38323835#        vars["tDay"] = tDay 
    3833 #         
     3836# 
    38343837#        tMonth = "<option value=\"\"> </option>\n" 
    38353838#        for i in range(1,13): 
     
    38403843#            tMonth += "<option value=\"%s\" %s>%s</option>\n"%(i, selected, month[i-1]) 
    38413844#        vars["tMonth"] = tMonth 
    3842 #         
     3845# 
    38433846#        tYear = "<option value=\"\"> </option>\n" 
    38443847#        for i in range(2000,2011): 
     
    38493852#            tYear += "<option value=\"%s\" %s>%s</option>\n"%(i, selected, i) 
    38503853#        vars["tYear"] = tYear 
    3851 #         
    3852 #         
    3853 #         
     3854# 
     3855# 
     3856# 
    38543857#        #sortList = ["title", "type", "modification date"] 
    38553858#        selected = "" 
     
    38703873#        sortBy += "<option value=\"status\" %s>Status</option>\n"%selected 
    38713874#        selected = "" 
    3872 #         
     3875# 
    38733876#        if self._sorter["direction"] == "desc": 
    38743877#            vars["ascChecked"] = "" 
     
    38773880#            vars["ascChecked"] = "checked" 
    38783881#            vars["descChecked"] = "" 
    3879 #         
     3882# 
    38803883#        vars["sortBy"] = sortBy 
    3881 #        
    3882 #         
     3884# 
     3885# 
    38833886#        return vars 
    38843887# 
    38853888#class WSubTrackCreation( WTemplated ): 
    3886 #     
     3889# 
    38873890#    def __init__( self, track ): 
    38883891#        self.__track = track 
    3889 #     
     3892# 
    38903893#    def getVars( self ): 
    38913894#        vars = WTemplated.getVars(self) 
     
    38953898 
    38963899#class WSetLogo( WTemplated ): 
    3897 #     
     3900# 
    38983901#    def __init__( self, conference ): 
    38993902#        self.__conf = conference 
    3900 #     
     3903# 
    39013904#    def getVars( self ): 
    39023905#        vars = WTemplated.getVars( self ) 
    39033906#        vars["confTitle"] = self.__conf.getTitle() 
    3904 #         
     3907# 
    39053908#        return vars 
    39063909 
    39073910class WSelectionBox(WTemplated): 
    3908      
     3911 
    39093912    def getVars(self): 
    39103913        vars=WTemplated.getVars(self) 
     
    39163919            vars["table_width"]="" 
    39173920        return vars 
    3918      
     3921 
    39193922class WSelectionBoxAuthors: 
    3920      
     3923 
    39213924    def getHTML(self): 
    39223925        wc=WSelectionBox() 
     
    39313934 
    39323935class WMSelectionBoxAuthors: 
    3933      
     3936 
    39343937    def getHTML(self): 
    39353938        wc=WSelectionBox() 
     
    39433946 
    39443947class WSelectionBoxSubmitter: 
    3945      
     3948 
    39463949    def getHTML(self): 
    39473950        wc=WSelectionBox() 
     
    39913994 
    39923995class WUserSelection(WTemplated): 
    3993      
     3996 
    39943997 
    39953998    def __init__( self, searchURL, multi=True, addTo=0, forceWithoutExtAuth=False): 
     
    40044007        #addTo=4: show selection box to add submitter as speaker. This is just for meetings 
    40054008        self._addTo=addTo 
    4006      
     4009 
    40074010    def _performSearch( self, criteria, exact=0 ): 
    40084011        ah = user.AvatarHolder() 
     
    40384041        #a.setOrganisation( params["organisation"] ) 
    40394042        #user.AvatarHolder().add( a ) 
    4040      
     4043 
    40414044    def _normaliseListParam( self, param ): 
    40424045        if not isinstance(param, list): 
    40434046                return [ param ] 
    4044         return param  
     4047        return param 
    40454048 
    40464049    def getHTML( self, params ): 
     
    40734076        vars["searchResultsTable"] = "" 
    40744077        res=[] 
    4075          
     4078 
    40764079        if self._action == _("search").strip(): 
    40774080            criteria = { "name": vars["firstName"], \ 
     
    41264129        WUserSelection.__init__(self, searchURL, multi, addTo, forceWithoutExtAuth=forceWithoutExtAuth) 
    41274130        self._conf = conf 
    4128          
     4131 
    41294132 
    41304133    def _performSearch( self, criteria, exact=0  ): 
     
    41474150class WPrincipalSelection(WUserSelection): 
    41484151 
    4149      
     4152 
    41504153    def _performSearch( self, criteria, exact=0 ): 
    41514154        #this should go in the PrincipalHolder match method 
     
    41724175 
    41734176class WComplexSelection(WUserSelection): 
    4174      
    4175      
     4177 
     4178 
    41764179    def __init__(self, target, searchAction, forceWithoutExtAuth=False): 
    41774180        _title = _("Search for users") 
     
    41824185            self._conf = None 
    41834186        self._target = target 
    4184          
     4187 
    41854188    def _performSearch( self, criteria, exact=0 ): 
    41864189        #this should go in the PrincipalHolder match method 
     
    42014204                l.append(author) 
    42024205        return l 
    4203          
     4206 
    42044207    def getVars(self): 
    42054208        vars = WUserSelection.getVars( self ) 
     
    42094212class WCategoryComplexSelection(WComplexSelection): 
    42104213 
    4211      
     4214 
    42124215    def __init__(self, category, searchAction, forceWithoutExtAuth=False): 
    42134216        WComplexSelection.__init__(self, None, searchAction,forceWithoutExtAuth=forceWithoutExtAuth) 
    42144217        self._category = category 
    4215          
     4218 
    42164219    def _performSearch( self, criteria, exact=0 ): 
    42174220        #this should go in the PrincipalHolder match method 
     
    42194222        resUsers = ah.match(criteria, exact=exact, forceWithoutExtAuth=self._forceWithoutExtAuth) 
    42204223        return resUsers 
    4221          
     4224 
    42224225 
    42234226class WNewPerson(WTemplated): 
    4224        
     4227 
    42254228    def getVars( self ): 
    42264229        vars = WTemplated.getVars( self ) 
     
    42284231        titles = [] 
    42294232        titleValue = vars.get("titleValue", " ") 
    4230          
     4233 
    42314234        for o in options : 
    42324235            selected = "" 
     
    42374240        vars["titles"] = """ 
    42384241                        """.join(titles) 
    4239                          
     4242 
    42404243        if vars.get("disabledTitle", False) : 
    42414244            vars["titles"] = """<input type="hidden" name="title" value="%s"></input>%s"""%(titleValue,titleValue) 
     
    42464249            </select> 
    42474250            """%vars["titles"] 
    4248          
     4251 
    42494252        if vars.get("disabledSurName", False) : 
    42504253            vars["surName"] = """<input type="hidden" name="surName" value="%s"></input>%s"""%(vars["surNameValue"],vars["surNameValue"]) 
    42514254        else : 
    42524255            vars["surName"] = """<input type="text" size="50" name="surName" value="%s" >"""%vars["surNameValue"] 
    4253          
     4256 
    42544257        if vars.get("disabledName", False) : 
    42554258            vars["name"] = """<input type="hidden" name="name" value="%s"></input>%s"""%(vars["nameValue"],vars["nameValue"]) 
    42564259        else : 
    42574260            vars["name"] = """<input type="text" size="50" name="name" value="%s" >"""%vars["nameValue"] 
    4258          
     4261 
    42594262        if vars.get("disabledAffiliation", False) : 
    42604263            vars["affiliation"] = """<input type="hidden" name="affiliation" value="%s"></input>%s"""%(vars["affiliationValue"],vars["affiliationValue"]) 
    42614264        else : 
    42624265            vars["affiliation"] = """<input type="text" size="50" name="affiliation" value="%s" >"""%vars["affiliationValue"] 
    4263              
     4266 
    42644267        if vars.get("disabledEmail", False) : 
    42654268            vars["email"] = """<input type="hidden" name="email" value="%s"></input>%s"""%(vars["emailValue"],vars["emailValue"]) 
     
    42744277        else : 
    42754278            vars["address"] = """<textarea name="address" rows="5" cols="38" value="%s"></textarea>"""%vars["emailValue"] 
    4276          
     4279 
    42774280        if vars.get("disabledPhone", False) : 
    42784281            vars["phone"] = """<input type="hidden" name="phone" value="%s"></input>%s"""%(vars["phoneValue"],vars["phoneValue"]) 
    42794282        else : 
    42804283            vars["phone"] = """<input type="text" size="50" name="phone" value="%s" >"""%vars["phoneValue"] 
    4281          
     4284 
    42824285        if vars.get("disabledPhone", False) : 
    42834286            vars["phone"] = """<input type="hidden" name="phone" value="%s"></input>%s"""%(vars["phoneValue"],vars["phoneValue"]) 
    42844287        else : 
    42854288            vars["phone"] = """<input type="text" size="50" name="phone" value="%s" >"""%vars["phoneValue"] 
    4286          
     4289 
    42874290        if vars.get("disabledFax", False) : 
    42884291            vars["fax"] = """<input type="hidden" name="fax" value="%s"></input>%s"""%(vars["faxValue"],vars["faxValue"]) 
     
    42924295            vars["role"] = "" 
    42934296        else : 
    4294             vars["role"] = """         
     4297            vars["role"] = """ 
    42954298        <tr> 
    42964299            <td nowrap class="titleCellTD"><span class="titleCellFormat">%s</span></td> 
    42974300            <td bgcolor="white" width="100%%" valign="top" class="blacktext">%s</td> 
    42984301        </tr>"""%(vars["roleDescription"], vars["roleValue"]) 
    4299                  
     4302 
    43004303        if vars.get("disabledNotice", True) : 
    43014304            vars["notice"] = "" 
     
    43064309            <td bgcolor="white" width="100%%" valign="top" class="blacktext">%s</td> 
    43074310        </tr>"""%vars["noticeValue"] 
    4308          
     4311 
    43094312        if vars.get("msg","")!="": 
    43104313            vars["msg"]=  _("""<table bgcolor="gray"><tr><td bgcolor="white"> 
     
    43184321 
    43194322class WAddPersonModule(WTemplated): 
    4320      
     4323 
    43214324    def __addBasketPeople(self, peopleList): 
    4322          
     4325 
    43234326        basket = self._rh._getUser().getPersonalInfo().getBasket().getUsers() 
    4324          
     4327 
    43254328        peopleList += """<option value=""></option>""" 
    4326          
     4329 
    43274330        for userId in basket: 
    43284331            peopleList += """<option class="favoriteItem" value="%s">%s</option>"""%(userId,basket[userId].getStraightFullName()) 
    4329          
     4332 
    43304333        return peopleList 
    4331      
     4334 
    43324335    def __init__(self,personType, displayName=""): 
    43334336        self._personType = personType 
    43344337        self._displayName = displayName 
    4335          
    4336     def getVars( self ): 
    4337         vars = WTemplated.getVars( self )          
     4338 
     4339    def getVars( self ): 
     4340        vars = WTemplated.getVars( self ) 
    43384341        if self._personType is None or self._personType == "" : 
    43394342            raise MaKaCError( _("'personType' must be set to use the Add Person Module")) 
    43404343            return 
    4341              
     4344 
    43424345        if self._displayName != "": 
    43434346            vars["personName"] = self._displayName 
    43444347        else: 
    43454348            vars["personName"] = string.capwords("%s"%self._personType) 
    4346          
    4347         # Add people from the users basket         
    4348         vars["personOptions"] = self.__addBasketPeople("")     
    4349          
    4350         vars["personOptions"] += vars["%sOptions"%self._personType]         
    4351          
     4349 
     4350        # Add people from the users basket 
     4351        vars["personOptions"] = self.__addBasketPeople("") 
     4352 
     4353        vars["personOptions"] += vars["%sOptions"%self._personType] 
     4354 
    43524355        vars["personChosen"] = "%sChosen"%self._personType 
    4353          
     4356 
    43544357        vars["personDefined"] = vars["%sDefined"%self._personType] 
    4355          
     4358 
    43564359        if vars["personOptions"] == """<option value=""> </option>""": 
    43574360            vars["disabledAdd"] = "disabled" 
     
    43604363 
    43614364        vars["personType"] = self._personType 
    4362          
     4365 
    43634366        if vars.get("submission",None) is not None : 
    43644367            vars["submissionButtons"] =  _(""" 
     
    43674370            </tr> 
    43684371            <tr> 
    4369                 <td colspan="4"><input type="submit" class="btn" value="_("Withdraw submission")" onClick="setAction(this.form,'Withdraw submission');"></td>                                     
     4372                <td colspan="4"><input type="submit" class="btn" value="_("Withdraw submission")" onClick="setAction(this.form,'Withdraw submission');"></td> 
    43704373            </tr>""") 
    43714374        else : 
    43724375            vars["submissionButtons"] = "" 
    43734376        return vars 
    4374      
     4377 
    43754378 
    43764379class WAccountAlreadyActivated(WTemplated): 
    4377      
     4380 
    43784381    def __init__(self, av): 
    43794382        self._av = av 
    4380      
     4383 
    43814384    def getVars( self ): 
    43824385        vars = WTemplated.getVars( self ) 
     
    43854388 
    43864389class WAccountActivated(WTemplated): 
    4387      
     4390 
    43884391    def __init__(self, av): 
    43894392        self._av = av 
    4390      
     4393 
    43914394    def getVars( self ): 
    43924395        vars = WTemplated.getVars( self ) 
     
    43954398 
    43964399class WAccountDisabled(WTemplated): 
    4397      
     4400 
    43984401    def __init__(self, av): 
    43994402        self._av = av 
    4400      
     4403 
    44014404    def getVars( self ): 
    44024405        vars = WTemplated.getVars( self ) 
     
    44054408 
    44064409class WUnactivatedAccount(WTemplated): 
    4407      
     4410 
    44084411    def __init__(self, av): 
    44094412        self._av = av 
    4410      
     4413 
    44114414    def getVars( self ): 
    44124415        vars = WTemplated.getVars( self ) 
     
    44174420 
    44184421class WAbstractModIntCommentEdit(WTemplated): 
    4419      
     4422 
    44204423    def __init__(self,comment): 
    44214424        self._comment=comment 
     
    44284431 
    44294432class WAbstractModNewIntComment(WTemplated): 
    4430      
     4433 
    44314434    def __init__(self,aw,abstract): 
    44324435        self._aw=aw 
     
    44524455            comment = _("No Session Comment Entered") 
    44534456            self._session.setComments("") 
    4454          
     4457 
    44554458        modifButton="" 
    44564459        if self._conf.canModify(self._aw): 
    4457              
     4460 
    44584461            modifButton =  _("""<form action=%s method="POST"> 
    44594462                    <td align="center"> 
     
    44724475            </td> 
    44734476        </tr> 
    4474         <tr>                       
     4477        <tr> 
    44754478            %s 
    44764479        </tr> 
     
    44854488 
    44864489class WSessionModifCommEdit(WTemplated): 
    4487      
     4490 
    44884491    def __init__(self,comment): 
    44894492        self._comment=comment 
     
    44934496        vars["comment"]=self.htmlText(self._comment) 
    44944497        return vars 
    4495      
     4498 
    44964499class WAbstractModIntComments(WTemplated): 
    4497      
     4500 
    44984501    def __init__(self,aw,abstract): 
    44994502        self._aw=aw 
     
    45524555 
    45534556class WAbstractModMarkAsDup(WTemplated): 
    4554          
     4557 
    45554558    def __init__(self,abstract): 
    45564559        self._abstract=abstract 
     
    45844587 
    45854588class WAbstractModUnMarkAsDup(WTemplated): 
    4586          
     4589 
    45874590    def __init__(self,abstract): 
    45884591        self._abstract=abstract 
     
    45974600 
    45984601class WConfModAbstractEditData(WTemplated): 
    4599      
     4602 
    46004603    def __init__(self,conference,abstractData): 
    46014604        self._ad=abstractData 
     
    46114614    #        res.append("""<option value=%s%s>%s</option>"""%(quoteattr(t),sel,self.htmlText(t))) 
    46124615    #    return "".join(res) 
    4613          
     4616 
    46144617    def _getContribTypeItemsHTML(self): 
    46154618        res=[ _("""<option value="">--_("not specified")--</option>""")] 
     
    46474650                            <input type="hidden" name="auth_prim_id" value=%s> 
    46484651                        </td> 
    4649                         <td style="border-top:1px solid #777777;" width="100%%">  
     4652                        <td style="border-top:1px solid #777777;" width="100%%"> 
    46504653                            <table width="95%%" cellpadding="0" cellspacing="0"> 
    46514654                                <tr> 
     
    46934696            res.append(tmp) 
    46944697        return "".join(res) 
    4695          
     4698 
    46964699    def _getCoAuthorsHTML(self): 
    46974700        res=[] 
     
    47204723                            <input type="hidden" name="auth_co_id" value=%s> 
    47214724                        </td> 
    4722                          <td style="border-top:1px solid #777777;">  
     4725                         <td style="border-top:1px solid #777777;"> 
    47234726                            <table color="gray"> 
    47244727                                <tr> 
     
    48164819 
    48174820class WScheduleAddContributions(WTemplated): 
    4818      
     4821 
    48194822    def __init__(self,selectList,targetDay=None): 
    48204823        self._contribList=selectList 
     
    48484851                            spksCaption)) 
    48494852        return "".join(res) 
    4850              
     4853 
    48514854 
    48524855    def getVars(self): 
     
    48574860            vars["targetDay"]="""<input type="hidden" name="targetDay" value=%s>"""%(quoteattr(str(self._targetDay.strftime("%Y-%m-%d")))) 
    48584861        return vars 
    4859          
     4862 
    48604863 
    48614864class WSchEditContrib(WTemplated): 
    4862      
     4865 
    48634866    def __init__(self,contrib): 
    48644867        self._contrib=contrib 
     
    49174920 
    49184921class WConfModParticipEdit(WTemplated): 
    4919      
     4922 
    49204923    def __init__(self,title="",part=None): 
    49214924        self._part=part 
     
    49504953 
    49514954class WSessionModEditDataCode(WTemplated): 
    4952      
     4955 
    49534956    def __init__(self): 
    49544957        pass 
    4955          
    4956     def getVars( self ): 
    4957         vars=WTemplated.getVars(self)  
     4958 
     4959    def getVars( self ): 
     4960        vars=WTemplated.getVars(self) 
    49584961        vars["code"]=quoteattr(str(vars.get("code",""))) 
    49594962        return vars 
    49604963 
    49614964class WSessionModEditDataType(WTemplated): 
    4962      
     4965 
    49634966    def __init__(self): 
    49644967        pass 
    4965          
    4966     def getVars( self ): 
    4967         vars=WTemplated.getVars(self)  
     4968 
     4969    def getVars( self ): 
     4970        vars=WTemplated.getVars(self) 
    49684971        l=[] 
    49694972        currentTTType=vars.get("tt_type",conference.SlotSchTypeFactory.getDefaultId()) 
     
    49784981 
    49794982class WSessionModEditDataColors(WTemplated): 
    4980      
     4983 
    49814984    def __init__(self): 
    49824985        pass 
    4983          
    4984     def getVars( self ): 
    4985         vars=WTemplated.getVars(self)  
    4986         return vars 
    4987          
     4986 
     4987    def getVars( self ): 
     4988        vars=WTemplated.getVars(self) 
     4989        return vars 
     4990 
    49884991class WSessionModEditData(WTemplated): 
    4989      
     4992 
    49904993    def __init__(self,targetConf,aw,pageTitle="",targetDay=None): 
    49914994        self._conf=targetConf 
     
    50115014        else: 
    50125015            return "" 
    5013      
     5016 
    50145017    def getVars( self ): 
    50155018        vars=WTemplated.getVars(self) 
     
    50505053        vars["defaultInheritPlace"]="checked" 
    50515054        vars["defaultDefinePlace"]="" 
    5052          
     5055 
    50535056        if vars.get("convenerDefined",None) is None : 
    50545057            sessionId = vars["sessionId"] 
    50555058            session = self._conf.getSessionById(sessionId) 
    5056             html = []             
     5059            html = [] 
    50575060            for convener in session.getConvenerList() : 
    50585061                text = """ 
     
    50615064                     <td>&nbsp;%s</td> 
    50625065                 </tr>"""%("convener",convener.getId(),convener.getFullName()) 
    5063                 html.append(text)                 
     5066                html.append(text) 
    50645067            vars["definedConveners"] = """ 
    5065                                          """.join(html)             
     5068                                         """.join(html) 
    50665069        if vars.get("locationAction","")=="define": 
    50675070            vars["defaultInheritPlace"]="" 
     
    50895092            roomName = "" 
    50905093 
    5091          
     5094 
    50925095        vars["confRoom"]="" 
    50935096        rx=[] 
     
    51315134            vars["code"]="" 
    51325135        return vars 
    5133      
     5136 
    51345137#-------------------------------------------------------------------------------------- 
    51355138 
    51365139class WConfModMoveContribsToSessionConfirmation(WTemplated): 
    5137      
     5140 
    51385141    def __init__(self,conf,contribIdList=[],targetSession=None): 
    51395142        self._conf=conf 
     
    51965199 
    51975200class WConfTBDrawer: 
    5198      
     5201 
    51995202    def __init__(self,tb): 
    52005203        self._tb=tb 
     
    52215224                    """%("".join(res)) 
    52225225        return "" 
    5223          
     5226 
    52245227class WErrorMessage : 
    5225      
     5228 
    52265229    def getHTML( self, vars ): 
    5227                  
     5230 
    52285231        if vars.get("errorMsg", None) is None : 
    52295232            return "" 
     
    52325235        for i in range(0,len(vars["errorMsg"])) : 
    52335236            vars["errorMsg"][i] = """<span style="color: red;">"""+vars["errorMsg"][i]+"""</span>""" 
    5234          
     5237 
    52355238        errorMsg = """ 
    52365239        """.join(vars["errorMsg"]) 
    5237          
    5238         html = """                     
     5240 
     5241        html = """ 
    52395242                <div class="errorMsgBox"> 
    52405243                    %s 
    52415244                </div> 
    52425245               """%errorMsg 
    5243          
     5246 
    52445247        return html 
    5245      
     5248 
    52465249class WInfoMessage : 
    5247      
     5250 
    52485251    def getHTML( self, vars ): 
    52495252        if vars.get("infoMsg", None) is None : 
    5250             return ""  
     5253            return "" 
    52515254        if type(vars["infoMsg"]) != list: 
    52525255            vars["infoMsg"]=[vars["infoMsg"]] 
    52535256        for i in range(0,len(vars["infoMsg"])) : 
    52545257            vars["infoMsg"][i] = """<span style="color: green;">"""+vars["infoMsg"][i]+"""</span>""" 
    5255          
     5258 
    52565259        infoMsg = """ 
    52575260        """.join(vars["infoMsg"]) 
    5258          
    5259         html = """                     
     5261 
     5262        html = """ 
    52605263                <div class="errorMsgBox"> 
    52615264                    %s 
    52625265                </div> 
    52635266        """%infoMsg 
    5264          
     5267 
    52655268        return html 
    52665269 
    52675270class WConfTickerTapeDrawer(WTemplated): 
    5268      
     5271 
    52695272    def __init__(self,conf, tz=None): 
    52705273        self._conf=conf 
     
    52785281 
    52795282        html = WTemplated.getHTML( self, params ) 
    5280          
     5283 
    52815284        if html == "": 
    52825285            return None 
    52835286 
    52845287        return html 
    5285      
     5288 
    52865289    def getSimpleText( self ): 
    52875290        if not self._tickerTape.isSimpleTextEnabled() or \ 
     
    52935296    def getVars(self): 
    52945297        vars = WTemplated.getVars( self ) 
    5295      
     5298 
    52965299        vars["nowHappeningArray"] = None 
    52975300        if self._tickerTape.isNowHappeningEnabled(): 
     
    52995302 
    53005303        return vars 
    5301      
     5304 
    53025305    def _getNowHappening( self ): 
    53035306        # This will contain a string formated for use in the template 
     
    53885391            vars["linkValue"] = "" 
    53895392        return vars 
    5390   
     5393 
    53915394class WSubmitMaterialFile(WTemplated): 
    53925395 
     
    54275430        vars["fileNewName"] = "FileNewName%s" % self._filenb 
    54285431        return vars 
    5429      
     5432 
    54305433class WMaterialListFile(WTemplated): 
    54315434 
     
    54665469            vars["fileAccessURL"]=quoteattr(str(urlHandlers.UHFileAccess.getURL(self._target))) 
    54675470        return vars 
    5468      
     5471 
    54695472class WMaterialListItem(WTemplated): 
    54705473 
     
    54745477 
    54755478    def getVars(self): 
    5476         vars=WTemplated.getVars(self)    
    5477         deleteURL = None   
     5479        vars=WTemplated.getVars(self) 
     5480        deleteURL = None 
    54785481        mf = None 
    54795482        from MaKaC.webinterface.materialFactories import ConfMFRegistry,SessionMFRegistry,ContribMFRegistry 
     
    55065509        vars["fileList"]="" 
    55075510        for resource in self._target.getResourceList(): 
    5508             vars["fileList"] += WMaterialListFile(resource).getHTML(vars)  
     5511            vars["fileList"] += WMaterialListFile(resource).getHTML(vars) 
    55095512        if mf is None: 
    55105513            vars["materialIcon"]=quoteattr(str(Config.getInstance().getSystemIconURL("material"))) 
     
    55155518 
    55165519class WShowExistingMaterial(WTemplated): 
    5517      
     5520 
    55185521    def __init__(self,target): 
    55195522        self._target=target 
     
    55225525    def getVars(self): 
    55235526        vars=WTemplated.getVars(self) 
    5524          
     5527 
    55255528        vars["materialModifHandler"] = vars.get("materialModifHandler", None) 
    55265529        vars["materialProtectHandler"] = vars.get("materialProtectHandler", None) 
     
    55335536 
    55345537class WAddNewMaterial(WTemplated): 
    5535      
     5538 
    55365539    def __init__(self,target,availMF): 
    55375540        self._target=target 
     
    56125615 
    56135616class WSubmitMaterial(WTemplated): 
    5614      
     5617 
    56155618    def __init__(self,target,availMF): 
    56165619        self._target=target 
     
    57135716        vars = WTemplated.getVars(self) 
    57145717        return vars 
    5715          
    5716      
     5718 
     5719 
    57175720class WSchRelocate(WTemplated): 
    5718      
     5721 
    57195722    def __init__(self, entry): 
    57205723        self._entry=entry 
     
    57525755                html.append("</table></td></tr>") 
    57535756        return "".join(html) 
    5754                      
     5757 
    57555758 
    57565759    def getVars(self): 
     
    57705773        self._target=target 
    57715774        self._type=type 
    5772      
     5775 
    57735776    def _getCurrentItems(self): 
    57745777        html=[] 
    57755778        rns = self._target.getReportNumberHolder().listReportNumbers() 
    57765779        id = 0 
    5777          
     5780 
    57785781        reportCodes = [] 
    5779          
     5782 
    57805783        for rn in rns: 
    57815784            key = rn[0] 
     
    57985801                        """%(system, rnsystems[system]["name"] ) ) 
    57995802        return "".join(html) 
    5800      
     5803 
    58015804    def getVars(self): 
    58025805        vars = WTemplated.getVars(self) 
     
    58375840        return vars 
    58385841 
    5839      
     5842 
    58405843class WHTMLEditorWrapper(WTemplated): 
    58415844 
     
    59015904 
    59025905class WRoomBookingWelcome( WTemplated ): 
    5903      
     5906 
    59045907    def __init__(self): 
    59055908        self.__adminList = AdminList.getInstance() 
    5906      
     5909 
    59075910    def getVars( self ): 
    59085911        vars = WTemplated.getVars( self ) 
     
    59105913 
    59115914class WRoomBookingRoomSelectList( WTemplated ): 
    5912      
     5915 
    59135916    def __init__( self, rh ): 
    59145917        self._rh = rh 
    5915      
    5916     def getVars( self ): 
    5917         vars = WTemplated.getVars( self ) 
    5918          
     5918 
     5919    def getVars( self ): 
     5920        vars = WTemplated.getVars( self ) 
     5921 
    59195922        vars['roomList'] = self._rh._roomList 
    59205923        vars['locationRoom'] = self._rh._locationRoom 
    5921          
    5922         return vars 
    5923          
     5924 
     5925        return vars 
     5926 
    59245927class WRoomBookingRoomSelectList4SubEvents( WTemplated ): 
    5925      
     5928 
    59265929    def __init__( self, rh ): 
    59275930        self._rh = rh 
    5928      
    5929     def getVars( self ): 
    5930         vars = WTemplated.getVars( self ) 
    5931          
     5931 
     5932    def getVars( self ): 
     5933        vars = WTemplated.getVars( self ) 
     5934 
    59325935        vars['roomList'] = self._rh._roomList 
    59335936        vars['locationRoom'] = self._rh._locationRoom 
    5934          
     5937 
    59355938        return vars 
    59365939 
     
    59435946 
    59445947class WRoomBookingChooseEvent( WTemplated ): 
    5945      
     5948 
    59465949    def __init__( self, rh ): 
    59475950        self._rh = rh 
     
    59525955        vars["conference"] = self._rh._conf 
    59535956        vars["contributions"] = list( [ c for c in self._rh._conf.getContributionList() if c.getStartDate() ] ) 
    5954        
     5957 
    59555958        return vars 
    59565959 
     
    59585961 
    59595962class WRoomBookingSearch4Rooms( WTemplated ): 
    5960      
     5963 
    59615964    def __init__( self, rh, standalone = False ): 
    59625965        self._standalone = standalone 
     
    59755978        vars["forNewBooking"] = self._rh._forNewBooking 
    59765979        vars["eventRoomName"] = self._rh._eventRoomName 
    5977          
     5980 
    59785981        vars["preview"] = False 
    59795982 
     
    59945997            vars["detailsUH"] = urlHandlers.UHConfModifRoomBookingRoomDetails 
    59955998            vars["bookingFormUH"] =  urlHandlers.UHConfModifRoomBookingBookingForm 
    5996          
     5999 
    59976000        vars['youCannot'] = "javascript:alert( 'You cannot book this room' );" 
    5998          
     6001 
    59996002        return vars 
    60006003 
    60016004class WRoomBookingSearch4Bookings( WTemplated ): 
    6002      
     6005 
    60036006    def __init__( self, rh ): 
    60046007        self._rh = rh 
     
    60146017 
    60156018        vars["roomBookingBookingListURL"] = urlHandlers.UHRoomBookingBookingList.getURL( None ) 
    6016          
     6019 
    60176020        return vars 
    60186021 
     
    60206023 
    60216024class WRoomBookingRoomList( WTemplated ): 
    6022      
     6025 
    60236026    def __init__( self, rh, standalone = False ): 
    60246027        self._rh = rh 
    60256028        self._standalone = standalone 
    60266029        self._title = None 
    6027         try: self._title = self._rh._title;  
     6030        try: self._title = self._rh._title; 
    60286031        except: pass 
    60296032 
     
    60436046            vars["detailsUH"] = urlHandlers.UHConfModifRoomBookingRoomDetails 
    60446047            vars["bookingFormUH"] = urlHandlers.UHConfModifRoomBookingBookingForm 
    6045          
     6048 
    60466049        return vars 
    60476050 
    60486051class WRoomBookingList( WTemplated ): 
    6049      
     6052 
    60506053    def __init__( self, rh, standalone = False ): 
    60516054        self._standalone = standalone 
     
    60536056        if not standalone: 
    60546057            self._conf = rh._conf 
    6055          
     6058 
    60566059    def getVars( self ): 
    60576060        vars=WTemplated.getVars( self ) 
     
    60616064        dm = datetime.now() - timedelta( 1 ) 
    60626065        vars["yesterday"] = dm #datetime( dm.year, dm.month, dm.day, 0, 0, 1 ) 
    6063          
     6066 
    60646067        if self._standalone: 
    60656068            vars["bookingDetailsUH"] = urlHandlers.UHRoomBookingBookingDetails 
     
    60716074 
    60726075class WRoomBookingBookingList( WTemplated ): # Standalone version 
    6073      
     6076 
    60746077    def __init__( self, rh ): 
    60756078        self._rh = rh 
    60766079        self._title = None 
    6077         try: self._title = self._rh._title;  
     6080        try: self._title = self._rh._title; 
    60786081        except: pass 
    6079          
     6082 
    60806083    def _isOn(self, boolVal): 
    60816084        if boolVal: 
     
    60836086        else: 
    60846087            return "" 
    6085      
    6086     def getVars( self ):         
    6087         vars = WTemplated.getVars( self ) 
    6088         rh = self._rh         
     6088 
     6089    def getVars( self ): 
     6090        vars = WTemplated.getVars( self ) 
     6091        rh = self._rh 
    60896092 
    60906093        vars["reservations"] = rh._resvs 
    6091                  
     6094 
    60926095        #vars["smallPhotoUH"] = urlHandlers.UHSendRoomPhoto 
    60936096        vars["bookingDetailsUH"] = urlHandlers.UHRoomBookingBookingDetails 
     
    60956098        vars["title"] = self._title 
    60966099        vars["showRejectAllButton"] = rh._showRejectAllButton 
    6097          
     6100 
    60986101        vars["prebookingsRejected"] = rh._prebookingsRejected 
    60996102        vars["subtitle"] = rh._subtitle 
     
    61056108 
    61066109        ed = None 
    6107         sd = rh._resvEx.startDT.date()                         
     6110        sd = rh._resvEx.startDT.date() 
    61086111        if rh._resvEx.endDT: 
    6109             ed = rh._resvEx.endDT.date()       
    6110          
     6112            ed = rh._resvEx.endDT.date() 
     6113 
    61116114        # autoCriteria - dates are calculated based on the next reservation 
    61126115        if rh._autoCriteria: 
     
    61156118                tmp = tmp.getNextRepeating( afterDT = yesterday ) 
    61166119                if tmp and tmp.startDT.date() > sd: 
    6117                     sd = tmp.startDT                 
    6118             if not ed:  
     6120                    sd = tmp.startDT 
     6121            if not ed: 
    61196122                # one month of time span 
    61206123                ed = sd + timedelta( 30 ) 
     
    61256128 
    61266129        from MaKaC.rb_tools import formatDate 
    6127          
     6130 
    61286131        if  calendarStartDT.date() == calendarEndDT.date(): 
    61296132            vars["periodName"] = "day" 
     
    61336136            vars["verbosePeriod"] = "%s -> %s" % ( formatDate(calendarStartDT), formatDate(calendarEndDT) ) 
    61346137        vars["startD"] = formatDate(calendarStartDT) 
    6135         vars["endD"] = formatDate(calendarEndDT)         
    6136          
     6138        vars["endD"] = formatDate(calendarEndDT) 
     6139 
    61376140        # Data for previous/next URLs (it's about periods, not paging) 
    61386141        newParams4Previous = rh._reqParams.copy() 
     
    61456148            del newParams4Next['day'] 
    61466149 
    6147          
     6150 
    61486151        startD = calendarStartDT.date() 
    61496152        endD = calendarEndDT.date() 
    6150          
     6153 
    61516154        if endD != startD: 
    61526155            period = endD - startD 
    6153              
     6156 
    61546157            prevStartD = startD - period 
    61556158            prevEndD = startD - timedelta(1) 
    6156              
     6159 
    61576160            nextStartD = endD + timedelta(1) 
    61586161            nextEndD = endD + period 
    61596162        else: 
    61606163            prevStartD = prevEndD = startD - timedelta(1) 
    6161             nextStartD = nextEndD = endD + timedelta(1)  
    6162          
     6164            nextStartD = nextEndD = endD + timedelta(1) 
     6165 
    61636166        newParams4Previous['sDay'] = prevStartD.day 
    61646167        newParams4Previous['sMonth'] = prevStartD.month 
     
    61676170        newParams4Previous['eMonth'] = prevEndD.month 
    61686171        newParams4Previous['eYear'] = prevEndD.year 
    6169          
     6172 
    61706173        newParams4Next['sDay'] = nextStartD.day 
    61716174        newParams4Next['sMonth'] = nextStartD.month 
     
    61746177        newParams4Next['eMonth'] = nextEndD.month 
    61756178        newParams4Next['eYear'] = nextEndD.year 
    6176          
    6177         vars["withPrevNext"] = True                
     6179 
     6180        vars["withPrevNext"] = True 
    61786181        vars["prevURL"] = urlHandlers.UHRoomBookingBookingList.getURL( newParams = newParams4Previous ) 
    61796182        vars["nextURL"] = urlHandlers.UHRoomBookingBookingList.getURL( newParams = newParams4Next ) 
     
    61866189                          not self._rh._search 
    61876190        showEmptyRooms = showEmptyDays 
    6188          
    6189                  
     6191 
     6192 
    61906193        # Calendar related stuff ========== 
    6191          
     6194 
    61926195        bars = [] 
    61936196        collisionsOfResvs = [] 
    6194          
     6197 
    61956198        # there's at least one reservation 
    61966199        if len( rh._resvs ) > 0 and not overload: 
    6197                         
    6198              
    6199             # Prepare the list of Collisions  
     6200 
     6201 
     6202            # Prepare the list of Collisions 
    62006203            # (collision is just a helper object, it's not the best notion here) 
    6201              
     6204 
    62026205            for r in rh._resvs: 
    62036206                for p in r.splitToPeriods(endDT=calendarEndDT): 
    62046207                    if p.startDT >= calendarStartDT and p.endDT <= calendarEndDT: 
    62056208                        collisionsOfResvs.append( Collision( ( p.startDT, p.endDT ), r ) ) 
    6206              
     6209 
    62076210            if len( collisionsOfResvs ) > 500: 
    62086211                overload = True 
    62096212            else: 
    6210              
    6211                 # Translate collisions to Bars                 
     6213 
     6214                # Translate collisions to Bars 
    62126215                for c in collisionsOfResvs: 
    62136216                    if c.withReservation.isConfirmed: 
     
    62156218                    else: 
    62166219                        bars.append( Bar( c, Bar.PREBOOKED ) ) 
    6217                  
     6220 
    62186221                bars = barsList2Dictionary( bars ) 
    62196222                bars = addOverlappingPrebookings( bars ) 
    62206223                bars = sortBarsByImportance( bars, calendarStartDT, calendarEndDT ) 
    6221                  
     6224 
    62226225                rooms = [] 
    62236226                for r in rh._resvs: 
    62246227                    rooms.append(r.room) 
    6225                  
     6228 
    62266229                #rooms = {} 
    62276230                #for r in rh._resvs: 
    62286231                #    rooms[r.room] = None 
    62296232                #rooms = rooms.keys() 
    6230                  
     6233 
    62316234                #CrossLocationQueries.getRooms( location = self.location ) 
    62326235                if not self._rh._onlyMy: 
    62336236                    rooms = self._rh._rooms 
    6234                  
     6237 
    62356238                bars = introduceRooms( rooms, bars, calendarStartDT, calendarEndDT, showEmptyDays = showEmptyDays, showEmptyRooms = showEmptyRooms ) 
    6236                                                  
     6239 
    62376240                vars["Bar"] = Bar 
    6238                  
    6239                 self.__sortUsingCriterion(rh._order, collisionsOfResvs)                 
    6240          
     6241 
     6242                self.__sortUsingCriterion(rh._order, collisionsOfResvs) 
     6243 
    62416244        # we want to display every room, with or without reservation 
    62426245        elif not overload: 
    6243             # initialize collision bars  
    6244             bars = {}             
     6246            # initialize collision bars 
     6247            bars = {} 
    62456248            bars = sortBarsByImportance( bars, calendarStartDT, calendarEndDT ) 
    62466249 
     
    62506253            else: 
    62516254                    rooms = [] 
    6252                  
    6253             bars = introduceRooms( rooms, bars, calendarStartDT, calendarEndDT, showEmptyDays = showEmptyDays, showEmptyRooms = showEmptyRooms )                             
    6254              
    6255          
     6255 
     6256            bars = introduceRooms( rooms, bars, calendarStartDT, calendarEndDT, showEmptyDays = showEmptyDays, showEmptyRooms = showEmptyRooms ) 
     6257 
     6258 
    62566259        vars["unrolledReservations"] = collisionsOfResvs 
    62576260        vars["bars"] = bars 
     
    62766279 
    62776280        return vars 
    6278              
    6279  
    6280     def __sortUsingCriterion(self, order, uresvs):             
    6281          
     6281 
     6282 
     6283    def __sortUsingCriterion(self, order, uresvs): 
     6284 
    62826285        if order == "" or order =="room": 
    6283             # standard sorting order (by room, and then date)  
     6286            # standard sorting order (by room, and then date) 
    62846287            uresvs.sort(lambda r1,r2: cmp(r1.withReservation.room.name,r2.withReservation.room.name)) 
    62856288        else: 
    6286             if order == 'date':               
    6287                 uresvs.sort(lambda r1, r2: cmp(r1.startDT, r2.startDT))                 
     6289            if order == 'date': 
     6290                uresvs.sort(lambda r1, r2: cmp(r1.startDT, r2.startDT)) 
    62886291            elif order == 'reason': 
    62896292                uresvs.sort(lambda r1, r2: cmp(r1.withReservation.reason.lower(), r2.withReservation.reason.lower())) 
     
    62976300 
    62986301def barsList2Dictionary( bars ): 
    6299     """  
     6302    """ 
    63006303    Converts: 
    63016304    list of bars => dictionary of bars, key = datetime, value = list of bars 
     
    63086311        else: 
    63096312            h[d] = [bar] 
    6310     return h  
     6313    return h 
    63116314 
    63126315def addOverlappingPrebookings( bars ): 
     
    63156318    Returns new bars dictionary. 
    63166319    """ 
    6317      
     6320 
    63186321    # For each day 
    63196322    for dt in bars.keys(): 
    63206323        dayBars = bars[dt] 
    6321          
     6324 
    63226325        # For each (prebooked) bar i 
    63236326        for i in xrange( 0, len( dayBars ) ): 
     
    63296332                    collCand = dayBars[j] 
    63306333                    if collCand.type == Bar.PREBOOKED: 
    6331                          
     6334 
    63326335                        # If there is an overlap, add PRECONCURRENT bar 
    63336336                        over = overlap( bar.startDT, bar.endDT, collCand.startDT, collCand.endDT ) 
     
    63376340 
    63386341        bars[dt] = dayBars # With added concurrent prebooking bars 
    6339      
     6342 
    63406343    return bars 
    63416344 
    63426345def sortBarsByImportance( bars, calendarStartDT, calendarEndDT ): 
    6343     """  
    6344     Moves conflict bars to the end of the list,  
     6346    """ 
     6347    Moves conflict bars to the end of the list, 
    63456348    so they will be drawn last and therefore be visible. 
    6346      
     6349 
    63476350    Returns sorted bars. 
    63486351    """ 
     
    63516354        dayBars.sort() 
    63526355        bars[dt] = dayBars 
    6353          
     6356 
    63546357    for day in iterdays( calendarStartDT, calendarEndDT ): 
    63556358        if not bars.has_key( day.date() ): 
    63566359            bars[day.date()] = [] 
    6357      
     6360 
    63586361    return bars 
    63596362 
     
    63686371 
    63696372def introduceRooms( rooms, dayBarsDic, calendarStartDT, calendarEndDT, showEmptyDays=True, showEmptyRooms=True ): 
    6370     # Input:  
     6373    # Input: 
    63716374    # dayBarsDic is a dictionary date => [bar1, bar2, bar3, ...] 
    63726375    # 
     
    63776380    cleanRoomBarsList = getRoomBarsList( rooms ) 
    63786381    newDayBarsDic = {} 
    6379      
     6382 
    63806383    s = "" 
    63816384    for day in iterdays( calendarStartDT, calendarEndDT ): 
     
    63866389            if not roomBarsDic.has_key( room ): 
    63876390                roomBarsDic[room] = [] 
    6388             # Bars order should be preserved             
     6391            # Bars order should be preserved 
    63896392            roomBarsDic[room].append( bar ) 
    6390          
    6391         if showEmptyRooms:  
     6393 
     6394        if showEmptyRooms: 
    63926395            dayRoomBarsList = getRoomBarsList( rooms ) #copy.copy( cleanRoomBarsList ) 
    6393          
     6396 
    63946397            for roomBar in dayRoomBarsList: 
    63956398                roomBar.bars = roomBarsDic.get( roomBar.room, [] ) 
     
    63986401            for room in roomBarsDic.keys(): 
    63996402                dayRoomBarsList.append(RoomBars(room,roomBarsDic[room])) 
    6400          
     6403 
    64016404        if showEmptyDays or len(dayBars) > 0: 
    64026405            newDayBarsDic[day.date()] = dayRoomBarsList 
    6403      
     6406 
    64046407    return newDayBarsDic 
    6405          
     6408 
    64066409 
    64076410class WRoomBookingRoomStats( WTemplated ): 
     
    64176420        vars["period"] = self._rh._period 
    64186421        vars["kpiAverageOccupation"] = str( int( round( self._rh._kpiAverageOccupation * 100 ) ) ) + "%" 
    6419         # Bookings     
     6422        # Bookings 
    64206423        vars["kbiTotalBookings"] = self._rh._totalBookings 
    64216424        # Next 9 KPIs 
     
    64236426        vars["statsURL"] = urlHandlers.UHRoomBookingRoomStats.getURL() 
    64246427        return vars 
    6425     
     6428 
    64266429 
    64276430class WRoomBookingRoomDetails( WTemplated ): 
    6428      
     6431 
    64296432    def __init__( self, rh, standalone = False ): 
    64306433        self._rh = rh 
     
    64456448        vars["actionSucceeded"] = self._rh._afterActionSucceeded 
    64466449        vars["deletionFailed"] = self._rh._afterDeletionFailed 
    6447          
     6450 
    64486451        vars["roomStatsUH"] = urlHandlers.UHRoomBookingRoomStats 
    64496452 
     
    64776480        resvEx.repeatability = RepeatabilityEnum.daily 
    64786481        resvEx.room = self._rh._room 
    6479         resvEx.isConfirmed = None # to include not also confirmed  
    6480          
     6482        resvEx.isConfirmed = None # to include not also confirmed 
     6483 
    64816484        # Bars: Existing reservations 
    64826485        collisionsOfResvs = resvEx.getCollisions() 
     
    65066509        vars["Bar"] = Bar 
    65076510        vars["withConflicts"] = False 
    6508          
     6511 
    65096512        return vars 
    65106513 
    65116514class WRoomBookingDetails( WTemplated ): 
    6512      
     6515 
    65136516    def __init__( self, rh, standalone = False ): 
    65146517        self._rh = rh 
     
    65276530            vars["title"] = self._rh._title 
    65286531            vars["description"] = self._rh._description 
    6529          
     6532 
    65306533        if self._standalone: 
    65316534            vars["roomDetailsUH"] = urlHandlers.UHRoomBookingRoomDetails 
     
    65426545 
    65436546class WRoomBookingBookingForm( WTemplated ): 
    6544      
     6547 
    65456548    def __init__( self, rh, standalone = False ): 
    65466549        self._rh = rh 
     
    65766579        vars["skipConflicting"] = self._rh._skipConflicting 
    65776580 
    6578         if self._rh._formMode == FormMode.MODIF:  
    6579             vars["allowPast"] = "true"  
    6580         else:  
    6581             vars["allowPast"] = "false"  
    6582         vars["formMode"] = self._rh._formMode  
     6581        if self._rh._formMode == FormMode.MODIF: 
     6582            vars["allowPast"] = "true" 
     6583        else: 
     6584            vars["allowPast"] = "false" 
     6585        vars["formMode"] = self._rh._formMode 
    65836586        vars["FormMode"] = FormMode 
    6584          
     6587 
    65856588        # [Book] or [PRE-Book] ? 
    65866589        bookingMessage = "Book" 
     
    65956598        else: 
    65966599            bText = "Save" 
    6597          
     6600 
    65986601        vars["roomBookingRoomCalendar"] = WRoomBookingRoomCalendar( self._rh, self._standalone, buttonText=bText).getHTML( {} ) 
    6599          
     6602 
    66006603        return vars 
    66016604 
    66026605class WRoomBookingConfirmBooking( WRoomBookingBookingForm ): 
    6603      
    6604     def getVars( self ): 
    6605         vars = WTemplated.getVars( self ) 
    6606          
     6606 
     6607    def getVars( self ): 
     6608        vars = WTemplated.getVars( self ) 
     6609 
    66076610        vars["candResv"] = self._candResv 
    6608          
     6611 
    66096612        vars["standalone"] = self._standalone 
    66106613        vars["formMode"] = self._rh._formMode 
    66116614        vars["FormMode"] = FormMode 
    66126615        vars["collisions"] = self._rh._collisions 
    6613          
     6616 
    66146617        bookingMessage = "Book" 
    66156618        room = self._candResv.room 
     
    66186621            bookingMessage = "PRE-Book" 
    66196622        vars["bookingMessage"] = bookingMessage 
    6620                 
     6623 
    66216624        if self._standalone: 
    66226625             vars["conf"] = None 
     
    66266629             vars["conf"] = self._rh._conf 
    66276630             vars["saveBookingUH"] = urlHandlers.UHConfModifRoomBookingSaveBooking 
    6628              vars["roomDetailsUH"] = urlHandlers.UHConfModifRoomBookingRoomDetails              
    6629         return vars 
    6630          
     6631             vars["roomDetailsUH"] = urlHandlers.UHConfModifRoomBookingRoomDetails 
     6632        return vars 
     6633 
    66316634class WRoomBookingRoomForm( WTemplated ): 
    6632      
     6635 
    66336636    def __init__( self, rh ): 
    66346637        self._rh = rh 
     
    66366639    def getVars( self ): 
    66376640        vars = WTemplated.getVars( self ) 
    6638          
     6641 
    66396642        candRoom = self._rh._candRoom 
    66406643        goodFactory = Location.parse( candRoom.locationName ).factory 
    6641          
     6644 
    66426645        vars["Location"] = Location 
    66436646        vars["room"] = candRoom 
     
    66466649        vars["config"] = Config.getInstance() 
    66476650        vars["possibleEquipment"] = goodFactory.getEquipmentManager().getPossibleEquipment( location = candRoom.locationName ) 
    6648          
     6651 
    66496652        vars["showErrors"] = self._rh._showErrors 
    66506653        vars["errors"] = self._rh._errors 
     
    66576660        else: 
    66586661            vars["responsibleName"] = "" 
    6659          
     6662 
    66606663        return vars 
    66616664 
     
    66686671        self._standalone = standalone 
    66696672        self._buttonText = buttonText 
    6670          
     6673 
    66716674    def getVars( self ): 
    66726675        vars = WTemplated.getVars( self ) 
     
    66836686        now = datetime.now() 
    66846687        if candResv != None: #.startDT != None and candResv.endDT != None: 
    6685             calendarStartDT = datetime( candResv.startDT.year, candResv.startDT.month, candResv.startDT.day, 0, 0, 1 )  # Potential performance problem  
     6688            calendarStartDT = datetime( candResv.startDT.year, candResv.startDT.month, candResv.startDT.day, 0, 0, 1 )  # Potential performance problem 
    66866689            calendarEndDT =  datetime( candResv.endDT.year, candResv.endDT.month, candResv.endDT.day, 23, 59 )     # with very long reservation periods 
    66876690        else: 
     
    66966699        resvEx.room = room 
    66976700        resvEx.isConfirmed = None # To include both confirmed and not confirmed 
    6698          
     6701 
    66996702        # Bars: Existing reservations 
    67006703        collisionsOfResvs = resvEx.getCollisions() 
     
    67126715 
    67136716        # Bars: Conflicts all vs candidate 
    6714         candResvIsConfirmed = candResv.isConfirmed;    
     6717        candResvIsConfirmed = candResv.isConfirmed; 
    67156718        candResv.isConfirmed = None 
    67166719        allCollisions = candResv.getCollisions() 
     
    67266729            else: 
    67276730                bars.append( Bar( c, Bar.PRECONFLICT ) ) 
    6728          
     6731 
    67296732        if not candResv.isRejected and not candResv.isCancelled: 
    67306733            vars["thereAreConflicts"] = len( collisions ) > 0 
     
    67326735            vars["thereAreConflicts"] = False 
    67336736        vars["conflictsNumber"] = len( collisions ) 
    6734          
     6737 
    67356738        bars = barsList2Dictionary( bars ) 
    67366739        bars = addOverlappingPrebookings( bars ) 
     
    67896792        vars["possibleEquipment"] = self._location.factory.getEquipmentManager().getPossibleEquipment(location = self._location.friendlyName) 
    67906793        vars["AttsManager"] = self._location.factory.getCustomAttributesManager() 
    6791          
     6794 
    67926795        # Rooms 
    67936796        rooms = self._location.factory.newRoom().getRooms(location = self._location.friendlyName) 
    67946797        rooms.sort(key = lambda r: r.getFullName()) 
    6795          
     6798 
    67966799        vars["Rooms"] = rooms 
    6797          
     6800 
    67986801        rh = self._rh 
    6799          
     6802 
    68006803        vars["withKPI"] = rh._withKPI 
    6801          
     6804 
    68026805        if rh._withKPI: 
    68036806            vars["kpiAverageOccupation"] = str( int( round( rh._kpiAverageOccupation * 100 ) ) ) + "%" 
    6804              
     6807 
    68056808            vars["kpiTotalRooms"] = rh._kpiTotalRooms 
    68066809            vars["kpiActiveRooms"] = rh._kpiActiveRooms 
    68076810            vars["kpiReservableRooms"] = rh._kpiReservableRooms 
    6808      
     6811 
    68096812            vars["kpiReservableCapacity"] = rh._kpiReservableCapacity 
    68106813            vars["kpiReservableSurface"] = rh._kpiReservableSurface 
    6811              
     6814 
    68126815            # Bookings 
    6813              
     6816 
    68146817            vars["kbiTotalBookings"] = rh._totalBookings 
    6815      
     6818 
    68166819            # Next 9 KPIs 
    68176820            vars["stats"] = rh._booking_stats 
    6818          
    6819         return vars 
    6820      
    6821 class WBaseSearchBox(WTemplated):      
    6822      
     6821 
     6822        return vars 
     6823 
     6824class WBaseSearchBox(WTemplated): 
     6825 
    68236826    def __init__(self, template='SearchBox', targetId=0): 
    68246827        # overload the template 
    68256828        WTemplated.__init__(self,template) 
    68266829        self._targetId = targetId 
    6827          
     6830 
    68286831    def getVars(self): 
    6829         vars = WTemplated.getVars( self )         
     6832        vars = WTemplated.getVars( self ) 
    68306833        vars["searchAction"] = urlHandlers.UHSearch.getURL(); 
    68316834        vars['targetId'] = self._targetId 
    68326835        vars['searchImg'] =  imgLogo=Configuration.Config.getInstance().getSystemIconURL( "search" ) 
     6836        vars['categId'] = 0 
    68336837        return vars 
    68346838 
    68356839class WMiniSearchBox(WBaseSearchBox): 
    6836     
     6840 
    68376841    def __init__(self, confId): 
    68386842        WBaseSearchBox.__init__(self, template='MiniSearchBox',targetId = confId) 
    6839     
     6843 
    68406844    def getVars(self): 
    68416845        vars = WBaseSearchBox.getVars( self ) 
    6842         return vars     
     6846        return vars 
    68436847 
    68446848class WMicroSearchBox(WBaseSearchBox): 
    6845     
     6849 
    68466850    def __init__(self, confId): 
    68476851        WBaseSearchBox.__init__(self, template='MicroSearchBox',targetId = confId) 
    68486852        self._confId = confId 
    6849     
     6853 
    68506854    def getVars(self): 
    6851         vars = WBaseSearchBox.getVars( self )        
     6855        vars = WBaseSearchBox.getVars( self ) 
    68526856        vars["innerBox"] = WMiniSearchBox(self._confId).getHTML().replace('"', '\\"').replace("'", "\\'").replace("\n"," ") 
    68536857        vars["closeIcon"] = quoteattr(str(Configuration.Config.getInstance().getSystemIconURL("remove"))); 
    6854         return vars     
     6858        return vars 
    68556859 
    68566860class WCategorySearchBox(WBaseSearchBox): 
    6857     
     6861 
    68586862    def __init__(self, categId = 0, optionsClass='arrowExpandIcon'): 
    68596863        WBaseSearchBox.__init__(self, targetId = categId) 
     6864        self._categId = categId 
    68606865        self._moreOptionsClass = optionsClass 
    6861          
     6866 
    68626867    def getVars(self): 
    68636868        vars = WBaseSearchBox.getVars( self ) 
     6869        vars["categId"] = self._categId 
    68646870        vars['moreOptionsClass'] = self._moreOptionsClass 
    68656871        return vars 
    6866        
     6872 
    68676873class WRootSearchBox(WBaseSearchBox): 
    6868      
     6874 
    68696875    def __init__(self): 
    68706876        # overload the template 
    68716877        WBaseSearchBox.__init__(self,'RootSearchBox') 
    6872          
     6878 
    68736879    def getVars(self): 
    6874         vars = WBaseSearchBox.getVars( self )         
    6875         vars["innerBox"] = WBaseSearchBox().getHTML()    
    6876         return vars 
    6877      
     6880        vars = WBaseSearchBox.getVars( self ) 
     6881        vars["innerBox"] = WBaseSearchBox().getHTML() 
     6882        return vars 
     6883 
    68786884class WUtils: 
    68796885    """A interface for creating easily some HTML elements...""" 
    6880      
     6886 
    68816887    def createImg(cls, imgId, imgInfo="", imgText="", **attributes): 
    68826888        """ returns an HTML image with optional text on the right. 
     
    68906896        return """<img src="%s" alt="%s" %s /> %s"""%(Config.getInstance().getSystemIconURL(imgId),imgInfo,attr,imgText) 
    68916897    createImg = classmethod(createImg) 
    6892      
     6898 
    68936899    def createImgButton(cls, url, imgId, imgInfo="", imgText="", **attributes): 
    68946900        """ returns an HTML image link with optional text on the right. 
     
    69056911          </a>"""%(url, attr, Config.getInstance().getSystemIconURL(imgId), imgInfo, imgText) 
    69066912    createImgButton = classmethod(createImgButton) 
    6907      
     6913 
    69086914    def createChangingImgButton(cls, url, imgID, imgOverId, imgInfo="", imgText="", **attributes): 
    69096915        """ returns a changing HTML image link 
    69106916            (i.e. the image changes depending on mouseOver/mouseOut) 
    69116917            with optional text on the right. 
    6912          
     6918 
    69136919            Params: 
    69146920                url -- link of target. 
     
    69246930        return """<a href="%s" %s> 
    69256931              <img src="%s" alt="%s" onmouseover="javascript:this.src='%s'" onMouseOut="javascript:this.src='%s'"/> %s 
    6926           </a>"""%(url, attr, iconUrl, imgInfo, iconOverUrl, iconUrl, imgText)            
     6932          </a>"""%(url, attr, iconUrl, imgInfo, iconOverUrl, iconUrl, imgText) 
    69276933    createChangingImgButton = classmethod(createChangingImgButton) 
    6928      
     6934 
    69296935    def createTextarea(cls, content="", **attributes): 
    69306936        """ returns an HTML textarea with optional text. 
     
    69406946        return """<textarea rows="5" cols="15" %s>%s</textarea>"""%(attr,content) 
    69416947    createTextarea = classmethod(createTextarea) 
    6942      
     6948 
    69436949    def createInput(cls, text="", **attributes): 
    69446950        """ returns an HTML input with optional text. 
     
    69546960        return """<input %s/>%s"""%(attr,text) 
    69556961    createInput = classmethod(createInput) 
    6956      
     6962 
    69576963    def createSelect(cls, emptyOption, options, selected="", **attributes): 
    69586964        """ returns an HTML select field. 
     
    69796985        return """<select %s>%s</select>"""%(attr,optionsHTML) 
    69806986    createSelect = classmethod(createSelect) 
    6981      
     6987 
    69826988    def appendNewLine(cls, htmlContent): 
    69836989        """ appends a new line <br/> to the given html element. 
     
    69896995 
    69906996class WBeautifulHTMLList(WTemplated): 
    6991      
     6997 
    69926998    def __init__(self, listObject, classNames, level): 
    69936999        """ classNames: a dictionary such as {'UlClassName' : 'optionList'}. See the getVars for more class names. 
     
    69977003        self.__classNames = classNames 
    69987004        self.__level = level 
    6999          
     7005 
    70007006    def getVars(self): 
    70017007        vars = WTemplated.getVars( self ) 
     
    70067012        vars["Level"] = self.__level 
    70077013        return vars 
    7008      
     7014 
    70097015class WBeautifulHTMLDict(WTemplated): 
    7010      
     7016 
    70117017    def __init__(self, dictObject, classNames, level): 
    70127018        """ classNames: a dictionary such as {'UlClassName' : 'optionList'}. See the getVars for more class names. 
     
    70167022        self.__classNames = classNames 
    70177023        self.__level = level 
    7018          
     7024 
    70197025    def getVars(self): 
    70207026        vars = WTemplated.getVars( self ) 
Note: See TracChangeset for help on using the changeset viewer.