Browse Source

Fix bug #1235969.

pull/2/head
Jairo Llopis 11 years ago
parent
commit
cdd1a5ebdd
  1. 19
      super_calendar/super_calendar.py

19
super_calendar/super_calendar.py

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# Copyright (C) 2012 Agile Business Group sagl (<http://www.agilebg.com>)
# Copyright (C) 2012 Domsense srl (<http://www.domsense.com>)
#
@ -25,7 +25,7 @@ import logging
from mako.template import Template
from datetime import datetime
from openerp import tools
from openerp.tools import safe_eval as eval
from openerp.tools.safe_eval import safe_eval
def _models_get(self, cr, uid, context=None):
obj = self.pool.get('ir.model')
@ -44,20 +44,25 @@ class super_calendar_configurator(orm.Model):
def generate_calendar_records(self, cr, uid, ids, context=None):
configurator_ids = self.search(cr, uid, [])
super_calendar_pool = self.pool.get('super.calendar')
# removing old records
super_calendar_ids = super_calendar_pool.search(cr, uid, [], context=context)
super_calendar_pool.unlink(cr, uid, super_calendar_ids, context=context)
for configurator in self.browse(cr, uid, configurator_ids, context):
for line in configurator.line_ids:
current_pool = self.pool.get(line.name.model)
current_record_ids = current_pool.search(cr, uid, line.domain and eval(line.domain) or [], context=context)
current_record_ids = current_pool.search(
cr,
uid,
line.domain and eval(line.domain) or [],
context=context)
for current_record_id in current_record_ids:
current_record = current_pool.browse(cr, uid, current_record_id, context=context)
if line.user_field_id and \
current_record[line.user_field_id.name] and current_record[line.user_field_id.name]._table_name != 'res.users':
raise osv.except_osv(_('Error'),
raise osv.except_osv(_('Error'),
_("The 'User' field of record %s (%s) does not refer to res.users")
% (current_record[line.description_field_id.name], line.name.model))
if (((line.description_field_id
@ -116,7 +121,7 @@ class super_calendar_configurator_line(orm.Model):
'user_field_id': fields.many2one('ir.model.fields', 'User field',
domain="['&',('ttype', '=', 'many2one'),('model_id', '=', name)]"),
}
class super_calendar(orm.Model):
_name = 'super.calendar'

Loading…
Cancel
Save