Before this commit, every model having website_id would have the default `set null` as ondelete value for that field. Exception for `ir.ui.view` and `website.redirect` which are set to `cascade`. This meant that deleting a website would basically transform all its specific records into generic ones. That would lead to unwanted behavior, such as multiple `ir.attachment` with same URL, when 2 websites had been theme-customized. Deleting one of the website would result in later crashes when trying to open theme customization in the remaining website(s), since those website would find their specific scss custom attachment as well as the generic one from the deleted website. Probably more behavior might be problematic when deleting a website before this commit. To summarize the choice of this commit implementation, every model not existing outside website module are set to `cascade` (website.redirect, website.menu, product.wishlist..). The rest should be in restrict, as we don't want to delete a whole forum, blog or job, which should probably be managed case by case to decide what to do. Thus, restrict is a good choice to notify user of what should be handled. Some exception remains, ir.ui.view should be delete on cascade while sale.order should be set to null. opw-2038414 opw-2035249 closes odoo/odoo#35398 Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
20 lines
766 B
Python
20 lines
766 B
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import fields, models
|
|
|
|
|
|
class WebsiteTwitterTweet(models.Model):
|
|
_name = 'website.twitter.tweet'
|
|
_description = 'Website Twitter'
|
|
|
|
website_id = fields.Many2one('website', string='Website', ondelete='cascade')
|
|
screen_name = fields.Char(string='Screen Name')
|
|
tweet = fields.Text(string='Tweets')
|
|
|
|
# Twitter IDs are 64-bit unsigned ints, so we need to store them in
|
|
# unlimited precision NUMERIC columns, which can be done with a
|
|
# float field. Used digits=(0,0) to indicate unlimited.
|
|
# Using VARCHAR would work too but would have sorting problems.
|
|
tweet_id = fields.Float(string='Tweet ID', digits=(0, 0)) # Twitter
|