[IMP] event, event_sale, website_event, website_event_sale : clear registration badge handeling
Now, - event contains the HTML badge fields and the report (and report templates) to print badges - event_sale add the ticket type on badges - website_event allow the edition of badge throught website editor. When the editor will be available in backend, event will be allow to edit badge report, so the action should be moved from website_Event to event module.
This commit is contained in:
committed by
Jérome Maes
parent
3daebb6cca
commit
68dbacac1e
@@ -25,13 +25,13 @@ Key Features
|
||||
'wizard/event_confirm_view.xml',
|
||||
'event_view.xml',
|
||||
'report/report_event_registration_view.xml',
|
||||
'report/event_event_templates.xml',
|
||||
'report/event_event_reports.xml',
|
||||
'event_data.xml',
|
||||
'event_tip_data.xml',
|
||||
'res_config_view.xml',
|
||||
'email_template.xml',
|
||||
'views/event.xml',
|
||||
'event_report.xml',
|
||||
'views/report_registrationbadge.xml',
|
||||
'email_template.xml',
|
||||
],
|
||||
'demo': [
|
||||
'event_demo.xml',
|
||||
|
||||
@@ -2,6 +2,22 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="event_registration_mail_template_badge" model="mail.template">
|
||||
<field name="name">Event: Registration Badge</field>
|
||||
<field name="model_id" ref="event.model_event_registration"/>
|
||||
<field name="email_from">${(object.event_id.organizer_id.email or object.event_id.user_id.email or '')|safe}</field>
|
||||
<field name="email_to" >${object.email|safe}</field>
|
||||
<field name="subject">Your badge for ${object.event_id.name}</field>
|
||||
<field name="auto_delete" eval="True"/>
|
||||
<field name="report_template" ref="report_event_registration_badge"/>
|
||||
<field name="report_name">badge_of_${(object.event_id.name or '').replace('/','_')}</field>
|
||||
<field name="body_html"><![CDATA[<p>Hello ${object.name},</p>
|
||||
<p>We confirm that your subscription to the event ${object.event_id.name} has been recorded.
|
||||
Please, Find your <b>Event Badge</b> attached with this mail.</p>
|
||||
<p>Thank you for your participation!</p>
|
||||
<p>Best regards</p>]]></field>
|
||||
</record>
|
||||
|
||||
<record id="event_subscription" model="mail.template">
|
||||
<field name="name">Event subscription</field>
|
||||
<field name="model_id" ref="event.model_event_registration"/>
|
||||
|
||||
@@ -168,6 +168,12 @@ class event_event(models.Model):
|
||||
description = fields.Html(
|
||||
string='Description', oldname='note', translate=True,
|
||||
readonly=False, states={'done': [('readonly', True)]})
|
||||
# badge fields
|
||||
badge_front = fields.Html(string='Badge Front')
|
||||
badge_back = fields.Html(string='Badge Back')
|
||||
badge_innerleft = fields.Html(string='Badge Innner Left')
|
||||
badge_innerright = fields.Html(string='Badge Inner Right')
|
||||
event_logo = fields.Html(string='Event Logo')
|
||||
|
||||
@api.multi
|
||||
@api.depends('name', 'date_begin', 'date_end')
|
||||
@@ -363,3 +369,30 @@ class event_registration(models.Model):
|
||||
if attendee.partner_id:
|
||||
attendee._message_add_suggested_recipient(recipients, partner=attendee.partner_id, reason=_('Customer'))
|
||||
return recipients
|
||||
|
||||
@api.multi
|
||||
def action_send_badge_email(self):
|
||||
""" Open a window to compose an email, with the template - 'event_badge'
|
||||
message loaded by default
|
||||
"""
|
||||
self.ensure_one()
|
||||
template = self.env.ref('event.event_registration_mail_template_badge')
|
||||
compose_form = self.env.ref('mail.email_compose_message_wizard_form')
|
||||
ctx = dict(
|
||||
default_model='event.registration',
|
||||
default_res_id=self.id,
|
||||
default_use_template=bool(template),
|
||||
default_template_id=template.id,
|
||||
default_composition_mode='comment',
|
||||
)
|
||||
return {
|
||||
'name': _('Compose Email'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form',
|
||||
'res_model': 'mail.compose.message',
|
||||
'views': [(compose_form.id, 'form')],
|
||||
'view_id': compose_form.id,
|
||||
'target': 'new',
|
||||
'context': ctx,
|
||||
}
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="paperformat_euro_lowmargin" model="report.paperformat">
|
||||
<field name="name">European A4 low margin</field>
|
||||
<field name="default" eval="True" />
|
||||
<field name="format">A4</field>
|
||||
<field name="page_height">0</field>
|
||||
<field name="page_width">0</field>
|
||||
<field name="orientation">Portrait</field>
|
||||
<field name="margin_top">5</field>
|
||||
<field name="margin_bottom">5</field>
|
||||
<field name="margin_left">5</field>
|
||||
<field name="margin_right">5</field>
|
||||
<field name="header_line" eval="False" />
|
||||
<field name="header_spacing">0</field>
|
||||
<field name="dpi">80</field>
|
||||
</record>
|
||||
|
||||
<report id="action_report_registration_badge" model="event.registration"
|
||||
string="Badge" report_type="qweb-html"
|
||||
name="event.report_registration_badge"
|
||||
file="event.report_registration_badge"
|
||||
paperformat="event.paperformat_euro_lowmargin"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -7,7 +7,7 @@
|
||||
<field name="model">event.event</field>
|
||||
<field name="mode">form</field>
|
||||
<field name="trigger_selector">.oe_form_buttons_view:visible,div.oe_right.oe_button_box > button</field>
|
||||
<field name="highlight_selector">div.oe_right.oe_button_box:visible > button:nth-child(1)</field>
|
||||
<field name="highlight_selector">div.oe_right.oe_button_box:visible > button.oe_event_attendee_button</field>
|
||||
<field name="placement">bottom</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<field name="res_model">event.type</field>
|
||||
<field name="view_type">form</field>
|
||||
</record>
|
||||
|
||||
|
||||
<menuitem id="menu_event_configuration" name="Event" parent="base.menu_config"
|
||||
sequence="14"/>
|
||||
<menuitem name="Events Types" id="menu_event_type" action="action_event_type" parent="menu_event_configuration" groups="base.group_no_one"/>
|
||||
@@ -70,10 +70,10 @@
|
||||
<h1><field name="name"/></h1>
|
||||
</div>
|
||||
<div class="oe_right oe_button_box" groups="base.group_user">
|
||||
<button name="%(event.act_event_registration_from_event)d"
|
||||
type="action"
|
||||
class="oe_stat_button oe_inline"
|
||||
icon="fa-github"
|
||||
<button name="%(event.act_event_registration_from_event)d"
|
||||
type="action"
|
||||
class="oe_stat_button oe_inline oe_event_attendee_button"
|
||||
icon="fa-github"
|
||||
help="Register with this event">
|
||||
<field name="seats_reserved" widget="statinfo" string="Attendees"/>
|
||||
</button>
|
||||
@@ -302,6 +302,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Event Registration">
|
||||
<header>
|
||||
<button name="action_send_badge_email" string="Send by Email" type="object" states="open,done" class="oe_highlight"/>
|
||||
<button name="confirm_registration" string="Confirm" states="draft" type="object" class="oe_highlight"/>
|
||||
<button name="button_reg_close" string="Attended" states="open" type="object" class="oe_highlight"/>
|
||||
<button string="Set To Unconfirmed" name="do_draft" states="cancel,done" type="object" />
|
||||
@@ -451,7 +452,7 @@
|
||||
<field name="res_model">event.mail</field>
|
||||
<field name="view_type">form</field>
|
||||
</record>
|
||||
|
||||
|
||||
<menuitem name="Events Mail Schedulers" id="menu_event_type" action="action_event_mail" parent="menu_event_configuration" groups="base.group_no_one"/>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<record id="paperformat_euro_lowmargin" model="report.paperformat">
|
||||
<field name="name">European A4 low margin</field>
|
||||
<field name="default" eval="True"/>
|
||||
<field name="format">A4</field>
|
||||
<field name="page_height">0</field>
|
||||
<field name="page_width">0</field>
|
||||
<field name="orientation">Portrait</field>
|
||||
<field name="margin_top">5</field>
|
||||
<field name="margin_bottom">5</field>
|
||||
<field name="margin_left">5</field>
|
||||
<field name="margin_right">5</field>
|
||||
<field name="header_line" eval="False"/>
|
||||
<field name="header_spacing">0</field>
|
||||
<field name="dpi">80</field>
|
||||
</record>
|
||||
|
||||
<report
|
||||
id="report_event_registration_badge"
|
||||
model="event.registration"
|
||||
string="Registration Badge"
|
||||
report_type="qweb-pdf"
|
||||
name="event.event_registration_report_template_badge"
|
||||
file="event.event_registration_report_template_badge"
|
||||
paperformat="event.paperformat_euro_lowmargin"/>
|
||||
|
||||
<report
|
||||
id="report_event_event_badge"
|
||||
model="event.event"
|
||||
string="Event Badge"
|
||||
report_type="qweb-html"
|
||||
name="event.event_event_report_template_badge"
|
||||
file="event.event_event_report_template_badge"
|
||||
menu="False"
|
||||
paperformat="event.paperformat_euro_lowmargin"/>
|
||||
|
||||
</odoo>
|
||||
@@ -0,0 +1,104 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<!-- template use to render a Registration Badge -->
|
||||
<template id="event_registration_report_template_badge">
|
||||
<t t-call="report.html_container">
|
||||
<t t-foreach="docs" t-as="o">
|
||||
<div class="page">
|
||||
<div class="row">
|
||||
<!-- Front -->
|
||||
<div class="col-xs-6 text-center" style="padding-left:7mm; border-left:1px dashed black; height: 149mm; -webkit-transform:rotate(180deg); padding-top: 7mm">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<t t-if="o.event_id.event_logo">
|
||||
<div t-field="o.event_id.event_logo"/>
|
||||
</t>
|
||||
<span t-if="not o.event_id.event_logo and o.event_id.organizer_id.company_id.logo_web and o.event_id.organizer_id.is_company">
|
||||
<img t-att-src="'data:image/png;base64,%s' % o.event_id.organizer_id.company_id.logo_web" style="max-height:1cm; max-width:4cm;"/>
|
||||
</span>
|
||||
<h5 t-field="o.event_id.name"/>
|
||||
<h5>( <i class="fa fa-clock-o"></i> <span itemprop="startDate" t-field="o.event_id.date_begin" t-field-options='{"hide_seconds":"True"}'> </span> <i>to</i> <span itemprop="endDate" t-field="o.event_id.date_end" t-field-options='{"hide_seconds":"True"}'> </span> )</h5>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 text-center" id="o_event_name">
|
||||
<small>
|
||||
<h3 t-field="o.name"/>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div t-field="o.event_id.badge_front"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Back -->
|
||||
<div class="col-xs-6" style="padding-right:7mm; height: 149mm; -webkit-transform:rotate(180deg); padding-top: 2mm;">
|
||||
<span t-field="o.event_id.badge_back"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<!-- Inner left -->
|
||||
<div class="col-xs-6 text-center" style="padding-right:7mm; border-top:1px dashed black; height: 148mm;">
|
||||
<span t-field="o.event_id.badge_innerleft"/>
|
||||
</div>
|
||||
<!-- Inner right -->
|
||||
<div class="col-xs-6 text-center" style="border-left:1px dashed black; border-top:1px dashed black; height: 148mm; text-center">
|
||||
<span t-field="o.event_id.badge_innerright"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
|
||||
<!-- template use to edit Event Badget (allow to set the HTML badge fields) -->
|
||||
<template id="event_event_report_template_badge">
|
||||
<t t-call="report.html_container">
|
||||
<div class="page">
|
||||
<t t-foreach="docs" t-as="event">
|
||||
<div class="row">
|
||||
<!-- Front -->
|
||||
<div class="col-xs-6 text-center" style="padding-left:7mm; border-right:1px dashed black; height: 149mm; padding-top: 7mm">
|
||||
<div class="row" t-ignore="true">
|
||||
<div class="col-xs-12">
|
||||
<span t-if="event.organizer_id.is_company and event.organizer_id.company_id.logo_web">
|
||||
<div t-field="event.event_logo">
|
||||
<img t-att-src="'data:image/png;base64,%s' % event.organizer_id.company_id.logo_web" style="max-height:1cm; max-width:4cm;"/>
|
||||
</div>
|
||||
</span>
|
||||
<h4 t-field="event.name"/>
|
||||
<h5>( <i class="fa fa-clock-o"></i> <span itemprop="startDate" t-field="event.date_begin" t-field-options='{"hide_seconds":"True"}'> </span> <i>to</i> <span itemprop="endDate" t-field="event.date_end" t-field-options='{"hide_seconds":"True"}'> </span> )</h5>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" t-ignore="true">
|
||||
<div class="col-xs-12 text-center" id="o_event_attendee_name">
|
||||
<small><h3>Attendee Name</h3></small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div t-field="event.badge_front"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Back -->
|
||||
<div class="col-xs-6" style="padding-right:7mm; height: 149mm; padding-top: 2mm;">
|
||||
<div t-field="event.badge_back"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<!-- Inner left -->
|
||||
<div class="col-xs-6 text-center" style="padding-right:7mm; border-top:1px dashed black; height: 148mm;">
|
||||
<div t-field="event.badge_innerleft"/>
|
||||
</div>
|
||||
<!-- Inner right -->
|
||||
<div class="col-xs-6 text-center" style="border-left:1px dashed black; border-top:1px dashed black; height: 148mm; text-center">
|
||||
<div t-field="event.badge_innerright"/>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
@@ -1,39 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<template id="report_registration_badge">
|
||||
<t t-call="report.html_container">
|
||||
<t t-foreach="docs" t-as="o">
|
||||
<div class="page">
|
||||
<div class="row" style="border-bottom:1px dashed black;">
|
||||
<div class="col-xs-6 text-center" style="padding-right:7mm; border-right:1px dashed black; height: 147mm; padding-top: 7mm">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<span t-if="o.event_id.organizer_id.company_id.logo_web and o.event_id.organizer_id.is_company">
|
||||
<img t-att-src="'data:image/png;base64,%s' % o.event_id.organizer_id.company_id.logo_web" style="max-height:1cm; max-width:4cm;"/>
|
||||
</span>
|
||||
<h4 t-field="o.event_id.name"/>
|
||||
<h5>( <i class="fa fa-clock-o"></i> <span itemprop="startDate" t-field="o.event_id.date_begin" t-field-options='{"hide_seconds":"True"}'> </span> <i>to</i> <span itemprop="endDate" t-field="o.event_id.date_end" t-field-options='{"hide_seconds":"True"}'> </span> )</h5>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 text-center">
|
||||
<small><h3 t-if="o.partner_id.is_company == True" t-field="o.partner_id.name"/><h5 t-field="o.name"/></small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 mt32 text-center" style="background: lightgrey;">
|
||||
<h3>FREE TICKET</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Inner right -->
|
||||
<div class="col-xs-6 text-center" style="padding-left:7mm; height: 149mm; padding-top: 2mm;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</t>
|
||||
</template>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -25,7 +25,7 @@ this event.
|
||||
'views/product.xml',
|
||||
'views/sale_order.xml',
|
||||
'event_sale_data.xml',
|
||||
'views/report_registrationbadge.xml',
|
||||
'report/event_event_templates.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'wizard/event_edit_registration.xml',
|
||||
],
|
||||
|
||||
@@ -13,10 +13,6 @@ class event_event(models.Model):
|
||||
'event.event.ticket', 'event_id', string='Event Ticket',
|
||||
default=lambda rec: rec._default_tickets(), copy=True)
|
||||
|
||||
badge_back = fields.Html('Badge Back', translate=True, states={'done': [('readonly', True)]})
|
||||
badge_innerleft = fields.Html('Badge Innner Left', translate=True, states={'done': [('readonly', True)]})
|
||||
badge_innerright = fields.Html('Badge Inner Right', translate=True, states={'done': [('readonly', True)]})
|
||||
|
||||
@api.model
|
||||
def _default_tickets(self):
|
||||
try:
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template id="event_registration_report_template_badge" inherit_id="event.event_registration_report_template_badge">
|
||||
<xpath expr="//div[@id='o_event_name']" position="after">
|
||||
<div t-if="o.event_ticket_id" class="col-xs-12 mt32 text-center" style="background: lightgrey; height: 65px">
|
||||
<h3><span t-field="o.event_ticket_id"/></h3>
|
||||
</div>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="event_event_report_template_badge" inherit_id="event.event_event_report_template_badge">
|
||||
<xpath expr="//div[@id='o_event_attendee_name']" position="after">
|
||||
<div t-if="bool(len(event.event_ticket_ids))" class="col-xs-12 mt16 text-center" style="background: lightgrey; height: 65px;" t-ignore="true">
|
||||
<h3>Ticket Type</h3>
|
||||
</div>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
@@ -1,62 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<template id="event.report_registration_badge">
|
||||
<t t-call="report.html_container">
|
||||
<t t-foreach="docs" t-as="o">
|
||||
<div class="page">
|
||||
<div class="row">
|
||||
<!-- Inner right -->
|
||||
<div class="col-xs-6 text-center" style="padding-left:7mm; border-left:1px dashed black; height: 149mm; -webkit-transform:rotate(180deg); padding-top: 7mm">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<span t-if="o.event_id.organizer_id.company_id.logo_web and o.event_id.organizer_id.is_company">
|
||||
<img t-att-src="'data:image/png;base64,%s' % o.event_id.organizer_id.company_id.logo_web" style="max-height:1cm; max-width:4cm;"/>
|
||||
</span>
|
||||
<h5 t-field="o.event_id.name"/>
|
||||
<h5>( <i class="fa fa-clock-o"></i> <span itemprop="startDate" t-field="o.event_id.date_begin" t-field-options='{"hide_seconds":"True"}'> </span> <i>to</i> <span itemprop="endDate" t-field="o.event_id.date_end" t-field-options='{"hide_seconds":"True"}'> </span> )</h5>
|
||||
</div>
|
||||
<div class="col-xs-12 text-center">
|
||||
<t t-if="o.event_ticket_id">
|
||||
<div>
|
||||
<strong><span t-field="o.event_ticket_id"/></strong>
|
||||
</div>
|
||||
</t>
|
||||
<div>
|
||||
<t t-if="o.partner_id.is_company == True">
|
||||
<small>
|
||||
<h3 t-field="o.partner_id.name"/>
|
||||
<h5 t-field="o.name"/>
|
||||
</small>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 mt32 text-center" style="background: lightgrey;">
|
||||
<h3>Status</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Inner left -->
|
||||
<div class="col-xs-6" style="padding-right:7mm; height: 149mm; -webkit-transform:rotate(180deg); padding-top: 2mm;">
|
||||
<span t-field="o.event_id.badge_back"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<!-- Back -->
|
||||
<div class="col-xs-6 text-center" style="padding-right:7mm; border-top:1px dashed black; height: 148mm;">
|
||||
<span t-field="o.event_id.badge_innerleft"/>
|
||||
</div>
|
||||
|
||||
<!-- Front -->
|
||||
<div class="col-xs-6 text-center" style="border-left:1px dashed black; border-top:1px dashed black; height: 148mm; text-center">
|
||||
<span t-field="o.event_id.badge_innerright"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</t>
|
||||
</template>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -994,5 +994,8 @@ div.carousel .item.text_only .container > .carousel-image {
|
||||
#oe_main_menu_navbar .navbar-nav.navbar-right:last-child {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
.container nav#oe_main_menu_navbar {
|
||||
position: inherit;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=website.css.map */
|
||||
|
||||
@@ -791,3 +791,7 @@ div.carousel
|
||||
font-size: 13px
|
||||
.navbar-nav.navbar-right:last-child
|
||||
margin-right: 0 !important
|
||||
|
||||
.container
|
||||
nav#oe_main_menu_navbar
|
||||
position: inherit
|
||||
|
||||
@@ -93,3 +93,13 @@ class event(models.Model):
|
||||
elif 'website_published' in init_values and not self.website_published:
|
||||
return 'website_event.mt_event_unpublished'
|
||||
return super(event, self)._track_subtype(init_values)
|
||||
|
||||
@api.multi
|
||||
def action_open_badge_editor(self):
|
||||
""" open the event badge editor : redirect to the report page of event badge report """
|
||||
self.ensure_one()
|
||||
return {
|
||||
'type': 'ir.actions.act_url',
|
||||
'target': 'new',
|
||||
'url': '/report/html/%s/%s' % ('event.event_event_report_template_badge', self.id),
|
||||
}
|
||||
|
||||
@@ -18,6 +18,15 @@
|
||||
<xpath expr="//field[@name='organizer_id']" position="after">
|
||||
<field name="twitter_hashtag"/>
|
||||
</xpath>
|
||||
<xpath expr="//div[@class='oe_right oe_button_box']/button" position="before">
|
||||
<button name="action_open_badge_editor"
|
||||
type="object"
|
||||
class="oe_stat_button oe_inline"
|
||||
icon="fa-newspaper-o"
|
||||
string="Badge"
|
||||
help="Edit Event Badge">
|
||||
</button>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user