Changeset 976 for pykota/trunk/pykota

Show
Ignore:
Timestamp:
04/30/03 15:36:40 (21 years ago)
Author:
jalet
Message:

Stupid accounting method was added.

Location:
pykota/trunk/pykota
Files:
1 added
6 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/pykota/accounter.py

    r973 r976  
    2121# 
    2222# $Log$ 
     23# Revision 1.2  2003/04/30 13:36:40  jalet 
     24# Stupid accounting method was added. 
     25# 
    2326# Revision 1.1  2003/04/29 18:37:54  jalet 
    2427# Pluggable accounting methods (actually doesn't support external scripts) 
     
    2629# 
    2730# 
     31 
     32import sys 
    2833 
    2934class PyKotaAccounterError(Exception): 
     
    4247        self.filter = kotafilter 
    4348         
     49    def filterInput(self, inputfile) : 
     50        """Transparent filter.""" 
     51        mustclose = 0     
     52        if inputfile is not None :     
     53            if hasattr(inputfile, "read") : 
     54                infile = inputfile 
     55            else :     
     56                infile = open(inputfile, "rb") 
     57            mustclose = 1 
     58        else :     
     59            infile = sys.stdin 
     60        data = infile.read(256*1024)     
     61        while data : 
     62            sys.stdout.write(data) 
     63            data = infile.read(256*1024) 
     64        if mustclose :     
     65            infile.close() 
     66             
    4467    def doAccounting(self, printerid, userid) :     
    4568        """Does the real accounting.""" 
  • pykota/trunk/pykota/accounters/querying.py

    r973 r976  
    2121# 
    2222# $Log$ 
     23# Revision 1.2  2003/04/30 13:36:40  jalet 
     24# Stupid accounting method was added. 
     25# 
    2326# Revision 1.1  2003/04/29 18:37:54  jalet 
    2427# Pluggable accounting methods (actually doesn't support external scripts) 
     
    2730# 
    2831 
     32import sys 
    2933from pykota.accounter import AccounterBase, PyKotaAccounterError 
    3034from pykota.requester import openRequester, PyKotaRequesterError 
     
    118122             
    119123        return action 
     124             
  • pykota/trunk/pykota/config.py

    r973 r976  
    2121# 
    2222# $Log$ 
     23# Revision 1.25  2003/04/30 13:36:40  jalet 
     24# Stupid accounting method was added. 
     25# 
    2326# Revision 1.24  2003/04/29 18:37:54  jalet 
    2427# Pluggable accounting methods (actually doesn't support external scripts) 
     
    197200           for its internal lifetime page counter. 
    198201        """    
    199         validaccounters = [ "querying" ]      
     202        validaccounters = [ "querying", "stupid" ]      
    200203        try : 
    201204            accounter = self.getPrinterOption(printer, "accounter").lower() 
  • pykota/trunk/pykota/storages/postgresql.py

    r967 r976  
    2121# 
    2222# $Log$ 
     23# Revision 1.10  2003/04/30 13:36:40  jalet 
     24# Stupid accounting method was added. 
     25# 
    2326# Revision 1.9  2003/04/27 08:04:15  jalet 
    2427# LDAP storage backend's skeleton added. DOESN'T WORK. 
     
    111114    def doQuote(self, field) : 
    112115        """Quotes a field for use as a string in SQL queries.""" 
    113         if type(field) == type(0) : # TODO : do something safer 
     116        if type(field) in (type(0), type(0.0)) : # TODO : do something safer 
    114117            typ = "decimal" 
    115118        else :     
  • pykota/trunk/pykota/storages/sql.py

    r967 r976  
    2121# 
    2222# $Log$ 
     23# Revision 1.31  2003/04/30 13:36:40  jalet 
     24# Stupid accounting method was added. 
     25# 
    2326# Revision 1.30  2003/04/27 08:04:15  jalet 
    2427# LDAP storage backend's skeleton added. DOESN'T WORK. 
     
    368371        self.doQuery("UPDATE grouppquota SET datelimit=%s::TIMESTAMP WHERE groupid=%s AND printerid=%s" % (self.doQuote("%04i-%02i-%02i %02i:%02i:%02i" % (datelimit.year, datelimit.month, datelimit.day, datelimit.hour, datelimit.minute, datelimit.second)), self.doQuote(groupid), self.doQuote(printerid))) 
    369372         
    370     def addJobToHistory(self, jobid, userid, printerid, pagecounter, action) : 
     373    def addJobToHistory(self, jobid, userid, printerid, pagecounter, action, jobsize=None) : 
    371374        """Adds a job to the history: (jobid, userid, printerid, last page counter taken from requester).""" 
    372         self.doQuery("INSERT INTO jobhistory (jobid, userid, printerid, pagecounter, action) VALUES (%s, %s, %s, %s, %s)" % (self.doQuote(jobid), self.doQuote(userid), self.doQuote(printerid), self.doQuote(pagecounter), self.doQuote(action))) 
     375        self.doQuery("INSERT INTO jobhistory (jobid, userid, printerid, pagecounter, action, jobsize) VALUES (%s, %s, %s, %s, %s, %s)" % (self.doQuote(jobid), self.doQuote(userid), self.doQuote(printerid), self.doQuote(pagecounter), self.doQuote(action), self.doQuote(jobsize))) 
    373376        return self.getJobHistoryId(jobid, userid, printerid) # in case jobid is not sufficient 
    374377     
     
    379382    def getPrinterPageCounter(self, printerid) : 
    380383        """Returns the last page counter value for a printer given its id, also returns last username, last jobid and history line id.""" 
    381         result = self.doQuery("SELECT jobhistory.id, jobid, userid, username, pagecounter FROM jobhistory, users WHERE printerid=%s AND userid=users.id ORDER BY jobdate DESC LIMIT 1" % self.doQuote(printerid)) 
     384        result = self.doQuery("SELECT jobhistory.id, jobid, userid, username, pagecounter, jobsize FROM jobhistory, users WHERE printerid=%s AND userid=users.id ORDER BY jobdate DESC LIMIT 1" % self.doQuote(printerid)) 
    382385        try : 
    383386            return self.doParseResult(result)[0] 
  • pykota/trunk/pykota/version.py

    r973 r976  
    2121# 
    2222 
    23 __version__ = "1.05alpha2-unofficial" 
     23__version__ = "1.05alpha3-unofficial" 
    2424 
    2525__doc__ = """PyKota : a complete Printing Quota Solution for CUPS and LPRng."""