[MERGE] forward port branch saas-14 up to 92e5da6b8f

This commit is contained in:
Christophe Simonis
2018-07-05 15:35:24 +02:00
6 changed files with 32 additions and 13 deletions
+1 -1
View File
@@ -117,7 +117,7 @@ class StockMove(models.Model):
@api.depends('move_lot_ids', 'move_lot_ids.quantity_done', 'quantity_done_store')
def _qty_done_compute(self):
for move in self:
if move.has_tracking != 'none':
if move.has_tracking != 'none' or move.sudo().move_lot_ids.mapped('lot_id'):
move.quantity_done = sum(move.move_lot_ids.filtered(lambda x: x.done_wo).mapped('quantity_done')) #TODO: change with active_move_lot_ids?
else:
move.quantity_done = move.quantity_done_store
+10 -6
View File
@@ -3,6 +3,7 @@
from odoo import api, fields, models, _
from datetime import datetime
import pytz
class CrmTeam(models.Model):
@@ -41,13 +42,16 @@ class CrmTeam(models.Model):
""" If the type of the sales team is point of sale ('pos'), the graph will display the sales data.
The override here is to get data from pos.order instead of sale.order.
"""
offset = datetime.now(pytz.timezone(self.env.user.tz or 'UTC')).utcoffset()
min_date = fields.Datetime.to_string(datetime.combine(start_date, datetime.min.time()) - offset)
max_date = fields.Datetime.to_string(datetime.combine(end_date, datetime.max.time()) - offset)
if self.team_type == 'pos':
result = []
if self.dashboard_graph_group_pos == 'pos':
order_data = self.env['report.pos.order'].read_group(
domain=[
('date', '>=', fields.Date.to_string(start_date)),
('date', '<=', fields.Datetime.to_string(datetime.combine(end_date, datetime.max.time()))),
('date', '>=', min_date),
('date', '<=', max_date),
('config_id', 'in', self.pos_config_ids.ids),
('state', 'in', ['paid', 'done', 'invoiced'])],
fields=['config_id', 'price_total'],
@@ -63,8 +67,8 @@ class CrmTeam(models.Model):
elif self.dashboard_graph_group_pos == 'user':
order_data = self.env['report.pos.order'].read_group(
domain=[
('date', '>=', fields.Date.to_string(start_date)),
('date', '<=', fields.Datetime.to_string(datetime.combine(end_date, datetime.max.time()))),
('date', '>=', min_date),
('date', '<=', max_date),
('config_id', 'in', self.pos_config_ids.ids),
('state', 'in', ['paid', 'done', 'invoiced'])],
fields=['user_id', 'price_total'],
@@ -78,8 +82,8 @@ class CrmTeam(models.Model):
# /!\ do not use en_US as it's not ISO-standard and does not match datetime's library
order_data = self.env['report.pos.order'].with_context(lang='en_GB').read_group(
domain=[
('date', '>=', fields.Date.to_string(start_date)),
('date', '<=', fields.Datetime.to_string(datetime.combine(end_date, datetime.max.time()))),
('date', '>=', min_date),
('date', '<=', max_date),
('config_id', 'in', self.pos_config_ids.ids),
('state', 'in', ['paid', 'done', 'invoiced'])],
fields=['date', 'price_total'],
+1 -1
View File
@@ -36,7 +36,6 @@ Dashboard / Reports for Project Management will include:
'data': [
'security/project_security.xml',
'security/ir.model.access.csv',
'data/project_data.xml',
'report/project_report_views.xml',
'views/project_views.xml',
'views/res_partner_views.xml',
@@ -46,6 +45,7 @@ Dashboard / Reports for Project Management will include:
'data/web_planner_data.xml',
'data/project_mail_template_data.xml',
'wizard/project_task_merge_wizard_views.xml',
'data/project_data.xml',
],
'qweb': ['static/src/xml/project.xml'],
'demo': ['data/project_demo.xml'],
+1 -1
View File
@@ -177,7 +177,7 @@ class CrmTeam(models.Model):
self.ensure_one()
values = []
today = date.today()
today = fields.Date.from_string(fields.Date.context_today(self))
start_date, end_date = self._graph_get_dates(today)
graph_data = self._graph_data(start_date, end_date)
+6
View File
@@ -405,6 +405,12 @@ actual arch.
self.clear_caches()
return super(View, self).write(self._compute_defaults(vals))
def unlink(self):
# if in uninstall mode and has children views, emulate an ondelete cascade
if self.env.context.get('_force_unlink', False) and self.mapped('inherit_children_ids'):
self.mapped('inherit_children_ids').unlink()
super(View, self).unlink()
@api.multi
def toggle(self):
""" Switches between enabled and disabled statuses
+13 -4
View File
@@ -123,7 +123,17 @@ def load_module_graph(cr, graph, status=None, perform_checks=True,
continue
_logger.debug('loading module %s (%d/%d)', module_name, index, module_count)
migrations.migrate_module(package, 'pre')
needs_update = (
hasattr(package, "init")
or hasattr(package, "update")
or package.state in ("to install", "to upgrade")
)
if needs_update:
if package.name != 'base':
registry.setup_models(cr, partial=True)
migrations.migrate_module(package, 'pre')
load_openerp_module(package.name)
new_install = package.state == 'to install'
@@ -136,8 +146,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True,
model_names = registry.load(cr, package)
loaded_modules.append(package.name)
if (hasattr(package, 'init') or hasattr(package, 'update')
or package.state in ('to install', 'to upgrade')):
if needs_update:
models_updated |= set(model_names)
models_to_check -= set(model_names)
registry.setup_models(cr, partial=True)
@@ -157,7 +166,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True,
if hasattr(package, 'init') or package.state == 'to install':
mode = 'init'
if hasattr(package, 'init') or hasattr(package, 'update') or package.state in ('to install', 'to upgrade'):
if needs_update:
env = api.Environment(cr, SUPERUSER_ID, {})
# Can't put this line out of the loop: ir.module.module will be
# registered by init_models() above.