예제 #1
0
 def _choiceItems(self, question=None):
     """ generates HTML code for showing the choice items.
         Params:
             question -- (optional) object of type Question.
     """
     #check
     if self._questionType not in Question._CHOICE_SUBTYPES:
         return ""
     #choice items
     if isinstance(question, Choice):
         choiceItemsNb = question.getNbOfChoiceItems()
     else:
         choiceItemsNb = self._CHOICEITEMS_NB_MIN
     #depending on question type...
     if self._questionType == Question._CHECKBOX:
         type = "checkbox"
     elif self._questionType in [Question._SELECT, Question._RADIO]:
         type = "radio"
     #images
     addImg = WUtils.createImg("add", _("add one more choice item"))
     removeImg = WUtils.createImg("remove", _("remove one choice item"))
     ##############################################################################
     #return HTML string when question is a Choice (e.g. Checkbox, Select, Radio).#
     ##############################################################################
     html = "%s"
     #I insert <span> with <input>s for each choice item.
     for i in range(1, choiceItemsNb+1):
         #play with choice items
         itemText = ""
         isSelected = ""
         if question!=None and i<=choiceItemsNb:
             itemText = question.getChoiceItemsKeyAt(i)
             isSelected = question.getChoiceItemsCorrespondingValue(itemText)
             if isSelected == True:
                 isSelected = "checked='checked'"
             else:
                 isSelected = ""
         #play with html text
         htmlInsert = """<span id='field_"""+str(i)+"""'>
                       <input type='"""+type+"""' name='selectedChoiceItems' value='"""+str(i)+"""' """+isSelected+"""/>
                       <input name='choiceItem_"""+str(i)+"""' type='text' class='choiceItemText' value=\""""+itemText+"""\"/><br/>
                       %s
                     </span>"""
         html = html%(htmlInsert)
     #I finally insert the span containing links for adding/removing a choice item.
     htmlInsert= """<span id='field_"""+str(choiceItemsNb+1)+"""'>
                     <a href='javascript:addField("""+str(choiceItemsNb+1)+""")' style='padding-left:40px;'>
                       """+addImg+"""
                     </a>
                     <a href='javascript:removeField("""+str(choiceItemsNb)+""")'>
                       """+removeImg+"""
                     </a>
                   </span>"""
     html = html%(htmlInsert)
     return html
예제 #2
0
 def _choiceItems(self, question=None):
     """ generates HTML code for showing the choice items.
         Params:
             question -- (optional) object of type Question.
     """
     #check
     if self._questionType not in Question._CHOICE_SUBTYPES:
         return ""
     #choice items
     if isinstance(question, Choice):
         choiceItemsNb = question.getNbOfChoiceItems()
     else:
         choiceItemsNb = self._CHOICEITEMS_NB_MIN
     #depending on question type...
     if self._questionType == Question._CHECKBOX:
         type = "checkbox"
     elif self._questionType in [Question._SELECT, Question._RADIO]:
         type = "radio"
     #images
     addImg = WUtils.createImg("add", _("add one more choice item"))
     removeImg = WUtils.createImg("remove", _("remove one choice item"))
     ##############################################################################
     #return HTML string when question is a Choice (e.g. Checkbox, Select, Radio).#
     ##############################################################################
     html = "%s"
     #I insert <span> with <input>s for each choice item.
     for i in range(1, choiceItemsNb+1):
         #play with choice items
         itemText = ""
         isSelected = ""
         if question!=None and i<=choiceItemsNb:
             itemText = question.getChoiceItemsKeyAt(i)
             isSelected = question.getChoiceItemsCorrespondingValue(itemText)
             if isSelected == True:
                 isSelected = "checked='checked'"
             else:
                 isSelected = ""
         #play with html text
         htmlInsert = """<span id='field_"""+str(i)+"""'>
                       <input type='"""+type+"""' name='selectedChoiceItems' value='"""+str(i)+"""' """+isSelected+"""/>
                       <input name='choiceItem_"""+str(i)+"""' type='text' class='choiceItemText' value=\""""+itemText+"""\"/><br/>
                       %s
                     </span>"""
         html = html%(htmlInsert)
     #I finally insert the span containing links for adding/removing a choice item.
     htmlInsert= """<span id='field_"""+str(choiceItemsNb+1)+"""'>
                     <a href='javascript:addField("""+str(choiceItemsNb+1)+""")' style='padding-left:40px;'>
                       """+addImg+"""
                     </a>
                     <a href='javascript:removeField("""+str(choiceItemsNb)+""")'>
                       """+removeImg+"""
                     </a>
                   </span>"""
     html = html%(htmlInsert)
     return html
