[MERGE] forward port of branch saas-6 up to 07d7147

This commit is contained in:
Christophe Simonis
2016-02-10 18:17:21 +01:00
7 changed files with 58 additions and 34 deletions
+1 -1
View File
@@ -687,7 +687,7 @@ class AccountTax(models.Model):
partner = partner_id and self.pool.get('res.partner').browse(cr, uid, partner_id, context=context) or None
ids = isinstance(ids, (int, long)) and [ids] or ids
recs = self.browse(cr, uid, ids, context=context)
return recs.compute_all(price_unit, currency, quantity, product, partner)
return AccountTax.compute_all(recs, price_unit, currency, quantity, product, partner)
@api.model
def _fix_tax_included_price(self, price, prod_taxes, line_taxes):
@@ -796,4 +796,4 @@ class report_xml(osv.osv):
if object_id:
model = self.pool.get('ir.model').browse(cr, uid, object_id, context=context).model
args.append(('model', '=', model))
return super(report_xml, self).search(cr, uid, args, offset, limit, order, context, count)
return super(report_xml, self).search(cr, uid, args, offset=offset, limit=limit, order=order, context=context, count=count)
@@ -7,6 +7,7 @@ function connect () {
WPA_PASS_FILE="/tmp/wpa_pass.txt"
PERSISTENT_WIFI_NETWORK_FILE="/home/pi/wifi_network.txt"
CURRENT_WIFI_NETWORK_FILE="/tmp/current_wifi_network.txt" # used to repair connection when we lose it
LOST_WIFI_FILE="/tmp/lost_wifi.txt"
ESSID="${1}"
PASSWORD="${2}"
PERSIST="${3}"
@@ -15,6 +16,7 @@ function connect () {
sleep 3
sudo pkill -f keep_wifi_alive.sh
WIFI_WAS_LOST=$?
# make network choice persistent
if [ -n "${ESSID}" ] ; then
@@ -54,13 +56,24 @@ function connect () {
# give dhcp some time
timeout 30 sh -c 'until ifconfig wlan0 | grep "inet addr:" ; do sleep 0.1 ; done'
TIMEOUT_RETURN=$?
if [ $? -eq 124 ] && [ -z "${NO_AP}" ] ; then
if [ ${TIMEOUT_RETURN} -eq 124 ] && [ -z "${NO_AP}" ] ; then
logger -t posbox_connect_to_wifi "Failed to connect, forcing Posbox AP"
sudo /home/pi/odoo/addons/point_of_sale/tools/posbox/configuration/wireless_ap.sh "force" &
else
logger -t posbox_connect_to_wifi "Restarting odoo"
sudo service odoo restart
if [ ${TIMEOUT_RETURN} -ne 124 ] ; then
rm -f "${LOST_WIFI_FILE}"
fi
if [ ! -f "${LOST_WIFI_FILE}" ] ; then
logger -t posbox_connect_to_wifi "Restarting odoo"
sudo service odoo restart
fi
if [ ${WIFI_WAS_LOST} -eq 0 ] ; then
touch "${LOST_WIFI_FILE}"
fi
logger -t posbox_connect_to_wifi "Starting wifi keep alive script"
/home/pi/odoo/addons/point_of_sale/tools/posbox/configuration/keep_wifi_alive.sh &
+8 -8
View File
@@ -131,8 +131,8 @@ class Report(osv.Model):
@api.v8
def get_html(self, records, report_name, data=None):
return self._model.get_html(self._cr, self._uid, records.ids, report_name,
data=data, context=self._context)
return Report.get_html(self._model, self._cr, self._uid, records.ids,
report_name, data=data, context=self._context)
@api.v7
def get_pdf(self, cr, uid, ids, report_name, html=None, data=None, context=None):
@@ -245,8 +245,8 @@ class Report(osv.Model):
@api.v8
def get_pdf(self, records, report_name, html=None, data=None):
return self._model.get_pdf(self._cr, self._uid, records.ids, report_name,
html=html, data=data, context=self._context)
return Report.get_pdf(self._model, self._cr, self._uid, records.ids,
report_name, html=html, data=data, context=self._context)
@api.v7
def get_action(self, cr, uid, ids, report_name, data=None, context=None):
@@ -279,8 +279,8 @@ class Report(osv.Model):
@api.v8
def get_action(self, records, report_name, data=None):
return self._model.get_action(self._cr, self._uid, records.ids, report_name,
data=data, context=self._context)
return Report.get_action(self._model, self._cr, self._uid, records.ids,
report_name, data=data, context=self._context)
#--------------------------------------------------------------------------
# Report generation helpers
@@ -326,8 +326,8 @@ class Report(osv.Model):
@api.v8
def _check_attachment_use(self, records, report):
return self._model._check_attachment_use(
self._cr, self._uid, records.ids, report, context=self._context)
return Report._check_attachment_use(
self._model, self._cr, self._uid, records.ids, report, context=self._context)
def _check_wkhtmltopdf(self):
return wkhtmltopdf_state
+17 -16
View File
@@ -1099,22 +1099,23 @@ class ir_model_data(osv.osv):
else:
if mode=='init' or (mode=='update' and xml_id):
inherit_xml_ids = []
for table, field_name in model_obj._inherits.items():
xml_ids = self.pool['ir.model.data'].search(cr, uid, [
('module', '=', module),
('name', '=', xml_id + '_' + table.replace('.', '_')),
], context=context)
# XML ID found in the database, try to recover an existing record
if xml_ids:
found_xml_id = self.pool['ir.model.data'].browse(cr, uid, xml_ids[0], context=context)
record = self.pool[found_xml_id.model].browse(cr, uid, [found_xml_id.res_id], context=context)[0]
# The record exists, store the id and don't recreate the XML ID
if record.exists():
inherit_xml_ids.append(found_xml_id.model)
values[field_name] = found_xml_id.res_id
# Orphan XML ID, delete it
else:
found_xml_id.unlink()
if xml_id:
for table, field_name in model_obj._inherits.items():
xml_ids = self.pool['ir.model.data'].search(cr, uid, [
('module', '=', module),
('name', '=', xml_id + '_' + table.replace('.', '_')),
], context=context)
# XML ID found in the database, try to recover an existing record
if xml_ids:
found_xml_id = self.pool['ir.model.data'].browse(cr, uid, xml_ids[0], context=context)
record = self.pool[found_xml_id.model].browse(cr, uid, [found_xml_id.res_id], context=context)[0]
# The record exists, store the id and don't recreate the XML ID
if record.exists():
inherit_xml_ids.append(found_xml_id.model)
values[field_name] = found_xml_id.res_id
# Orphan XML ID, delete it
else:
found_xml_id.unlink()
res_id = model_obj.create(cr, uid, values, context=context)
if xml_id:
+10
View File
@@ -590,6 +590,16 @@ def v7(method_v7):
def foo(self):
...
Special care must be taken if one method calls the other one, because
the method may be overridden! In that case, one should call the method
from the current class (say ``MyClass``), for instance::
@api.v7
def foo(self, cr, uid, ids, context=None):
# Beware: records.foo() may call an overriding of foo()
records = self.browse(cr, uid, ids, context)
return MyClass.foo(records)
Note that the wrapper method uses the docstring of the first method.
"""
# retrieve method_v8 from the caller's frame
+5 -5
View File
@@ -3907,7 +3907,7 @@ class BaseModel(object):
if column._classic_write and not hasattr(column, '_fnct_inv'):
if not (has_trans and column.translate and not callable(column.translate)):
# vals[field] is not a translation: update the table
updates.append((field, '%s', column._symbol_set[1](vals[field])))
updates.append((field, column._symbol_set[0], column._symbol_set[1](vals[field])))
direct.append(field)
else:
upd_todo.append(field)
@@ -4227,7 +4227,7 @@ class BaseModel(object):
for field in vals:
current_field = self._columns[field]
if current_field._classic_write:
updates.append((field, '%s', current_field._symbol_set[1](vals[field])))
updates.append((field, current_field._symbol_set[0], current_field._symbol_set[1](vals[field])))
#for the function fields that receive a value, we set them directly in the database
#(they may be required), but we also need to trigger the _fct_inv()
@@ -4453,7 +4453,7 @@ class BaseModel(object):
value[v] = value[v][0]
except:
pass
updates.append((v, '%s', column._symbol_set[1](value[v])))
updates.append((v, column._symbol_set[0], column._symbol_set[1](value[v])))
if updates:
query = 'UPDATE "%s" SET %s WHERE id = %%s' % (
self._table, ','.join('"%s"=%s' % u[:2] for u in updates),
@@ -4477,8 +4477,8 @@ class BaseModel(object):
value = value[0]
except:
pass
query = 'UPDATE "%s" SET "%s"=%%s WHERE id = %%s' % (
self._table, f,
query = 'UPDATE "%s" SET "%s"=%s WHERE id = %%s' % (
self._table, f, column._symbol_set[0],
)
cr.execute(query, (column._symbol_set[1](value), id))