social/mail_tracking/hooks.py

42 lines
1.2 KiB
Python
Raw Normal View History

2018-03-19 16:41:26 +01:00
# Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import logging
2019-11-18 11:46:59 +01:00
from psycopg2.extensions import AsIs
_logger = logging.getLogger(__name__)
def column_exists(cr, table, column):
2019-11-18 11:46:59 +01:00
cr.execute(
"""
SELECT column_name
FROM information_schema.columns
2019-11-18 11:46:59 +01:00
WHERE table_name = %s AND column_name = %s""",
(table, column),
)
return bool(cr.fetchall())
def column_add_with_value(cr, table, column, field_type, value):
if not column_exists(cr, table, column):
2019-11-18 11:46:59 +01:00
cr.execute(
"""
ALTER TABLE %s
2019-11-18 11:46:59 +01:00
ADD COLUMN %s %s""",
(AsIs(table), AsIs(column), AsIs(field_type)),
)
cr.execute(
"""
UPDATE %s SET %s = %s""",
(AsIs(table), AsIs(column), value),
)
def pre_init_hook(cr):
2019-11-18 11:46:59 +01:00
_logger.info("Creating res.partner.tracking_emails_count column " "with value 0")
column_add_with_value(cr, "res_partner", "tracking_emails_count", "integer", 0)
_logger.info("Creating res.partner.email_score column " "with value 50.0")
column_add_with_value(cr, "res_partner", "email_score", "double precision", 50.0)