diff --git a/addons/website_event_track/README.md b/addons/website_event_track/README.md index 6188d94c3e0..c78babcb64c 100644 --- a/addons/website_event_track/README.md +++ b/addons/website_event_track/README.md @@ -12,7 +12,7 @@ Organize Your Tracks Add a talk proposal form on your events to allow visitors to submit talks and speakers. Organize the validation process of every talk, and schedule easily. -OpenERP's unique frontend and backend integration makes organization and publication so easy. Easily design beautiful speaker biographies and talks description. +Odoo's unique frontend and backend integration makes organization and publication so easy. Easily design beautiful speaker biographies and talks description. Agenda and List of Talks ------------------------ @@ -28,11 +28,11 @@ Manage Sponsors Add sponsors to your events and publish sponsors per level (e.g. bronze, silver, gold) on the bottom of every page of the event. -Sell sponsorship packages online through the OpenERP eCommerce for a full sales cycle integration. +Sell sponsorship packages online through the Odoo eCommerce for a full sales cycle integration. Communicate Efficiently ----------------------- ### Activate a blog for some events -You can activate a blog for each event allowing you to communicate on specific events. Visitors can subscribe to news to get informed. +You can activate a blog for each event allowing you to communicate on specific events. Visitors can subscribe to news to get informed. \ No newline at end of file diff --git a/addons/website_event_track/__openerp__.py b/addons/website_event_track/__openerp__.py index 5e02b57aa22..073abe78d8f 100644 --- a/addons/website_event_track/__openerp__.py +++ b/addons/website_event_track/__openerp__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. { 'name': 'Advanced Events', @@ -20,18 +21,15 @@ Adds support for: """, 'depends': ['website_event'], 'data': [ - 'data/website_event_track_data.xml', - 'views/event_views.xml', - 'views/website_event_track_templates.xml', - 'views/website_event_track_views.xml', - 'data/website_event_track_tip_data.xml', 'security/ir.model.access.csv', 'security/website_event_track_security.xml', + 'data/website_event_track_data.xml', + 'views/website_event_track_templates.xml', + 'views/website_event_track_views.xml', + 'views/event_views.xml', ], - 'qweb': ['static/src/xml/*.xml'], 'demo': [ 'data/event_demo.xml', 'data/website_event_track_demo.xml' ], - 'installable': True, } diff --git a/addons/website_event_track/controllers/__init__.py b/addons/website_event_track/controllers/__init__.py index bbd183e955b..f48716d3a69 100644 --- a/addons/website_event_track/controllers/__init__.py +++ b/addons/website_event_track/controllers/__init__.py @@ -1,3 +1,4 @@ # -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. import main diff --git a/addons/website_event_track/controllers/main.py b/addons/website_event_track/controllers/main.py index 831ffde0729..f9d9dec5c1c 100644 --- a/addons/website_event_track/controllers/main.py +++ b/addons/website_event_track/controllers/main.py @@ -4,20 +4,18 @@ import collections import datetime import pytz -import re -import openerp -from openerp.addons.web import http -from openerp.addons.web.http import request -from openerp.tools import html_escape +from odoo import fields, http +from odoo.http import request +from odoo.tools import html_escape as escape, html2plaintext -class website_event(http.Controller): +class WebsiteEventTrackController(http.Controller): + @http.route(['''/event//track//track_proposal/post'], type='http', auth="public", methods=['POST'], website=True) def event_track_proposal_post(self, event, **post): - cr, uid, context = request.cr, request.uid, request.context - tags = [] for tag in event.allowed_track_tag_ids: - if post.get('tag_'+str(tag.id)): + if post.get('tag_' + str(tag.id)): tags.append(tag.id) - track_obj = request.registry['event.track'] - track_id = track_obj.create(cr, openerp.SUPERUSER_ID, { + track = request.env['event.track'].sudo().create({ 'name': post['track_name'], 'partner_name': post['partner_name'], 'partner_email': post['email_from'], 'partner_phone': post['phone'], - 'partner_biography': html_escape(post['biography']), + 'partner_biography': escape(post['biography']), 'event_id': event.id, 'tag_ids': [(6, 0, tags)], 'user_id': False, - 'description': html_escape(post['description']), - }, context=context) - track = track_obj.browse(cr, uid, track_id, context=context) - values = {'track': track, 'event': event} - return request.website.render("website_event_track.event_track_proposal_success", values) + 'description': escape(post['description']) + }) + return request.website.render("website_event_track.event_track_proposal_success", {'track': track, 'event': event}) diff --git a/addons/website_event_track/data/event_demo.xml b/addons/website_event_track/data/event_demo.xml index f8178c9e30c..95584626633 100644 --- a/addons/website_event_track/data/event_demo.xml +++ b/addons/website_event_track/data/event_demo.xml @@ -1,6 +1,5 @@ - - + Technical @@ -34,14 +33,14 @@ - http://openerp.com + http://odoo.com - http://openerp.com + http://odoo.com @@ -54,12 +53,12 @@ - http://openerp.com + http://odoo.com - http://facebook.com/openerp + http://facebook.com/odoo

