Show
Ignore:
Timestamp:
01/12/04 15:35:02 (20 years ago)
Author:
jalet
Message:

Printing history added to CGI script.

Files:
1 modified

Legend:

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

    r1269 r1274  
    2222# 
    2323# $Log$ 
     24# Revision 1.32  2004/01/12 14:35:02  jalet 
     25# Printing history added to CGI script. 
     26# 
    2427# Revision 1.31  2004/01/10 09:44:02  jalet 
    2528# Fixed potential accuracy problem if a user printed on several printers at 
     
    128131# 
    129132 
    130 from pykota.storage import PyKotaStorageError,BaseStorage,StorageObject,StorageUser,StorageGroup,StoragePrinter,StorageLastJob,StorageUserPQuota,StorageGroupPQuota 
     133from pykota.storage import PyKotaStorageError,BaseStorage,StorageObject,StorageUser,StorageGroup,StoragePrinter,StorageJob,StorageLastJob,StorageUserPQuota,StorageGroupPQuota 
    131134 
    132135try : 
     
    533536            self.doModify("INSERT INTO printergroupsmembers (groupid, printerid) VALUES (%s, %s)" % (self.doQuote(pgroup.ident), self.doQuote(printer.ident))) 
    534537         
     538    def retrieveHistory(self, user=None, printer=None, datelimit=None, limit=100) :     
     539        """Retrieves all print jobs for user on printer (or all) before date, limited to first 100 results.""" 
     540        query = "SELECT * FROM jobhistory" 
     541        where = [] 
     542        if (user is not None) and user.Exists : 
     543            where.append("userid=%s" % self.doQuote(user.ident)) 
     544        if (printer is not None) and printer.Exists : 
     545            where.append("printerid=%s" % self.doQuote(printer.ident)) 
     546        if datelimit is not None :     
     547            where.append("jobdate<=%s" % self.doQuote(datelimit)) 
     548        if where :     
     549            query += "WHERE %s" % " AND ".join(where) 
     550        query += " ORDER BY id DESC" 
     551        if limit : 
     552            query += " LIMIT %s" % self.doQuote(int(limit)) 
     553        jobs = []     
     554        result = self.doSearch(query)     
     555        if result : 
     556            for fields in result : 
     557                job = StorageJob(self) 
     558                job.ident = fields.get("id") 
     559                job.JobId = fields.get("jobid") 
     560                job.PrinterPageCounter = fields.get("pagecounter") 
     561                job.JobSize = fields.get("jobsize") 
     562                job.JobPrice = fields.get("jobprice") 
     563                job.JobAction = fields.get("action") 
     564                job.JobFileName = fields.get("filename") 
     565                job.JobTitle = fields.get("title") 
     566                job.JobCopies = fields.get("copies") 
     567                job.JobOptions = fields.get("options") 
     568                job.JobDate = fields.get("jobdate") 
     569                job.User = self.getUser(fields.get("userid")) 
     570                job.Printer = self.getPrinter(fields.get("printerid")) 
     571                job.Exists = 1 
     572                jobs.append(job) 
     573        return jobs 
     574         
    535575    def deleteUser(self, user) :     
    536576        """Completely deletes an user from the Quota Storage."""