[FIX] event: move definition of fields track_ids and count_tracks to the right module

bzr revid: rco@openerp.com-20140505085739-z2asr1vrx6yyjtlh
This commit is contained in:
Raphael Collet 2014-05-05 10:57:39 +02:00
parent f55dfdc40e
commit 1d0a6e20a4
2 changed files with 16 additions and 13 deletions

View File

@ -150,16 +150,11 @@ class event_event(osv.osv):
continue
return res
def _count_all(self, cr, uid, ids, field_name, arg, context=None):
res = dict(map(lambda x: (x,{'count_registrations': 0, 'count_tracks': 0,}), ids))
try:
for data in self.browse(cr, uid, ids, context=context):
res[data.id] = {'count_registrations': len(data.registration_ids),
'count_tracks': len(data.track_ids),
}
except:
pass
return res
def _count_registrations(self, cr, uid, ids, field_name, arg, context=None):
return {
event.id: len(event.registration_ids)
for event in self.browse(cr, uid, ids, context=context)
}
_columns = {
'name': fields.char('Event Name', size=64, required=True, translate=True, readonly=False, states={'done': [('readonly', True)]}),
@ -180,7 +175,6 @@ class event_event(osv.osv):
store={'event.registration': (_get_events_from_registrations, ['state'], 10),
'event.event': (lambda self, cr, uid, ids, c = {}: ids, ['seats_max', 'registration_ids'], 20)}),
'registration_ids': fields.one2many('event.registration', 'event_id', 'Registrations', readonly=False, states={'done': [('readonly', True)]}),
'track_ids': fields.one2many('event.track', 'event_id', 'Tracks', readonly=False),
'date_begin': fields.datetime('Start Date', required=True, readonly=True, states={'draft': [('readonly', False)]}),
'date_end': fields.datetime('End Date', required=True, readonly=True, states={'draft': [('readonly', False)]}),
'state': fields.selection([
@ -203,8 +197,7 @@ class event_event(osv.osv):
'company_id': fields.many2one('res.company', 'Company', required=False, change_default=True, readonly=False, states={'done': [('readonly', True)]}),
'is_subscribed' : fields.function(_subscribe_fnc, type="boolean", string='Subscribed'),
'organizer_id': fields.many2one('res.partner', "Organizer"),
'count_registrations': fields.function(_count_all, type="integer", string="Registrations", multi=True),
'count_tracks': fields.function(_count_all, type='integer', string='Tracks', multi=True),
'count_registrations': fields.function(_count_registrations, type="integer", string="Registrations"),
}
_defaults = {
'state': 'draft',

View File

@ -124,6 +124,12 @@ class event_event(osv.osv):
# put POSIX 'Etc/*' entries at the end to avoid confusing users - see bug 1086728
return [(tz,tz) for tz in sorted(pytz.all_timezones, key=lambda tz: tz if not tz.startswith('Etc/') else '_')]
def _count_tracks(self, cr, uid, ids, field_name, arg, context=None):
return {
event.id: len(event.track_ids)
for event in self.browse(cr, uid, ids, context=context)
}
def _get_tracks_tag_ids(self, cr, uid, ids, field_names, arg=None, context=None):
res = dict.fromkeys(ids, [])
for event in self.browse(cr, uid, ids, context=context):
@ -131,6 +137,7 @@ class event_event(osv.osv):
res[event.id] += [tag.id for tag in track.tag_ids]
res[event.id] = list(set(res[event.id]))
return res
_columns = {
'tag_ids': fields.many2many('event.tag', string='Tags'),
'track_ids': fields.one2many('event.track', 'event_id', 'Tracks'),
@ -139,16 +146,19 @@ class event_event(osv.osv):
'show_track_proposal': fields.boolean('Talks Proposals'),
'show_tracks': fields.boolean('Multiple Tracks'),
'show_blog': fields.boolean('News'),
'count_tracks': fields.function(_count_tracks, type='integer', string='Tracks'),
'tracks_tag_ids': fields.function(_get_tracks_tag_ids, type='one2many', relation='event.track.tag', string='Tags of Tracks'),
'allowed_track_tag_ids': fields.many2many('event.track.tag', string='Accepted Tags', help="List of available tags for track proposals."),
'timezone_of_event': fields.selection(_tz_get, 'Event Timezone', size=64),
}
_defaults = {
'show_track_proposal': False,
'show_tracks': False,
'show_blog': False,
'timezone_of_event':lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).tz,
}
def _get_new_menu_pages(self, cr, uid, event, context=None):
context = context or {}
result = super(event_event, self)._get_new_menu_pages(cr, uid, event, context=context)