diff --git a/addons/account/security/ir.model.access.csv b/addons/account/security/ir.model.access.csv index 4cf67851760..271a4efe0ab 100644 --- a/addons/account/security/ir.model.access.csv +++ b/addons/account/security/ir.model.access.csv @@ -87,3 +87,4 @@ "access_account_fiscal_position_account_template","account.fiscal.position.account.template","model_account_fiscal_position_account_template","account.group_account_manager",1,1,1,1 "access_account_sequence_fiscal_year","account.sequence.fiscalyear","model_account_sequence_fiscalyear","account.group_account_user",1,1,1,1 "access_account_sequence_fiscal_year_user","account.sequence.fiscalyear user","model_account_sequence_fiscalyear","base.group_user",1,0,0,0 +"access_account_installer","account.installer","model_account_installer","base.group_user",1,0,0,0 diff --git a/addons/account_voucher/__terp__.py b/addons/account_voucher/__terp__.py index 242cc5fb391..20bf2c579ff 100755 --- a/addons/account_voucher/__terp__.py +++ b/addons/account_voucher/__terp__.py @@ -39,6 +39,7 @@ ], "update_xml" : [ + "security/account_security.xml", "voucher_sequence.xml", "account_report.xml", "voucher_view.xml", diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py index 5c8aa460da0..18b27820766 100644 --- a/addons/base_calendar/base_calendar.py +++ b/addons/base_calendar/base_calendar.py @@ -811,18 +811,18 @@ rule or repeating pattern for anexception to a recurrence set"), 'interval': lambda *x: 1, } - def modify_this(self, cr, uid, ids, defaults, context=None, *args): + def modify_this(self, cr, uid, ids, defaults, real_date, context=None, *args): ids = map(lambda x: base_calendar_id2real_id(x), ids) datas = self.read(cr, uid, ids[0], context=context) defaults.update({ 'recurrent_uid': base_calendar_id2real_id(datas['id']), - 'recurrent_id': defaults.get('date'), + 'recurrent_id': defaults.get('date') or real_date, 'rrule_type': 'none', 'rrule': '' }) exdate = datas['exdate'] and datas['exdate'].split(',') or [] - if defaults.get('date'): - exdate.append(defaults.get('date')) + if real_date and defaults.get('date'): + exdate.append(real_date) self.write(cr, uid, ids, {'exdate': ','.join(exdate)}, context=context) new_id = self.copy(cr, uid, ids[0], default=defaults, context=context) return new_id @@ -986,9 +986,13 @@ rule or repeating pattern for anexception to a recurrence set"), new_ids = [] for id in select: if len(str(id).split('-')) > 1: - data = self.read(cr, uid, id, ['date', 'date_deadline']) - self.modify_this(cr, uid, [id], vals, context) - continue + data = self.read(cr, uid, id, ['date', 'date_deadline', 'rrule', 'duration']) + if data.get('rrule'): + real_date = data.get('date') + data.update(vals) + new_id = self.modify_this(cr, uid, [id], data, real_date, context) + context.update({'active_id': new_id,'active_ids': [new_id]}) + continue id = base_calendar_id2real_id(id) if not id in new_ids: new_ids.append(id) diff --git a/addons/base_calendar/security/ir.model.access.csv b/addons/base_calendar/security/ir.model.access.csv index dd84c390183..2851e392e0b 100644 --- a/addons/base_calendar/security/ir.model.access.csv +++ b/addons/base_calendar/security/ir.model.access.csv @@ -1,6 +1,7 @@ "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" -"access_basic_calendar_all","basic.calendar","model_basic_calendar",,1,1,1,1 -"access_basic_calendar_event_all","basic.calendar.event","model_basic_calendar_event",,1,1,1,1 -"access_basic_calendar_attendee_all","basic.calendar.attendee","model_basic_calendar_attendee",,1,1,1,1 -"access_calendar_todo_all","basic.calendar.todo","model_basic_calendar_todo",,1,1,1,1 -"access_basic_calendar_alarm_all","basic.calendar.alarm","model_basic_calendar_alarm",,1,1,1,1 +"access_calendar_attendee","calendar.attendee","model_calendar_attendee",,1,1,1,1 +"access_calendar_alarm","calendar.alarm","model_calendar_alarm",,1,1,1,1 +"access_res_alarm","res.alarm","model_res_alarm",,1,1,1,1 +"access_calendar_event_all","calendar.event","model_calendar_event",,1,1,1,1 +"access_calendar_todo","calendar.todo","model_calendar_todo",,1,1,1,1 +"access_base_calendar_invite_attendee","base_calendar.invite.attendee","model_base_calendar_invite_attendee",,1,1,1,1 diff --git a/addons/caldav/caldav.py b/addons/caldav/caldav.py index 3afcc28dd40..ce7bbe62e24 100644 --- a/addons/caldav/caldav.py +++ b/addons/caldav/caldav.py @@ -804,7 +804,10 @@ class Attendee(CalDAV, osv.osv_memory): cn_val = [str(attendee[a_val['field']])] if cn_val: attendee_add.params['CN'] = cn_val - attendee_add.value = 'MAILTO:' + attendee['email'] + if not attendee['email']: + raise osv.except_osv(_('Error !'), _('Attendee must have an Email Id')) + elif attendee['email']: + attendee_add.value = 'MAILTO:' + attendee['email'] return vevent Attendee() diff --git a/addons/crm/__init__.py b/addons/crm/__init__.py index ec083dd91b1..b3142be7c2f 100644 --- a/addons/crm/__init__.py +++ b/addons/crm/__init__.py @@ -32,7 +32,7 @@ import crm_fundraising import crm_helpdesk -#import report +import report import wizard diff --git a/addons/crm/__terp__.py b/addons/crm/__terp__.py index 8302d67f0a9..f359d8e4cc9 100644 --- a/addons/crm/__terp__.py +++ b/addons/crm/__terp__.py @@ -26,7 +26,7 @@ 'category': 'Generic Modules/CRM & SRM', 'description': """The generic Open ERP Customer Relationship Management system enables a group of people to intelligently and efficiently manage -leads, opportunities, tasks, issues, requests, bugs, campaign, claims, etc. +leads, opportunities, claims, meeting, phonecall etc. It manages key tasks such as communication, identification, prioritization, assignment, resolution and notification. @@ -81,14 +81,21 @@ between mails and Open ERP.""", 'crm_claims_view.xml', 'crm_claims_menu.xml', -# 'crm_report_view.xml', 'crm_helpdesk_view.xml', 'crm_helpdesk_menu.xml', - #'crm_report.xml', + 'security/crm_security.xml', 'security/ir.model.access.csv', - 'process/crm_configuration_process.xml' + 'report/crm_report_view.xml', + 'report/crm_report_claim_view.xml', + 'report/crm_report_lead_view.xml', + 'report/crm_report_fundraising_view.xml', + 'report/crm_report_opportunity_view.xml' , + 'report/crm_report_phonecall_view.xml', + + 'process/crm_configuration_process.xml', + ], 'demo_xml': [ 'crm_demo.xml', diff --git a/addons/crm/crm.py b/addons/crm/crm.py index 7765f61ec32..27826f74bfa 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -296,8 +296,8 @@ class crm_case(osv.osv): if section in s: st = case.stage_id.id or False if st in s[section]: - self.write(cr, uid, [case.id], {'stage_id': s[section][st]}) - + stage_value = self.pool.get('crm.case.stage').read(cr, uid,s[section][st] , ['probability'], context) + self.write(cr, uid, [case.id], {'stage_id': s[section][st],'probability':stage_value['probability']}) return True def get_stage_dict(self, cr, uid, ids, context={}): @@ -319,7 +319,8 @@ class crm_case(osv.osv): st = case.stage_id.id or False s[section] = dict([(v, k) for (k, v) in s[section].iteritems()]) if st in s[section]: - self.write(cr, uid, [case.id], {'stage_id': s[section][st]}) + stage_value = self.pool.get('crm.case.stage').read(cr, uid,s[section][st] ,['probability'], context) + self.write(cr, uid, [case.id], {'stage_id': s[section][st],'probability':stage_value['probability']}) return True @@ -609,3 +610,15 @@ class users(osv.osv): 'context_section_id': fields.many2one('crm.case.section', 'Sales Team'), } users() + + +class res_partner(osv.osv): + _inherit = 'res.partner' + _columns = { + 'section_id': fields.many2one('crm.case.section', 'Sales Team'), + } + +res_partner() + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm/crm_claims_view.xml b/addons/crm/crm_claims_view.xml index e0fd5d90c80..ae6635bdbcb 100644 --- a/addons/crm/crm_claims_view.xml +++ b/addons/crm/crm_claims_view.xml @@ -43,6 +43,11 @@ +