def _getContribItems(self): res = [] #available contributions to a session are those contributions which: # 1) are not included in any session # 2) are not withdrawn # 3) are not scheduled sc = contribFilters.SortingCriteria(["number"]) contribList = filters.SimpleFilter(None, sc).apply( self._session.getConference().getContributionList()) for contrib in contribList: if contrib.getSession() is not None or isinstance( contrib.getCurrentStatus(), conference. ContribStatusWithdrawn) or contrib.isScheduled(): continue cType = "" if contrib.getType() is not None: cType = "%s" % contrib.getType().getName() spks = [ self.htmlText(spk.getFullName()) for spk in contrib.getSpeakerList() ] res.append(""" <tr> <td valgin="top"><input type="checkbox" name="manSelContribs" value=%s></td> <td valgin="top">%s</td> <td valgin="top">[%s]</td> <td valgin="top"><i>%s</i></td> <td valgin="top">%s</td> </tr> """%(quoteattr(str(contrib.getId())), \ self.htmlText(contrib.getId()),\ self.htmlText(cType), \ self.htmlText(contrib.getTitle()),\ "<br>".join(spks))) return "".join(res)
def match(self, criteria): """ """ crit = {} for f, v in criteria.items(): crit[f] = [v] f = filters.SimpleFilter(_DomainFilterCriteria(crit), None) return f.apply(self.getList())
def _handleGet(self): contributions = self._conf.getContributionList() filter = {} #filtering if the active user is a referee: he can only see his own contribs isOnlyReferee = RCReferee.hasRights(self) \ and not RCPaperReviewManager.hasRights(self) \ and not self._conf.canModify(self.getAW()) if isOnlyReferee: filter["referee"] = self._getUser() elif self._showWithReferee: filter["referee"] = "any" else: filter["referee"] = None if self._showWithEditor: filter["editor"] = "any" else: filter["editor"] = None if self._showWithReviewer: filter["reviewer"] = "any" else: filter["reviewer"] = None #note by David: I added "if self._selTypes..." and the other ifs after this line, #in order to make the recording request load contributions work #but, it may break the paper reviewing module -> assign contributions filter if self._selTypes: filter["type"] = self._selTypes if self._selTracks: filter["track"] = self._selTracks if self._selSessions: filter["session"] = self._selSessions if self._poster: filter["poster"] = self._poster filterCrit = ContributionsReviewingFilterCrit(self._conf, filter) sortingCrit = contribFilters.SortingCriteria(["number"]) if self._selTypes: filterCrit.getField("type").setShowNoValue(self._typeShowNoValue) if self._selTracks: filterCrit.getField("track").setShowNoValue(self._trackShowNoValue) if self._selSessions: filterCrit.getField("session").setShowNoValue( self._sessionShowNoValue) if self._poster: filterCrit.getField("poster").setShowNoValue( self._posterShowNoValue) filterCrit.getField("referee").setShowNoValue(not isOnlyReferee) f = filters.SimpleFilter(filterCrit, sortingCrit) contributions = f.apply(contributions) return DictPickler.pickle(contributions)
def _handleGet(self): contributions = (Contribution.find( event_new=self._conf.as_event, is_deleted=False).options(joinedload('timetable_entry'), joinedload('paper_reviewing_roles'))) filter = {} #filtering if the active user is a referee: he can only see his own contribs isOnlyReferee = RCReferee.hasRights(self) \ and not RCPaperReviewManager.hasRights(self) \ and not self._conf.canModify(self.getAW()) # We want to make an 'or', not an 'and' of the reviewing assign status filter["reviewing"] = {} if isOnlyReferee: filter["reviewing"]["referee"] = self._getUser() elif self._showWithReferee: filter["reviewing"]["referee"] = "any" if self._showWithEditor: filter["reviewing"]["editor"] = "any" if self._showWithReviewer: filter["reviewing"]["reviewer"] = "any" filter["type"] = self._selTypes filter["track"] = self._selTracks filter["session"] = self._selSessions filter["materialsubmitted"] = self._showWithMaterial filterCrit = ContributionsReviewingFilterCrit(self._conf, filter) sortingCrit = contribFilters.SortingCriteria(["number"]) filterCrit.getField("type").setShowNoValue(self._typeShowNoValue) filterCrit.getField("track").setShowNoValue(self._trackShowNoValue) filterCrit.getField("session").setShowNoValue(self._sessionShowNoValue) filterCrit.getField("reviewing").setShowNoValue(self._showWithoutTeam) filterCrit.getField("materialsubmitted").setShowNoValue( self._showWithoutMaterial) f = filters.SimpleFilter(filterCrit, sortingCrit) contributions = f.apply(contributions) return [_serialize_contribution(contrib) for contrib in contributions]
def getVars(self): vars = wcomponents.WTemplated.getVars(self) vars["quickAccessURL"] = quoteattr( str( urlHandlers.UHSessionModContribQuickAccess.getURL( self._session))) vars["filterPostURL"] = quoteattr( str(urlHandlers.UHSessionModContribList.getURL(self._session))) vars["types"] = self._getTypeItemsHTML() vars["tracks"] = self._getTrackItemsHTML() vars["status"] = self._getStatusItemsHTML() vars["authSearch"] = "" authField = self._filterCrit.getField("author") if authField is not None: vars["authSearch"] = quoteattr(str(authField.getValues()[0])) sortingField = self._sortingCrit.getField() self._currentSorting = "" if sortingField is not None: self._currentSorting = sortingField.getId() vars["currentSorting"] = "" url = self._getURL() url.addParam("sortBy", "number") vars["numberImg"] = "" if self._currentSorting == "number": vars[ "currentSorting"] = """<input type="hidden" name="sortBy" value="number">""" if self._order == "down": vars["numberImg"] = """<img src=%s alt="down">""" % (quoteattr( Config.getInstance().getSystemIconURL("downArrow"))) url.addParam("order", "up") elif self._order == "up": vars["numberImg"] = """<img src=%s alt="up">""" % (quoteattr( Config.getInstance().getSystemIconURL("upArrow"))) url.addParam("order", "down") vars["numberSortingURL"] = quoteattr(str(url)) url = self._getURL() url.addParam("sortBy", "date") vars["dateImg"] = "" if self._currentSorting == "date": vars[ "currentSorting"] = """<input type="hidden" name="sortBy" value="date">""" if self._order == "down": vars["dateImg"] = """<img src=%s alt="down">""" % (quoteattr( Config.getInstance().getSystemIconURL("downArrow"))) url.addParam("order", "up") elif self._order == "up": vars["dateImg"] = """<img src=%s alt="up">""" % (quoteattr( Config.getInstance().getSystemIconURL("upArrow"))) url.addParam("order", "down") vars["dateSortingURL"] = quoteattr(str(url)) url = self._getURL() url.addParam("sortBy", "board_number") vars["boardNumImg"] = "" if self._currentSorting == "board_number": vars[ "currentSorting"] = """<input type="hidden" name="sortBy" value="board_number">""" if self._order == "down": vars["boardNumImg"] = """<img src=%s alt="down">""" % ( quoteattr( Config.getInstance().getSystemIconURL("downArrow"))) url.addParam("order", "up") elif self._order == "up": vars["boardNumImg"] = """<img src=%s alt="up">""" % (quoteattr( Config.getInstance().getSystemIconURL("upArrow"))) url.addParam("order", "down") vars["boardNumSortingURL"] = quoteattr(str(url)) url = self._getURL() url.addParam("sortBy", "type") vars["typeImg"] = "" if self._currentSorting == "type": vars[ "currentSorting"] = """<input type="hidden" name="sortBy" value="type">""" if self._order == "down": vars["typeImg"] = """<img src=%s alt="down">""" % (quoteattr( Config.getInstance().getSystemIconURL("downArrow"))) url.addParam("order", "up") elif self._order == "up": vars["typeImg"] = """<img src=%s alt="up">""" % (quoteattr( Config.getInstance().getSystemIconURL("upArrow"))) url.addParam("order", "down") vars["typeSortingURL"] = quoteattr(str(url)) url = self._getURL() url.addParam("sortBy", "name") vars["titleImg"] = "" if self._currentSorting == "name": vars[ "currentSorting"] = """<input type="hidden" name="sortBy" value="name">""" if self._order == "down": vars["titleImg"] = """<img src=%s alt="down">""" % (quoteattr( Config.getInstance().getSystemIconURL("downArrow"))) url.addParam("order", "up") elif self._order == "up": vars["titleImg"] = """<img src=%s alt="up">""" % (quoteattr( Config.getInstance().getSystemIconURL("upArrow"))) url.addParam("order", "down") vars["titleSortingURL"] = quoteattr(str(url)) url = self._getURL() url.addParam("sortBy", "speaker") vars["speakerImg"] = "" if self._currentSorting == "speaker": vars[ "currentSorting"] = """<input type="hidden" name="sortBy" value="speaker">""" if self._order == "down": vars["speakerImg"] = """<img src=%s alt="down">""" % ( quoteattr( Config.getInstance().getSystemIconURL("downArrow"))) url.addParam("order", "up") elif self._order == "up": vars["speakerImg"] = """<img src=%s alt="up">""" % (quoteattr( Config.getInstance().getSystemIconURL("upArrow"))) url.addParam("order", "down") vars["speakerSortingURL"] = quoteattr(str(url)) url = self._getURL() url.addParam("sortBy", "track") vars["trackImg"] = "" if self._currentSorting == "track": vars[ "currentSorting"] = """<input type="hidden" name="sortBy" value="track">""" if self._order == "down": vars["trackImg"] = """<img src=%s alt="down">""" % (quoteattr( Config.getInstance().getSystemIconURL("downArrow"))) url.addParam("order", "up") elif self._order == "up": vars["trackImg"] = """<img src=%s alt="up">""" % (quoteattr( Config.getInstance().getSystemIconURL("upArrow"))) url.addParam("order", "down") vars["trackSortingURL"] = quoteattr(str(url)) l = [] numContribs = 0 f = filters.SimpleFilter(self._filterCrit, self._sortingCrit) contribsToPrint = [] for contrib in f.apply(self._session.getContributionList()): l.append(self._getContribHTML(contrib)) numContribs += 1 contribsToPrint.append( """<input type="hidden" name="contributions" value="%s">""" % contrib.getId()) if self._order == "up": l.reverse() vars["contributions"] = "".join(l) vars["contribsToPrint"] = "".join(contribsToPrint) vars["contributionActionURL"] = quoteattr( str( urlHandlers.UHSessionModContributionAction.getURL( self._session))) vars["contributionsPDFURL"] = quoteattr( str(urlHandlers.UHSessionModToPDF.getURL(self._session))) vars["participantListURL"] = quoteattr( str(urlHandlers.UHSessionModParticipantList.getURL(self._session))) vars["addContribURL"] = quoteattr( str(urlHandlers.UHSessionModAddContribs.getURL(self._session))) vars["numContribs"] = str(numContribs) totaldur = self._totaldur days = totaldur.days hours = (totaldur.seconds) / 3600 dayhours = (days * 24) + hours mins = ((totaldur.seconds) / 60) - (hours * 60) vars["totaldur"] = """%sh%sm""" % (dayhours, mins) return vars
def getVars(self): vars = wcomponents.WTemplated.getVars(self) vars["types"] = "<br>".join(self._getTypeFilterItemList()) vars["status"] = "<br>".join(self._getStatusFilterItemList()) vars["others"] = "<br>".join(self._getOthersFilterItemList()) vars["accTypes"] = "<br>".join(self._getAccTypeFilterItemList()) f = filters.SimpleFilter(self._filterCrit, self._sortingCrit) al = [] abstractsToPrint = [] self._checked = "" if vars["selectAll"]: self._checked = " checked" abstractList = f.apply(self._track.getAbstractList()) for abstract in abstractList: al.append(self._getAbstractHTML(abstract)) abstractsToPrint.append( """<input type="hidden" name="abstracts" value="%s">""" % abstract.getId()) vars["filteredNumberAbstracts"] = str(len(abstractList)) vars["totalNumberAbstracts"] = str(len(self._track.getAbstractList())) if self._order == "up": al.reverse() vars["abstracts"] = "".join(al) vars["abstractsToPrint"] = "\n".join(abstractsToPrint) sortingField = self._sortingCrit.getField() vars["currentSorting"] = "" for crit in ["type", "status", "number", "date", "rating"]: url = self._getURL() vars["%sImg" % crit] = "" url.addParam("sortBy", crit) if sortingField.getId() == crit: vars[ "currentSorting"] = '<input type="hidden" name="sortBy" value="%s">' % crit if self._order == "down": vars["%sImg" % crit] = """<img src="%s" alt="">""" % ( Config.getInstance().getSystemIconURL("downArrow")) url.addParam("order", "up") elif self._order == "up": vars["%sImg" % crit] = """<img src="%s" alt="">""" % ( Config.getInstance().getSystemIconURL("upArrow")) url.addParam("order", "down") vars["%sSortingURL" % crit] = str(url) url = urlHandlers.UHTrackModifAbstracts.getURL(self._track) url.addParam("order", self._order) url.addParam("OK", "1") url.setSegment("abstracts") vars["filterPostURL"] = quoteattr(str(url)) vars["accessAbstract"] = quoteattr( str(urlHandlers.UHTrackAbstractDirectAccess.getURL(self._track))) vars["allAbstractsURL"] = str( urlHandlers.UHConfAbstractManagment.getURL(self._conf)) l = [] for tpl in self._conf.getAbstractMgr().getNotificationTplList(): l.append("""<option value="%s">%s</option>""" % (tpl.getId(), tpl.getName())) vars["notifTpls"] = "\n".join(l) vars["actionURL"] = quoteattr( str(urlHandlers.UHAbstractsTrackManagerAction.getURL(self._track))) vars["selectURL"] = quoteattr( str(urlHandlers.UHTrackModifAbstracts.getURL(self._track))) vars["filterUsed"] = self._filterUsed vars["resetFiltersURL"] = str( urlHandlers.UHTrackModifAbstracts.getURL(self._track)) vars["pdfIconURL"] = quoteattr( str(Config.getInstance().getSystemIconURL("pdf"))) vars["canModify"] = self._canModify return vars