130 | | from pykota.storage import PyKotaStorageError,BaseStorage,StorageObject,StorageUser,StorageGroup,StoragePrinter,StorageLastJob,StorageUserPQuota,StorageGroupPQuota |
| 133 | from pykota.storage import PyKotaStorageError,BaseStorage,StorageObject,StorageUser,StorageGroup,StoragePrinter,StorageJob,StorageLastJob,StorageUserPQuota,StorageGroupPQuota |
| 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 | |