diff --git a/addons/account_analytic_analysis/account_analytic_analysis.py b/addons/account_analytic_analysis/account_analytic_analysis.py
index 212cdbbe8d4..15db30b6a4b 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis.py
+++ b/addons/account_analytic_analysis/account_analytic_analysis.py
@@ -638,7 +638,8 @@ class account_analytic_account_summary_month(osv.osv):
'month': fields.char('Month', size=25, readonly=True),
}
def init(self, cr):
- cr.execute('CREATE OR REPLACE VIEW account_analytic_analysis_summary_month AS (' \
+ cr.execute('DROP VIEW IF EXISTS account_analytic_analysis_summary_month')
+ cr.execute('CREATE VIEW account_analytic_analysis_summary_month AS (' \
'SELECT ' \
'(TO_NUMBER(TO_CHAR(d.month, \'YYYYMM\'), \'999999\') + (d.account_id * 1000000))::integer AS id, ' \
'd.account_id AS account_id, ' \
diff --git a/addons/audittrail/__terp__.py b/addons/audittrail/__terp__.py
index a91f827cb73..08249693e48 100644
--- a/addons/audittrail/__terp__.py
+++ b/addons/audittrail/__terp__.py
@@ -11,7 +11,10 @@
"init_xml" : [],
"description": "Allows the administrator to track every user operations on all objects of the system.",
"category" : "Generic Modules/Others",
- "update_xml" : ["audittrail_view.xml"],
+ "update_xml" : ["audittrail_view.xml",
+ "security/ir.model.access.csv",
+ "security/audittrail_security.xml",
+ ],
"demo_xml" : ["audittrail_demo.xml"],
"active" : False,
"installable": True
diff --git a/addons/audittrail/security/audittrail_security.xml b/addons/audittrail/security/audittrail_security.xml
new file mode 100644
index 00000000000..8b1f17aa939
--- /dev/null
+++ b/addons/audittrail/security/audittrail_security.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
diff --git a/addons/audittrail/security/ir.model.access.csv b/addons/audittrail/security/ir.model.access.csv
new file mode 100644
index 00000000000..90895f202c4
--- /dev/null
+++ b/addons/audittrail/security/ir.model.access.csv
@@ -0,0 +1,4 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"access_audittrail_rule_group_system","audittrail rule system","model_audittrail_rule","base.group_system",1,1,1,1
+"access_audittrail_log_group_system","audittrail log system","model_audittrail_log","base.group_system",1,1,1,1
+"access_audittrail_logline_group_system","audittrail log line system","model_audittrail_log_line","base.group_system",1,1,1,1
diff --git a/addons/base_contact/base_contact_view.xml b/addons/base_contact/base_contact_view.xml
index 182a6e862bc..817135a8571 100644
--- a/addons/base_contact/base_contact_view.xml
+++ b/addons/base_contact/base_contact_view.xml
@@ -75,17 +75,6 @@
-
- Partner tree inherited
- res.partner
-
- tree
-
-
-
-
-
-
Partner form inherited
diff --git a/addons/event/event.py b/addons/event/event.py
index 05b9033d488..407c86a4d93 100644
--- a/addons/event/event.py
+++ b/addons/event/event.py
@@ -203,18 +203,20 @@ class event_registration(osv.osv):
return True
def create(self, cr, uid, *args, **argv):
- args[0]['section_id']= self.pool.get('event.event').browse(cr, uid, args[0]['event_id'], None).section_id.id
- args[0]['date_deadline']= self.pool.get('event.event').browse(cr, uid, args[0]['event_id'], None).date_begin
- args[0]['description']= self.pool.get('event.event').browse(cr, uid, args[0]['event_id'], None).mail_confirm
+ event = self.pool.get('event.event').browse(cr, uid, args[0]['event_id'], None)
+ args[0]['section_id']= event.section_id.id
+ args[0]['date_deadline']= event.date_begin
+ args[0]['description']= event.mail_confirm
res = super(event_registration, self).create(cr, uid, *args, **argv)
self._history(cr, uid,self.browse(cr, uid, [res]), 'Created', history=True)
return res
def write(self, cr, uid, *args, **argv):
if 'event_id' in args[1]:
- args[1]['section_id']= self.pool.get('event.event').browse(cr, uid, args[1]['event_id'], None).section_id.id
- args[1]['date_deadline']= self.pool.get('event.event').browse(cr, uid, args[1]['event_id'], None).date_begin
- args[1]['description']= self.pool.get('event.event').browse(cr, uid, args[1]['event_id'], None).mail_confirm
+ event = self.pool.get('event.event').browse(cr, uid, args[1]['event_id'], None)
+ args[1]['section_id']= event.section_id.id
+ args[1]['date_deadline']= event.date_begin
+ args[1]['description']= event.mail_confirm
return super(event_registration, self).write(cr, uid, *args, **argv)
def mail_user_confirm(self,cr,uid,ids):
@@ -242,7 +244,7 @@ class event_registration(osv.osv):
if reg_id.event_id.state in ['draft', 'fixed', 'open','confirm','running'] and reg_id.event_id.mail_auto_registr:
tools.email_send(src, dest,'Auto Registration: '+'['+str(reg_id.id)+']'+' '+reg_id.name, reg_id.event_id.mail_registr, tinycrm = str(reg_id.case_id.id))
if (reg_id.event_id.state in ['confirm','running']) and reg_id.event_id.mail_auto_confirm:
- tools.email_send(src, dest,'Auto Confirmation: '+'['+str(reg_id.id)+']'+' '+reg_id.name, reg_id.event_id.description, tinycrm = str(reg_id.case_id.id))
+ tools.email_send(src, dest,'Auto Confirmation: '+'['+str(reg_id.id)+']'+' '+reg_id.name, reg_id.event_id.mail_confirm, tinycrm = str(reg_id.case_id.id))
if not src:
raise osv.except_osv(_('Error!'), _('You must define a reply-to address in order to mail the participant. You can do this in the Mailing tab of your event. Note that this is also the place where you can configure your event to not send emails automaticly while registering'))
return False
@@ -309,7 +311,7 @@ class event_registration(osv.osv):
return {'value':{'unit_price' : False,'invoice_label' : False}}
- def onchange_partner_id(self, cr, uid, ids, part, event_id):
+ def onchange_partner_id(self, cr, uid, ids, part, event_id, email=False):
data={}
data['badge_partner'] = data['contact_id'] = data['partner_invoice_id'] = data['email_from'] = data['badge_title'] = data['badge_name'] = False
if not part:
diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml
index ff729ada1cd..708d99d3896 100644
--- a/addons/event/event_view.xml
+++ b/addons/event/event_view.xml
@@ -203,7 +203,10 @@
-
+
+
+
+
@@ -213,7 +216,6 @@
-
diff --git a/addons/event/wizard/confirm_registration.py b/addons/event/wizard/confirm_registration.py
index c1871e45c6a..dc327075ea2 100644
--- a/addons/event/wizard/confirm_registration.py
+++ b/addons/event/wizard/confirm_registration.py
@@ -45,7 +45,7 @@ def _confirm(self, cr, uid, data, context):
current_registration = registration_obj.browse(cr, uid, [data['id']])[0]
total_confirmed = current_registration.event_id.register_current + current_registration.nb_register
- if total_confirmed <= current_registration.event_id.register_max:
+ if total_confirmed <= current_registration.event_id.register_max or current_registration.event_id.register_max == 0:
return 'confirm'
return 'split'
@@ -53,7 +53,6 @@ def _confirm(self, cr, uid, data, context):
def _check_confirm(self, cr, uid, data, context):
registration_obj = pooler.get_pool(cr.dbname).get('event.registration')
registration_obj.write(cr, uid, [data['id']], {'state':'open',})
- reg = registration_obj.browse(cr, uid, [data['id']])
registration_obj._history(cr, uid, reg, 'Open', history=True)
registration_obj.mail_user(cr,uid,[data['id']])
return {}