diff --git a/addons/event/event.py b/addons/event/event.py
index f750c657ae4..c83298ba9ec 100644
--- a/addons/event/event.py
+++ b/addons/event/event.py
@@ -60,13 +60,13 @@ class event_event(models.Model):
seats_max = fields.Integer(
string='Maximum Available Seats', oldname='register_max',
readonly=True, states={'draft': [('readonly', False)], 'confirm': [('readonly', False)]},
- help="You can for each event define a maximum registration level. If you have too much registrations you are not able to confirm your event. (put 0 to ignore this rule )")
+ help="For each event you can define a maximum registration of seats(number of attendees), above this numbers the registrations are not accepted.")
seats_availability = fields.Selection(
[('limited', 'Limited'), ('unlimited', 'Unlimited')],
'Available Seat', required=True, default='unlimited')
seats_min = fields.Integer(
- string='Minimum Reserved Seats', oldname='register_min',
- help="You can for each event define a minimum registration level. If you do not enough registrations you are not able to confirm your event. (put 0 to ignore this rule )")
+ string='Minimum Reservation of Seats Required', oldname='register_min',
+ help="For each event you can define a minimum reserved seats(number of attendees), if it does not reach the mentioned registrations the event can not be confirmed (keep 0 to ignore this rule)")
seats_reserved = fields.Integer(
oldname='register_current', string='Reserved Seats',
store=True, readonly=True, compute='_compute_seats')
@@ -160,7 +160,7 @@ class event_event(models.Model):
@api.one
def _compute_auto_confirm(self):
- self.auto_confirm = self.env['ir.values'].get_default('marketing.config.settings', 'auto_confirmation')
+ self.auto_confirm = self.env['ir.values'].get_default('event.config.settings', 'auto_confirmation')
reply_to = fields.Char(
'Reply-To Email', readonly=False, states={'done': [('readonly', True)]},
@@ -336,9 +336,6 @@ class event_registration(models.Model):
@api.one
def confirm_registration(self):
- self.event_id.message_post(
- body=_('New registration confirmed: %s.') % (self.name or ''),
- subtype="event.mt_event_registration")
self.state = 'open'
# auto-trigger after_sub (on subscribe) mail schedulers, if needed
diff --git a/addons/event/event_data.xml b/addons/event/event_data.xml
index 56c6f2f5a36..5f9d0322db0 100644
--- a/addons/event/event_data.xml
+++ b/addons/event/event_data.xml
@@ -13,13 +13,6 @@
open
-
-
- New Registration
- event.event
-
-
-
@@ -28,7 +21,7 @@
-
+
diff --git a/addons/event/res_config.py b/addons/event/res_config.py
index 29ce58a72f5..b233de2c782 100644
--- a/addons/event/res_config.py
+++ b/addons/event/res_config.py
@@ -36,4 +36,4 @@ class event_config_settings(osv.TransientModel):
def set_default_auto_confirmation(self, cr, uid, ids, context=None):
config_value = self.browse(cr, uid, ids, context=context).auto_confirmation
- self.pool.get('ir.values').set_default(cr, uid, 'marketing.config.settings', 'auto_confirmation', config_value)
+ self.pool.get('ir.values').set_default(cr, uid, 'event.config.settings', 'auto_confirmation', config_value)
diff --git a/addons/event/tests/test_event_flow.py b/addons/event/tests/test_event_flow.py
index 27b05333799..ad047662e24 100644
--- a/addons/event/tests/test_event_flow.py
+++ b/addons/event/tests/test_event_flow.py
@@ -13,7 +13,7 @@ class TestEventFlow(TestEventCommon):
@mute_logger('openerp.addons.base.ir.ir_model', 'openerp.models')
def test_00_basic_event_auto_confirm(self):
""" Basic event management with auto confirmation """
- self.env['ir.values'].set_default('marketing.config.settings', 'auto_confirmation', True)
+ self.env['ir.values'].set_default('event.config.settings', 'auto_confirmation', True)
# EventUser creates a new event: ok
test_event = self.Event.sudo(self.user_eventmanager).create({
@@ -66,7 +66,7 @@ class TestEventFlow(TestEventCommon):
def test_10_advanced_event_flow(self):
""" Avanced event flow: no auto confirmation, manage minimum / maximum
seats, ... """
- self.env['ir.values'].set_default('marketing.config.settings', 'auto_confirmation', False)
+ self.env['ir.values'].set_default('event.config.settings', 'auto_confirmation', False)
# EventUser creates a new event: ok
test_event = self.Event.sudo(self.user_eventmanager).create({
diff --git a/addons/event/tests/test_mail_schedule.py b/addons/event/tests/test_mail_schedule.py
index f92cf0fcc5b..3c2b65fa423 100644
--- a/addons/event/tests/test_mail_schedule.py
+++ b/addons/event/tests/test_mail_schedule.py
@@ -13,7 +13,7 @@ class TestMailSchedule(TestEventCommon):
@mute_logger('openerp.addons.base.ir.ir_model', 'openerp.models')
def test_00_event_mail_schedule(self):
""" Test mail scheduling for events """
- self.env['ir.values'].set_default('marketing.config.settings', 'auto_confirmation', True)
+ self.env['ir.values'].set_default('event.config.settings', 'auto_confirmation', True)
now = fields.datetime.now()
event_date_begin = now + relativedelta(days=1)
event_date_end = now + relativedelta(days=3)
diff --git a/addons/event_sale/models/event.py b/addons/event_sale/models/event.py
index 90b63763157..94bed87bed3 100644
--- a/addons/event_sale/models/event.py
+++ b/addons/event_sale/models/event.py
@@ -88,8 +88,8 @@ class event_ticket(models.Model):
[('limited', 'Limited'), ('unlimited', 'Unlimited')],
'Available Seat', required=True, store=True, compute='_compute_seats', default="limited")
seats_max = fields.Integer('Maximum Available Seats',
- help="Define the number of available tickets. If you have too much registrations you will"
- "not BE able to sell tickets anymore. Set 0 to ignore this rule set as unlimited.")
+ help="Define the number of available tickets. If you have too much registrations you will "
+ "not be able to sell tickets anymore. Set 0 to ignore this rule set as unlimited.")
seats_reserved = fields.Integer(string='Reserved Seats', compute='_compute_seats', store=True)
seats_available = fields.Integer(string='Available Seats', compute='_compute_seats', store=True)
seats_unconfirmed = fields.Integer(string='Unconfirmed Seat Reservations', compute='_compute_seats', store=True)
diff --git a/addons/event_sale/views/event.xml b/addons/event_sale/views/event.xml
index c637b51e64f..7899c9dd0e9 100644
--- a/addons/event_sale/views/event.xml
+++ b/addons/event_sale/views/event.xml
@@ -62,7 +62,7 @@
-
+
diff --git a/addons/event_sale/views/sale_order.xml b/addons/event_sale/views/sale_order.xml
index 2d873c23f2a..25a540d59c1 100644
--- a/addons/event_sale/views/sale_order.xml
+++ b/addons/event_sale/views/sale_order.xml
@@ -8,7 +8,7 @@
-
diff --git a/addons/event_sale/wizard/event_edit_registration.xml b/addons/event_sale/wizard/event_edit_registration.xml
index 6a589d40a83..c84ac9167d9 100644
--- a/addons/event_sale/wizard/event_edit_registration.xml
+++ b/addons/event_sale/wizard/event_edit_registration.xml
@@ -22,7 +22,7 @@
diff --git a/addons/website_event/views/website_event.xml b/addons/website_event/views/website_event.xml
index e9fb9c5930f..02345d0a81d 100644
--- a/addons/website_event/views/website_event.xml
+++ b/addons/website_event/views/website_event.xml
@@ -240,7 +240,11 @@
-
+
@@ -260,7 +264,7 @@
to
- ()
+ ()
+
+
+ Switch to the calendar view to see the availability of each room.
+
+ event.track
+ kanban
+ .o_kanban_record:visible
+ button[data-view-type=calendar]
+ mousedown
+ bottom
+
+
diff --git a/addons/website_event_track/models/event.py b/addons/website_event_track/models/event.py
index d273d88f0e7..2376dd4c7a9 100644
--- a/addons/website_event_track/models/event.py
+++ b/addons/website_event_track/models/event.py
@@ -41,7 +41,7 @@ class event_track(models.Model):
speaker_ids = fields.Many2many('res.partner', string='Speakers')
tag_ids = fields.Many2many('event.track.tag', string='Tags')
state = fields.Selection([
- ('draft', 'Proposal'), ('confirmed', 'Confirmed'), ('announced', 'Announced'), ('published', 'Published'), ('refused', 'Refused')],
+ ('draft', 'Proposal'), ('confirmed', 'Confirmed'), ('announced', 'Announced'), ('published', 'Published'), ('refused', 'Refused'), ('cancel', 'Cancelled')],
'Status', default='draft', required=True, copy=False, track_visibility='onchange')
description = fields.Html('Track Description', translate=True)
date = fields.Datetime('Track Date')
@@ -88,6 +88,8 @@ class event_track(models.Model):
@api.multi
def write(self, vals):
+ if vals.get('state') == 'published':
+ vals.update({'website_published': True})
res = super(event_track, self).write(vals)
if vals.get('speaker_ids'):
self.message_subscribe([speaker['id'] for speaker in self.resolve_2many_commands('speaker_ids', vals['speaker_ids'], ['id'])])
@@ -105,7 +107,7 @@ class event_track(models.Model):
if groupby and groupby[0] == "state":
# Default result structure
# states = self._get_state_list(cr, uid, context=context)
- states = [('draft', 'Proposal'), ('confirmed', 'Confirmed'), ('announced', 'Announced'), ('published', 'Published')]
+ states = [('draft', 'Proposal'), ('confirmed', 'Confirmed'), ('announced', 'Announced'), ('published', 'Published'), ('cancel', 'Cancelled')]
read_group_all_states = [{
'__context': {'group_by': groupby[1:]},
'__domain': domain + [('state', '=', state_value)],
@@ -120,6 +122,8 @@ class event_track(models.Model):
res = filter(lambda x: x['state'] == state_value, read_group_res)
if not res:
res = filter(lambda x: x['state'] == state_value, read_group_all_states)
+ if state_value == 'cancel':
+ res[0]['__fold'] = True
res[0]['state'] = [state_value, state_name]
result.append(res[0])
return result
@@ -142,9 +146,13 @@ class event_track(models.Model):
class event_event(models.Model):
_inherit = "event.event"
- @api.one
+ @api.multi
def _count_tracks(self):
- self.count_tracks = len(self.track_ids)
+ track_data = self.env['event.track'].read_group([('state', '!=', 'cancel')],
+ ['event_id', 'state'], ['event_id'])
+ result = dict((data['event_id'][0], data['event_id_count']) for data in track_data)
+ for event in self:
+ event.count_tracks = result.get(event.id, 0)
@api.one
def _count_sponsor(self):
@@ -159,7 +167,7 @@ class event_event(models.Model):
sponsor_ids = fields.One2many('event.sponsor', 'event_id', 'Sponsors')
blog_id = fields.Many2one('blog.blog', 'Event Blog')
show_track_proposal = fields.Boolean('Talks Proposals')
- show_tracks = fields.Boolean('Multiple Tracks')
+ show_tracks = fields.Boolean('Show Tracks on Website')
show_blog = fields.Boolean('News')
count_tracks = fields.Integer('Tracks', compute='_count_tracks')
allowed_track_tag_ids = fields.Many2many('event.track.tag', relation='event_allowed_track_tags_rel', string='Available Track Tags')
diff --git a/addons/website_event_track/views/event_backend.xml b/addons/website_event_track/views/event_backend.xml
index aaf1992b165..2cea634969c 100644
--- a/addons/website_event_track/views/event_backend.xml
+++ b/addons/website_event_track/views/event_backend.xml
@@ -71,6 +71,7 @@
+