Show
Ignore:
Timestamp:
03/01/06 00:07:05 (18 years ago)
Author:
jerome
Message:

Optimized pkbcodes like edpykota.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/pykota/storages/ldapstorage.py

    r2763 r2765  
    14621462                self.doDelete(group.ident) 
    14631463                 
    1464     def deleteManyBillingCodesFromNames(self, billingcodes) :         
    1465         """Deletes many billing codes from their names.""" 
    1466         for bcode in self.getMatchingBillingCodes(",".join(billingcodes)) : 
     1464    def deleteManyBillingCodes(self, billingcodes) : 
     1465        """Deletes many billing codes.""" 
     1466        for bcode in billingcodes : 
    14671467            bcode.delete() 
    14681468         
    1469     def deleteManyUsersFromNames(self, usernames) :         
    1470         """Deletes many users from their names.""" 
    1471         for user in self.getMatchingUsers(",".join(usernames)) :  
     1469    def deleteManyUsers(self, users) :         
     1470        """Deletes many users.""" 
     1471        for user in users : 
    14721472            user.delete() 
    14731473             
    1474     def deleteManyGroupsFromNames(self, groupnames) :         
    1475         """Deletes many groups from their names.""" 
    1476         for group in self.getMatchingGroups(",".join(groupnames)) :  
     1474    def deleteManyGroups(self, groups) :         
     1475        """Deletes many groups.""" 
     1476        for group in groups : 
    14771477            group.delete() 
    14781478         
    1479     def deleteManyPrintersFromNames(self, printernames) :         
    1480         """Deletes many printers from their names.""" 
    1481         for printer in self.getMatchingPrinters(",".join(printernames)) : 
     1479    def deleteManyPrinters(self, printers) :         
     1480        """Deletes many printers.""" 
     1481        for printer in printers : 
    14821482            printer.delete() 
    14831483         
     
    17011701        return code     
    17021702         
    1703     def addBillingCode(self, label) : 
     1703    def addBillingCode(self, bcode) : 
    17041704        """Adds a billing code to the quota storage, returns it.""" 
     1705        oldentry = self.getBillingCode(bcode.BillingCode) 
     1706        if oldentry.Exists : 
     1707            return oldentry # we return the existing entry 
    17051708        uuid = self.genUUID() 
    17061709        dn = "cn=%s,%s" % (uuid, self.info["billingcodebase"]) 
    17071710        fields = { "objectClass" : ["pykotaObject", "pykotaBilling"], 
    17081711                   "cn" : uuid, 
    1709                    "pykotaBillingCode" : self.userCharsetToDatabase(label), 
    1710                    "pykotaPageCounter" : "0", 
    1711                    "pykotaBalance" : "0.0", 
     1712                   "pykotaBillingCode" : self.userCharsetToDatabase(bcode.BillingCode), 
     1713                   "pykotaPageCounter" : str(bcode.PageCounter or 0), 
     1714                   "pykotaBalance" : str(bcode.Balance or 0.0), 
     1715                   "description" : self.userCharsetToDatabase(bcode.Description or ""),  
    17121716                 }  
    17131717        self.doAdd(dn, fields) 
    1714         return self.getBillingCode(label) 
    1715          
    1716     def saveBillingCode(self, code) : 
     1718        bcode.isDirty = False 
     1719        return None # the entry created doesn't need further modification 
     1720         
     1721    def saveBillingCode(self, bcode) : 
    17171722        """Sets the new description for a billing code.""" 
    17181723        fields = { 
    1719                    "description" : self.userCharsetToDatabase(code.Description or ""),  
    1720                    "pykotaPageCounter" : str(code.PageCounter), 
    1721                    "pykotaBalance" : str(code.Balance), 
     1724                   "description" : self.userCharsetToDatabase(bcode.Description or ""),  
     1725                   "pykotaPageCounter" : str(bcode.PageCounter or 0), 
     1726                   "pykotaBalance" : str(bcode.Balance or 0.0), 
    17221727                 } 
    1723         self.doModify(code.ident, fields) 
     1728        self.doModify(bcode.ident, fields) 
    17241729             
    17251730    def getMatchingBillingCodes(self, billingcodepattern) : 
     
    17441749        return codes         
    17451750         
    1746     def consumeBillingCode(self, code, pagecounter, balance) : 
     1751    def consumeBillingCode(self, bcode, pagecounter, balance) : 
    17471752        """Consumes from a billing code.""" 
    17481753        fields = { 
     
    17501755                   "pykotaPageCounter" : { "operator" : "+", "value" : pagecounter, "convert" : int }, 
    17511756                 } 
    1752         return self.doModify(code.ident, fields)          
     1757        return self.doModify(bcode.ident, fields)          
    17531758