#
##############################################################################
+from openerp.addons.event.event import event_event as Event
from openerp.osv import fields, osv
from openerp.tools.translate import _
return list(set(ticket.event_id.id
for ticket in self.browse(cr, uid, ids, context)))
+ # proxy method, can't import parent method directly as unbound_method: it would receive
+ # an invalid `self` <event_registration> when called by ORM
+ def _events_from_registrations(self, cr, uid, ids, context=None):
+ # `self` is the event.registration model when called by ORM
+ return self.pool['event.event']._get_events_from_registrations(cr, uid, ids, context=context)
+
_columns = {
'event_ticket_ids': fields.one2many('event.event.ticket', "event_id", "Event Ticket"),
'seats_max': fields.function(_get_seats_max,
'event.event': (lambda self, cr, uid, ids, c = {}: ids, ['event_ticket_ids'], 20),
'event.event.ticket': (_get_ticket_events, ['seats_max'], 10),
}),
+ 'seats_available': fields.function(Event._get_seats, oldname='register_avail', string='Available Seats',
+ type='integer', multi='seats_reserved',
+ store={
+ 'event.registration': (_events_from_registrations, ['state'], 10),
+ 'event.event': (lambda self, cr, uid, ids, c = {}: ids,
+ ['seats_max', 'registration_ids'], 20),
+ 'event.event.ticket': (_get_ticket_events, ['seats_max'], 10),
+ }),
+ 'badge_back': fields.html('Badge Back', readonly=False, translate=True, states={'done': [('readonly', True)]}),
+ 'badge_innerleft': fields.html('Badge Innner Left', readonly=False, translate=True, states={'done': [('readonly', True)]}),
+ 'badge_innerright': fields.html('Badge Inner Right', readonly=False, translate=True, states={'done': [('readonly', True)]}),
}
_defaults = {
'event_ticket_ids': _get_tickets
_columns = {
- 'name': fields.char('Name', size=64, required=True),
+ 'name': fields.char('Name', size=64, required=True, translate=True),
'event_id': fields.many2one('event.event', "Event", required=True, ondelete='cascade'),
'product_id': fields.many2one('product.product', 'Product', required=True, domain=[("event_type_id", "!=", False)]),
'registration_ids': fields.one2many('event.registration', 'event_ticket_id', 'Registrations'),
_constraints = [
(_check_ticket_seats_limit, 'No more available tickets.', ['event_ticket_id','nb_register','state']),
- ]
\ No newline at end of file
+ ]