[REF] event: remove origin field of registration

Origin is a char field holding the registration "source name". Its only use
is to copy the sale order name when registration is linked to a sale order
in event_sale. As we can filter / group / search on sale order or sale order
line directly instead of the origin there is no need to keep this char field.
If necessary to some internal reasons it can simply be added through studio.

LINKS

Task ID 2212297
Community PR odoo/odoo#47229
This commit is contained in:
Thibault Delavallée
2020-03-23 10:07:32 +00:00
parent baab530737
commit 30af656e1a
6 changed files with 5 additions and 14 deletions
@@ -16,9 +16,6 @@ class EventRegistration(models.Model):
_order = 'id desc'
# event
origin = fields.Char(
string='Source Document', readonly=True,
help="Reference of the document that created the registration, for example a sales order")
event_id = fields.Many2one(
'event.event', string='Event', required=True,
readonly=True, states={'draft': [('readonly', False)]})
+1 -2
View File
@@ -518,7 +518,6 @@
<field name="mobile" optional="hide"/>
<field name="event_id"/>
<field name="event_ticket_id" domain="[('event_id', '=', event_id)]"/>
<field name="origin" optional="hide"/>
<field name="state" readonly="0"/>
<field name="company_id" groups="base.group_multi_company" optional="hide"/>
<field name="message_needaction" invisible="1"/>
@@ -649,7 +648,7 @@
<field name="arch" type="xml">
<search string="Event Registration">
<field name="id" string="Registration ID"/>
<field name="name" string="Participant" filter_domain="['|', '|', ('name', 'ilike', self), ('email', 'ilike', self), ('origin', 'ilike', self)]"/>
<field name="name" string="Participant" filter_domain="['|', '|', ('name', 'ilike', self), ('email', 'ilike', self)]"/>
<filter string="Ongoing Events" name="filter_is_ongoing" domain="[('event_id.is_ongoing', '=', True)]"/>
<separator/>
<filter string="Unread Messages" name="message_needaction" domain="[('message_needaction','=',True)]"/>
@@ -9,9 +9,7 @@ class EventRegistration(models.Model):
_inherit = 'event.registration'
is_paid = fields.Boolean('Is Paid')
# in addition to origin generic fields, add real relational fields to correctly
# handle attendees linked to sales orders and their lines
# TDE FIXME: maybe add an onchange on sale_order_id + origin
# TDE FIXME: maybe add an onchange on sale_order_id
sale_order_id = fields.Many2one('sale.order', string='Source Sales Order', ondelete='cascade')
sale_order_line_id = fields.Many2one('sale.order.line', string='Sales Order Line', ondelete='cascade')
campaign_id = fields.Many2one('utm.campaign', 'Campaign', related="sale_order_id.campaign_id", store=True)
@@ -32,7 +30,7 @@ class EventRegistration(models.Model):
)
vals.update(so_line_vals)
res = super(EventRegistration, self).create(vals)
if res.origin or res.sale_order_id:
if res.sale_order_id:
res.message_post_with_view(
'mail.message_origin_link',
values={'self': res, 'origin': res.sale_order_id},
@@ -59,7 +57,6 @@ class EventRegistration(models.Model):
'partner_id': so_line.order_id.partner_id.id,
'event_id': so_line.event_id.id,
'event_ticket_id': so_line.event_ticket_id.id,
'origin': so_line.order_id.name,
'sale_order_id': so_line.order_id.id,
'sale_order_line_id': so_line.id,
}
+1 -1
View File
@@ -65,5 +65,5 @@ class EventSaleTest(common.TransactionCase):
# I click apply to create attendees
self.register_person.action_make_registration()
# I check if a registration is created
registrations = self.EventRegistration.search([('origin', '=', self.sale_order.name)])
registrations = self.EventRegistration.search([('sale_order_id', '=', self.sale_order.id)])
self.assertTrue(registrations, "The registration is not created.")
@@ -7,7 +7,7 @@
<field name="inherit_id" ref="event.view_event_registration_tree" />
<field name="arch" type="xml">
<field name="event_id" position="after">
<field name="origin"/>
<field name="sale_order_id"/>
</field>
</field>
</record>
@@ -41,7 +41,6 @@
<group name="event" position="after">
<group string="Origin" groups="base.group_no_one">
<field name="sale_order_id"/>
<field name="origin" attrs="{'invisible': [('sale_order_id', '!=', False)]}"/>
<field name="sale_order_line_id" readonly="1" attrs="{'invisible': [('sale_order_id', '=', False)]}"/>
</group>
<group string="Marketing" name="utm_link" groups="base.group_no_one">
@@ -85,7 +85,6 @@ class RegistrationEditorLine(models.TransientModel):
'phone': self.phone or self.editor_id.sale_order_id.partner_id.phone,
'mobile': self.mobile or self.editor_id.sale_order_id.partner_id.mobile,
'email': self.email or self.editor_id.sale_order_id.partner_id.email,
'origin': self.editor_id.sale_order_id.name,
'sale_order_id': self.editor_id.sale_order_id.id,
'sale_order_line_id': self.sale_order_line_id.id,
}