[IMP] event_sale: easier configuration of tickets, no more event_type_id on product as tickets define what you can sell
This commit is contained in:
@@ -3,7 +3,6 @@
|
||||
<record id="event_0_product" model="product.product">
|
||||
<field name="name">Open Days in Los Angeles</field>
|
||||
<field name="event_ok">True</field>
|
||||
<field name="event_type_id" ref="event.event_type_1"/>
|
||||
<field name="categ_id" ref="product.product_category_1"/>
|
||||
<field name="type">service</field>
|
||||
<field name="list_price">2500.0</field>
|
||||
@@ -16,7 +15,6 @@
|
||||
<record id="event_1_product" model="product.product">
|
||||
<field name="name">Functional Webinar</field>
|
||||
<field name="event_ok">True</field>
|
||||
<field name="event_type_id" ref="event.event_type_0"/>
|
||||
<field name="categ_id" ref="product.product_category_1"/>
|
||||
<field name="type">service</field>
|
||||
<field name="list_price">2500.0</field>
|
||||
@@ -29,7 +27,6 @@
|
||||
<record id="event_2_product" model="product.product">
|
||||
<field name="name">Conference on Business Applications</field>
|
||||
<field name="event_ok">True</field>
|
||||
<field name="event_type_id" ref="event.event_type_2"/>
|
||||
<field name="categ_id" ref="product.product_category_1"/>
|
||||
<field name="type">service</field>
|
||||
<field name="list_price">2500.0</field>
|
||||
@@ -46,7 +43,6 @@
|
||||
<record id="event_3_product" model="product.product">
|
||||
<field name="name">Technical Training</field>
|
||||
<field name="event_ok">True</field>
|
||||
<field name="event_type_id" ref="event.event_type_4"/>
|
||||
<field name="categ_id" ref="product.product_category_1"/>
|
||||
<field name="type">service</field>
|
||||
<field name="list_price">2500.0</field>
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
<field name="name">Event Registration</field>
|
||||
<field name="categ_id" ref="product.product_category_all"/>
|
||||
<field name="type">service</field>
|
||||
<field name="event_type_id" ref="event_sale.event_type"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -139,11 +139,6 @@ msgstr ""
|
||||
msgid "Event Tickets"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_sale_order_line_event_type_id
|
||||
msgid "Event Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: model:product.product,name:event_sale.event_1_product
|
||||
#: model:product.template,name:event_sale.event_1_product_product_template
|
||||
@@ -309,12 +304,6 @@ msgstr ""
|
||||
msgid "Seats used"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,help:event_sale.field_product_product_event_type_id
|
||||
#: model:ir.model.fields,help:event_sale.field_product_template_event_type_id
|
||||
msgid "Select event types so when we use this product in sales order lines, it will filter events of this type only."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.ui.view,arch_db:event_sale.view_event_registration_editor_form
|
||||
msgid "Skip"
|
||||
@@ -362,12 +351,6 @@ msgstr ""
|
||||
msgid "Tickets"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_product_product_event_type_id
|
||||
#: model:ir.model.fields,field_description:event_sale.field_product_template_event_type_id
|
||||
msgid "Type of Event"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_event_ticket_seats_unconfirmed
|
||||
msgid "Unconfirmed Seat Reservations"
|
||||
|
||||
@@ -36,8 +36,7 @@ class EventTicket(models.Model):
|
||||
name = fields.Char(string='Name', required=True, translate=True)
|
||||
event_id = fields.Many2one('event.event', string="Event", required=True, ondelete='cascade')
|
||||
product_id = fields.Many2one('product.product', string='Product',
|
||||
required=True, domain=[("event_type_id", "!=", False)],
|
||||
default=_default_product_id)
|
||||
required=True, domain=[("event_ok", "=", True)], default=_default_product_id)
|
||||
registration_ids = fields.One2many('event.registration', 'event_ticket_id', string='Registrations')
|
||||
price = fields.Float(string='Price', digits=dp.get_precision('Product Price'))
|
||||
deadline = fields.Date(string="Sales End")
|
||||
|
||||
@@ -8,8 +8,6 @@ class ProductTemplate(models.Model):
|
||||
|
||||
event_ok = fields.Boolean(string='Event Registration', help='Determine if a product needs '
|
||||
'to create automatically an event registration at the confirmation of a sales order line.')
|
||||
event_type_id = fields.Many2one('event.type', string='Type of Event', help='Select event types '
|
||||
'so when we use this product in sales order lines, it will filter events of this type only.')
|
||||
|
||||
@api.onchange('event_ok')
|
||||
def _onchange_event_ok(self):
|
||||
|
||||
@@ -24,9 +24,6 @@ class SaleOrderLine(models.Model):
|
||||
help="Choose an event and it will automatically create a registration for this event.")
|
||||
event_ticket_id = fields.Many2one('event.event.ticket', string='Event Ticket', help="Choose "
|
||||
"an event ticket and it will automatically create a registration for this event ticket.")
|
||||
# those 2 fields are used for dynamic domains and filled by onchange
|
||||
# TDE: really necessary ? ..
|
||||
event_type_id = fields.Many2one(related='product_id.event_type_id', string="Event Type")
|
||||
event_ok = fields.Boolean(related='product_id.event_ok')
|
||||
|
||||
@api.multi
|
||||
@@ -39,9 +36,8 @@ class SaleOrderLine(models.Model):
|
||||
|
||||
@api.onchange('product_id')
|
||||
def _onchange_product_id_event(self):
|
||||
values = {'event_type_id': False, 'event_ok': False}
|
||||
values = {'event_ok': False}
|
||||
if self.product_id.event_ok:
|
||||
values['event_type_id'] = self.product_id.event_type_id.id
|
||||
values['event_ok'] = self.product_id.event_ok
|
||||
self.update(values)
|
||||
|
||||
|
||||
@@ -15,7 +15,6 @@ class EventSaleTest(common.TransactionCase):
|
||||
'name': 'test_formation',
|
||||
'type': 'service',
|
||||
'event_ok': True,
|
||||
'event_type_id': 1,
|
||||
})
|
||||
|
||||
# I create an event from the same type than my product
|
||||
|
||||
@@ -11,9 +11,6 @@
|
||||
<label for="event_ok"/>
|
||||
</div>
|
||||
</div>
|
||||
<field name='type' position="after">
|
||||
<field name="event_type_id" attrs="{'invisible': [('event_ok', '=', False)]}"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
@@ -6,13 +6,11 @@
|
||||
<field name="inherit_id" ref="sale.view_order_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='order_line']//form//field[@name='product_id']" position="after">
|
||||
<field name="event_id" domain="['|', ('event_type_id','=', False),('event_type_id', '=', event_type_id),('date_end','>=',time.strftime('%Y-%m-%d 00:00:00'))]" attrs="{'invisible': [('event_ok', '=', False)],'required': [('event_ok', '!=', False)]}"/>
|
||||
<field name="event_ticket_id" domain="[('event_id', '=', event_id), ('seats_available', '>', 0)]" attrs="{'invisible': [('event_id', '=', False)], 'required': [('event_id', '!=', False)]}"/>
|
||||
<field name="event_type_id" invisible="1"/>
|
||||
<field name="event_id" domain="[('event_ticket_ids.product_id','=', product_id),('date_end','>=',time.strftime('%Y-%m-%d 00:00:00'))]" attrs="{'invisible': [('event_ok', '=', False)],'required': [('event_ok', '!=', False)]}"/>
|
||||
<field name="event_ticket_id" domain="[('event_id', '=', event_id), ('product_id','=',product_id), ('seats_available', '>', 0)]" attrs="{'invisible': [('event_ok', '=', False)], 'required': [('event_ok', '!=', False)]}"/>
|
||||
<field name="event_ok" invisible="1"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='order_line']//tree//field[@name='product_id']" position="after">
|
||||
<field name="event_type_id" invisible="1"/>
|
||||
<field name="event_ok" invisible="1"/>
|
||||
</xpath>
|
||||
</field>
|
||||
|
||||
@@ -42,7 +42,6 @@ class SaleOrder(models.Model):
|
||||
values['name'] = "%s\n%s" % (ticket.event_id.display_name, ticket.name)
|
||||
|
||||
# avoid writing related values that end up locking the product record
|
||||
values.pop('event_type_id', None)
|
||||
values.pop('event_ok', None)
|
||||
|
||||
return values
|
||||
|
||||
Reference in New Issue
Block a user