diff --git a/addons/account/account_menuitem.xml b/addons/account/account_menuitem.xml
index e5912a8b763..c8b0dd2c132 100644
--- a/addons/account/account_menuitem.xml
+++ b/addons/account/account_menuitem.xml
@@ -7,14 +7,14 @@
-
-
+
+
-
+
@@ -31,17 +31,17 @@
-
+
-
+
-
+
diff --git a/addons/account/security/ir.model.access.csv b/addons/account/security/ir.model.access.csv
index c43a1edebeb..890d4f505ea 100644
--- a/addons/account/security/ir.model.access.csv
+++ b/addons/account/security/ir.model.access.csv
@@ -38,7 +38,6 @@
"access_account_invoice_uinvoice","account.invoice","model_account_invoice","account.group_account_invoice",1,1,1,1
"access_account_invoice_line_uinvoice","account.invoice.line","model_account_invoice_line","account.group_account_invoice",1,1,1,1
"access_account_invoice_tax_uinvoice","account.invoice.tax","model_account_invoice_tax","account.group_account_invoice",1,1,1,1
-"access_account_analytic_line_uinvoice","account.analytic.line","model_account_analytic_line","account.group_account_manager",1,0,0,0
"access_account_move_uinvoice","account.move","model_account_move","account.group_account_invoice",1,0,0,0
"access_account_move_line_uinvoice","account.move.line invoice","model_account_move_line","account.group_account_invoice",1,1,1,1
"access_account_move_reconcile_uinvoice","account.move.reconcile","model_account_move_reconcile","account.group_account_invoice",1,1,1,1
@@ -155,3 +154,7 @@
"access_res_partner_address_invoice","res.partner.address invoice","base.model_res_partner_address","account.group_account_invoice",1,1,1,1
"access_account_invoice_line_system","account.invoice.line system","model_account_invoice_line","base.group_system",1,0,0,0
"access_account_analytic_accountant","account.analytic.account accountant","analytic.model_account_analytic_account","account.group_account_user",1,1,1,1
+"access_account_account_type_invoice","account.account.type invoice","model_account_account_type","account.group_account_invoice",1,1,1,1
+"access_report_account_receivable_invoice","report.account.receivable.invoice","model_report_account_receivable","account.group_account_invoice",1,1,1,1
+"access_report_account_receivable_user","report.account.receivable.user","model_report_account_receivable","account.group_account_user",1,1,1,1
+"access_account_sequence_fiscal_year_invoice","account.sequence.fiscalyear invoice","model_account_sequence_fiscalyear","account.group_account_invoice",1,1,1,1
diff --git a/addons/account_followup/security/ir.model.access.csv b/addons/account_followup/security/ir.model.access.csv
index 3e62e778b7c..ccf257b3ecf 100644
--- a/addons/account_followup/security/ir.model.access.csv
+++ b/addons/account_followup/security/ir.model.access.csv
@@ -1,5 +1,4 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_account_followup_stat","account_followup.stat","model_account_followup_stat","account.group_account_user",1,0,0,0
"access_account_followup_followup","account_followup.followup","model_account_followup_followup","base.group_system",1,1,1,1
"access_account_followup_followup_line","account_followup.followup.line","model_account_followup_followup_line","account.group_account_user",1,0,0,0
"access_account_followup_stat_manager","account_followup.stat.manager","model_account_followup_stat","account.group_account_manager",1,1,1,1
@@ -7,3 +6,4 @@
"access_account_followup_followup_line_manager","account_followup.followup.line.manager","model_account_followup_followup_line","account.group_account_manager",1,1,1,1
"access_account_followup_followup_line_system","account_followup.followup.line system","model_account_followup_followup_line","base.group_system",1,1,1,1
"access_account_followup_followup_accountant","account_followup.followup user","model_account_followup_followup","account.group_account_user",1,0,0,0
+"access_account_followup_stat_invoice","account_followup.stat.invoice","model_account_followup_stat","account.group_account_invoice",1,1,1,1
diff --git a/addons/account_payment/security/ir.model.access.csv b/addons/account_payment/security/ir.model.access.csv
index 168083eb9de..fca15213f1d 100644
--- a/addons/account_payment/security/ir.model.access.csv
+++ b/addons/account_payment/security/ir.model.access.csv
@@ -11,3 +11,5 @@
"access_payment_order_system","payment.order system","model_payment_order","base.group_system",1,0,0,0
"access_payment_mode_system","payment.mode system","model_payment_mode","base.group_system",1,1,1,1
"access_payment_type_system","payment.type system","model_payment_type","base.group_system",1,1,1,1
+"access_payment_order_invoice","payment.order invoice","model_payment_order","account.group_account_invoice",1,1,1,1
+"access_payment_line_invoice","payment.line invoice","model_payment_line","account.group_account_invoice",1,1,1,1
diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py
index 769bf0321c0..7bb7d61d8ee 100644
--- a/addons/base_calendar/base_calendar.py
+++ b/addons/base_calendar/base_calendar.py
@@ -1154,7 +1154,10 @@ true, it will allow you to hide the event alarm information without removing it.
def default_organizer(self, cr, uid, context=None):
user_pool = self.pool.get('res.users')
user = user_pool.browse(cr, uid, uid, context=context)
- return user.user_email or user.name
+ res = user.name
+ if user.user_email:
+ res += " <%s>" %(user.user_email)
+ return res
_defaults = {
'state': 'tentative',
diff --git a/addons/caldav/calendar.py b/addons/caldav/calendar.py
index 37224fb2f50..3047441834a 100644
--- a/addons/caldav/calendar.py
+++ b/addons/caldav/calendar.py
@@ -83,6 +83,60 @@ def openobjectid2uid(cr, uidval, oomodel):
value = 'OpenObject-%s_%s@%s' % (oomodel, uidval, cr.dbname)
return value
+def mailto2str(arg):
+ """Take a dict of mail and convert to string.
+ """
+ ret = []
+ if isinstance(arg, dict):
+ args = [arg,]
+ else:
+ args = arg
+
+ for ard in args:
+ rstr = ard.get('name','')
+ if ard.get('company',False):
+ rstr += ' (%s)' % ard.get('company')
+ if ard.get('email'):
+ rstr += ' <%s>' % ard.get('email')
+ ret.append(rstr)
+ return ', '.join(ret)
+
+def str2mailto(emailstr, multi=False):
+ """Split one email string to a dict of name, company, mail parts
+
+ @param multi Return an array, recognize comma-sep
+ """
+ # TODO: move to tools or sth.
+ mege = re.compile(r'([^\(\<]+) *(\((.*?)\))? *(\< ?(.*?) ?\>)? ?(\((.*?)\))? *$')
+
+ mailz= [emailstr,]
+ retz = []
+ if multi:
+ mailz = emailstr.split(',')
+
+ for mas in mailz:
+ m = mege.match(mas.strip())
+ if not m:
+ # one of the rare non-matching strings is "sad" :(
+ # retz.append({ 'name': mas.strip() })
+ # continue
+ raise ValueError("Invalid email address %r" % mas)
+ rd = { 'name': m.group(1).strip(),
+ 'email': m.group(5), }
+ if m.group(2):
+ rd['company'] = m.group(3).strip()
+ elif m.group(6):
+ rd['company'] = m.group(7).strip()
+
+ if rd['name'].startswith('"') and rd['name'].endswith('"'):
+ rd['name'] = rd['name'][1:-1]
+ retz.append(rd)
+
+ if multi:
+ return retz
+ else:
+ return retz[0]
+
def get_attribute_mapping(cr, uid, calname, context=None):
""" Attribute Mapping with Basic calendar fields and lines
@param cr: the current row, from the database cursor,
@@ -237,9 +291,11 @@ class CalDAV(object):
for cal_data in child.getChildren():
if cal_data.name.lower() == 'organizer':
- self.ical_set(cal_data.name.lower(),
- {'name': cal_data.params.get('CN', ['',])[0]},
- 'value')
+ dmail = { 'name': cal_data.params.get('CN', ['',])[0],
+ 'email': cal_data.value.replace('MAILTO:',''),
+ # TODO: company?
+ }
+ self.ical_set(cal_data.name.lower(), mailto2str(dmail), 'value')
continue
if cal_data.name.lower() == 'attendee':
ctx = context.copy()
@@ -338,10 +394,11 @@ class CalDAV(object):
exdates_updated.append(ex_date)
exfield.value = map(parser.parse, exdates_updated)
elif field == 'organizer' and data[map_field]:
- organizer = data[map_field]
+ organizer = str2mailto(data[map_field])
event_org = vevent.add('organizer')
- event_org.params['CN'] = [organizer]
- event_org.value = 'MAILTO:' + (organizer)
+ event_org.params['CN'] = [organizer['name']]
+ event_org.value = 'MAILTO:' + (organizer.get('email') or '')
+ # TODO: company?
elif data[map_field]:
if map_type in ("char", "text"):
if field in ('exdate'):
diff --git a/addons/document_webdav/dav_fs.py b/addons/document_webdav/dav_fs.py
index fe88906c557..5d641cb39c0 100644
--- a/addons/document_webdav/dav_fs.py
+++ b/addons/document_webdav/dav_fs.py
@@ -129,6 +129,7 @@ class openerp_dav_handler(dav_interface):
raise default_exc(err.strerror)
except Exception,e:
import traceback
+ if cr: cr.close()
self.parent.log_error("Cannot %s: %s", opname, str(e))
self.parent.log_message("Exc: %s",traceback.format_exc())
raise default_exc("Operation failed")
diff --git a/addons/email_template/email_template_account_view.xml b/addons/email_template/email_template_account_view.xml
index 6ef2d04e57f..d164645aca7 100644
--- a/addons/email_template/email_template_account_view.xml
+++ b/addons/email_template/email_template_account_view.xml
@@ -2,8 +2,8 @@
-
-
+
+
@@ -96,8 +96,8 @@
-
+
diff --git a/addons/hr_attendance/__openerp__.py b/addons/hr_attendance/__openerp__.py
index 383f1dfa8b1..68eb3c20258 100644
--- a/addons/hr_attendance/__openerp__.py
+++ b/addons/hr_attendance/__openerp__.py
@@ -30,10 +30,10 @@
actions(Sign in/Sign out) performed by them.
""",
'author': 'OpenERP SA',
- 'depends': ['base', 'hr'],
+ 'depends': ['hr'],
'update_xml': [
'security/hr_security.xml',
- 'security/ir.model.access.csv',
+ 'security/ir.model.access.csv',
'hr_attendance_view.xml',
'hr_attendance_wizard.xml',
'hr_attendance_report.xml',
diff --git a/addons/hr_attendance/hr_attendance.py b/addons/hr_attendance/hr_attendance.py
index 938df72d4e9..842fe409d12 100644
--- a/addons/hr_attendance/hr_attendance.py
+++ b/addons/hr_attendance/hr_attendance.py
@@ -34,6 +34,7 @@ class hr_action_reason(osv.osv):
_defaults = {
'action_type': 'sign_in',
}
+
hr_action_reason()
def _employee_get(obj, cr, uid, context=None):
@@ -59,7 +60,7 @@ class hr_attendance(osv.osv):
_columns = {
'name': fields.datetime('Date', required=True, select=1),
'action': fields.selection([('sign_in', 'Sign In'), ('sign_out', 'Sign Out'), ('action','Action')], 'Action', required=True),
- 'action_desc': fields.many2one("hr.action.reason", "Action reason", domain="[('action_type', '=', action)]", help='Specifies the reason for Signing In/Signing Out in case of extra hours.'),
+ 'action_desc': fields.many2one("hr.action.reason", "Action Reason", domain="[('action_type', '=', action)]", help='Specifies the reason for Signing In/Signing Out in case of extra hours.'),
'employee_id': fields.many2one('hr.employee', "Employee's Name", required=True, select=True),
'day': fields.function(_day_compute, method=True, type='char', string='Day', store=True, select=1, size=32),
}
@@ -86,6 +87,7 @@ class hr_attendance(osv.osv):
_constraints = [(_altern_si_so, 'Error: Sign in (resp. Sign out) must follow Sign out (resp. Sign in)', ['action'])]
_order = 'name desc'
+
hr_attendance()
class hr_employee(osv.osv):
@@ -144,16 +146,14 @@ class hr_employee(osv.osv):
raise osv.except_osv(_('Warning'), _('You tried to %s with a date anterior to another event !\nTry to contact the administrator to correct attendances.')%(warning_sign,))
res = {'action': type, 'employee_id': emp['id']}
-
if dt:
res['name'] = dt
id = obj_attendance.create(cr, uid, res, context=context)
if type != 'action':
return id
-
return True
hr_employee()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_attendance/wizard/hr_attendance_bymonth.py b/addons/hr_attendance/wizard/hr_attendance_bymonth.py
index f66e7892601..8c41fefcaa6 100644
--- a/addons/hr_attendance/wizard/hr_attendance_bymonth.py
+++ b/addons/hr_attendance/wizard/hr_attendance_bymonth.py
@@ -29,11 +29,11 @@ class hr_attendance_bymonth(osv.osv_memory):
_columns = {
'month': fields.selection([(1, 'January'), (2, 'February'), (3, 'March'), (4, 'April'), (5, 'May'), (6, 'June'), (7, 'July'), (8, 'August'), (9, 'September'), (10, 'October'), (11, 'November'), (12, 'December')], 'Month', required=True),
'year': fields.integer('Year', required=True)
- }
+ }
_defaults = {
'month': time.gmtime()[1],
'year': time.gmtime()[0],
- }
+ }
def print_report(self, cr, uid, ids, context=None):
if context is None:
@@ -42,13 +42,13 @@ class hr_attendance_bymonth(osv.osv_memory):
'ids': [],
'model': 'hr.employee',
'form': self.read(cr, uid, ids)[0]
- }
+ }
return {
'type': 'ir.actions.report.xml',
'report_name': 'hr.attendance.bymonth',
'datas': datas,
- }
+ }
hr_attendance_bymonth()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_attendance/wizard/hr_attendance_byweek.py b/addons/hr_attendance/wizard/hr_attendance_byweek.py
index 175ebf8a228..e2b071de66a 100644
--- a/addons/hr_attendance/wizard/hr_attendance_byweek.py
+++ b/addons/hr_attendance/wizard/hr_attendance_byweek.py
@@ -28,11 +28,11 @@ class hr_attendance_byweek(osv.osv_memory):
_columns = {
'init_date': fields.date('Starting Date', required=True),
'end_date': fields.date('Ending Date', required=True)
- }
+ }
_defaults = {
'init_date': time.strftime('%Y-%m-%d'),
'end_date': time.strftime('%Y-%m-%d'),
- }
+ }
def print_report(self, cr, uid, ids, context=None):
if context is None:
@@ -41,12 +41,12 @@ class hr_attendance_byweek(osv.osv_memory):
'ids': [],
'model': 'hr.employee',
'form': self.read(cr, uid, ids)[0]
- }
+ }
return {
'type': 'ir.actions.report.xml',
'report_name': 'hr.attendance.allweeks',
'datas': datas,
- }
+ }
hr_attendance_byweek()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_attendance/wizard/hr_attendance_error.py b/addons/hr_attendance/wizard/hr_attendance_error.py
index 449fc4ca5c2..24109b11496 100644
--- a/addons/hr_attendance/wizard/hr_attendance_error.py
+++ b/addons/hr_attendance/wizard/hr_attendance_error.py
@@ -31,12 +31,12 @@ class hr_attendance_error(osv.osv_memory):
'init_date': fields.date('Starting Date', required=True),
'end_date': fields.date('Ending Date', required=True),
'max_delay': fields.integer('Max. Delay (Min)', required=True)
- }
+ }
_defaults = {
'init_date': time.strftime('%Y-%m-%d'),
'end_date': time.strftime('%Y-%m-%d'),
'max_delay': 120,
- }
+ }
def print_report(self, cr, uid, ids, context=None):
if context is None:
@@ -59,13 +59,13 @@ class hr_attendance_error(osv.osv_memory):
'ids': [],
'model': 'hr.employee',
'form': data_error
- }
+ }
return {
'type': 'ir.actions.report.xml',
'report_name': 'hr.attendance.error',
'datas': datas,
- }
+ }
hr_attendance_error()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py b/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py
index 635c25940e1..09f9f9364c5 100644
--- a/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py
+++ b/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py
@@ -192,4 +192,4 @@ class hr_sign_in_out(osv.osv_memory):
hr_sign_in_out()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/idea/__openerp__.py b/addons/idea/__openerp__.py
index 28ab76e8d5e..b376f35b0c2 100644
--- a/addons/idea/__openerp__.py
+++ b/addons/idea/__openerp__.py
@@ -36,12 +36,13 @@
'depends': ['base'],
'init_xml': [],
'update_xml': [
+ 'security/idea_security.xml',
+ 'security/ir.model.access.csv',
'wizard/idea_post_vote_view.xml',
'idea_view.xml',
'idea_workflow.xml',
'report/report_vote_view.xml',
- 'security/idea_security.xml',
- 'security/ir.model.access.csv',
+
],
'demo_xml': [
"idea_data.xml"
diff --git a/addons/idea/idea_view.xml b/addons/idea/idea_view.xml
index 1020e2d03c1..97f48e5b6f6 100644
--- a/addons/idea/idea_view.xml
+++ b/addons/idea/idea_view.xml
@@ -383,7 +383,7 @@
+ id="menu_idea_vote_stat" action="action_idea_vote_stat" groups="base.group_tool_manager,base.group_tool_user,base.group_system"/>
diff --git a/addons/idea/report/report_vote_view.xml b/addons/idea/report/report_vote_view.xml
index b78c8c0648c..bdd3ce133c1 100644
--- a/addons/idea/report/report_vote_view.xml
+++ b/addons/idea/report/report_vote_view.xml
@@ -84,7 +84,7 @@
{'search_default_User':1,'group_by_no_leaf':1,'group_by':[]}
-
+
diff --git a/addons/idea/security/idea_security.xml b/addons/idea/security/idea_security.xml
index 29afc0c875f..2bdad417c2f 100644
--- a/addons/idea/security/idea_security.xml
+++ b/addons/idea/security/idea_security.xml
@@ -13,10 +13,10 @@
Sales / User
-
+
Tools / Manager
-
+
Tools / User
diff --git a/addons/idea/security/ir.model.access.csv b/addons/idea/security/ir.model.access.csv
index cd6f56cf60e..dae5127cc90 100644
--- a/addons/idea/security/ir.model.access.csv
+++ b/addons/idea/security/ir.model.access.csv
@@ -9,14 +9,17 @@
"access_report_vote","report.vote","model_report_vote","base.group_user",1,1,1,1
"access_idea_idea_sale_salesman","idea.idea.sale","model_idea_idea","base.group_sale_salesman",1,1,1,1
"access_idea_vote_sale_salesman","idea.vote.sale","model_idea_vote","base.group_sale_salesman",1,1,1,1
-"access_idea_category_user","idea.category user","model_idea_category","base.group_survey_user",1,1,1,1
-"access_idea_idea_user","idea.idea user","model_idea_idea","base.group_survey_user",1,1,1,1
-"access_idea_vote_user","idea.vote user","model_idea_vote","base.group_survey_user",1,1,1,1
-"access_idea_category_manager","idea.category manager","model_idea_category","base.group_survey_manager",1,0,0,0
-"access_idea_idea_manager","idea.idea manager","model_idea_idea","base.group_survey_manager",1,0,0,0
-"access_idea_vote_manager","idea.vote manager","model_idea_vote","base.group_survey_manager",1,0,0,0
-"access_idea_vote_stat_user","idea.vote.stat user","model_idea_vote_stat","base.group_survey_user",1,1,1,1
-"access_idea_comment_user","idea.comment user","model_idea_comment","base.group_survey_user",1,1,1,1
-"access_report_vote_manager","report.vote manager","model_report_vote","base.group_survey_manager",1,1,1,1
+"access_idea_category_user","idea.category user","model_idea_category","base.group_tool_user",1,1,1,1
+"access_idea_idea_user","idea.idea user","model_idea_idea","base.group_tool_user",1,1,1,1
+"access_idea_vote_user","idea.vote user","model_idea_vote","base.group_tool_user",1,1,1,1
+"access_idea_category_manager","idea.category manager","model_idea_category","base.group_tool_manager",1,0,0,0
+"access_idea_idea_manager","idea.idea manager","model_idea_idea","base.group_tool_manager",1,0,0,0
+"access_idea_vote_manager","idea.vote manager","model_idea_vote","base.group_tool_manager",1,0,0,0
+"access_idea_vote_stat_user","idea.vote.stat user","model_idea_vote_stat","base.group_tool_user",1,1,1,1
+"access_idea_comment_user","idea.comment user","model_idea_comment","base.group_tool_user",1,1,1,1
+"access_report_vote_manager","report.vote manager","model_report_vote","base.group_tool_manager",1,1,1,1
"access_idea_idea_system","idea.idea system","model_idea_idea","base.group_system",1,0,0,0
"access_idea_vote_system","idea.vote system","model_idea_vote","base.group_system",1,0,0,0
+"access_report_vote_system","report.vote system","model_report_vote","base.group_system",1,0,0,0
+"access_idea_vote_stat_manager","idea.vote.stat manager","model_idea_vote_stat","base.group_tool_manager",1,1,1,1
+"access_idea_vote_stat_system","idea.vote.stat system","model_idea_vote_stat","base.group_system",1,1,1,1
diff --git a/addons/lunch/security/ir.model.access.csv b/addons/lunch/security/ir.model.access.csv
index 5d5ab895aa0..e27fba4530f 100644
--- a/addons/lunch/security/ir.model.access.csv
+++ b/addons/lunch/security/ir.model.access.csv
@@ -6,14 +6,16 @@
"access_lunch_order","lunch.order","model_lunch_order","base.group_user",1,1,1,1
"access_report_lunch_amount","report.lunch.amount","model_report_lunch_amount","base.group_user",1,1,1,1
"access_lunch_order_sale_salesman","lunch.order.sale","model_lunch_order","base.group_sale_salesman",1,1,1,1
-"access_lunch_order_user","lunch.order user","model_lunch_order","base.group_survey_user",1,1,1,1
-"access_lunch_order_manager","lunch.order manager","model_lunch_order","base.group_survey_manager",1,0,0,0
-"access_lunch_cashmove_user","lunch.cashmove user","model_lunch_cashmove","base.group_survey_user",1,1,1,1
-"access_lunch_cashmove_manager","lunch.cashmove manager","model_lunch_cashmove","base.group_survey_manager",1,0,0,0
-"access_report_lunch_amount_manager","report.lunch.amount manager","model_report_lunch_amount","base.group_survey_manager",1,1,1,1
+"access_lunch_order_user","lunch.order user","model_lunch_order","base.group_tool_user",1,1,1,1
+"access_lunch_order_manager","lunch.order manager","model_lunch_order","base.group_tool_manager",1,0,0,0
+"access_lunch_cashmove_user","lunch.cashmove user","model_lunch_cashmove","base.group_tool_user",1,1,1,1
+"access_lunch_cashmove_manager","lunch.cashmove manager","model_lunch_cashmove","base.group_tool_manager",1,0,0,0
+"access_report_lunch_amount_manager","report.lunch.amount manager","model_report_lunch_amount","base.group_tool_manager",1,1,1,1
"access_lunch_category_system","lunch.category system","model_lunch_category","base.group_system",1,1,1,1
"access_lunch_product_system","lunch.product system","model_lunch_product","base.group_system",1,1,1,1
"access_lunch_cashbox_system","lunch.cashbox system","model_lunch_cashbox","base.group_system",1,1,1,1
"access_lunch_order_system","lunch.order system","model_lunch_order","base.group_system",1,0,0,0
"access_lunch_cashmove_system","lunch.cashmove system","model_lunch_cashmove","base.group_system",1,0,0,0
-"access_report_lunch_order_manager","report.lunch.order manager","model_report_lunch_order","base.group_survey_manager",1,1,1,1
+"access_report_lunch_order_manager","report.lunch.order manager","model_report_lunch_order","base.group_tool_manager",1,1,1,1
+"access_lunch_product_user","lunch.product user","model_lunch_product","base.group_tool_user",1,1,1,1
+"access_lunch_cashbox_user","lunch.cashbox user","model_lunch_cashbox","base.group_tool_user",1,1,1,1
diff --git a/addons/lunch/security/lunch_security.xml b/addons/lunch/security/lunch_security.xml
index c87ace64801..6c3559fa138 100644
--- a/addons/lunch/security/lunch_security.xml
+++ b/addons/lunch/security/lunch_security.xml
@@ -5,10 +5,10 @@
Sales / User
-
+
Tools / Manager
-
+
Tools / User
diff --git a/addons/marketing_campaign/security/ir.model.access.csv b/addons/marketing_campaign/security/ir.model.access.csv
index 903ca7ac72a..ae5cad3d706 100644
--- a/addons/marketing_campaign/security/ir.model.access.csv
+++ b/addons/marketing_campaign/security/ir.model.access.csv
@@ -8,3 +8,6 @@
"access_marketing_campaign_workitem_all","marketing.campaign.workitem","model_marketing_campaign_workitem","base.group_user",1,0,0,0
"access_email_template_user","email.template","model_email_template","base.res_groups_email_template_admin",1,1,1,1
"access_email_template_account_user","email_template.account.user","email_template.model_email_template_account","base.res_groups_email_template_admin",1,1,1,1
+"access_marketing_campaign_system","marketing.campaign system","model_marketing_campaign","base.group_system",1,0,0,0
+"access_marketing_campaign_segment_system","marketing.campaign.segment system","model_marketing_campaign_segment","base.group_system",1,0,0,0
+"access_marketing_campaign_workitem_system","marketing.campaign.workitem system","model_marketing_campaign_workitem","base.group_system",1,0,0,0
diff --git a/addons/outlook/README b/addons/outlook/README
new file mode 100644
index 00000000000..404f2121c6a
--- /dev/null
+++ b/addons/outlook/README
@@ -0,0 +1,31 @@
+OpenERP Outlook PLUG-IN Installation Guide
+
+Pre requirements :
+======================================================================================
+1.Python 2.6+ . python can be downloaded from http://www.python.org/download/releases/ .
+2.Python for Windows extensions - PyWin32 this module for python must be installed for appropriate version of the Python. It can be downloaded from http://sourceforge.net/projects/pywin32/files/ or http://starship.python.net/crew/mhammond/win32/
+
+How to install openerp-outlook plug-in?
+======================================================================================
+1.Open your Python installation directory (e.g.: C:\Python26).
+2.Create folder named “openerp-outlook-plugin”.
+3.Extract your zip file “outlook-plugin.zip” to the folder.
+4.Open the folder outlook-plugin.
+5.And Run “Register-plugin.bat” file.
+6.Run Outlook and Check addin has been registered.
+7.Tools->OpenERP Configuration and test your connection.
+8.See User Guide for More.
+
+How to uninstall openerp-outlook plug-in?
+=====================================================================================
+1.Open the folder outlook-plugin.
+2.And Run “Unregister-plugin.bat” file.
+
+Note : Plug In has been successfully tested with MS Office 2003 and MS Offcie 2007.
+
+
+Enjoy Archiving your Outlook E-mails to OpenERP.
+
+
+
+
diff --git a/addons/outlook/plugin/Register-plugin.bat b/addons/outlook/plugin/openerp-outlook-plugin/Register-plugin.bat
similarity index 100%
rename from addons/outlook/plugin/Register-plugin.bat
rename to addons/outlook/plugin/openerp-outlook-plugin/Register-plugin.bat
diff --git a/addons/outlook/plugin/Unregister-plugin.bat b/addons/outlook/plugin/openerp-outlook-plugin/Unregister-plugin.bat
similarity index 100%
rename from addons/outlook/plugin/Unregister-plugin.bat
rename to addons/outlook/plugin/openerp-outlook-plugin/Unregister-plugin.bat
diff --git a/addons/outlook/plugin/addin.py b/addons/outlook/plugin/openerp-outlook-plugin/addin.py
similarity index 100%
rename from addons/outlook/plugin/addin.py
rename to addons/outlook/plugin/openerp-outlook-plugin/addin.py
diff --git a/addons/outlook/plugin/chilkat.py b/addons/outlook/plugin/openerp-outlook-plugin/chilkat.py
similarity index 100%
rename from addons/outlook/plugin/chilkat.py
rename to addons/outlook/plugin/openerp-outlook-plugin/chilkat.py
diff --git a/addons/outlook/plugin/dialogs/__init__.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/__init__.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/__init__.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/__init__.py
diff --git a/addons/outlook/plugin/dialogs/dialog_map.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dialog_map.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/dialog_map.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/dialog_map.py
diff --git a/addons/outlook/plugin/dialogs/dlgcore.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dlgcore.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/dlgcore.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/dlgcore.py
diff --git a/addons/outlook/plugin/dialogs/dlgutils.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dlgutils.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/dlgutils.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/dlgutils.py
diff --git a/addons/outlook/plugin/dialogs/opt_processors.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/opt_processors.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/opt_processors.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/opt_processors.py
diff --git a/addons/outlook/plugin/dialogs/processors.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/processors.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/processors.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/processors.py
diff --git a/addons/outlook/plugin/dialogs/resources/OpenERP_Logo.bmp b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/OpenERP_Logo.bmp
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/OpenERP_Logo.bmp
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/OpenERP_Logo.bmp
diff --git a/addons/outlook/plugin/dialogs/resources/__init__.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/__init__.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/__init__.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/__init__.py
diff --git a/addons/outlook/plugin/dialogs/resources/dialogs.h b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.h
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/dialogs.h
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.h
diff --git a/addons/outlook/plugin/dialogs/resources/dialogs.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/dialogs.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.py
diff --git a/addons/outlook/plugin/dialogs/resources/dialogs.rc b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.rc
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/dialogs.rc
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.rc
diff --git a/addons/outlook/plugin/dialogs/resources/openerp_logo.png b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/openerp_logo.png
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/openerp_logo.png
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/openerp_logo.png
diff --git a/addons/outlook/plugin/dialogs/resources/openerp_logo1.bmp b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/openerp_logo1.bmp
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/openerp_logo1.bmp
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/openerp_logo1.bmp
diff --git a/addons/outlook/plugin/dialogs/resources/rc2py.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/rc2py.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/rc2py.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/rc2py.py
diff --git a/addons/outlook/plugin/dialogs/resources/rcparser.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/rcparser.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/rcparser.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/rcparser.py
diff --git a/addons/outlook/plugin/eml.py b/addons/outlook/plugin/openerp-outlook-plugin/eml.py
similarity index 100%
rename from addons/outlook/plugin/eml.py
rename to addons/outlook/plugin/openerp-outlook-plugin/eml.py
diff --git a/addons/outlook/plugin/manager.py b/addons/outlook/plugin/openerp-outlook-plugin/manager.py
similarity index 100%
rename from addons/outlook/plugin/manager.py
rename to addons/outlook/plugin/openerp-outlook-plugin/manager.py
diff --git a/addons/outlook/plugin/tiny_xmlrpc.py b/addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py
similarity index 100%
rename from addons/outlook/plugin/tiny_xmlrpc.py
rename to addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index c1ea2ea6a8e..62b91346706 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -703,6 +703,7 @@ class sale_order(osv.osv):
for proc_id in proc_ids:
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr)
+ wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_check', cr)
if order.state == 'shipping_except':
val['state'] = 'progress'
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index bb32cfc8f83..e7fe2a6fe7d 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/addons/stock_planning/stock_planning_view.xml b/addons/stock_planning/stock_planning_view.xml
index 9b8b6afd506..0a89573e2f7 100644
--- a/addons/stock_planning/stock_planning_view.xml
+++ b/addons/stock_planning/stock_planning_view.xml
@@ -182,7 +182,7 @@
+ parent="base.menu_base_partner" sequence="6" groups="base.group_extended,base.group_system"/>
stock.sale.forecast.list.select
diff --git a/addons/subscription/security/ir.model.access.csv b/addons/subscription/security/ir.model.access.csv
index 33ab0881c52..e19fdde993b 100644
--- a/addons/subscription/security/ir.model.access.csv
+++ b/addons/subscription/security/ir.model.access.csv
@@ -3,8 +3,8 @@ access_subscription_document,subscription.document,model_subscription_document,b
access_subscription_document_fields,subscription.document.fields,model_subscription_document_fields,base.group_system,1,1,1,1
access_subscription_subscription,subscription.subscription,model_subscription_subscription,base.group_user,1,1,1,1
access_subscription_subscription_history,subscription.subscription.history,model_subscription_subscription_history,base.group_user,1,1,1,1
-access_subscription_subscription_user,subscription.subscription user,model_subscription_subscription,base.group_survey_user,1,1,1,1
-access_subscription_subscription_manager,subscription.subscription manager,model_subscription_subscription,base.group_survey_manager,1,0,0,0
-access_subscription_subscription_history_user,subscription.subscription.history user,model_subscription_subscription_history,base.group_survey_user,1,1,1,1
+access_subscription_subscription_user,subscription.subscription user,model_subscription_subscription,base.group_tool_user,1,1,1,1
+access_subscription_subscription_manager,subscription.subscription manager,model_subscription_subscription,base.group_tool_manager,1,0,0,0
+access_subscription_subscription_history_user,subscription.subscription.history user,model_subscription_subscription_history,base.group_tool_user,1,1,1,1
access_subscription_subscription_system,subscription.subscription system,model_subscription_subscription,base.group_system,1,0,0,0
-access_subscription_document_user,subscription.document user,model_subscription_document,base.group_survey_user,1,1,1,1
+access_subscription_document_user,subscription.document user,model_subscription_document,base.group_tool_user,1,1,1,1
diff --git a/addons/subscription/security/subcription_security.xml b/addons/subscription/security/subcription_security.xml
index 86f0e2c6069..0014f38182b 100644
--- a/addons/subscription/security/subcription_security.xml
+++ b/addons/subscription/security/subcription_security.xml
@@ -2,10 +2,10 @@
-
+
Tools / Manager
-
+
Tools / User
diff --git a/addons/survey/security/ir.model.access.csv b/addons/survey/security/ir.model.access.csv
index 9944a84996d..8d50471fd03 100644
--- a/addons/survey/security/ir.model.access.csv
+++ b/addons/survey/security/ir.model.access.csv
@@ -1,30 +1,30 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_survey_type_manager","survey.type manager","model_survey_type","base.group_survey_manager",1,1,1,1
-"access_survey_type_user","survey.type user","model_survey_type","base.group_survey_user",1,1,1,1
-"access_survey_manager","survey","model_survey","base.group_survey_manager",1,0,0,0
+"access_survey_type_manager","survey.type manager","model_survey_type","base.group_tool_manager",1,1,1,1
+"access_survey_type_user","survey.type user","model_survey_type","base.group_tool_user",1,1,1,1
+"access_survey_manager","survey","model_survey","base.group_tool_manager",1,0,0,0
"access_survey_system","survey","model_survey","base.group_system",1,0,0,0
-"access_survey_user","survey","model_survey","base.group_survey_user",1,1,1,1
-"access_survey_page_manager","survey.page manager","model_survey_page","base.group_survey_manager",1,0,0,0
+"access_survey_user","survey","model_survey","base.group_tool_user",1,1,1,1
+"access_survey_page_manager","survey.page manager","model_survey_page","base.group_tool_manager",1,0,0,0
"access_survey_page_system","survey.page system","model_survey_page","base.group_system",1,0,0,0
-"access_survey_page_user","survey.page user","model_survey_page","base.group_survey_user",1,1,1,1
-"access_survey_question_manager","survey.question manager","model_survey_question","base.group_survey_manager",1,1,1,1
-"access_survey_question_user","survey.question user","model_survey_question","base.group_survey_user",1,1,1,1
-"access_survey_answer_manager","survey.answer manager","model_survey_answer","base.group_survey_manager",1,1,1,1
-"access_survey_answer_user","survey.answer user","model_survey_answer","base.group_survey_user",1,1,1,1
-"access_survey_response_manager","survey.response manager","model_survey_response","base.group_survey_manager",1,1,1,1
-"access_survey_response_user","survey.response user","model_survey_response","base.group_survey_user",1,1,1,1
-"access_survey_response_answer_manager","survey.response.answer manager","model_survey_response_answer","base.group_survey_manager",1,1,1,1
-"access_survey_response_answer_user","survey.response.answer user","model_survey_response_answer","base.group_survey_user",1,1,1,1
-"access_survey_history_user","survey.history.user","model_survey_history","base.group_survey_user",1,1,1,1
-"access_survey_question_column_heading_manager","survey.question.column.heading manager","model_survey_question_column_heading","base.group_survey_manager",1,1,1,1
-"access_survey_question_column_heading_user","survey.question.column.heading user","model_survey_question_column_heading","base.group_survey_user",1,0,0,0
-"access_survey_request_manager","survey.request manager","model_survey_request","base.group_survey_manager",1,0,0,0
-"access_survey_request_user","survey.request user","model_survey_request","base.group_survey_user",1,1,1,1
+"access_survey_page_user","survey.page user","model_survey_page","base.group_tool_user",1,1,1,1
+"access_survey_question_manager","survey.question manager","model_survey_question","base.group_tool_manager",1,1,1,1
+"access_survey_question_user","survey.question user","model_survey_question","base.group_tool_user",1,1,1,1
+"access_survey_answer_manager","survey.answer manager","model_survey_answer","base.group_tool_manager",1,1,1,1
+"access_survey_answer_user","survey.answer user","model_survey_answer","base.group_tool_user",1,1,1,1
+"access_survey_response_manager","survey.response manager","model_survey_response","base.group_tool_manager",1,1,1,1
+"access_survey_response_user","survey.response user","model_survey_response","base.group_tool_user",1,1,1,1
+"access_survey_response_answer_manager","survey.response.answer manager","model_survey_response_answer","base.group_tool_manager",1,1,1,1
+"access_survey_response_answer_user","survey.response.answer user","model_survey_response_answer","base.group_tool_user",1,1,1,1
+"access_survey_history_user","survey.history.user","model_survey_history","base.group_tool_user",1,1,1,1
+"access_survey_question_column_heading_manager","survey.question.column.heading manager","model_survey_question_column_heading","base.group_tool_manager",1,1,1,1
+"access_survey_question_column_heading_user","survey.question.column.heading user","model_survey_question_column_heading","base.group_tool_user",1,0,0,0
+"access_survey_request_manager","survey.request manager","model_survey_request","base.group_tool_manager",1,0,0,0
+"access_survey_request_user","survey.request user","model_survey_request","base.group_tool_user",1,1,1,1
"access_survey_request_system","survey.request system","model_survey_request","base.group_system",1,0,0,0
-"access_survey_tbl_column_heading_manager","survey.tbl.column.heading manager","model_survey_tbl_column_heading","base.group_survey_manager",1,1,1,1
-"access_survey_tbl_column_heading_user","survey.tbl.column.heading user","model_survey_tbl_column_heading","base.group_survey_user",1,1,1,1
-"access_survey_response_line_manager","survey.response.line manager","model_survey_response_line","base.group_survey_manager",1,1,1,1
-"access_survey_response_line_manager","survey.response.line manager","model_survey_response_line","base.group_survey_user",1,1,1,1
+"access_survey_tbl_column_heading_manager","survey.tbl.column.heading manager","model_survey_tbl_column_heading","base.group_tool_manager",1,1,1,1
+"access_survey_tbl_column_heading_user","survey.tbl.column.heading user","model_survey_tbl_column_heading","base.group_tool_user",1,1,1,1
+"access_survey_response_line_manager","survey.response.line manager","model_survey_response_line","base.group_tool_manager",1,1,1,1
+"access_survey_response_line_manager","survey.response.line manager","model_survey_response_line","base.group_tool_user",1,1,1,1
"access_survey_type","survey.type","model_survey_type","base.group_hr_manager",1,1,1,1
"access_survey","survey","model_survey","base.group_hr_manager",1,1,1,1
"access_survey_history_manager","survey.history","model_survey_history","base.group_hr_manager",1,1,1,1
@@ -38,7 +38,7 @@
"access_survey_response_answer","survey.response.answer","model_survey_response_answer","base.group_hr_manager",1,1,1,1
"access_survey_res_users","res.users","base.model_res_users","base.group_hr_manager",1,1,1,1
"access_survey_request","survey.request","model_survey_request","base.group_hr_manager",1,1,1,1
-"access_survey_history_survey_manager","survey.history manager","model_survey_history","base.group_survey_manager",1,0,0,0
+"access_survey_history_survey_manager","survey.history manager","model_survey_history","base.group_tool_manager",1,0,0,0
"access_survey_type_system","survey.type system","model_survey_type","base.group_system",1,0,0,0
"access_survey_question_system","survey.question system","model_survey_question","base.group_system",1,0,0,0
"access_survey_history_system","survey.history.system","model_survey_history","base.group_system",1,0,0,0
diff --git a/addons/survey/security/survey_security.xml b/addons/survey/security/survey_security.xml
index 8c50d72496c..7172fdf615e 100644
--- a/addons/survey/security/survey_security.xml
+++ b/addons/survey/security/survey_security.xml
@@ -11,10 +11,10 @@
Human Resources / User
-
+
Tools / Manager
-
+
Tools / User
diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml
index f45eab0bf9d..890d674a408 100644
--- a/addons/survey/survey_view.xml
+++ b/addons/survey/survey_view.xml
@@ -2,15 +2,15 @@
-
+
+ groups="base.group_tool_manager,base.group_tool_user,base.group_system" sequence="2"/>
-
+
+ id="base.menu_lunch_reporting" sequence="6"/>