本文整理汇总了Python中tools.misc.ustr函数的典型用法代码示例。如果您正苦于以下问题:Python ustr函数的具体用法?Python ustr怎么用?Python ustr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ustr函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: parameter
def parameter(dico, resource):
"""
Convert value to a parameter for SOAP query
@type dico: dict
@param dico: Contain parameter starts with OERP_
@type resource: dict
@param resource: Contain parameter starts with WIZARD_
@rtype: xmlstring
@return: XML String representation
"""
res = ''
for key in resource:
_logger.debug(' PARAMETER -> RESOURCE: %s' % key)
if key in 'xml_data':
continue
e = Element('parameter')
e.set('name', 'OERP_%s' % key.upper())
e.text = ustr(resource[key])
res += tostring(e) + '\n'
for key in dico:
_logger.debug(' PARAMETER -> DICO: %s' % key)
if key in 'params':
continue
val = dico[key]
e = Element('parameter')
e.set('name', 'WIZARD_%s' % key.upper())
if isinstance(val, list):
if isinstance(val[0], tuple):
e.text = ','.join(map(str, val[0][2]))
else:
e.text = ','.join(map(str, val))
else:
e.text = val and ustr(val) or ''
res += tostring(e) + '\n'
for key, val in [('REPORT_LOCALE', 'fr_FR'), ('IS_JASPERSERVER', 'yes')]:
e = Element('parameter')
e.set('name', key)
e.text = ustr(val)
res += tostring(e) + '\n'
res = entities(res)
if resource.get('xml_data'):
res += '<parameter class="java.lang.String" name="XML_DATA">'
res += '<![CDATA["%s"]]></parameter>' % resource['xml_data']
return res
示例2: apply_promotions
def apply_promotions(self, cursor, user, order_id, context=None):
"""
Applies promotions
@param cursor: Database Cursor
@param user: ID of User
@param order_id: ID of sale order
@param context: Context(no direct use).
"""
order = self.pool.get('sale.order').browse(cursor, user,
order_id, context=context)
active_promos = self.search(cursor, user,
[('active', '=', True)],
context=context)
for promotion_rule in self.browse(cursor, user,
active_promos, context):
result = self.evaluate(cursor, user,
promotion_rule, order,
context)
# If evaluates to true
if result:
try:
self.execute_actions(cursor, user,
promotion_rule, order_id,
context)
except Exception, e:
raise osv.except_osv(
"Promotions",
ustr(e)
)
# If stop further is true
if promotion_rule.stop_further:
return True
示例3: put
def put(self, uri, data, content_type=None):
""" put the object into the filesystem """
self.parent.log_message('Putting %s (%d), %s'%( misc.ustr(uri), data and len(data) or 0, content_type))
cr, uid, pool,dbname, uri2 = self.get_cr(uri)
if not dbname:
if cr: cr.close()
raise DAV_Forbidden
try:
node = self.uri2object(cr, uid, pool, uri2[:])
except Exception:
node = False
objname = misc.ustr(uri2[-1])
ret = None
if not node:
dir_node = self.uri2object(cr, uid, pool, uri2[:-1])
if not dir_node:
cr.close()
raise DAV_NotFound('Parent folder not found')
newchild = self._try_function(dir_node.create_child, (cr, objname, data),
"create %s" % objname, cr=cr)
if not newchild:
cr.commit()
cr.close()
raise DAV_Error(400, "Failed to create resource")
uparts=urlparse.urlparse(uri)
fileloc = '/'.join(newchild.full_path())
if isinstance(fileloc, unicode):
fileloc = fileloc.encode('utf-8')
# the uri we get is a mangled one, where the davpath has been removed
davpath = self.parent.get_davpath()
surl = '%s://%s' % (uparts[0], uparts[1])
uloc = urllib.quote(fileloc)
hurl = False
if uri != ('/'+uloc) and uri != (surl + '/' + uloc):
hurl = '%s%s/%s/%s' %(surl, davpath, dbname, uloc)
etag = False
try:
etag = str(newchild.get_etag(cr))
except Exception, e:
self.parent.log_error("Cannot get etag for node: %s" % e)
ret = (str(hurl), etag)
示例4: create
def create(self, cursor, user, vals, context=None):
"""
Serialise before save
@param cursor: Database Cursor
@param user: ID of User
@param vals: Values of current record.
@param context: Context(no direct use).
"""
try:
self.validate(cursor, user, vals, context)
except Exception, e:
raise osv.except_osv("Invalid Expression", ustr(e))
示例5: close
def close(self):
# TODO: locking in init, close()
fname = self.__file.name
self.__file.close()
if self.mode in ('w', 'w+', 'r+'):
par = self._get_parent()
cr = pooler.get_db(par.context.dbname).cursor()
icont = ''
mime = ''
filename = par.path
if isinstance(filename, (tuple, list)):
filename = '/'.join(filename)
try:
mime, icont = cntIndex.doIndex(None, filename=filename,
content_type=None, realfname=fname)
except Exception:
_logger.debug('Cannot index file:', exc_info=True)
pass
try:
icont_u = ustr(icont)
except UnicodeError:
icont_u = ''
try:
fsize = os.stat(fname).st_size
cr.execute("UPDATE ir_attachment " \
" SET index_content = %s, file_type = %s, " \
" file_size = %s " \
" WHERE id = %s",
(icont_u, mime, fsize, par.file_id))
par.content_length = fsize
par.content_type = mime
cr.commit()
cr.close()
except Exception:
_logger.warning('Cannot save file indexed content:', exc_info=True)
elif self.mode in ('a', 'a+' ):
try:
par = self._get_parent()
cr = pooler.get_db(par.context.dbname).cursor()
fsize = os.stat(fname).st_size
cr.execute("UPDATE ir_attachment SET file_size = %s " \
" WHERE id = %s",
(fsize, par.file_id))
par.content_length = fsize
cr.commit()
cr.close()
except Exception:
_logger.warning('Cannot save file appended content:', exc_info=True)
示例6: close
def close(self):
# TODO: locking in init, close()
fname = self.__file.name
self.__file.close()
if self.mode in ("w", "w+", "r+"):
par = self._get_parent()
cr = pooler.get_db(par.context.dbname).cursor()
icont = ""
mime = ""
filename = par.path
if isinstance(filename, (tuple, list)):
filename = "/".join(filename)
try:
mime, icont = cntIndex.doIndex(None, filename=filename, content_type=None, realfname=fname)
except Exception:
logging.getLogger("document.storage").debug("Cannot index file:", exc_info=True)
pass
try:
icont_u = ustr(icont)
except UnicodeError:
icont_u = ""
try:
fsize = os.stat(fname).st_size
cr.execute(
"UPDATE ir_attachment "
" SET index_content = %s, file_type = %s, "
" file_size = %s "
" WHERE id = %s",
(icont_u, mime, fsize, par.file_id),
)
par.content_length = fsize
par.content_type = mime
cr.commit()
cr.close()
except Exception:
logging.getLogger("document.storage").warning("Cannot save file indexed content:", exc_info=True)
elif self.mode in ("a", "a+"):
try:
par = self._get_parent()
cr = pooler.get_db(par.context.dbname).cursor()
fsize = os.stat(fname).st_size
cr.execute("UPDATE ir_attachment SET file_size = %s " " WHERE id = %s", (fsize, par.file_id))
par.content_length = fsize
cr.commit()
cr.close()
except Exception:
logging.getLogger("document.storage").warning("Cannot save file appended content:", exc_info=True)
示例7: action_validate
def action_validate(self, cr, uid, ids, context=None):
if not ids:
return False
module_proxy = self.pool.get('ir.module.module')
module_ids = module_proxy.search(cr, uid, [('state', '=', 'installed')])
modules = module_proxy.read(cr, uid, module_ids, ['name', 'installed_version'])
contract = self.read(cr, uid, ids, ['name', 'password'])[0]
try:
contract_info = tm.remote_contract(contract['name'], contract['password'], modules)
except tm.RemoteContractException, rce:
raise osv.except_osv(_('Error'), ustr(rce))
示例8: close
def close(self):
# we now open a *separate* cursor, to update the data.
# FIXME: this may be improved, for concurrency handling
par = self._get_parent()
# uid = par.context.uid
cr = pooler.get_db(par.context.dbname).cursor()
try:
if self.mode in ('w', 'w+', 'r+'):
data = self.getvalue()
icont = ''
mime = ''
filename = par.path
if isinstance(filename, (tuple, list)):
filename = '/'.join(filename)
try:
mime, icont = cntIndex.doIndex(data, filename=filename,
content_type=None, realfname=None)
except Exception:
_logger.debug('Cannot index file:', exc_info=True)
pass
try:
icont_u = ustr(icont)
except UnicodeError:
icont_u = ''
out = psycopg2.Binary(data)
cr.execute("UPDATE ir_attachment " \
"SET db_datas = %s, file_size=%s, " \
" index_content= %s, file_type=%s " \
" WHERE id = %s",
(out, len(data), icont_u, mime, par.file_id))
elif self.mode == 'a':
data = self.getvalue()
out = psycopg2.Binary(data)
cr.execute("UPDATE ir_attachment " \
"SET db_datas = COALESCE(db_datas,'') || %s, " \
" file_size = COALESCE(file_size, 0) + %s " \
" WHERE id = %s",
(out, len(data), par.file_id))
cr.commit()
except Exception:
_logger.exception('Cannot update db file #%d for close.', par.file_id)
raise
finally:
cr.close()
StringIO.close(self)
示例9: write
def write(self, cursor, user, ids, vals, context):
"""
Validate before Write
@param cursor: Database Cursor
@param user: ID of User
@param vals: Values of current record.
@param context: Context(no direct use).
"""
# Validate before save
if type(ids) in [list, tuple] and ids:
ids = ids[0]
try:
old_vals = self.read(cursor, user, ids, ["action_type", "product_code", "arguments"], context)
old_vals.update(vals)
old_vals.has_key("id") and old_vals.pop("id")
self.validate(cursor, user, old_vals, context)
except Exception, e:
raise osv.except_osv("Invalid Expression", ustr(e))
示例10: evaluate
def evaluate(self, cursor, user, promotion_rule, order, context=None):
"""
Evaluates if a promotion is valid
@param cursor: Database Cursor
@param user: ID of User
@param promotion_rule: Browse Record
@param order: Browse Record
@param context: Context(no direct use).
"""
if not context:
context = {}
expression_obj = self.pool.get("promos.rules.conditions.exps")
try:
self.check_primary_conditions(cursor, user, promotion_rule, order, context)
except Exception, e:
if DEBUG:
netsvc.Logger().notifyChannel("Promotions", netsvc.LOG_INFO, ustr(e))
return False
示例11: write
def write(self, cursor, user, ids, vals, context):
"""
Serialise before Write
@param cursor: Database Cursor
@param user: ID of User
@param ids: ID of current record.
@param vals: Values of current record.
@param context: Context(no direct use).
"""
# Validate before save
if type(ids) in [list, tuple] and ids:
ids = ids[0]
try:
old_vals = self.read(cursor, user, ids,
['attribute', 'comparator', 'value'],
context)
old_vals.update(vals)
old_vals.has_key('id') and old_vals.pop('id')
self.validate(cursor, user, old_vals, context)
except Exception, e:
raise osv.except_osv("Invalid Expression", ustr(e))
示例12: check_vat_mx
def check_vat_mx(self, vat):
''' Mexican VAT verification
Verificar RFC México
'''
# we convert to 8-bit encoding, to help the regex parse only bytes
vat = ustr(vat).encode('iso8859-1')
m = self.__check_vat_mx_re.match(vat)
if not m:
#No valid format
return False
try:
ano = int(m.group('ano'))
if ano > 30:
ano = 1900 + ano
else:
ano = 2000 + ano
datetime.date(ano, int(m.group('mes')), int(m.group('dia')))
except ValueError:
return False
#Valid format and valid date
return True
示例13: _
# US_263: get employee destination, if haven't get default destination
if employee_id:
emp = self.pool.get('hr.employee').browse(cr, uid, employee_id, context=context)
if destination_id and destination_id != emp.destination_id.id:
to_update_employee = True # turn the flag to update the employee
if not destination_id and emp.destination_id: # US-671: Only update if the destination from the import is not valid
destination_id = emp.destination_id.id
if not destination_id:
if not account.default_destination_id:
raise osv.except_osv(_('Warning'), _('No default Destination defined for this account: %s') % (account.code or '',))
destination_id = account.default_destination_id and account.default_destination_id.id or False
# Fetch description
if not name:
name = description and description[0] and ustr(description[0]) or ''
if is_payroll_rounding:
name = 'Payroll rounding'
if not employee_id:
if second_description and second_description[0]:
ref = ustr(second_description[0])
# Check if currency exists
if not currency and not currency[0]:
raise osv.except_osv(_('Warning'), _('One currency is missing!'))
currency_ids = self.pool.get('res.currency').search(cr, uid, [('name', '=', ustr(currency[0])), ('active', '=', True)])
if not currency_ids:
raise osv.except_osv(_('Error'), _('No \'%s\' currency or non-active currency.') % (ustr(currency[0]),))
if len(currency_ids) > 1:
raise osv.except_osv(_('Error'), _('More than one currency \'%s\' found.') % (ustr(currency[0]),))
currency_id = currency_ids[0]
# Create the payroll entry
示例14: button_validate
def button_validate(self, cr, uid, ids, context=None):
"""
Import XLS file
"""
# Some verifications
if not context:
context = {}
if isinstance(ids, (int, long)):
ids = [ids]
for wiz in self.browse(cr, uid, ids):
# Prepare some values
created = 0
updated = 0
processed = 0
errors = []
# Check that a file is given
if not wiz.file:
raise osv.except_osv(_('Error'), _('No file given'))
# Check file extension
if wiz.filename.split('.')[-1] != 'xml':
raise osv.except_osv(_('Warning'), _('This wizard only accept XML files.'))
# Read file
fileobj = SpreadsheetXML(xmlstring=decodestring(wiz.file))
reader = fileobj.getRows()
reader.next()
start = 1
column_list = ['name', 'identification_id'] #, 'job', 'dest', 'cc', 'fp', 'f1', 'f2']
for num, line in enumerate(reader):
processed += 1
# Fetch values
vals = {}
if line.cells:
for i, el in enumerate(column_list):
if len(line.cells) > i:
vals[el] = ustr(line.cells[i])
else:
vals[el] = False
# Check values
employee_id = False
try:
vals, employee_id = self.update_or_create_employee(cr, uid, vals, context)
except osv.except_osv, e:
errors.append('Line %s, %s' % (start+num, e.value))
continue
# Do creation/update
context.update({'from': 'import'})
if employee_id:
self.pool.get('hr.employee').write(cr, uid, [employee_id], vals, context)
updated += 1
else:
self.pool.get('hr.employee').create(cr, uid, vals, context)
created += 1
for error in errors:
self.pool.get('hr.payroll.employee.import.errors').create(cr, uid, {'wizard_id': wiz.id, 'msg': error})
if errors:
context.update({'employee_import_wizard_ids': wiz.id})
context.update({'message': ' '})
view_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'msf_homere_interface', 'payroll_import_confirmation')
view_id = view_id and view_id[1] or False
# This is to redirect to Employee Tree View
context.update({'from': 'nat_staff_import'})
res_id = self.pool.get('hr.payroll.import.confirmation').create(cr, uid, {'created': created, 'updated': updated, 'total': processed, 'state': 'employee', 'filename': wiz.filename or False,}, context=context)
return {
'name': 'National staff employee import confirmation',
'type': 'ir.actions.act_window',
'res_model': 'hr.payroll.import.confirmation',
'view_mode': 'form',
'view_type': 'form',
'view_id': [view_id],
'res_id': res_id,
'target': 'new',
'context': context,
}
示例15: lock
def lock(self, uri, lock_data):
""" Lock (may create) resource.
Data is a dict, may contain:
depth, token, refresh, lockscope, locktype, owner
"""
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
created = False
if not dbname:
if cr: cr.close()
raise DAV_Error, 409
try:
node = self.uri2object(cr, uid, pool, uri2[:])
except Exception:
node = False
objname = misc.ustr(uri2[-1])
if not node:
dir_node = self.uri2object(cr, uid, pool, uri2[:-1])
if not dir_node:
cr.close()
raise DAV_NotFound('Parent folder not found')
# We create a new node (file) but with empty data=None,
# as in RFC4918 p. 9.10.4
node = self._try_function(dir_node.create_child, (cr, objname, None),
"create %s" % objname, cr=cr)
if not node:
cr.commit()
cr.close()
raise DAV_Error(400, "Failed to create resource")
created = True
try:
node_fn = node.dav_lock
except AttributeError:
# perhaps the node doesn't support locks
cr.close()
raise DAV_Error(400, 'No locks for this resource')
# Obtain the lock on the node
lres, pid, token = self._try_function(node_fn, (cr, lock_data), "lock %s" % objname, cr=cr)
if not lres:
cr.commit()
cr.close()
raise DAV_Error(423, "Resource already locked")
assert isinstance(lres, list), 'lres: %s' % repr(lres)
try:
data = mk_lock_response(self, uri, lres)
cr.commit()
except Exception:
cr.close()
raise
cr.close()
return created, data, token