Ayaan has in the IT sector since 20 years. He @@ -73,5 +72,4 @@

-
-
+ diff --git a/addons/website_event_track/data/website_event_track_data.xml b/addons/website_event_track/data/website_event_track_data.xml index c332c99c991..7979921cbb5 100644 --- a/addons/website_event_track/data/website_event_track_data.xml +++ b/addons/website_event_track/data/website_event_track_data.xml @@ -1,5 +1,5 @@ - + @@ -24,4 +24,4 @@ - + diff --git a/addons/website_event_track/data/website_event_track_demo.xml b/addons/website_event_track/data/website_event_track_demo.xml index b68856c95db..992bf209f25 100644 --- a/addons/website_event_track/data/website_event_track_demo.xml +++ b/addons/website_event_track/data/website_event_track_demo.xml @@ -1,5 +1,5 @@ - + Le Foyer du lac @@ -29,7 +29,7 @@ 3 draft - + How to integrate hardware materials with the Odoo point of sale. @@ -322,4 +322,4 @@ confirmed - + diff --git a/addons/website_event_track/models/__init__.py b/addons/website_event_track/models/__init__.py index 434b7104d5c..8f0d1c76e14 100644 --- a/addons/website_event_track/models/__init__.py +++ b/addons/website_event_track/models/__init__.py @@ -1,2 +1,5 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + import website_event_track import event diff --git a/addons/website_event_track/models/event.py b/addons/website_event_track/models/event.py index 4cc1e33e8f0..463ec12ba9e 100644 --- a/addons/website_event_track/models/event.py +++ b/addons/website_event_track/models/event.py @@ -1,29 +1,31 @@ # -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. from openerp import models, fields, api from openerp.tools.translate import _ from openerp.addons.website.models.website import slug +class Event(models.Model): -class event_event(models.Model): _inherit = "event.event" @api.multi def _count_tracks(self): - track_data = self.env['event.track'].read_group([('state', '!=', 'cancel')], - ['event_id', 'state'], ['event_id']) + 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 + @api.multi def _count_sponsor(self): - self.count_sponsor = len(self.sponsor_ids) + for event in self: + event.count_sponsor = len(event.sponsor_ids) - @api.one + @api.multi @api.depends('track_ids.tag_ids') def _get_tracks_tag_ids(self): - self.tracks_tag_ids = self.track_ids.mapped('tag_ids').ids + for event in self: + event.tracks_tag_ids = event.track_ids.mapped('tag_ids').ids track_ids = fields.One2many('event.track', 'event_id', 'Tracks') sponsor_ids = fields.One2many('event.sponsor', 'event_id', 'Sponsors') @@ -37,7 +39,7 @@ class event_event(models.Model): @api.multi def _get_new_menu_pages(self): self.ensure_one() - result = super(event_event, self)._get_new_menu_pages() + result = super(Event, self)._get_new_menu_pages() if self.show_tracks: result.append((_('Talks'), '/event/%s/track' % slug(self))) result.append((_('Agenda'), '/event/%s/agenda' % slug(self))) @@ -53,4 +55,4 @@ class event_event(models.Model): nbr_menu_items = len(event._get_new_menu_pages()) if nbr_menu_items != len(event.menu_id.child_id): event.menu_id.unlink() - return super(event_event, self)._set_show_menu() + return super(Event, self)._set_show_menu() diff --git a/addons/website_event_track/models/website_event_track.py b/addons/website_event_track/models/website_event_track.py index d648521a72c..c87d17d0509 100644 --- a/addons/website_event_track/models/website_event_track.py +++ b/addons/website_event_track/models/website_event_track.py @@ -1,11 +1,13 @@ # -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. -from openerp import models, fields, api -from openerp.tools.translate import _ -from openerp.addons.website.models.website import slug +from odoo import api, fields, models +from odoo.tools.translate import _ +from odoo.addons.website.models.website import slug -class event_track_tag(models.Model): +class TrackTag(models.Model): + _name = "event.track.tag" _description = 'Track Tag' _order = 'name' @@ -15,18 +17,20 @@ class event_track_tag(models.Model): color = fields.Integer(string='Color Index') _sql_constraints = [ - ('name_uniq', 'unique (name)', "Tag name already exists !"), + ('name_uniq', 'unique (name)', "Tag name already exists !"), ] -class event_track_location(models.Model): +class TrackLocation(models.Model): + _name = "event.track.location" _description = 'Track Location' name = fields.Char('Room') -class event_track(models.Model): +class Track(models.Model): + _name = "event.track" _description = 'Event Track' _order = 'priority, date' @@ -59,7 +63,7 @@ class event_track(models.Model): @api.model def create(self, vals): - res = super(event_track, self).create(vals) + res = super(Track, self).create(vals) res.message_subscribe(res.speaker_ids.ids) res.message_post_with_view( 'website_event_track.event_track_template_new', @@ -71,7 +75,7 @@ class event_track(models.Model): def write(self, vals): if vals.get('state') == 'published': vals.update({'website_published': True}) - res = super(event_track, self).write(vals) + res = super(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'])]) return res @@ -79,15 +83,15 @@ class event_track(models.Model): @api.multi @api.depends('name') def _website_url(self, field_name, arg): - res = super(event_track, self)._website_url(field_name, arg) + res = super(Track, self)._website_url(field_name, arg) res.update({(track.id, '/event/%s/track/%s' % (slug(track.event_id), slug(track))) for track in self}) return res - def read_group(self, cr, uid, domain, fields, groupby, offset=0, limit=None, context=None, orderby=False, lazy=True): + @api.model + def read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True): """ Override read_group to always display all states. """ 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'), ('cancel', 'Cancelled')] read_group_all_states = [{ '__context': {'group_by': groupby[1:]}, @@ -96,7 +100,7 @@ class event_track(models.Model): 'state_count': 0, } for state_value, state_name in states] # Get standard results - read_group_res = super(event_track, self).read_group(cr, uid, domain, fields, groupby, offset=offset, limit=limit, context=context, orderby=orderby) + read_group_res = super(Track, self).read_group(domain, fields, groupby, offset=offset, limit=limit, orderby=orderby) # Update standard results with default results result = [] for state_value, state_name in states: @@ -109,13 +113,14 @@ class event_track(models.Model): result.append(res[0]) return result else: - return super(event_track, self).read_group(cr, uid, domain, fields, groupby, offset=offset, limit=limit, context=context, orderby=orderby) + return super(Track, self).read_group(domain, fields, groupby, offset=offset, limit=limit, orderby=orderby) - def open_track_speakers_list(self, cr, uid, track_id, context=None): - track_id = self.browse(cr, uid, track_id, context=context) + @api.multi + def open_track_speakers_list(self): + self.ensure_one() return { 'name': _('Speakers'), - 'domain': [('id', 'in', [partner.id for partner in track_id.speaker_ids])], + 'domain': [('id', 'in', [partner.id for partner in self.speaker_ids])], 'view_type': 'form', 'view_mode': 'kanban,form', 'res_model': 'res.partner', @@ -124,7 +129,8 @@ class event_track(models.Model): } -class event_sponsors_type(models.Model): +class SponsorType(models.Model): + _name = "event.sponsor.type" _order = "sequence" @@ -132,7 +138,8 @@ class event_sponsors_type(models.Model): sequence = fields.Integer('Sequence') -class event_sponsors(models.Model): +class Sponsor(models.Model): + _name = "event.sponsor" _order = "sequence" diff --git a/addons/website_event_track/security/website_event_track_security.xml b/addons/website_event_track/security/website_event_track_security.xml index 52f8e3c7286..850607bf2df 100644 --- a/addons/website_event_track/security/website_event_track_security.xml +++ b/addons/website_event_track/security/website_event_track_security.xml @@ -1,5 +1,5 @@ - + @@ -14,4 +14,4 @@ - + diff --git a/addons/website_event_track/static/description/index.html b/addons/website_event_track/static/description/index.html index 8661037a1bc..52dde14fc6d 100644 --- a/addons/website_event_track/static/description/index.html +++ b/addons/website_event_track/static/description/index.html @@ -29,7 +29,7 @@ submit talks and speakers. Organize the validation process of every talk, and schedule easily.

