[MERGE] forward port of branch 8.0 up to c3a05d0

This commit is contained in:
Christophe Simonis
2016-02-26 16:23:12 +01:00
6 changed files with 31 additions and 9 deletions
+3 -1
View File
@@ -1709,7 +1709,9 @@ class calendar_event(osv.Model):
continue
if r['class'] == 'private':
for f in r.keys():
if f not in ('id', 'allday', 'start', 'stop', 'duration', 'user_id', 'state', 'interval', 'count', 'recurrent_id_date', 'rrule'):
recurrent_fields = self._get_recurrent_fields(cr, uid, context=context)
public_fields = list(set(recurrent_fields + ['id', 'allday', 'start', 'stop', 'duration', 'user_id', 'state', 'interval', 'count', 'recurrent_id_date', 'rrule']))
if f not in public_fields:
if isinstance(r[f], list):
r[f] = []
else:
+19 -1
View File
@@ -19,7 +19,10 @@
#
##############################################################################
import datetime
import pytz
import time
from openerp import tools
from openerp.osv import osv
from openerp.report import report_sxw
@@ -46,7 +49,22 @@ class pos_details(report_sxw.rml_parse):
result = {}
user_ids = form['user_ids'] or self._get_all_users()
company_id = user_obj.browse(self.cr, self.uid, self.uid).company_id.id
pos_ids = pos_obj.search(self.cr, self.uid, [('date_order','>=',form['date_start'] + ' 00:00:00'),('date_order','<=',form['date_end'] + ' 23:59:59'),('user_id','in',user_ids),('state','in',['done','paid','invoiced']),('company_id','=',company_id)])
user = self.pool['res.users'].browse(self.cr, self.uid, self.uid) or self.localcontext.get('tz') or 'UTC'
tz_name = user.tz
user_tz = pytz.timezone(tz_name)
between_dates = {}
for date_field, delta in {'date_start': {'days': 0}, 'date_end': {'days': 1}}.items():
timestamp = datetime.datetime.strptime(form[date_field] + ' 00:00:00', tools.DEFAULT_SERVER_DATETIME_FORMAT) + datetime.timedelta(**delta)
timestamp = user_tz.localize(timestamp).astimezone(pytz.utc)
between_dates[date_field] = timestamp.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT)
pos_ids = pos_obj.search(self.cr, self.uid, [
('date_order', '>=', between_dates['date_start']),
('date_order', '<', between_dates['date_end']),
('user_id', 'in', user_ids),
('state', 'in', ['done', 'paid', 'invoiced']),
('company_id', '=', company_id)
])
for pos in pos_obj.browse(self.cr, self.uid, pos_ids, context=self.localcontext):
for pol in pos.lines:
result = {
+1 -2
View File
@@ -277,8 +277,7 @@ class product_pricelist(osv.osv):
if is_product_template:
if rule.product_tmpl_id and product.id != rule.product_tmpl_id.id:
continue
if rule.product_id and \
(product.product_variant_count > 1 or product.product_variant_ids[0].id != rule.product_id.id):
if rule.product_id and not (product.product_variant_count == 1 and product.product_variant_ids[0].id == rule.product_id.id):
# product rule acceptable on template if has only one variant
continue
else:
+4
View File
@@ -738,6 +738,10 @@ class purchase_order(osv.osv):
''' prepare the stock move data from the PO line. This function returns a list of dictionary ready to be used in stock.move's create()'''
product_uom = self.pool.get('product.uom')
price_unit = order_line.price_unit
if order_line.taxes_id:
taxes = self.pool['account.tax'].compute_all(cr, uid, order_line.taxes_id, price_unit, 1.0,
order_line.product_id, order.partner_id)
price_unit = taxes['total']
if order_line.product_uom.id != order_line.product_id.uom_id.id:
price_unit *= order_line.product_uom.factor / order_line.product_id.uom_id.factor
if order.currency_id.id != order.company_id.currency_id.id:
+1 -2
View File
@@ -134,9 +134,8 @@ class Website(openerp.addons.web.controllers.main.Home):
first_page = None
locs = request.website.sudo(user=request.website.user_id.id).enumerate_pages()
while True:
start = pages * LOC_PER_SITEMAP
values = {
'locs': islice(locs, start, start + LOC_PER_SITEMAP),
'locs': islice(locs, 0, LOC_PER_SITEMAP),
'url_root': request.httprequest.url_root[:-1],
}
urls = iuv.render(cr, uid, 'website.sitemap_locs', values, context=context)
+3 -3
View File
@@ -508,7 +508,7 @@ class website(osv.osv):
"""
router = request.httprequest.app.get_db_router(request.db)
# Force enumeration to be performed as public user
url_list = []
url_set = set()
for rule in router.iter_rules():
if not self.rule_is_enumerable(rule):
continue
@@ -540,9 +540,9 @@ class website(osv.osv):
page[key[2:]] = val
if url in ('/sitemap.xml',):
continue
if url in url_list:
if url in url_set:
continue
url_list.append(url)
url_set.add(url)
yield page