Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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())
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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]
Exemplo n.º 5
0
    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
Exemplo n.º 6
0
    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