예제 #3
0
 def _createQuestionImgButton(self, url, questionType, qType):
     """ Depending on selected questionType it creates changing button or fixed image.
         This short function is just a shortcut.
         See WUtils.createChangingImgButton() and WUtils.createImg() for more details...
     """
     imgID    = "form_"+qType
     imgOverID= "form_"+qType+"_"
     info     = _("Insert a question of type ")+qType
     if questionType==qType:
         return WUtils.createImg(imgOverID, info)
     else:
         return WUtils.createChangingImgButton(url, imgID, imgOverID, info)
예제 #4
0
 def _createQuestionImgButton(self, url, questionType, qType):
     """ Depending on selected questionType it creates changing button or fixed image.
         This short function is just a shortcut.
         See WUtils.createChangingImgButton() and WUtils.createImg() for more details...
     """
     imgID    = "form_"+qType
     imgOverID= "form_"+qType+"_"
     info     = _("Insert a question of type ")+qType
     if questionType==qType:
         return WUtils.createImg(imgOverID, info)
     else:
         return WUtils.createChangingImgButton(url, imgID, imgOverID, info)
예제 #5
0
 def getVars(self):
     vars = wcomponents.WTemplated.getVars(self)
     conf = self._question.getEvaluation().getConference()
     #required
     if self._question.isRequired():
         vars["required"] = "* "
     else:
         vars["required"] = ""
     #questionValue, keyword, description, help
     vars["questionValue"] = self._question.getQuestionValue()
     vars["keyword"] = self._question.getKeyword()
     vars["description"] = self._question.getDescription()
     vars["help"] = self._question.getHelp()
     #question input
     vars["input"] = self._question.displayHtml(disabled="disabled")
     #actionUrl for change position + edit question
     url = urlHandlers.UHConfModifEvaluationEditPerformChanges.getURL(conf)
     url.addParam("mode", Question._EDIT)
     vars["actionUrl"] = url
     #change question position select
     posName = "posChange_%s" % (self._question.getPosition())
     nbQuestions = self._question.getEvaluation().getNbOfQuestions()
     questionPos = self._question.getPosition()
     vars["posChange"] = WUtils.createSelect(False,
                                             range(1, nbQuestions + 1),
                                             questionPos,
                                             name=posName,
                                             onchange="this.form.submit()")
     #actual position
     vars["actualPosition"] = self._question.getPosition()
     #modifiy question
     url = urlHandlers.UHConfModifEvaluationEdit.getURL(
         conf, mode=Question._EDIT, questionPos=questionPos)
     vars["editQuestion"] = WUtils.createImgButton(url, "edit", "edit")
     #remove question
     url = urlHandlers.UHConfModifEvaluationEditPerformChanges.getURL(
         conf, mode=Question._REMOVE, questionPos=questionPos)
     vars["removeQuestionUrl"] = url
     vars["removeQuestionConfirm"] = _(
         """javascript:return confirm( _("Are you sure you want to remove this question?"));"""
     )
     vars["removeQuestionInput"] = WUtils.createInput(
         type="image",
         name="remove",
         alt="remove",
         src=Config.getInstance().getSystemIconURL("remove"))
     #return
     return vars
