diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py
index 4d0f85376f3..62ffc7c39d8 100644
--- a/addons/base_calendar/base_calendar.py
+++ b/addons/base_calendar/base_calendar.py
@@ -325,26 +325,17 @@ class calendar_attendee(osv.osv):
result[id][name] = ', '.join(fromdata)
if name == 'event_date':
if attdata.ref:
- model, res_id = tuple(attdata.ref.split(','))
- model_obj = self.pool.get(model)
- obj = model_obj.read(cr, uid, res_id, ['date'])[0]
- result[id][name] = obj.get('date')
+ result[id][name] = attdata.ref.date
else:
result[id][name] = False
if name == 'event_end_date':
if attdata.ref:
- model, res_id = tuple(attdata.ref.split(','))
- model_obj = self.pool.get(model)
- obj = model_obj.read(cr, uid, res_id, ['date_deadline'])[0]
- result[id][name] = obj.get('date_deadline')
+ result[id][name] = attdata.ref.date_deadline
else:
result[id][name] = False
if name == 'sent_by_uid':
if attdata.ref:
- model, res_id = tuple(attdata.ref.split(','))
- model_obj = self.pool.get(model)
- obj = model_obj.read(cr, uid, res_id, ['user_id'])[0]
- result[id][name] = obj.get('user_id')
+ result[id][name] = (attdata.ref.user_id.id,attdata.ref.user_id.name)
else:
result[id][name] = uid
if name == 'language':
@@ -441,8 +432,7 @@ request was delegated to"),
for att in self.browse(cr, uid, ids, context=context):
sign = att.sent_by_uid and att.sent_by_uid.signature or ''
sign = '
'.join(sign and sign.split('\n') or [])
- model, res_id = tuple(att.ref.split(','))
- res_obj = self.pool.get(model).browse(cr, uid, res_id)
+ res_obj = att.ref
if res_obj and len(res_obj):
res_obj = res_obj[0]
sub = '[%s Invitation][%d] %s' % (company, att.id, res_obj.name)
@@ -490,9 +480,7 @@ request was delegated to"),
if user:
ref = vals.get('ref', None)
if ref:
- model, event = ref.split(',')
- model_obj = self.pool.get(model)
- event_ref = model_obj.browse(cr, uid, event, context=context)[0]
+ event_ref = ref
if event_ref.user_id.id != user[0]:
defaults = {'user_id': user[0]}
new_event = model_obj.copy(cr, uid, event, default=defaults, context=context)
diff --git a/addons/base_calendar/base_calendar_view.xml b/addons/base_calendar/base_calendar_view.xml
index d6430ca98a2..f1e59583cc1 100644
--- a/addons/base_calendar/base_calendar_view.xml
+++ b/addons/base_calendar/base_calendar_view.xml
@@ -159,8 +159,8 @@
-
+
diff --git a/addons/crm/crm.py b/addons/crm/crm.py
index 282584b8c6f..ebaa437ff41 100644
--- a/addons/crm/crm.py
+++ b/addons/crm/crm.py
@@ -156,6 +156,7 @@ class crm_case_stage(osv.osv):
'object_id': fields.many2one('ir.model','Object Name'),
'probability': fields.float('Probability (%)', required=True),
'on_change': fields.boolean('Change Probability Automatically',help="Change Probability on next and previous stages."),
+ 'requirements': fields.text('Requirements')
}
def _find_object_id(self, cr, uid, context=None):
object_id = context and context.get('object_id', False) or False
@@ -356,7 +357,7 @@ class crm_case(osv.osv):
'section_id': case.section_id.id
}
obj = self.pool.get('crm.case.log')
- if history and case.description:
+ if history:
obj = self.pool.get('crm.case.history')
data['description'] = details or case.description
data['email'] = email or \
diff --git a/addons/crm/crm_claims_view.xml b/addons/crm/crm_claims_view.xml
index 5a4c6a3f6ad..f51f6890d0c 100644
--- a/addons/crm/crm_claims_view.xml
+++ b/addons/crm/crm_claims_view.xml
@@ -45,7 +45,7 @@
crm.claim
tree
-
+
diff --git a/addons/crm/crm_fund_view.xml b/addons/crm/crm_fund_view.xml
index 75aae19a4af..a78d5e3eeb6 100644
--- a/addons/crm/crm_fund_view.xml
+++ b/addons/crm/crm_fund_view.xml
@@ -202,24 +202,24 @@
-
-
-
-
-
+ default="1" domain="[('user_id','=',uid)]"
+ separator="1"
+ help="Funds Related to Current User"
+ />
+
+
+
+
+
-
+
-
-
+
+ />
diff --git a/addons/crm/crm_helpdesk_view.xml b/addons/crm/crm_helpdesk_view.xml
index 68a47fef9f8..ec662885a04 100644
--- a/addons/crm/crm_helpdesk_view.xml
+++ b/addons/crm/crm_helpdesk_view.xml
@@ -122,7 +122,8 @@
crm.helpdesk
tree
-
+
diff --git a/addons/crm/crm_meeting.py b/addons/crm/crm_meeting.py
index ce818fa0189..de0f1f01c33 100644
--- a/addons/crm/crm_meeting.py
+++ b/addons/crm/crm_meeting.py
@@ -74,17 +74,14 @@ class calendar_attendee(osv.osv):
result[id] = {}
if name == 'categ_id':
if attdata.ref:
- model, res_id = tuple(attdata.ref.split(','))
- model_obj = self.pool.get(model)
- obj = model_obj.read(cr, uid, res_id, ['categ_id'])[0]
- result[id][name] = obj.get('categ_id')
+ result[id][name] = (attdata.ref.categ_id.id,attdata.ref.categ_id.name,)
else:
result[id][name] = False
return result
_columns = {
'categ_id': fields.function(_compute_data, method=True, \
string='Event Type', type="many2one", \
- relation="crm.case.categ", multi='categ_id'),
+ relation="crm.case.categ", multi='categ_id'),
}
calendar_attendee()
diff --git a/addons/crm/crm_opportunity_view.xml b/addons/crm/crm_opportunity_view.xml
index 4bf7a0b858d..4ce8c647c13 100644
--- a/addons/crm/crm_opportunity_view.xml
+++ b/addons/crm/crm_opportunity_view.xml
@@ -215,24 +215,24 @@
/>
+
-
-
-
-
+
+
+
diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml
index 7ac6e119c27..908cdd6fa91 100644
--- a/addons/crm/crm_view.xml
+++ b/addons/crm/crm_view.xml
@@ -71,13 +71,15 @@
form
@@ -632,7 +634,7 @@
-
+
diff --git a/addons/crm/wizard/wizard_crm_new_send_email.py b/addons/crm/wizard/wizard_crm_new_send_email.py
index b9a43546132..ef878f3249f 100644
--- a/addons/crm/wizard/wizard_crm_new_send_email.py
+++ b/addons/crm/wizard/wizard_crm_new_send_email.py
@@ -72,11 +72,7 @@ def _mass_mail_send(self, cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)
case_pool=pool.get(data.get('model'))
- case = case_pool.browse(cr,uid,data['ids'])[0]
- case_pool.write(cr, uid, [case.id], {
- #'som': False,
- 'canal_id': False,
- })
+ case = case_pool.browse(cr,uid,data['ids'])[0]
emails = [data['form']['to']] + (data['form']['cc'] or '').split(',')
emails = filter(None, emails)
body = data['form']['text']
diff --git a/addons/hr_holidays/__terp__.py b/addons/hr_holidays/__terp__.py
index f44fe590015..26dc78675cc 100644
--- a/addons/hr_holidays/__terp__.py
+++ b/addons/hr_holidays/__terp__.py
@@ -53,9 +53,8 @@
'security/ir.model.access.csv',
'hr_workflow.xml',
'hr_view.xml',
- 'hr_holidays_report.xml',
'hr_holidays_wizard.xml',
- 'report/hr_holidays_report_view.xml',
+ 'hr_holidays_report.xml',
#'process/hr_holidays_process.xml'
],
'demo_xml': [],
diff --git a/addons/hr_holidays/hr.py b/addons/hr_holidays/hr.py
index b6c0313e13f..12cb02f659f 100755
--- a/addons/hr_holidays/hr.py
+++ b/addons/hr_holidays/hr.py
@@ -37,17 +37,13 @@ class hr_holidays_status(osv.osv):
for record in self.browse(cr, uid, ids, context):
res[record.id] = {}
max_leaves = leaves_taken = 0
- obj_ids = self.pool.get('hr.holidays.per.user').search(cr, uid, [('user_id','=',uid),('employee_id','=',employee_id),('holiday_status','=',record.id)])
- if obj_ids:
- br_ob=self.pool.get('hr.holidays.per.user').browse(cr, uid, obj_ids)[0]
- max_leaves=br_ob.max_leaves
if not return_false:
cr.execute("""SELECT type, sum(number_of_days) FROM hr_holidays WHERE employee_id = %s AND state='validate' AND holiday_status_id = %s GROUP BY type""", (str(employee_id), str(record.id)))
for line in cr.fetchall():
if line[0] =='remove':
- leaves_taken = -line[1]
+ leaves_taken = -line[1]
if line[0] =='add':
- max_leaves = line[1]
+ max_leaves = line[1]
res[record.id]['max_leaves'] = max_leaves
res[record.id]['leaves_taken'] = leaves_taken
res[record.id]['remaining_leaves'] = max_leaves - leaves_taken
@@ -66,18 +62,19 @@ class hr_holidays_status(osv.osv):
employee_id = employee_ids[0]
else:
return_false = True
- res = self.get_days(cr, uid, ids, employee_id, return_false, context=context)
+ if employee_id:
+ res = self.get_days(cr, uid, ids, employee_id, return_false, context=context)
return res
_columns = {
'name' : fields.char('Name', size=64, required=True, translate=True),
- 'section_id': fields.many2one('crm.case.section', 'CRM Section', help='If you link this type of leave with a section in the CRM, it will synchronize each leave asked with a case in this section, to display it in the company shared calendar for example.'),
+ 'categ_id': fields.many2one('crm.case.categ', 'Meeting Category', domain="[('object_id.model', '=', 'crm.meeting')]", help='If you link this type of leave with a category in the CRM, it will synchronize each leave asked with a case in this category, to display it in the company shared calendar for example.'),
'color_name' : fields.selection([('red', 'Red'), ('lightgreen', 'Light Green'), ('lightblue','Light Blue'), ('lightyellow', 'Light Yellow'), ('magenta', 'Magenta'),('lightcyan', 'Light Cyan'),('black', 'Black'),('lightpink', 'Light Pink'),('brown', 'Brown'),('violet', 'Violet'),('lightcoral', 'Light Coral'),('lightsalmon', 'Light Salmon'),('lavender', 'Lavender'),('wheat', 'Wheat'),('ivory', 'Ivory')],'Color of the status', required=True, help='This color will be used in the leaves summary located in Reporting\Print Summary of Leaves'),
'limit' : fields.boolean('Allow to override Limit', help='If you thick this checkbox, the system will allow, for this section, the employees to take more leaves than the available ones.'),
- 'active' : fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the leave type without removing it."),
+ 'active' : fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the leave type without removing it."),
'max_leaves' : fields.function(_user_left_days, method=True, string='Maximum Leaves Allowed', help='This value is given by the sum of all holidays requests with a positive value.', multi='user_left_days'),
'leaves_taken' : fields.function(_user_left_days, method=True, string='Leaves Already Taken', help='This value is given by the sum of all holidays requests with a negative value.', multi='user_left_days'),
- 'remaining_leaves' : fields.function(_user_left_days, method=True, string='Remaining Leaves', multi='user_left_days'),
+ 'remaining_leaves' : fields.function(_user_left_days, method=True, string='Remaining Leaves', help='Maximum Leaves Allowed - Leaves Already Taken', multi='user_left_days'),
}
_defaults = {
@@ -86,48 +83,6 @@ class hr_holidays_status(osv.osv):
}
hr_holidays_status()
-class hr_holidays_per_user(osv.osv):
- _name = "hr.holidays.per.user"
- _description = "Holidays Per User"
- _rec_name = "user_id"
-
- def _get_remaining_leaves(self, cr, uid, ids, field_name, arg=None, context={}):
- obj_holiday = self.pool.get('hr.holidays')
- result = {}
- for holiday_user in self.browse(cr, uid, ids):
- days = 0.0
- ids_request = obj_holiday.search(cr, uid, [('employee_id', '=', holiday_user.employee_id.id),('state', '=', 'validate'),('holiday_status_id', '=', holiday_user.holiday_status.id)])
- if ids_request:
- holidays = obj_holiday.browse(cr, uid, ids_request)
- for holiday in holidays:
- days -= holiday.number_of_days
- days = holiday_user.max_leaves - days
- result[holiday_user.id] = days
- return result
-
- _columns = {
- 'employee_id': fields.many2one('hr.employee', "Employee's Name",required=True),
- 'user_id' : fields.many2one('res.users','User'),
- 'holiday_status' : fields.many2one("hr.holidays.status", "Holiday's Status", required=True),
- 'max_leaves' : fields.float('Maximum Leaves Allowed',required=True),
- 'leaves_taken' : fields.float('Leaves Already Taken',readonly=True),
- 'active' : fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the holidays per user without removing it."),
- 'notes' : fields.text('Notes'),
- 'remaining_leaves': fields.function(_get_remaining_leaves, method=True, string='Remaining Leaves', type='float'),
- 'holiday_ids': fields.one2many('hr.holidays', 'holiday_user_id', 'Holidays')
- }
- _defaults = {
- 'active' : lambda *a: True,
- }
-
- def create(self, cr, uid, vals, *args, **kwargs):
- if vals['employee_id']:
- obj_emp=self.pool.get('hr.employee').browse(cr,uid,vals['employee_id'])
- vals.update({'user_id': obj_emp.user_id.id})
- return super(osv.osv,self).create(cr, uid, vals, *args, **kwargs)
-
-hr_holidays_per_user()
-
class hr_holidays(osv.osv):
_name = "hr.holidays"
_description = "Holidays"
@@ -152,13 +107,12 @@ class hr_holidays(osv.osv):
'notes' : fields.text('Notes',readonly=True, states={'draft':[('readonly',False)]}),
'number_of_days': fields.float('Number of Days', readonly=True, states={'draft':[('readonly',False)]}),
'number_of_days_temp': fields.float('Number of Days', readonly=True, states={'draft':[('readonly',False)]}),
- 'case_id': fields.many2one('crm.case', 'Case'),
+ 'case_id': fields.many2one('crm.meeting', 'Case'),
'type': fields.selection([('remove','Leave Request'),('add','Allocation Request')], 'Request Type', required=True, readonly=True, states={'draft':[('readonly',False)]}, help="Choose 'Leave Request' if someone wants to take an off-day. \nChoose 'Allocation Request' if you want to increase the number of leaves available for someone"),
'allocation_type': fields.selection([('employee','Employee Request'),('company','Company Allocation')], 'Allocation Type', required=True, readonly=True, states={'draft':[('readonly',False)]}, help='This field is only for informative purposes, to depict if the leave request/allocation comes from an employee or from the company'),
'parent_id': fields.many2one('hr.holidays', 'Parent'),
'linked_request_ids': fields.one2many('hr.holidays', 'parent_id', 'Linked Requests',),
- 'holiday_user_id' : fields.many2one('hr.holidays.per.user', 'User'),
- 'department_id':fields.many2one('hr.department','Department'),
+ 'department_id':fields.many2one('hr.department','Department', readonly=True, states={'draft':[('readonly',False)]} ),
}
_defaults = {
@@ -170,6 +124,14 @@ class hr_holidays(osv.osv):
}
_order = 'date_from desc'
+ def create(self, cr, uid, vals, context={}):
+ if context:
+ if context.has_key('type'):
+ vals['type'] = context['type']
+ if context.has_key('allocation_type'):
+ vals['allocation_type'] = context['allocation_type']
+ return super(osv.osv,self).create(cr, uid, vals, context)
+
def onchange_date_from(self, cr, uid, ids, date_to, date_from):
result = {}
if date_to and date_from:
@@ -188,16 +150,14 @@ class hr_holidays(osv.osv):
def _update_user_holidays(self, cr, uid, ids):
for record in self.browse(cr, uid, ids):
if record.state=='validate':
- holiday_id=self.pool.get('hr.holidays.per.user').search(cr, uid, [('employee_id','=', record.employee_id.id),('holiday_status','=',record.holiday_status_id.id)])
- if holiday_id:
- obj_holidays_per_user=self.pool.get('hr.holidays.per.user').browse(cr, uid,holiday_id[0])
- self.pool.get('hr.holidays.per.user').write(cr,uid,obj_holidays_per_user.id,{'leaves_taken':obj_holidays_per_user.leaves_taken - record.number_of_days})
if record.case_id:
- if record.case_id.state <> 'draft':
- raise osv.except_osv(_('Warning !'),
- _('You can not cancel this holiday request. first You have to make its case in draft state.'))
- else:
- self.pool.get('crm.case').unlink(cr,uid,[record.case_id.id])
+ self.pool.get('crm.meeting').unlink(cr,uid,[record.case_id.id])
+ if record.linked_request_ids:
+ list_ids = []
+ for id in record.linked_request_ids:
+ list_ids.append(id.id)
+ self.holidays_cancel(cr,uid,list_ids)
+ self.unlink(cr,uid,list_ids)
def _check_date(self, cr, uid, ids):
if ids:
@@ -209,26 +169,11 @@ class hr_holidays(osv.osv):
_constraints = [(_check_date, 'Start date should not be larger than end date! ', ['number_of_days'])]
- def create(self, cr, uid, vals, *args, **kwargs):
- id_holiday = super(hr_holidays, self).create(cr, uid, vals, *args, **kwargs)
- self._create_holiday(cr, uid, [id_holiday])
- return id_holiday
def unlink(self, cr, uid, ids, context={}):
self._update_user_holidays(cr, uid, ids)
return super(hr_holidays, self).unlink(cr, uid, ids, context)
- def _create_holiday(self, cr, uid, ids):
- holidays_user_obj = self.pool.get('hr.holidays.per.user')
- holidays_data = self.browse(cr, uid, ids[0])
- list_holiday = []
- ids_user_hdays = holidays_user_obj.search(cr, uid, [('employee_id', '=', holidays_data.employee_id.id),('holiday_status', '=', holidays_data.holiday_status_id.id)])
- for hdays in holidays_user_obj.browse(cr, uid, ids_user_hdays):
- for req in hdays.holiday_ids:
- list_holiday.append(req.id)
- list_holiday.append(ids[0])
- holidays_user_obj.write(cr, uid, ids_user_hdays, {'holiday_ids': [(6, 0, list_holiday)]})
- return True
def onchange_date_to(self, cr, uid, ids, date_from, date_to):
result = {}
@@ -249,7 +194,7 @@ class hr_holidays(osv.osv):
warning = {}
if status:
brows_obj = self.pool.get('hr.holidays.status').browse(cr, uid, [status])[0]
- if brows_obj.section_id and not brows_obj.section_id.allow_unlink:
+ if brows_obj.categ_id and brows_obj.categ_id.section_id and not brows_obj.categ_id.section_id.allow_unlink:
warning = {
'title': "Warning for ",
'message': "You won\'t be able to cancel this leave request because the CRM Section of the leave type disallows."
@@ -283,6 +228,7 @@ class hr_holidays(osv.osv):
def holidays_confirm(self, cr, uid, ids, *args):
for record in self.browse(cr, uid, ids):
+ user_id = False
leave_asked = record.number_of_days_temp
if record.type == 'remove':
if record.employee_id and not record.holiday_status_id.limit:
@@ -300,14 +246,14 @@ class hr_holidays(osv.osv):
'number_of_days': nb,
'user_id': user_id
})
- vals= {
- 'name':record.name,
- 'date_from':record.date_from,
- 'date_to':record.date_to,
- 'calendar_id':record.employee_id.calendar_id.id,
- 'company_id':record.employee_id.company_id.id,
- 'resource_id':record.employee_id.resource_id.id
- }
+ #vals= {
+ # 'name':record.name,
+ # 'date_from':record.date_from,
+ # 'date_to':record.date_to,
+ # 'calendar_id':record.employee_id.calendar_id.id,
+ # 'company_id':record.employee_id.company_id.id,
+ # 'resource_id':record.employee_id.resource_id.id
+ # }
#self.pool.get('resource.calendar.leaves').create(cr,uid,vals)
return True
@@ -365,14 +311,17 @@ class hr_holidays(osv.osv):
employee_ids = self.pool.get('hr.employee').search(cr, uid, [])
for employee in employee_ids:
vals['employee_id'] = employee
+ user_id = self.pool.get('hr.employee').search(cr, uid, [('user_id','=',uid)])
+ if user_id:
+ vals['user_id'] = user_id[0]
holiday_ids.append(self.create(cr, uid, vals, context={}))
self.holidays_confirm(cr, uid, holiday_ids)
self.holidays_validate(cr, uid, holiday_ids)
- if record.holiday_status_id.section_id and record.date_from and record.date_to and record.employee_id:
+ if record.holiday_status_id.categ_id and record.date_from and record.date_to and record.employee_id:
vals={}
vals['name']=record.name
- vals['section_id']=record.holiday_status_id.section_id.id
+ vals['categ_id']=record.holiday_status_id.categ_id.id
epoch_c = time.mktime(time.strptime(record.date_to,'%Y-%m-%d %H:%M:%S'))
epoch_d = time.mktime(time.strptime(record.date_from,'%Y-%m-%d %H:%M:%S'))
diff_day = (epoch_c - epoch_d)/(3600*24)
@@ -380,7 +329,7 @@ class hr_holidays(osv.osv):
vals['note'] = record.notes
vals['user_id'] = record.user_id.id
vals['date'] = record.date_from
- case_id = self.pool.get('crm.case').create(cr,uid,vals)
+ case_id = self.pool.get('crm.meeting').create(cr,uid,vals)
self.write(cr, uid, ids, {'case_id':case_id})
return True
hr_holidays()
diff --git a/addons/hr_holidays/hr_holidays_report.xml b/addons/hr_holidays/hr_holidays_report.xml
index 23d1e1a75bf..66669bd2f51 100644
--- a/addons/hr_holidays/hr_holidays_report.xml
+++ b/addons/hr_holidays/hr_holidays_report.xml
@@ -9,6 +9,77 @@
auto="False"
menu="False"/>
+
+
+
+
+
+
+ hr.holidays.report.tree
+ hr.holidays.report
+ tree
+
+
+
+
+
+
+
+
+
+
+ hr.holidays.report.form
+ hr.holidays.report
+ form
+
+
+
+
+
+
+
+
+
+ hr.holiday.report.graph
+ hr.holidays.report
+ graph
+
+
+
+
+
+
+
+
+
+
+ Available Holidays
+ hr.holidays.report
+ form
+ tree,graph
+
+
+
+
+
+
+ tree
+
+
+
+
+
+
+
+ graph
+
+
+
+
+
+
+
+
diff --git a/addons/hr_holidays/hr_holidays_wizard.xml b/addons/hr_holidays/hr_holidays_wizard.xml
index fb505d65497..fc433a181e7 100644
--- a/addons/hr_holidays/hr_holidays_wizard.xml
+++ b/addons/hr_holidays/hr_holidays_wizard.xml
@@ -11,10 +11,11 @@
name="Holidays"
parent="hr.menu_hr_reporting"
sequence="3" />
-
-
@@ -24,7 +25,7 @@
-
diff --git a/addons/hr_holidays/hr_view.xml b/addons/hr_holidays/hr_view.xml
index 146e06d25a3..d46898bd6bb 100644
--- a/addons/hr_holidays/hr_view.xml
+++ b/addons/hr_holidays/hr_view.xml
@@ -1,13 +1,6 @@
-
-
-
hr.holidays.filter
hr.holidays
@@ -38,7 +31,6 @@
-
Leave Request
hr.holidays
@@ -73,7 +65,6 @@
-
Allocation Request
hr.holidays
@@ -104,18 +95,17 @@
-
-
+
- Company Allocation
+ Leaves Management
hr.holidays
form
-
-
+
-
diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml
index e6c5588f4f7..ab0d2118bd7 100644
--- a/addons/product/product_view.xml
+++ b/addons/product/product_view.xml
@@ -344,8 +344,8 @@
form
diff --git a/addons/sale/report/sale_report_view.xml b/addons/sale/report/sale_report_view.xml
index 3592cda4662..2e36b7d9923 100644
--- a/addons/sale/report/sale_report_view.xml
+++ b/addons/sale/report/sale_report_view.xml
@@ -62,13 +62,13 @@
default="1"
domain="[('state','<>','draft'),('state','<>','cancel')]"/>
-
+
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index b3cec7496e4..4b9e5df8f8c 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -30,9 +30,9 @@
+
-
@@ -80,6 +80,7 @@
+
@@ -428,15 +429,15 @@
search
-
-
-
-
+
+
+
+