Changeset bc613d in indico


Ignore:
Timestamp:
02/22/11 16:02:16 (2 years ago)
Author:
Jose Benito <jose.benito.gonzalez@…>
Branches:
master, burotel, hello-world-walkthrough, ipv6, v0.97-series, v0.98-series, v0.98.2, v0.98.3, v0.98b1, v0.98b2, v0.99, 051b2622c51afb171a1dedb46a0df4fbb0cbd02e, 4c7d4152dff271ba5df5a8606605969cab454080
Children:
d6a4a9
Parents:
0186b2
git-author:
Adrian Moennich <jerome.ernst.monnich@…> (02/21/11 15:38:11)
git-committer:
Jose Benito <jose.benito.gonzalez@…> (02/22/11 16:02:16)
Message:

[IMP] Make number fields in regform billable

Location:
indico/MaKaC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • indico/MaKaC/registration.py

    r88f40b rbc613d  
    14551455        FieldInputType.__init__(self, field) 
    14561456        self._length = '' 
     1457        self._minValue = 0 
    14571458 
    14581459    def _getModifHTML(self,item, registrant): 
     
    14851486        else: 
    14861487            length = 'size="6"' 
    1487         tmp = """&nbsp;<input type="text" id="%s" name="%s" value="%s" %s %s />&nbsp;&nbsp;%s %s""" % (htmlName, htmlName, v, disable, length, caption, param) 
     1488        onkeyup = "" 
     1489        if billable: 
     1490            onkeyup = """ 
     1491                onkeyup="$E('subtotal-%s').dom.innerHTML = ((isNaN(parseInt(this.value, 10)) || parseInt(this.value, 10) < 0) ? 0 : parseInt(this.value, 10)) * %s;" 
     1492            """ % (htmlName, price) 
     1493        tmp = """&nbsp;<input type="text" id="%s" name="%s" value="%s" %s %s %s />&nbsp;&nbsp;%s %s""" % (htmlName, htmlName, v, onkeyup, disable, length, caption, param) 
    14881494        tmp= """ <td>%s</td><td align="right" align="bottom">"""%tmp 
    14891495        if billable: 
    1490             tmp= """%s&nbsp;&nbsp;%s&nbsp;&nbsp;%s</td> """%(tmp,price,currency) 
     1496            subTotal = (float(price)*int(v) or 0) 
     1497            tmp= """%s&nbsp;&nbsp;%s&nbsp;&nbsp;%s (Total: <span id="subtotal-%s">%s</span>&nbsp;%s)</td> """%(tmp,price,currency,htmlName,subTotal,currency) 
    14911498        else: 
    14921499            tmp= """%s </td> """%tmp 
     
    15111518        else: 
    15121519            quantity = int(v) 
     1520        if quantity < self.getMinValue(): 
     1521            raise FormValuesError( _("The field \"%s\" needs to be filled with a number greater than or equal to %d.")%(self.getParent().getCaption(), self.getMinValue())) 
    15131522        item.setQuantity(quantity) 
    15141523        item.setValue(quantity) 
     
    15201529 
    15211530    def _getSpecialOptionsHTML(self): 
     1531        price = self._parent.getPrice() 
     1532        billable = self._parent.isBillable() 
     1533        checked="" 
     1534        if billable: 
     1535            checked="checked=\"checked\"" 
     1536 
    15221537        return _(""" 
     1538        <tr> 
     1539          <td class="titleCellTD"><span class="titleCellFormat">_("Min. value")</span></td> 
     1540          <td bgcolor="white" class="blacktext" width="100%%"> 
     1541              <input type="text" name="minValue" value="%s" /> 
     1542          </td> 
     1543        </tr> 
    15231544        <tr> 
    15241545          <td class="titleCellTD"><span class="titleCellFormat">_("Size in chars")</span></td> 
     
    15261547              <input type="text" name="length" value="%s" /> 
    15271548          </td> 
    1528         </tr>""" % self.getLength()) 
     1549        </tr> 
     1550        <tr> 
     1551          <td class="titleCellTD"><span class="titleCellFormat">Is Billable</span></td> 
     1552          <td bgcolor="white" class="blacktext" width="100%%"> 
     1553            <input type="checkbox" name="billable" size="60" %s> _("(uncheck if it is not billable)") 
     1554          </td> 
     1555        </tr> 
     1556        <tr> 
     1557          <td class="titleCellTD"><span class="titleCellFormat"> _("Price (multiplied with entered number)")</span></td> 
     1558          <td bgcolor="white" class="blacktext" width="100%%"> 
     1559            <input type="text" name="price" size="60" value=%s> 
     1560          </td> 
     1561        </tr>""" % (self.getMinValue(), self.getLength(), checked, price)) 
    15291562 
    15301563    def clone(self, gf): 
    15311564        ni = FieldInputType.clone(self, gf) 
    15321565        ni.setLength(self.getLength()) 
     1566        ni.setMinValue(self.getMinValue()) 
    15331567        return ni 
    15341568 
     
    15361570        d = {} 
    15371571        d["length"] = self.getLength() 
     1572        d["minValue"] = self.getMinValue() 
    15381573        return d 
    15391574 
     
    15411576        if data.has_key("length"): 
    15421577            self.setLength(data.get("length")) 
     1578        if data.has_key("minValue"): 
     1579            self.setMinValue(int(data.get("minValue") or 0)) 
    15431580 
    15441581    def getLength(self): 
     
    15511588    def setLength(self, value): 
    15521589        self._length = value 
     1590 
     1591    def getMinValue(self): 
     1592        try: 
     1593            if self._minValue: pass 
     1594        except AttributeError: 
     1595            self._minValue = 0 
     1596        return self._minValue 
     1597 
     1598    def setMinValue(self, value): 
     1599        self._minValue = value 
    15531600 
    15541601class LabelInput(FieldInputType): 
  • indico/MaKaC/webinterface/rh/registrationFormModif.py

    r8ca1b0 rbc613d  
    700700        if params.has_key('length'): 
    701701            self._input.setLength(params.get('length')) 
     702        if params.has_key('minValue'): 
     703            self._input.setMinValue(params.get('minValue')) 
    702704        if params.has_key('numberOfRows'): 
    703705            self._input.setNumberOfRows(params.get('numberOfRows')) 
Note: See TracChangeset for help on using the changeset viewer.