- OpenERP's unique frontend and backend integration makes + Odoo's unique frontend and backend integration makes organization and publication so easy. Easily design beautiful speaker biographies and talks description.

@@ -68,7 +68,7 @@ Add sponsors to your events and publish sponsors per level (e.g. bronze, silver, gold) on the bottom of every page of the event.

- Sell sponsorship packages online through the OpenERP eCommerce for + Sell sponsorship packages online through the Odoo eCommerce for a full sales cycle integration.

diff --git a/addons/website_event_track/views/website_event_track_templates.xml b/addons/website_event_track/views/website_event_track_templates.xml index 78f5622f8ce..8e10ebaec2f 100644 --- a/addons/website_event_track/views/website_event_track_templates.xml +++ b/addons/website_event_track/views/website_event_track_templates.xml @@ -1,6 +1,5 @@ - - + - - + diff --git a/addons/website_event_track/views/website_event_track_views.xml b/addons/website_event_track/views/website_event_track_views.xml index ec31351f6e1..5e92ab0a178 100644 --- a/addons/website_event_track/views/website_event_track_views.xml +++ b/addons/website_event_track/views/website_event_track_views.xml @@ -1,6 +1,5 @@ - - + @@ -172,11 +171,12 @@ event.track kanban,tree,form,calendar,graph -

