[FIX] base_contact: enable PL/pgSQL before using it
lp bug: https://launchpad.net/bugs/701985 fixed bzr revid: odo@openerp.com-20110113142904-zl7gb9cywkhd8687
This commit is contained in:
parent
8634d6057a
commit
9d3113fa43
|
@ -37,25 +37,30 @@ class base_contact_installer(osv.osv_memory):
|
|||
"""
|
||||
obj = self.pool.get("base.contact.installer").browse(cr, uid, uid, context=context)
|
||||
if obj.migrate:
|
||||
cr.execute("""DROP TRIGGER IF EXISTS contactjob on res_partner_contact;
|
||||
CREATE OR REPLACE FUNCTION add_to_job() RETURNS TRIGGER AS $contactjob$
|
||||
# Enable PL/pgSQL if not enabled yet in the database
|
||||
cr.execute("SELECT 1 FROM pg_language WHERE lanname = 'plpgsql'")
|
||||
if not cr.fetchone():
|
||||
cr.execute("CREATE LANGUAGE plpgsql;")
|
||||
|
||||
cr.execute("""DROP TRIGGER IF EXISTS contactjob on res_partner_contact;
|
||||
CREATE OR REPLACE FUNCTION add_to_job() RETURNS TRIGGER AS $contactjob$
|
||||
DECLARE
|
||||
new_name varchar;
|
||||
new_phonenum varchar;
|
||||
BEGIN
|
||||
IF(TG_OP='INSERT') THEN
|
||||
INSERT INTO res_partner_job(contact_id, address_id, function, state) VALUES(NEW.id, NEW.website::integer,NEW.first_name, 'current');
|
||||
UPDATE res_partner_contact set first_name=Null, website=Null, active=True where id=NEW.id;
|
||||
IF(TG_OP='INSERT') THEN
|
||||
INSERT INTO res_partner_job(contact_id, address_id, function, state) VALUES(NEW.id, NEW.website::integer,NEW.first_name, 'current');
|
||||
UPDATE res_partner_contact set first_name=Null, website=Null, active=True where id=NEW.id;
|
||||
END IF;
|
||||
RETURN NEW;
|
||||
END;
|
||||
$contactjob$ LANGUAGE plpgsql;
|
||||
CREATE TRIGGER contactjob AFTER INSERT ON res_partner_contact FOR EACH ROW EXECUTE PROCEDURE add_to_job();""")
|
||||
$contactjob$ LANGUAGE plpgsql;
|
||||
CREATE TRIGGER contactjob AFTER INSERT ON res_partner_contact FOR EACH ROW EXECUTE PROCEDURE add_to_job();""")
|
||||
|
||||
cr.execute("INSERT into res_partner_contact (name, title, email, first_name, website) (SELECT coalesce(name, 'Noname'), title, email, function , to_char(id, '99999999') from res_partner_address)")
|
||||
|
||||
cr.execute("DROP TRIGGER IF EXISTS contactjob on res_partner_contact")
|
||||
|
||||
|
||||
cr.execute("DROP FUNCTION IF EXISTS add_to_job()")
|
||||
|
||||
base_contact_installer()
|
||||
|
|
Loading…
Reference in New Issue