|
Sequence
|
- Name
+ Name [[ o.workcenter_lines ==[] and removeParentNode('blockTable')]]
|
WorkCenter
@@ -301,7 +286,7 @@
[[ repeatIn(o.workcenter_lines,'line2') ]]
-
+
[[ line2.sequence ]]
@@ -324,17 +309,14 @@
-
+
Bill Of Material
-
- Products to Consume
-
- [[ o.move_lines ==[] and removeParentNode('section')]]
+
|
Product
@@ -350,76 +332,58 @@
|
-
-
- [[ repeatIn(o.move_lines,'line') ]]
-
- |
- [[ line.product_id.code ]] [[ line.product_id.name ]]
- |
-
- [[ formatLang( line.product_qty) ]]
- |
-
- [[line.product_uom.name]]
- |
-
- [[ line.location_id.name ]]
- |
-
- [[ line.location_dest_id.name ]]
- |
-
-
-
-
-
-
-
- Consumed Products
-
-
- [[ o.move_lines2 ==[] and removeParentNode('section')]]
-
- |
- Product
- |
-
- Quantity
- |
-
- Source Location
- |
-
- Destination Location
- |
-
-
-
+ Products to Consume [[ o.move_lines ==[] and removeParentNode('section')]]
-
- [[ repeatIn(o.move_lines2,'line2') ]]
-
- |
- [[ line2.product_id.code ]] [[ line2.product_id.name ]]
- |
-
- [[ formatLang( line2.product_qty) ]]
- |
-
- [[line2.product_uom.name]]
- |
-
- [[ line2.location_id.name ]]
- |
-
- [[ line2.location_dest_id.name ]]
- |
-
-
-
+ [[ repeatIn(o.move_lines,'line') ]]
+
+
+ |
+ [[ line.product_id.code ]] [[ line.product_id.name ]]
+ |
+
+ [[ formatLang( line.product_qty) ]]
+ |
+
+ [[line.product_uom.name]]
+ |
+
+ [[ line.location_id.name ]]
+ |
+
+ [[ line.location_dest_id.name ]]
+ |
+
+
+
+
+
+ Consumed Products [[ o.move_lines2 ==[] and removeParentNode('section')]]
+
+ [[ repeatIn(o.move_lines2,'line2') ]]
+
+
+ |
+ [[ line2.product_id.code ]] [[ line2.product_id.name ]]
+ |
+
+ [[ formatLang( line2.product_qty) ]]
+ |
+
+ [[line2.product_uom.name]]
+ |
+
+ [[ line2.location_id.name ]]
+ |
+
+ [[ line2.location_dest_id.name ]]
+ |
+
+
+
+
+
+
-
-
\ No newline at end of file
+
diff --git a/addons/mrp/wizard/change_production_qty_view.xml b/addons/mrp/wizard/change_production_qty_view.xml
index 63d9dbcb451..b73d8bcc529 100644
--- a/addons/mrp/wizard/change_production_qty_view.xml
+++ b/addons/mrp/wizard/change_production_qty_view.xml
@@ -15,7 +15,7 @@
-
diff --git a/addons/partner_geo_assign/__openerp__.py b/addons/partner_geo_assign/__openerp__.py
index 2d18649236e..ccfe6ba7c45 100644
--- a/addons/partner_geo_assign/__openerp__.py
+++ b/addons/partner_geo_assign/__openerp__.py
@@ -26,12 +26,14 @@
'category': 'Generic Modules/Production',
'description': """
This is the module used by OpenERP SA to redirect customers to his partners,
-based on geolocalisation.
+based on geolocalization.
""",
'author': 'OpenERP SA',
'depends': ['crm'],
- 'update_xml': ['res_partner_view.xml'],
- 'demo_xml': [],
+ 'data': [
+ 'res_partner_view.xml',
+ 'crm_lead_view.xml',
+ ],
'installable': True,
'active': False,
'certificate': False,
diff --git a/addons/partner_geo_assign/partner_geo_assign.py b/addons/partner_geo_assign/partner_geo_assign.py
index 97bca0b1073..0134dd04e72 100644
--- a/addons/partner_geo_assign/partner_geo_assign.py
+++ b/addons/partner_geo_assign/partner_geo_assign.py
@@ -39,14 +39,14 @@ def geo_find(addr):
except Exception, e:
raise osv.except_osv(_('Network error'),
_('Could not contact geolocation servers, please make sure you have a working internet connection (%s)') % e)
-
+
class res_partner(osv.osv):
_inherit = "res.partner"
_columns = {
'partner_latitude': fields.float('Geo Latitude'),
'partner_longitude': fields.float('Geo Longitude'),
- 'date_assign': fields.date('Assignation Date'),
+ 'date_localization': fields.date('Geo Localization Date'),
'partner_weight': fields.integer('Weight',
help="Gives the probability to assign a lead to this partner. (0 means no assignation.)"),
}
@@ -64,7 +64,7 @@ class res_partner(osv.osv):
self.write(cr, uid, [partner.id], {
'partner_latitude': result[0],
'partner_longitude': result[1],
- 'date_assign': time.strftime('%Y-%m-%d')
+ 'date_localization': time.strftime('%Y-%m-%d')
}, context=context)
return True
res_partner()
@@ -74,33 +74,7 @@ class crm_lead(osv.osv):
_columns = {
'partner_latitude': fields.float('Geo Latitude'),
'partner_longitude': fields.float('Geo Longitude'),
- 'partner_assigned_id': fields.many2one('res.partner','Assigned Partner'),
- 'date_assign': fields.date('Assignation Date')
}
- def forward_to_partner(self, cr, uid, ids, context=None):
- fobj = self.pool.get('crm.lead.forward.to.partner')
- for lead in self.browse(cr, uid, ids, context=context):
- context = {'active_id': lead.id, 'active_ids': [lead.id], 'active_model': 'crm.lead'}
- if lead.partner_assigned_id:
- email = False
- if lead.partner_assigned_id.address:
- email = lead.partner_assigned_id.address[0].email
- if not email:
- raise osv.except_osv(_('Error !'), _('No email on the partner assigned to this opportunity'))
-
- values = fobj.default_get(cr, uid, ['name', 'email_from'], context=context)
- if not values.get('email_from'):
- raise osv.except_osv(_('Error !'), _('Please set an email address in your user preferences'))
- values.update({
- 'history': 'whole',
- 'email_to': email,
- 'message': fobj._get_case_history(cr, uid, 'whole', lead.id, context) or False,
- })
- forward = fobj.create(cr, uid, values, context)
- fobj.action_forward(cr, uid, [forward], context)
- else:
- raise osv.except_osv(_('Error !'), _('No partner assigned to this opportunity'))
- return True
def assign_partner(self, cr, uid, ids, context=None):
ok = False
diff --git a/addons/partner_geo_assign/res_partner_view.xml b/addons/partner_geo_assign/res_partner_view.xml
index 26322f23495..f9310fdfbd0 100644
--- a/addons/partner_geo_assign/res_partner_view.xml
+++ b/addons/partner_geo_assign/res_partner_view.xml
@@ -1,33 +1,6 @@
-
- crm.lead.geo_assign.inherit
- crm.lead
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
res.partner.geo.inherit
res.partner
@@ -35,7 +8,7 @@
-
+
-
+
-
diff --git a/addons/profile_tools/misc_tools_installer.xml b/addons/profile_tools/misc_tools_installer.xml
index efef1dc3649..84b47128fff 100644
--- a/addons/profile_tools/misc_tools_installer.xml
+++ b/addons/profile_tools/misc_tools_installer.xml
@@ -20,7 +20,10 @@
Here are a few useful applications which, while they don't directly contribute to your business, can improve on it or improve your OpenERP experience
+ >Here are a few useful applications which, while they do not directly contribute to your business, can help you to improve your organization.
+
+
+ Configure
diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py
index 726e87b5979..b5ff85fcc3c 100644
--- a/addons/project/__openerp__.py
+++ b/addons/project/__openerp__.py
@@ -56,7 +56,8 @@ work done on tasks, eso. It is able to render planning, order tasks, eso.
'board_project_demo.xml',
],
'test':[
- 'test/test_project.yml'
+ 'test/test_project.yml',
+ 'test/test_project_delegation.yml',
],
'installable': True,
'active': False,
diff --git a/addons/project/project.py b/addons/project/project.py
index 5ed5f9641ab..168e7db7c7c 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -21,7 +21,7 @@
from lxml import etree
import time
-
+from datetime import date, datetime
from tools.translate import _
from osv import fields, osv
@@ -170,6 +170,9 @@ class project(osv.osv):
return res
def set_done(self, cr, uid, ids, context=None):
+ task_obj = self.pool.get('project.task')
+ task_ids = task_obj.search(cr, uid, [('project_id', 'in', ids), ('state', 'not in', ('cancelled', 'done'))])
+ task_obj.write(cr, uid, task_ids, {'state': 'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0})
self.write(cr, uid, ids, {'state':'close'}, context=context)
for (id, name) in self.name_get(cr, uid, ids):
message = _('Project ') + " '" + name + "' "+ _("is Closed.")
@@ -177,6 +180,9 @@ class project(osv.osv):
return True
def set_cancel(self, cr, uid, ids, context=None):
+ task_obj = self.pool.get('project.task')
+ task_ids = task_obj.search(cr, uid, [('project_id', 'in', ids), ('state', '!=', 'done')])
+ task_obj.write(cr, uid, task_ids, {'state': 'cancelled', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0})
self.write(cr, uid, ids, {'state':'cancelled'}, context=context)
return True
@@ -198,16 +204,33 @@ class project(osv.osv):
def copy(self, cr, uid, id, default={}, context=None):
if context is None:
context = {}
+
+ task_obj = self.pool.get('project.task')
proj = self.browse(cr, uid, id, context=context)
default = default or {}
context['active_test'] = False
default['state'] = 'open'
if not default.get('name', False):
- default['name'] = proj.name+_(' (copy)')
+ default['name'] = proj.name+_(' (copy)')
res = super(project, self).copy(cr, uid, id, default, context)
+
+ task_ids = task_obj.search(cr, uid, [('project_id','=', res), ('active','=',False)])
+ tasks = task_obj.browse(cr, uid, task_ids)
+ for task in tasks:
+ date_deadline = None
+ date_end = None
+ if task.date_start:
+ ds = date(*time.strptime(task.date_start,'%Y-%m-%d %H:%M:%S')[:3])
+ if task.date_deadline:
+ dd = date(*time.strptime(task.date_deadline,'%Y-%m-%d')[:3])
+ diff = dd-ds
+ date_deadline = (datetime.now()+diff).strftime('%Y-%m-%d %H:%M:%S')
+ task_obj.write(cr, uid, task.id, {'active':True,
+ 'date_start':time.strftime('%Y-%m-%d %H:%M:%S'),
+ 'date_deadline':date_deadline,
+ 'date_end':date_end})
+
ids = self.search(cr, uid, [('parent_id','child_of', [res])])
- if ids:
- cr.execute('update project_task set active=True where project_id IN %s',(tuple(ids),))
return res
def duplicate_template(self, cr, uid, ids, context=None):
@@ -322,9 +345,16 @@ class task(osv.osv):
if task['date_start'] > task['date_end']:
return False
return True
+
+ def _check_deadline_date(self, cr, uid, ids, context=None):
+ task = self.read(cr, uid, ids[0], ['date_start', 'date_deadline'])
+ if task['date_start'] and task['date_deadline']:
+ if task['date_deadline'] < task['date_start']:
+ return False
+ return True
_columns = {
- 'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the task without removing it."),
+ 'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the task without removing it. This is basically used for the management of templates of projects and tasks."),
'name': fields.char('Task Summary', size=128, required=True),
'description': fields.text('Description'),
'priority' : fields.selection([('4','Very Low'), ('3','Low'), ('2','Medium'), ('1','Urgent'), ('0','Very urgent')], 'Importance'),
@@ -597,6 +627,15 @@ class config_compute_remaining(osv.osv_memory):
_columns = {
'remaining_hours' : fields.float('Remaining Hours', digits=(16,2), help="Put here the remaining hours required to close the task."),
}
+
+ def _get_analytic_account(self, cr, uid, context={}):
+ if context.get('account_id', False):
+ return context.get('account_id')
+ return False
+
+ _defaults = {
+ 'account_id' : _get_analytic_account,
+ }
_defaults = {
'remaining_hours': _get_remaining
diff --git a/addons/project/project_demo.xml b/addons/project/project_demo.xml
index 43f01c2120d..13127969409 100644
--- a/addons/project/project_demo.xml
+++ b/addons/project/project_demo.xml
@@ -31,7 +31,7 @@
1
Open ERP Integration
-
+
@@ -39,21 +39,20 @@
10
Study + Prototype
-
+
20
Specific Developments
-
+
30
Install, data import, configuration
-
@@ -100,7 +99,6 @@
Internal testing + Software Install
- 2008-06-06
17
@@ -214,7 +212,6 @@
open
In house training
- 2007-06-06
50
@@ -257,7 +254,6 @@
Latest in house tests
- 2010-05-27
Follow the procedure of Configuration wizard.
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 45d0e1e18bf..8fb488478ec 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -45,7 +45,7 @@
-
+
@@ -117,7 +117,6 @@
-
@@ -322,11 +321,10 @@
-
+
-
@@ -342,18 +340,13 @@
-
+
-
-
-
-
-
+
+
+
@@ -418,18 +414,27 @@
-
+
+
+
-
+
@@ -454,7 +459,7 @@
tree,form,calendar,gantt,graph
- {"search_default_project_id":project_id,'search_default_user_id':uid, 'search_default_current': 1}
+ {"search_default_project_id":project_id, "search_default_user_id":uid, 'search_default_current': 1}
@@ -497,7 +502,8 @@
@@ -515,7 +521,7 @@
- Types
+ Task Stages
project.task.type
form
@@ -528,6 +534,7 @@
-
+
\ No newline at end of file
diff --git a/addons/project/report/project_report.py b/addons/project/report/project_report.py
index e217619358c..0d373cdff98 100644
--- a/addons/project/report/project_report.py
+++ b/addons/project/report/project_report.py
@@ -165,7 +165,7 @@ class project_vs_hours(osv.osv):
project_user_rel as pur,
account_analytic_account as aaa,
project_task as pt
- WHERE pur.project_id=pp.id and pt.project_id=pp.id and pp.category_id=aaa.id
+ WHERE pur.project_id=pp.id and pt.project_id=pp.id and pp.category_id=aaa.id AND pur.uid != aaa.user_id
GROUP BY pur.uid,aaa.state,aaa.name
)
""")
diff --git a/addons/project/report/project_report_view.xml b/addons/project/report/project_report_view.xml
index 09e63f43b88..ddd03ebf7b9 100644
--- a/addons/project/report/project_report_view.xml
+++ b/addons/project/report/project_report_view.xml
@@ -265,6 +265,7 @@
project.vs.hours
form
graph,tree
+ [('uid','=',uid),('state','=','open')]
diff --git a/addons/project/test/test_project.yml b/addons/project/test/test_project.yml
index 25b3e94b57f..ac5fe54ea0b 100644
--- a/addons/project/test/test_project.yml
+++ b/addons/project/test/test_project.yml
@@ -109,23 +109,24 @@
- state == "open"
-
-
Test for task work allocation
--
- Check if task 'Technical Training' in draft state
--
- !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Project is in draft state}:
- - state == "draft"
--
- Open task 'Technical Training'
--
- !python {model: project.task}: |
- self.do_open(cr, uid, [ref("project_task_technicaltraining0")], {"lang": "en_US", "active_ids": [ref("project.menu_action_view_task")],
- "tz": False, "active_model": "ir.ui.menu", "search_default_project_id":
- False, "search_default_user_id": 1, "search_default_current": 1, "project_id":
- False, "active_id": ref("project.menu_action_view_task"), })
--
+-
+ As i cancelled my project before, i check if the task 'Technical Training' is in cancelled state
+-
+ !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Task is in cancelled state}:
+ - state == "cancelled"
+-
+ Now in order to reactivate the task 'Technical Training', i click on the "Reactivate" button and fill the remaining hour field
+-
+ !record {model: config.compute.remaining, id: project_task_technicaltraining_remainingwiz0}:
+ remaining_hours: 30.0
+- |
+ I click the apply button
+-
+ !python {model: config.compute.remaining}: |
+ self.compute_hours(cr, uid, [ref('project_task_technicaltraining_remainingwiz0')], {'active_id': ref("project_task_technicaltraining0"),'button_reactivate': True})
+- |
Check if task 'Technical Training' in open state and for other initial values
-
!assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Project is in open state}:
@@ -231,10 +232,7 @@
Close the task
-
!python {model: project.task}: |
- self.do_close(cr, uid, [ref("project_task_technicaltraining0")], {"lang": "en_US", "active_ids": [ref("project.menu_action_view_task")],
- "tz": False, "active_model": "ir.ui.menu", "search_default_project_id":
- False, "search_default_user_id": 1, "search_default_current": 1, "project_id":
- False, "active_id": ref("project.menu_action_view_task"), })
+ self.do_close(cr, uid, [ref("project_task_technicaltraining0")], {'mail_send': False})
-
Check if task in done state
-
@@ -289,10 +287,7 @@
Close the task
-
!python {model: project.task}: |
- self.do_close(cr, uid, [ref("project_task_technicaltraining0")], {"lang": "en_US", "active_ids": [ref("project.menu_action_view_task")],
- "tz": False, "active_model": "ir.ui.menu", "search_default_project_id":
- False, "search_default_user_id": 1, "search_default_current": 1, "project_id":
- False, "active_id": ref("project.menu_action_view_task"), })
+ self.do_close(cr, uid, [ref("project_task_technicaltraining0")], {'mail_send': False})
-
Check if task in done state
-
@@ -319,4 +314,4 @@
-
!assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error}:
- state == "close"
-
\ No newline at end of file
+
diff --git a/addons/project/wizard/project_close_task.py b/addons/project/wizard/project_close_task.py
index 715e70e59d0..5532d699a3b 100644
--- a/addons/project/wizard/project_close_task.py
+++ b/addons/project/wizard/project_close_task.py
@@ -98,6 +98,8 @@ class project_close_task(osv.osv_memory):
body = u'%s\n%s\n%s\n\n-- \n%s' % (header, description, footer, signature)
email(from_adr, [to_adr], subject, body.encode('utf-8'), email_bcc=[from_adr])
task_obj.write(cr, uid, [task.id], {'state': 'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0})
+ message = _('Task ') + " '" + task.name + "' "+ _("is Done.")
+ self.log(cr, uid, task.id, message)
else:
raise osv.except_osv(_('Error'), _("Please specify the email address of partner."))
return {}
diff --git a/addons/project/wizard/project_task_delegate_view.xml b/addons/project/wizard/project_task_delegate_view.xml
index 762810eba64..68ebb1692d2 100644
--- a/addons/project/wizard/project_task_delegate_view.xml
+++ b/addons/project/wizard/project_task_delegate_view.xml
@@ -26,7 +26,7 @@
-
+
diff --git a/addons/project_gtd/__openerp__.py b/addons/project_gtd/__openerp__.py
index ba46d295234..971b2e8e324 100644
--- a/addons/project_gtd/__openerp__.py
+++ b/addons/project_gtd/__openerp__.py
@@ -43,10 +43,8 @@ performing those tasks.
'update_xml': [
'project_gtd_data.xml',
'project_gtd_view.xml',
- 'project_gtd_wizard.xml',
'security/ir.model.access.csv',
'wizard/project_gtd_empty_view.xml',
- 'wizard/project_gtd_daily_view.xml',
'wizard/project_gtd_fill_view.xml',
],
'demo_xml': ['project_gtd_demo.xml'],
diff --git a/addons/project_gtd/project_gtd_view.xml b/addons/project_gtd/project_gtd_view.xml
index 919412cd27d..66a7cca01e3 100644
--- a/addons/project_gtd/project_gtd_view.xml
+++ b/addons/project_gtd/project_gtd_view.xml
@@ -80,8 +80,8 @@
-
+
@@ -96,7 +96,7 @@
-
+
diff --git a/addons/project_gtd/project_gtd_wizard.xml b/addons/project_gtd/project_gtd_wizard.xml
deleted file mode 100644
index e01db8218c6..00000000000
--- a/addons/project_gtd/project_gtd_wizard.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/project_gtd/wizard/__init__.py b/addons/project_gtd/wizard/__init__.py
index e92fa265ed3..aa2bbc22c45 100644
--- a/addons/project_gtd/wizard/__init__.py
+++ b/addons/project_gtd/wizard/__init__.py
@@ -19,8 +19,8 @@
#
##############################################################################
-import project_gtd_daily
import project_gtd_empty
import project_gtd_fill
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_gtd/wizard/project_gtd_daily.py b/addons/project_gtd/wizard/project_gtd_daily.py
deleted file mode 100644
index bacc1af85d9..00000000000
--- a/addons/project_gtd/wizard/project_gtd_daily.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-from osv import osv, fields
-from tools.translate import _
-
-class project_timebox_open(osv.osv_memory):
-
- _name = 'project.timebox.open'
- _description = 'Project Timebox Open'
-
- def open_tb(self, cr, uid, data, context=None):
- ids = self.pool.get('project.gtd.timebox').search(cr, uid, [])
- if not len(ids):
- raise osv.except_osv(_('Error !'), _('No timebox of the type defined !'))
- if len(ids) >= 1:
- domain = "[('id','in',["+','.join(map(str, ids))+"])]"
- value = {
- 'domain': domain,
- 'name': 'My Daily Timebox',
- 'view_type': 'form',
- 'view_mode': 'form,tree',
- 'res_model': 'project.gtd.timebox',
- 'view_id': False,
- 'type': 'ir.actions.act_window'
- }
- if len(ids) == 1:
- value['res_id'] = ids[0]
- value['context'] = {'record_id':ids[0]}
- return value
-
-project_timebox_open()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/project_gtd/wizard/project_gtd_daily_view.xml b/addons/project_gtd/wizard/project_gtd_daily_view.xml
deleted file mode 100644
index c49585f9112..00000000000
--- a/addons/project_gtd/wizard/project_gtd_daily_view.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
- My Daily Timebox
- project.timebox.open
- form
-
-
-
-
-
-
- My Daily Timebox
- ir.actions.act_window
- project.timebox.open
- form
- form
-
- {'record_id' : active_id}
- new
-
-
-
-
-
- My Daily Timebox
- client_action_multi
-
- action
- project.gtd.timebox
-
-
-
-
-
\ No newline at end of file
diff --git a/addons/project_gtd/wizard/project_gtd_fill_view.xml b/addons/project_gtd/wizard/project_gtd_fill_view.xml
index 1c3d221c6ac..6206a0a5d89 100644
--- a/addons/project_gtd/wizard/project_gtd_fill_view.xml
+++ b/addons/project_gtd/wizard/project_gtd_fill_view.xml
@@ -8,8 +8,8 @@
form
@@ -978,7 +978,7 @@
-
+
@@ -1175,7 +1175,7 @@
-
+
diff --git a/addons/stock_planning/stock_planning_view.xml b/addons/stock_planning/stock_planning_view.xml
index 7da194d91e1..0bb9222df35 100644
--- a/addons/stock_planning/stock_planning_view.xml
+++ b/addons/stock_planning/stock_planning_view.xml
@@ -153,7 +153,7 @@
-
+
| |