-Click to add a track. -

- Tracks define the agenda of your event. These can bea talk, a round table, a meeting, etc. -

+

+ Click to add a track. +

+ Tracks define the agenda of your event. These can bea talk, a round table, a meeting, etc. +

+
@@ -186,14 +186,20 @@ Click to add a track. kanban,tree,form,calendar,graph {'search_default_event_id': active_id, 'default_event_id': active_id, 'group_by': 'state'} -

-Click to add a track. -

-Tracks define the agenda of your event. These can be a talk, a round table, a meeting, etc. -

+

+ Click to add a track. +

+ Tracks define the agenda of your event. These can be a talk, a round table, a meeting, etc. +

+
- + @@ -209,6 +215,7 @@ Tracks define the agenda of your event. These can be a talk, a round table, a me + Event Location event.track.location @@ -218,12 +225,17 @@ Tracks define the agenda of your event. These can be a talk, a round table, a me + Event Locations event.track.location - + + @@ -240,6 +252,7 @@ Tracks define the agenda of your event. These can be a talk, a round table, a me + Sponsor Types event.sponsor.type @@ -250,11 +263,15 @@ Tracks define the agenda of your event. These can be a talk, a round table, a me + Sponsor Types event.sponsor.type - @@ -302,6 +319,7 @@ Tracks define the agenda of your event. These can be a talk, a round table, a me + Tracks Tag event.track.tag @@ -311,12 +329,15 @@ Tracks define the agenda of your event. These can be a talk, a round table, a me + Track Tags event.track.tag - -
-
+