diff --git a/addons/event/event.py b/addons/event/event.py index d13d455bc73..5a058257d27 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -135,6 +135,17 @@ class event_event(osv.osv): res[event.id]= True continue return res + + def _count_all(self, cr, uid, ids, field_name, arg, context=None): + res = dict(map(lambda x: (x,{'count_regitrations': 0, 'count_tracks': 0,}), ids)) + try: + for data in self.browse(cr, uid, ids, context=context): + res[data.id] = {'count_regitrations': len(data.registration_ids), + 'count_tracks': len(data.track_ids), + } + except: + pass + return res _columns = { 'name': fields.char('Event Name', size=64, required=True, translate=True, readonly=False, states={'done': [('readonly', True)]}), @@ -147,6 +158,7 @@ class event_event(osv.osv): 'seats_unconfirmed': fields.function(_get_seats, oldname='register_prospect', string='Unconfirmed Seat Reservations', type='integer', multi='seats_reserved'), 'seats_used': fields.function(_get_seats, oldname='register_attended', string='Number of Participations', type='integer', multi='seats_reserved'), '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([ @@ -169,6 +181,8 @@ 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_regitrations': fields.function(_count_all, type="integer", string="Registrations", multi=True), + 'count_tracks': fields.function(_count_all, type='integer', string='Tracks', multi=True), } _defaults = { 'state': 'draft', diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 07a36ea3a6b..cbc8fbaa52b 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -66,7 +66,13 @@
-