예제 #6
0
 def getVars(self):
     vars = wcomponents.WTemplated.getVars(self)
     conf = self._question.getEvaluation().getConference()
     # required
     if self._question.isRequired():
         vars["required"] = "* "
     else:
         vars["required"] = ""
     # questionValue, keyword, description, help
     vars["questionValue"] = self._question.getQuestionValue()
     vars["keyword"] = self._question.getKeyword()
     vars["description"] = self._question.getDescription()
     vars["help"] = self._question.getHelp()
     # question input
     vars["input"] = self._question.displayHtml(disabled="disabled")
     # actionUrl for change position + edit question
     url = urlHandlers.UHConfModifEvaluationEditPerformChanges.getURL(conf)
     url.addParam("mode", Question._EDIT)
     vars["actionUrl"] = url
     # change question position select
     posName = "posChange_%s" % (self._question.getPosition())
     nbQuestions = self._question.getEvaluation().getNbOfQuestions()
     questionPos = self._question.getPosition()
     vars["posChange"] = WUtils.createSelect(
         False, range(1, nbQuestions + 1), questionPos, name=posName, onchange="this.form.submit()"
     )
     # actual position
     vars["actualPosition"] = self._question.getPosition()
     # modifiy question
     url = urlHandlers.UHConfModifEvaluationEdit.getURL(conf, mode=Question._EDIT, questionPos=questionPos)
     vars["editQuestion"] = WUtils.createImgButton(url, "edit", "edit")
     # remove question
     url = urlHandlers.UHConfModifEvaluationEditPerformChanges.getURL(
         conf, mode=Question._REMOVE, questionPos=questionPos
     )
     vars["removeQuestionUrl"] = url
     vars["removeQuestionInput"] = WUtils.createInput(
         type="image",
         name="remove",
         id="questionRemove%s" % self._question.getPosition(),
         alt="remove",
         src=Config.getInstance().getSystemIconURL("remove"),
     )
     # return
     return vars
예제 #7
0
    def getVars( self ):
        vars = wcomponents.WTemplated.getVars(self)
        nbQuestions = self._evaluation.getNbOfQuestions()
        #actionUrl
        url = urlHandlers.UHConfModifEvaluationEditPerformChanges.getURL(self._conf, mode=self._mode)

        ###########
        #Edit mode#
        ###########
        if self._mode == Question._EDIT:
            url.addParam("questionPos", self._question.getPosition())
            if self._question.isRequired():
                vars["required"] = 'checked="checked"'
            else:
                vars["required"] = ""
            vars["questionValue"]= self._question.getQuestionValue()
            vars["keyword"]      = self._question.getKeyword()
            vars["description"]  = self._question.getDescription()
            vars["help"]         = self._question.getHelp()
            vars["position"]     = WUtils.createSelect(False,
                                                       range(1,nbQuestions+1),
                                                       self._question.getPosition(),
                                                       name="newPos")
            vars["saveButtonText"] = _("modify question")
            vars["choiceItems"]  = self._choiceItems(self._question);
            if self._questionType in Question._BOX_SUBTYPES:
                defaultAnswer    = self._question.getDefaultAnswer()
            else: #Unused, but : Better to prevent than to heal!
                defaultAnswer    = ""
            url.addParam("questionPos",self._question.getPosition())

        ##########
        #Add mode#
        ##########
        else:
            url.addParam("type", self._questionType)
            vars["required"]     = ""
            vars["questionValue"]= ""
            vars["keyword"]      = ""
            vars["description"]  = ""
            vars["help"]         = ""
            vars["position"]     = WUtils.createSelect(False,
                                                       range(1,nbQuestions+2),
                                                       nbQuestions+1,
                                                       name="newPos")
            vars["saveButtonText"]= _("add question")
            vars["choiceItems"]   = self._choiceItems();
            defaultAnswer         = ""

        #######
        #Other#
        #######
        #defaultAnswer
        if self._questionType in Question._BOX_SUBTYPES:
            vars["defaultAnswer"] = i18nformat("""<tr>
                    <td class="titleCellTD"><span class="titleCellFormat">  _("Default answer")</span></td>
                    <td class="inputCelTD"><input type="text" name="defaultAnswer" value="%s"/></td>
                </tr>""")%(defaultAnswer)
        else:
            vars["defaultAnswer"] = ""
        #javascript for choiceItems
        vars["choiceItemsNb"] = self._CHOICEITEMS_NB_MIN
        vars["javascriptChoiceItemsAddImg"] = WUtils.createImg("add", _("add one more choice item")).replace('"',"'")
        vars["javascriptChoiceItemsRemoveImg"] = WUtils.createImg("remove", _("remove one choice item")).replace('"',"'")
        if self._questionType == Question._CHECKBOX:
            vars["javascriptChoiceItemsType"] = "checkbox"
        elif self._questionType in [Question._SELECT, Question._RADIO]:
            vars["javascriptChoiceItemsType"] = "radio"
        else:
            vars["javascriptChoiceItemsType"] = ""
        #error
        if self._error!="":
            vars["error"] = "%s<br/><br/><br/>"%(self._error)
        else:
            vars["error"] = ""
        #actionUrl
        vars["actionUrl"] = url
        return vars
