[MIG] website_event_track : migrate the module to new api
This commit is contained in:
committed by
Jérome Maes
parent
a2426e420d
commit
8a4ba5d21a
@@ -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.
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
import main
|
||||
|
||||
@@ -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/<model("event.event"):event>/track/<model("event.track", "[('event_id','=',event[0])]"):track>'''], type='http', auth="public", website=True)
|
||||
def event_track_view(self, event, track, **post):
|
||||
track_obj = request.registry.get('event.track')
|
||||
track = track_obj.browse(request.cr, openerp.SUPERUSER_ID, track.id, context=request.context)
|
||||
values = { 'track': track, 'event': track.event_id, 'main_object': track }
|
||||
track = track.sudo()
|
||||
values = {'track': track, 'event': track.event_id, 'main_object': track}
|
||||
return request.website.render("website_event_track.track_view", values)
|
||||
|
||||
def _prepare_calendar(self, event, event_track_ids):
|
||||
@@ -29,8 +27,8 @@ class website_event(http.Controller):
|
||||
|
||||
forcetr = True
|
||||
for track in event_track_ids:
|
||||
start_date = (datetime.datetime.strptime(track.date, '%Y-%m-%d %H:%M:%S')).replace(tzinfo=pytz.utc).astimezone(local_tz)
|
||||
end_date = start_date + datetime.timedelta(hours = (track.duration or 0.5))
|
||||
start_date = fields.Datetime.from_string(track.date).replace(tzinfo=pytz.utc).astimezone(local_tz)
|
||||
end_date = start_date + datetime.timedelta(hours=(track.duration or 0.5))
|
||||
location = track.location_id or False
|
||||
locations.setdefault(location, [])
|
||||
|
||||
@@ -55,13 +53,12 @@ class website_event(http.Controller):
|
||||
'dates': dates
|
||||
}
|
||||
|
||||
|
||||
# TODO: not implemented
|
||||
@http.route(['''/event/<model("event.event", "[('show_tracks','=',1)]"):event>/agenda'''], type='http', auth="public", website=True)
|
||||
def event_agenda(self, event, tag=None, **post):
|
||||
days_tracks = collections.defaultdict(lambda: [])
|
||||
for track in sorted(event.track_ids, key=lambda x: (x.date, bool(x.location_id))):
|
||||
if not track.date: continue
|
||||
for track in event.track_ids.sorted(lambda track: (track.date, bool(track.location_id))):
|
||||
if not track.date:
|
||||
continue
|
||||
days_tracks[track.date[:10]].append(track)
|
||||
|
||||
days = {}
|
||||
@@ -70,15 +67,10 @@ class website_event(http.Controller):
|
||||
days_tracks_count[day] = len(tracks)
|
||||
days[day] = self._prepare_calendar(event, tracks)
|
||||
|
||||
cr, uid, context = request.cr, request.uid, request.context
|
||||
track_obj = request.registry['event.track']
|
||||
tracks_ids = track_obj.search(cr, openerp.SUPERUSER_ID, [('event_id', '=', event.id)], context=context)
|
||||
speakers = dict()
|
||||
for t in track_obj.browse(cr, openerp.SUPERUSER_ID, tracks_ids, context=context):
|
||||
acc = ""
|
||||
for speaker in t.speaker_ids:
|
||||
acc = speaker.name + u" – " + acc if acc else speaker.name
|
||||
speakers[t.id] = acc
|
||||
speakers = {}
|
||||
for track in event.sudo().track_ids:
|
||||
speakers_name = u" – ".join(track.speaker_ids.mapped('name'))
|
||||
speakers[track.id] = speakers_name
|
||||
|
||||
return request.website.render("website_event_track.agenda", {
|
||||
'event': event,
|
||||
@@ -96,52 +88,40 @@ class website_event(http.Controller):
|
||||
searches = {}
|
||||
if tag:
|
||||
searches.update(tag=tag.id)
|
||||
track_obj = request.registry.get('event.track')
|
||||
track_ids = track_obj.search(request.cr, request.uid,
|
||||
[("id", "in", [track.id for track in event.track_ids]), ("tag_ids", "=", tag.id)], context=request.context)
|
||||
tracks = track_obj.browse(request.cr, request.uid, track_ids, context=request.context)
|
||||
tracks = event.track_ids.filtered(lambda track: tag in track.tag_ids)
|
||||
else:
|
||||
tracks = event.track_ids
|
||||
|
||||
def html2text(html):
|
||||
return re.sub(r'<[^>]+>', "", html)
|
||||
|
||||
values = {
|
||||
'event': event,
|
||||
'main_object': event,
|
||||
'tracks': tracks,
|
||||
'tags': event.tracks_tag_ids,
|
||||
'searches': searches,
|
||||
'html2text': html2text
|
||||
'html2plaintext': html2plaintext
|
||||
}
|
||||
return request.website.render("website_event_track.tracks", values)
|
||||
|
||||
@http.route(['''/event/<model("event.event", "[('show_track_proposal','=',1)]"):event>/track_proposal'''], type='http', auth="public", website=True)
|
||||
def event_track_proposal(self, event, **post):
|
||||
values = { 'event': event }
|
||||
return request.website.render("website_event_track.event_track_proposal", values)
|
||||
return request.website.render("website_event_track.event_track_proposal", {'event': event})
|
||||
|
||||
@http.route(['/event/<model("event.event"):event>/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})
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<odoo>
|
||||
|
||||
<record id="event_track_tag1" model="event.track.tag">
|
||||
<field name="name">Technical</field>
|
||||
@@ -34,14 +33,14 @@
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="sponsor_type_id" ref="event_sponsor_type1"/>
|
||||
<field name="partner_id" ref="base.res_partner_2"/>
|
||||
<field name="url">http://openerp.com</field>
|
||||
<field name="url">http://odoo.com</field>
|
||||
</record>
|
||||
|
||||
<record id="event_sponsor_1" model="event.sponsor">
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="sponsor_type_id" ref="event_sponsor_type2"/>
|
||||
<field name="partner_id" ref="base.res_partner_12"/>
|
||||
<field name="url">http://openerp.com</field>
|
||||
<field name="url">http://odoo.com</field>
|
||||
</record>
|
||||
|
||||
<record id="event_sponsor_2" model="event.sponsor">
|
||||
@@ -54,12 +53,12 @@
|
||||
<field name="event_id" ref="event.event_0"/>
|
||||
<field name="sponsor_type_id" ref="event_sponsor_type3"/>
|
||||
<field name="partner_id" ref="base.res_partner_4"/>
|
||||
<field name="url">http://openerp.com</field>
|
||||
<field name="url">http://odoo.com</field>
|
||||
</record>
|
||||
|
||||
<!-- Tracks -->
|
||||
<record id="base.res_partner_address_16" model="res.partner">
|
||||
<field name="website">http://facebook.com/openerp</field>
|
||||
<field name="website">http://facebook.com/odoo</field>
|
||||
<field name="website_description" type="xml">
|
||||
<p>
|
||||
Ayaan has in the IT sector <b>since 20 years</b>. He
|
||||
@@ -73,5 +72,4 @@
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
</odoo>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="event_sponsor_type1" model="event.sponsor.type">
|
||||
@@ -24,4 +24,4 @@
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
</odoo>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<record id="event_track_location5" model="event.track.location">
|
||||
<field name="name">Le Foyer du lac</field>
|
||||
@@ -29,7 +29,7 @@
|
||||
<field eval="[(4, ref('base.res_partner_2')),(4, ref('base.res_partner_3'))]" name="speaker_ids"/>
|
||||
<field name="color">3</field>
|
||||
<field name="state">draft</field>
|
||||
|
||||
|
||||
</record>
|
||||
<record id="event_track2" model="event.track">
|
||||
<field name="name">How to integrate hardware materials with the Odoo point of sale.</field>
|
||||
@@ -322,4 +322,4 @@
|
||||
<field name="state">confirmed</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
</odoo>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="event_track_public" model="ir.rule">
|
||||
@@ -14,4 +14,4 @@
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
</odoo>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
submit talks and speakers. Organize the validation process
|
||||
of every talk, and schedule easily.
|
||||
</p><p>
|
||||
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.
|
||||
</p>
|
||||
@@ -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.
|
||||
</p><p>
|
||||
Sell sponsorship packages online through the OpenERP eCommerce for
|
||||
Sell sponsorship packages online through the Odoo eCommerce for
|
||||
a full sales cycle integration.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<odoo>
|
||||
|
||||
<template id="assets_frontend" inherit_id="website.assets_frontend" name="Website Event Track Assets">
|
||||
<xpath expr="." position="inside">
|
||||
@@ -145,7 +144,7 @@
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<p class="mt8"><t t-esc="html2text(track.description or '')[0:500]"/><t t-if="track.description">...</t></p>
|
||||
<p class="mt8"><t t-esc="html2plaintext(track.description or '')[0:500]"/><t t-if="track.description">...</t></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -282,7 +281,7 @@
|
||||
<div t-if="event.twitter_hashtag" class="mt16">
|
||||
<p><strong>Participate on Twitter</strong></p>
|
||||
<p class="text-muted">
|
||||
Find out what people see and say about this event,
|
||||
Find out what people see and say about this event,
|
||||
and join the conversation.
|
||||
</p>
|
||||
<p><strong>Use this tag:
|
||||
@@ -460,5 +459,4 @@
|
||||
</ul>
|
||||
</template>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
</odoo>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<odoo>
|
||||
|
||||
<!-- Event Tracks -->
|
||||
<record model="ir.ui.view" id="view_event_track_kanban">
|
||||
@@ -172,11 +171,12 @@
|
||||
<field name="res_model">event.track</field>
|
||||
<field name="view_mode">kanban,tree,form,calendar,graph</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to add a track.
|
||||
</p><p>
|
||||
Tracks define the agenda of your event. These can bea talk, a round table, a meeting, etc.
|
||||
</p></field>
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to add a track.
|
||||
</p><p>
|
||||
Tracks define the agenda of your event. These can bea talk, a round table, a meeting, etc.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_event_track_from_event">
|
||||
@@ -186,14 +186,20 @@ Click to add a track.
|
||||
<field name="view_mode">kanban,tree,form,calendar,graph</field>
|
||||
<field name="context">{'search_default_event_id': active_id, 'default_event_id': active_id, 'group_by': 'state'}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to add a track.
|
||||
</p><p>
|
||||
Tracks define the agenda of your event. These can be a talk, a round table, a meeting, etc.
|
||||
</p></field>
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to add a track.
|
||||
</p><p>
|
||||
Tracks define the agenda of your event. These can be a talk, a round table, a meeting, etc.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Event Tracks" id="menu_event_track" action="action_event_track" parent="event.event_main_menu" groups="base.group_no_one"/>
|
||||
<menuitem
|
||||
id="menu_event_track"
|
||||
name="Event Tracks"
|
||||
action="action_event_track"
|
||||
parent="event.event_main_menu"
|
||||
groups="base.group_no_one"/>
|
||||
|
||||
<!-- EVENTS/CONFIGURATION/EVENT locations -->
|
||||
<record model="ir.ui.view" id="view_event_location_form">
|
||||
@@ -209,6 +215,7 @@ Tracks define the agenda of your event. These can be a talk, a round table, a me
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_event_location_tree">
|
||||
<field name="name">Event Location</field>
|
||||
<field name="model">event.track.location</field>
|
||||
@@ -218,12 +225,17 @@ Tracks define the agenda of your event. These can be a talk, a round table, a me
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_event_track_location">
|
||||
<field name="name">Event Locations</field>
|
||||
<field name="res_model">event.track.location</field>
|
||||
</record>
|
||||
<menuitem name="Locations" id="menu_event_track_location"
|
||||
action="action_event_track_location" parent="event.menu_event_configuration"/>
|
||||
|
||||
<menuitem
|
||||
id="menu_event_track_location"
|
||||
name="Locations"
|
||||
action="action_event_track_location"
|
||||
parent="event.menu_event_configuration"/>
|
||||
|
||||
<!-- EVENTS/CONFIGURATION/EVENT Sponsor Types -->
|
||||
<record model="ir.ui.view" id="view_event_sponsor_type_form">
|
||||
@@ -240,6 +252,7 @@ Tracks define the agenda of your event. These can be a talk, a round table, a me
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_event_sponsor_type_tree">
|
||||
<field name="name">Sponsor Types</field>
|
||||
<field name="model">event.sponsor.type</field>
|
||||
@@ -250,11 +263,15 @@ Tracks define the agenda of your event. These can be a talk, a round table, a me
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_event_sponsor_type">
|
||||
<field name="name">Sponsor Types</field>
|
||||
<field name="res_model">event.sponsor.type</field>
|
||||
</record>
|
||||
<menuitem id="menu_event_sponsor_type" action="action_event_sponsor_type"
|
||||
|
||||
<menuitem
|
||||
id="menu_event_sponsor_type"
|
||||
action="action_event_sponsor_type"
|
||||
parent="event.menu_event_configuration"/>
|
||||
|
||||
<!-- EVENT.SPONSOR VIEWS -->
|
||||
@@ -302,6 +319,7 @@ Tracks define the agenda of your event. These can be a talk, a round table, a me
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_event_track_tag_tree">
|
||||
<field name="name">Tracks Tag</field>
|
||||
<field name="model">event.track.tag</field>
|
||||
@@ -311,12 +329,15 @@ Tracks define the agenda of your event. These can be a talk, a round table, a me
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_event_track_tag">
|
||||
<field name="name">Track Tags</field>
|
||||
<field name="res_model">event.track.tag</field>
|
||||
</record>
|
||||
<menuitem id="menu_event_track_tag" action="action_event_track_tag"
|
||||
|
||||
<menuitem
|
||||
id="menu_event_track_tag"
|
||||
action="action_event_track_tag"
|
||||
parent="event.menu_event_configuration"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
</odoo>
|
||||
|
||||
Reference in New Issue
Block a user