Changeset 6ed0cd in indico


Ignore:
Timestamp:
03/02/11 14:03:36 (2 years ago)
Author:
Jose Benito <jose.benito.gonzalez@…>
Branches:
master, burotel, hello-world-walkthrough, ipv6, v0.98-series, v0.98.2, v0.98.3, v0.98b1, v0.98b2, v0.99, b8c30da8ebdbdcbd675a873997cc3e95f567de49, 36509dd327b5670bb394f5ec070c14653b4c9c19
Children:
3ffc0d
Parents:
90a4562
git-author:
Alexis Castilla Hernandez <alexis.castilla.hernandez@…> (02/08/11 12:20:30)
git-committer:
Jose Benito <jose.benito.gonzalez@…> (03/02/11 14:03:36)
Message:

[IMP] Question objects inside Answer

  • Replaced the questionId by the question object and tested for paper reviewing and abstract reviewing
  • judgement in paper reviewing reviews as Status object
  • some minor changes in the styles
Location:
indico/MaKaC
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • indico/MaKaC/contributionReviewing.py

    r90a4562 r6ed0cd  
    296296        self._review = review #the parent Review object for this Judgement 
    297297        self._author = author #the user (Referee, Editor or Reviewer) author of the judgement 
    298         self._judgement = judgement #the judgement, a string which represents the id of the judgement, 1:Accept, 2:To be Corrected, 3:Reject, ...others 
     298        self._judgement = judgement #the judgement is a status object, 1:Accept, 2:To be Corrected, 3:Reject, ...others 
    299299        self._comments = comments #the comments, a string 
    300300        #a list with the Answers objects 
     
    323323            return None 
    324324        else: 
    325             return self.getReviewManager().getConfPaperReview().getStatusById(self._judgement).getName() 
     325            return self._judgement.getName() 
    326326 
    327327    def getComments(self): 
     
    330330    def getAnswers(self): 
    331331        """ To be implemented by sub-classes 
    332             Returns a list of tuples (question, answer) 
    333332        """ 
    334333        pass 
     
    359358        self._author = user 
    360359 
    361     def setJudgement(self, judgement): 
    362         self._judgement = judgement 
     360    def setJudgement(self, judgementId): 
     361        self._judgement = self.getReviewManager().getConfPaperReview().getStatusById(judgementId) 
    363362 
    364363    def setComments(self, comments): 
     
    369368        """ 
    370369        for answer in self._answers: 
    371             if (questionId == answer.getQuestionId()): 
     370            if (questionId == answer.getQuestion().getId()): 
    372371                return answer 
    373372        # Create the new object with the initial value for the rbValue 
     
    375374        rbValue = ConferencePaperReview.initialSelectedAnswer 
    376375        numberOfAnswers = len(ConferencePaperReview.reviewingQuestionsAnswers) 
    377         newAnswer = Answer(newId, rbValue, numberOfAnswers, questionId) 
     376        question = self.getReviewManager().getConfPaperReview().getReviewingQuestionById(questionId) 
     377        newAnswer = Answer(newId, rbValue, numberOfAnswers, question) 
    378378        self._answers.append(newAnswer) 
    379379        self.notifyModification() 
     
    389389        self._submitted = submitted 
    390390        self._submissionDate = nowutc() 
     391 
     392    def purgeAnswers(self): 
     393        """ Remove the answers of the questions that were sent but we don't need anymory because 
     394            the questions has been removed """ 
     395        # Check if the question has been removed 
     396        for answer in self._answers: 
     397            if (self.getConfPaperReview().getReviewingQuestionById(answer.getQuestion().getId()) == None): 
     398                self._answers.remove(answer) 
    391399 
    392400    def sendNotificationEmail(self, widthdrawn = False): 
     
    435443        """ 
    436444        Judgement.setSubmitted(self, submitted) 
    437  
     445        if (not self._submitted): 
     446            # Check if it is necessary to purge some answers 
     447            self.purgeAnswers() 
    438448        matReviewing = self.getReviewManager().getContribution().getReviewing() 
    439449 
    440450        self.getReview().copyMaterials(matReviewing) 
    441451 
    442         if self._judgement == "2" or int(self._judgement) > 3: 
     452        if self._judgement.getId() == "2" or int(self._judgement.getId()) > 3: 
    443453            self.getReviewManager().newReview() 
    444454            # remove reviewing materials from the contribution 
     
    450460        for answer in self._answers: 
    451461            try: 
    452                 questionText = self.getConfPaperReview().getReviewingQuestionById(answer.getQuestionId()).getText() 
     462                questionText = answer.getQuestion().getText() 
    453463                questionJudgement = ConferencePaperReview.reviewingQuestionsAnswers[answer.getRbValue()] 
    454464                questionAnswerList.append(questionText+": "+questionJudgement) 
     
    469479        """ 
    470480        Judgement.setSubmitted(self, submitted) 
    471         if self.getReviewManager().getConference().getConfPaperReview().getChoice() == 3 and self._judgement == "2": 
     481        if (not self._submitted): 
     482            # Check if it is necessary to purge some answers 
     483            self.purgeAnswers() 
     484        if self.getReviewManager().getConference().getConfPaperReview().getChoice() == 3 and self._judgement.getId() == "2": 
    472485            matReviewing = self.getReviewManager().getContribution().getReviewing() 
    473486            self.getReview().copyMaterials(matReviewing) 
     
    476489            self.getReviewManager().getContribution().removeMaterial(matReviewing) 
    477490 
     491    def purgeAnswers(self): 
     492        """ Remove the answers of the questions that were sent but we don't need anymory because 
     493            the questions has been removed """ 
     494        # Check if the question has been removed 
     495        for answer in self._answers: 
     496            if (self.getConfPaperReview().getLayoutQuestionById(answer.getQuestion().getId()) == None): 
     497                self._answers.remove(answer) 
     498 
     499 
     500    def getAnswer(self, questionId): 
     501        """ Returns the Answer object if it already exists otherwise we create it 
     502        """ 
     503        for answer in self._answers: 
     504            if (questionId == answer.getQuestion().getId()): 
     505                return answer 
     506        # Create the new object with the initial value for the rbValue 
     507        newId = self.getNewAnswerId() 
     508        rbValue = ConferencePaperReview.initialSelectedAnswer 
     509        numberOfAnswers = len(ConferencePaperReview.reviewingQuestionsAnswers) 
     510        question = self.getReviewManager().getConfPaperReview().getLayoutQuestionById(questionId) 
     511        newAnswer = Answer(newId, rbValue, numberOfAnswers, question) 
     512        self._answers.append(newAnswer) 
     513        self.notifyModification() 
     514        return newAnswer 
     515 
    478516    def getAnswers(self): 
    479517        questionAnswerList = [] 
    480518        for answer in self._answers: 
    481519            try: 
    482                 questionText = self.getConfPaperReview().getLayoutQuestionById(answer.getQuestionId()).getText() 
     520                questionText = answer.getQuestion().getText() 
    483521                questionJudgement = ConferencePaperReview.reviewingQuestionsAnswers[answer.getRbValue()] 
    484522                questionAnswerList.append(questionText+": "+questionJudgement) 
     
    489527 
    490528class ReviewerJudgement(Judgement): 
     529 
     530    def setSubmitted(self, submitted): 
     531        Judgement.setSubmitted(self, submitted) 
     532        if (not self._submitted): 
     533            # Check if it is necessary to purge some answers 
     534            self.purgeAnswers() 
     535 
    491536    def getAnswers(self): 
    492537        questionAnswerList = [] 
    493538        for answer in self._answers: 
    494539            try: 
    495                 questionText = self.getConfPaperReview().getReviewingQuestionById(answer.getQuestionId()).getText() 
     540                questionText = answer.getQuestion().getText() 
    496541                questionJudgement = ConferencePaperReview.reviewingQuestionsAnswers[answer.getRbValue()] 
    497542                questionAnswerList.append(questionText+": "+questionJudgement) 
  • indico/MaKaC/review.py

    rac1aa3 r6ed0cd  
    23482348                for answer in jud.getAnswers(): 
    23492349                    # check if the question is in d and sum the answers value or insert in d the new question 
    2350                     if dTotals.has_key(answer.getQuestionId()): 
    2351                         dTotals[answer.getQuestionId()] += float(answer.getValue()) 
    2352                         dTimes[answer.getQuestionId()] += 1 
     2350                    if dTotals.has_key(answer.getQuestion().getText()): 
     2351                        dTotals[answer.getQuestion().getText()] += float(answer.getValue()) 
     2352                        dTimes[answer.getQuestion().getText()] += 1 
    23532353                    else: # first time 
    2354                         dTotals[answer.getQuestionId()] = float(answer.getValue()) 
    2355                         dTimes[answer.getQuestionId()] = 1 
     2354                        dTotals[answer.getQuestion().getText()] = float(answer.getValue()) 
     2355                        dTimes[answer.getQuestion().getText()] = 1 
    23562356        # get the questions average 
    23572357        questionsAverage = {} 
     
    24832483        ''' Remove the current answers of the questionId ''' 
    24842484        for ans in self._answers: 
    2485             if ans.getQuestionId() == questionId: 
     2485            if ans.getQuestion().getId() == questionId: 
    24862486                self._answers.remove(ans) 
    24872487 
  • indico/MaKaC/reviewing.py

    r90a4562 r6ed0cd  
    444444        newId = self.getNewStatusId() 
    445445        status = Status(newId,name,editable) 
    446         #status.setEditable(True) # en las 3 primeras veces esto no funciona 
    447446        self._statuses.append(status) 
    448447        self.notifyModification() 
     
    489488 
    490489        if status: 
    491             #self._statuses.remove(status) 
    492             #self.notifyModification() 
    493             status.setEditable(False) 
     490            self._statuses.remove(status) 
     491            self.notifyModification() 
    494492        else: 
    495493            raise MaKaCError("Cannot remove a status which doesn't exist") 
     
    532530        """ Returns the list of questions 
    533531        """ 
    534         # Filter the non visible questions 
    535         visibleQuestions = [] 
    536         for question in self._reviewingQuestions: 
    537             if question.getVisible(): 
    538                 visibleQuestions.append(question) 
    539         return visibleQuestions 
    540  
    541     #def setReviewingQuestions(self, questions): 
    542     #    """ Set the whole list of questions 
    543     #    """ 
    544     #    self._reviewingQuestions = questions 
     532        return self._reviewingQuestions 
    545533 
    546534    def removeReviewingQuestion(self, questionId): 
     
    550538 
    551539        if question: 
    552             #self._reviewingQuestions.remove(question) 
    553             #self.notifyModification() 
    554             question.setVisible(False) 
     540            self._reviewingQuestions.remove(question) 
     541            self.notifyModification() 
    555542        else: 
    556543            raise MaKaCError("Cannot remove a question which doesn't exist") 
     
    586573        """ Get the list of all the layout criteria 
    587574        """ 
    588         # Filter the non visible questions 
    589         visibleQuestions = [] 
    590         for question in self._layoutQuestions: 
    591             if question.getVisible(): 
    592                 visibleQuestions.append(question) 
    593         return visibleQuestions 
    594  
    595     #def setLayoutCriteria(self, criteria): 
    596     #    """ Set the whole list of all the layout criteria 
    597     #    """ 
    598     #    self._formCriteriaList = criteria 
     575        return self._layoutQuestions 
    599576 
    600577    def removeLayoutQuestion(self, questionId): 
     
    604581 
    605582        if question: 
    606             #self._layoutQuestions.remove(question) 
    607             #self.notifyModification() 
    608             question.setVisible(False) 
     583            self._layoutQuestions.remove(question) 
     584            self.notifyModification() 
    609585        else: 
    610586            raise MaKaCError("Cannot remove a question which doesn't exist") 
     
    626602        """ 
    627603        return self._questionCounter.newCount() 
    628  
    629     #def getNewAnswerId(self): 
    630     #    """ Returns a new an unused answerId 
    631     #        Increments the answerId counter 
    632     #    """ 
    633     #   return self._answerCounter.newCount() 
    634  
    635604 
    636605    #referee methods 
     
    12371206        """ 
    12381207        # Filter the non visible questions 
    1239         visibleQuestions = [] 
    1240         for question in self._reviewingQuestions: 
    1241             if question.getVisible(): 
    1242                 visibleQuestions.append(question) 
    1243         return visibleQuestions 
     1208        #visibleQuestions = [] 
     1209        #for question in self._reviewingQuestions: 
     1210            #if question.getVisible(): 
     1211            #    visibleQuestions.append(question) 
     1212        #return visibleQuestions 
     1213        return self._reviewingQuestions 
    12441214 
    12451215    def removeReviewingQuestion(self, questionId, keepJud): 
     
    12491219 
    12501220        if question: 
    1251             if keepJud: 
    1252                 question.setVisible(False) 
    1253             else: 
    1254                 self._reviewingQuestions.remove(question) 
    1255                 self.notifyModification() 
     1221            #if keepJud: 
     1222            #    question.setVisible(False) 
     1223            #else: 
     1224            self._reviewingQuestions.remove(question) 
     1225            self.notifyModification() 
    12561226        else: 
    12571227            raise MaKaCError("Cannot remove a question which doesn't exist") 
     
    14091379        return self._text 
    14101380 
    1411     def getVisible(self): 
    1412         return self._visible 
     1381#    def getVisible(self): 
     1382#        return self._visible 
    14131383 
    14141384    def setText(self, text): 
    14151385        self._text = text 
    14161386 
    1417     def setVisible(self, value): 
    1418         self._visible = value 
     1387#    def setVisible(self, value): 
     1388#        self._visible = value 
    14191389 
    14201390 
     
    14251395    """ 
    14261396 
    1427     def __init__(self, newId, rbValue, numberOfAnswers, questionId): 
     1397    def __init__(self, newId, rbValue, numberOfAnswers, question): 
    14281398        """ Constructor. 
    14291399            rbValue: real value of the radio button 
    14301400            scaleLower, scaleHigher and numberOfAnswers: params to calculate the value in base to the scale and 
    14311401                        the number of answers 
    1432             questionId: Id of the associated question 
     1402            question: Question objett associated 
    14331403        """ 
    14341404        self._id = newId 
    14351405        self._rbValue = rbValue 
    1436         self._questionId = questionId 
     1406        self._question = question 
    14371407        # is necessary to save this value (_numberOfAnswers) here because when the value is recalculated in base to a new scale 
    14381408        # we need to keep the rbValue in base to the previous number of answers, otherwise if the user changes the number of radio 
     
    14481418        return self._value 
    14491419 
    1450     def getQuestionId(self): 
    1451         return self._questionId 
     1420    def getQuestion(self): 
     1421        return self._question 
    14521422 
    14531423    def getRbValue(self): 
  • indico/MaKaC/services/implementation/reviewing.py

    r90a4562 r6ed0cd  
    806806 
    807807    def _getAnswer( self ): 
    808  
    809808        if self._params.has_key('value'): 
    810809            judgementObject = self.getJudgementObject() 
  • indico/MaKaC/webinterface/pages/abstracts.py

    rddf66a r6ed0cd  
    15381538                    answers = status.getAnswers() 
    15391539                    for ans in answers: 
    1540                         questionNames.append(self._conf.getConfAbstractReview().getQuestionById(ans.getQuestionId()).getText()) 
     1540                        questionNames.append(ans.getQuestion().getText()) 
    15411541                        answerValues.append(ans.getValue()) 
    15421542                    rating = status.getJudValue() 
     
    15881588        i = 0 
    15891589        questions = {} 
    1590         for qId in questionIds: 
    1591             questions[self._abstract.getConference().getConfAbstractReview().getQuestionById(qId).getText()] = answerValues[i] 
     1590        for qText in questionIds: 
     1591            questions[qText] = answerValues[i] 
    15921592            i += 1 
    15931593        vars = wcomponents.WTemplated.getVars( self ) 
  • indico/MaKaC/webinterface/pages/conferences.py

    r4bd61a r6ed0cd  
    60226022            else: 
    60236023                # Get the list of questions and the answers values 
    6024                 questionNames = [] 
    6025                 questionIds = abstract.getQuestionsAverage().keys() 
    6026                 for qId in questionIds: 
    6027                     questionNames.append(self._conf.getConfAbstractReview().getQuestionById(qId).getText()) 
     6024                questionNames = abstract.getQuestionsAverage().keys() 
    60286025                answers = abstract.getQuestionsAverage().values() 
    60296026                rating = abstract.getRating() 
  • indico/MaKaC/webinterface/rh/abstractModif.py

    r4bd61a r6ed0cd  
    428428            numberOfAnswers = conf.getConfAbstractReview().getNumberOfAnswers() 
    429429            c = 0 
    430             for i in conf.getConfAbstractReview().getReviewingQuestions(): 
     430            for question in conf.getConfAbstractReview().getReviewingQuestions(): 
    431431                c += 1 
    432432                rbValue = int(params.get("_GID"+str(c),scaleLower)) 
    433                 questionId = i.getId() 
    434433                newId = conf.getConfAbstractReview().getNewAnswerId() 
    435                 newAnswer = Answer(newId, rbValue, numberOfAnswers, questionId) 
     434                newAnswer = Answer(newId, rbValue, numberOfAnswers, question) 
    436435                newAnswer.calculateRatingValue(scaleLower, scaleHigher) 
    437436                self._answers.append(newAnswer) 
     
    482481            numberOfAnswers = conf.getConfAbstractReview().getNumberOfAnswers() 
    483482            c = 0 
    484             for i in conf.getConfAbstractReview().getReviewingQuestions(): 
     483            for question in conf.getConfAbstractReview().getReviewingQuestions(): 
    485484                c += 1 
    486485                rbValue = int(params.get("_GID"+str(c),scaleLower)) 
    487                 questionId = i.getId() 
    488486                newId = conf.getConfAbstractReview().getNewAnswerId() 
    489                 newAnswer = Answer(newId, rbValue, numberOfAnswers, questionId) 
     487                newAnswer = Answer(newId, rbValue, numberOfAnswers, question) 
    490488                newAnswer.calculateRatingValue(scaleLower, scaleHigher) 
    491489                self._answers.append(newAnswer) 
  • indico/MaKaC/webinterface/rh/contribReviewingModif.py

    r6e9e95 r6ed0cd  
    277277            lastReview.getRefereeJudgement().setComments(self._comments) 
    278278            lastReview.getRefereeJudgement().setJudgement(self._judgement) 
    279             lastReview.setFinalJudgement(self._judgement) 
     279            #lastReview.setFinalJudgement(self._judgement) 
    280280            lastReview.getRefereeJudgement().sendNotificationEmail() 
    281281            self._redirect( urlHandlers.UHContributionModifReviewing.getURL( self._target ) ) 
     
    335335            lastReview.getEditorJudgement().setComments(self._comments) 
    336336            lastReview.getEditorJudgement().sendNotificationEmail() 
    337  
    338             if self._target.getParent().getConfPaperReview().getChoice() == 3: 
    339                 self._target.getReviewManager().getLastReview().setFinalJudgement(self._editingJudgement) 
    340  
    341             if self._editingJudgement == "Accept" or self._editingJudgement == "Reject": 
     337            #if self._target.getParent().getConfPaperReview().getChoice() == 3: 
     338            #    self._target.getReviewManager().getLastReview().setFinalJudgement(self._editingJudgement) 
     339 
     340            #if self._editingJudgement == "Accept" or self._editingJudgement == "Reject": 
     341            if self._editingJudgement == "1" or self._editingJudgement == "3": 
    342342                self._redirect( urlHandlers.UHContributionEditingJudgement.getURL( self._target )) 
    343343            else: 
  • indico/MaKaC/webinterface/rh/trackModif.py

    r4bd61a r6ed0cd  
    431431            numberOfAnswers = self._target.getConference().getConfAbstractReview().getNumberOfAnswers() 
    432432            c = 0 
    433             for i in self._target.getConference().getConfAbstractReview().getReviewingQuestions(): 
     433            for question in self._target.getConference().getConfAbstractReview().getReviewingQuestions(): 
    434434                c += 1 
    435435                rbValue = int(params.get("_GID"+str(c),scaleLower)) 
    436                 questionId = i.getId() 
    437436                newId = self._target.getConference().getConfAbstractReview().getNewAnswerId() 
    438                 #self._answers[i.getId()] = int(params.get("_GID"+str(c),0)) 
    439                 newAnswer = Answer(newId, rbValue, numberOfAnswers, questionId) 
     437                newAnswer = Answer(newId, rbValue, numberOfAnswers, question) 
    440438                newAnswer.calculateRatingValue(scaleLower, scaleHigher) 
    441439                self._answers.append(newAnswer) 
     
    471469            numberOfAnswers = self._target.getConference().getConfAbstractReview().getNumberOfAnswers() 
    472470            c = 0 
    473             for i in self._target.getConference().getConfAbstractReview().getReviewingQuestions(): 
     471            for question in self._target.getConference().getConfAbstractReview().getReviewingQuestions(): 
    474472                c += 1 
    475473                rbValue = int(params.get("_GID"+str(c),scaleLower)) 
    476                 questionId = i.getId() 
    477474                newId = self._target.getConference().getConfAbstractReview().getNewAnswerId() 
    478                 #self._answers[i.getId()] = int(params.get("_GID"+str(c),0)) 
    479                 newAnswer = Answer(newId, rbValue, numberOfAnswers, questionId) 
     475                newAnswer = Answer(newId, rbValue, numberOfAnswers, question) 
    480476                newAnswer.calculateRatingValue(scaleLower, scaleHigher) 
    481477                self._answers.append(newAnswer) 
  • indico/MaKaC/webinterface/tpls/GiveAdvice.tpl

    r90a4562 r6ed0cd  
    221221            if (!error) { 
    222222                submitted = !submitted; 
    223                 updatePage(false); 
     223                //updatePage(false); 
     224                location.href = "<%= urlHandlers.UHContributionModifReviewing.getURL(Contribution) %>"; 
     225                location.reload(true); 
    224226            } else { 
    225227                alert (error.message); 
Note: See TracChangeset for help on using the changeset viewer.