예제 #8
0
    def getVars( self ):
        vars = wcomponents.WTemplated.getVars(self)
        nbQuestions = self._evaluation.getNbOfQuestions()
        #actionUrl
        url = urlHandlers.UHConfModifEvaluationEditPerformChanges.getURL(self._conf, mode=self._mode)

        ###########
        #Edit mode#
        ###########
        if self._mode == Question._EDIT:
            url.addParam("questionPos", self._question.getPosition())
            if self._question.isRequired():
                vars["required"] = 'checked="checked"'
            else:
                vars["required"] = ""
            vars["questionValue"]= self._question.getQuestionValue()
            vars["keyword"]      = self._question.getKeyword()
            vars["description"]  = self._question.getDescription()
            vars["help"]         = self._question.getHelp()
            vars["position"]     = WUtils.createSelect(False,
                                                       range(1,nbQuestions+1),
                                                       self._question.getPosition(),
                                                       name="newPos")
            vars["saveButtonText"] = _("modify question")
            vars["choiceItems"]  = self._choiceItems(self._question);
            if self._questionType in Question._BOX_SUBTYPES:
                defaultAnswer    = self._question.getDefaultAnswer()
            else: #Unused, but : Better to prevent than to heal!
                defaultAnswer    = ""
            url.addParam("questionPos",self._question.getPosition())

        ##########
        #Add mode#
        ##########
        else:
            url.addParam("type", self._questionType)
            vars["required"]     = ""
            vars["questionValue"]= ""
            vars["keyword"]      = ""
            vars["description"]  = ""
            vars["help"]         = ""
            vars["position"]     = WUtils.createSelect(False,
                                                       range(1,nbQuestions+2),
                                                       nbQuestions+1,
                                                       name="newPos")
            vars["saveButtonText"]= _("add question")
            vars["choiceItems"]   = self._choiceItems();
            defaultAnswer         = ""

        #######
        #Other#
        #######
        #defaultAnswer
        if self._questionType in Question._BOX_SUBTYPES:
            vars["defaultAnswer"] = i18nformat("""<tr>
                    <td class="titleCellTD"><span class="titleCellFormat">  _("Default answer")</span></td>
                    <td class="inputCelTD"><input type="text" name="defaultAnswer" value="%s"/></td>
                </tr>""")%(defaultAnswer)
        else:
            vars["defaultAnswer"] = ""
        #javascript for choiceItems
        vars["choiceItemsNb"] = self._CHOICEITEMS_NB_MIN
        vars["javascriptChoiceItemsAddImg"] = WUtils.createImg("add", _("add one more choice item")).replace('"',"'")
        vars["javascriptChoiceItemsRemoveImg"] = WUtils.createImg("remove", _("remove one choice item")).replace('"',"'")
        if self._questionType == Question._CHECKBOX:
            vars["javascriptChoiceItemsType"] = "checkbox"
        elif self._questionType in [Question._SELECT, Question._RADIO]:
            vars["javascriptChoiceItemsType"] = "radio"
        else:
            vars["javascriptChoiceItemsType"] = ""
        #error
        if self._error!="":
            vars["error"] = "%s<br/><br/><br/>"%(self._error)
        else:
            vars["error"] = ""
        #actionUrl
        vars["actionUrl"] = url
        return vars