Show
Ignore:
Timestamp:
10/02/04 07:48:56 (20 years ago)
Author:
jalet
Message:

Should now correctly deal with charsets both when storing into databases and when
retrieving datas. Works with both PostgreSQL and LDAP.

Files:
1 modified

Legend:

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

    r1719 r1761  
    2222# 
    2323# $Log$ 
     24# Revision 1.48  2004/10/02 05:48:56  jalet 
     25# Should now correctly deal with charsets both when storing into databases and when 
     26# retrieving datas. Works with both PostgreSQL and LDAP. 
     27# 
    2428# Revision 1.47  2004/09/15 07:26:20  jalet 
    2529# Data dumps are now ordered by entry creation date if applicable. 
     
    187191            printer.PricePerJob = fields.get("priceperjob") or 0.0 
    188192            printer.PricePerPage = fields.get("priceperpage") or 0.0 
    189             printer.Description = fields.get("description") or "" 
     193            printer.Description = (fields.get("description") or "").decode("UTF-8").encode(self.tool.getCharset())  
    190194            printer.Exists = 1 
    191195        return printer     
     
    239243            lastjob.JobPrice = fields.get("jobprice") 
    240244            lastjob.JobAction = fields.get("action") 
    241             lastjob.JobFileName = fields.get("filename") 
    242             lastjob.JobTitle = fields.get("title") 
     245            lastjob.JobFileName = (fields.get("filename") or "").decode("UTF-8").encode(self.tool.getCharset())  
     246            lastjob.JobTitle = (fields.get("title") or "").decode("UTF-8").encode(self.tool.getCharset())  
    243247            lastjob.JobCopies = fields.get("copies") 
    244             lastjob.JobOptions = fields.get("options") 
     248            lastjob.JobOptions = (fields.get("options") or "").decode("UTF-8").encode(self.tool.getCharset())  
    245249            lastjob.JobDate = fields.get("jobdate") 
    246250            lastjob.JobHostName = fields.get("hostname") 
     
    301305                    printer.PricePerJob = record.get("priceperjob") or 0.0 
    302306                    printer.PricePerPage = record.get("priceperpage") or 0.0 
    303                     printer.Description = record.get("description") or "" 
     307                    printer.Description = (record.get("description") or "").decode("UTF-8").encode(self.tool.getCharset())  
    304308                    printer.Exists = 1 
    305309                    printers.append(printer) 
     
    387391    def writePrinterDescription(self, printer) :     
    388392        """Write the printer's description back into the storage.""" 
    389         self.doModify("UPDATE printers SET description=%s WHERE id=%s" % (self.doQuote(printer.Description), self.doQuote(printer.ident))) 
     393        description = printer.Description 
     394        if description is not None : 
     395            description = printer.Description.decode(self.tool.getCharset()).encode("UTF-8"),  
     396        self.doModify("UPDATE printers SET description=%s WHERE id=%s" % (self.doQuote(description), self.doQuote(printer.ident))) 
    390397         
    391398    def writeUserLimitBy(self, user, limitby) :     
     
    432439        self.doModify("UPDATE jobhistory SET jobsize=%s, jobprice=%s WHERE id=%s" % (self.doQuote(jobsize), self.doQuote(jobprice), self.doQuote(lastjob.ident))) 
    433440         
    434     def writeJobNew(self, printer, user, jobid, pagecounter, action, jobsize=None, jobprice=None, filename=None, title=None, copies=None, options=None, clienthost=None, jobsizebytes=None) :     
     441    def writeJobNew(self, printer, user, jobid, pagecounter, action, jobsize=None, jobprice=None, filename=None, title=None, copies=None, options=None, clienthost=None, jobsizebytes=None) : 
    435442        """Adds a job in a printer's history.""" 
     443        if filename is not None : 
     444            filename = filename.decode(self.tool.getCharset()).encode("UTF-8") 
     445        if title is not None : 
     446            title = title.decode(self.tool.getCharset()).encode("UTF-8") 
     447        if options is not None : 
     448            options = options.decode(self.tool.getCharset()).encode("UTF-8") 
    436449        if (not self.disablehistory) or (not printer.LastJob.Exists) : 
    437450            if jobsize is not None : 
     
    493506                job.JobPrice = fields.get("jobprice") 
    494507                job.JobAction = fields.get("action") 
    495                 job.JobFileName = fields.get("filename") 
    496                 job.JobTitle = fields.get("title") 
     508                job.JobFileName = (fields.get("filename") or "").decode("UTF-8").encode(self.tool.getCharset())  
     509                job.JobTitle = (fields.get("title") or "").decode("UTF-8").encode(self.tool.getCharset())  
    497510                job.JobCopies = fields.get("copies") 
    498                 job.JobOptions = fields.get("options") 
     511                job.JobOptions = (fields.get("options") or "").decode("UTF-8").encode(self.tool.getCharset())  
    499512                job.JobDate = fields.get("jobdate") 
    500513                job.JobHostName = fields.get("hostname")