Skip to content

Commit d93139d

Browse files
committed
[IMP] - Make one migration from 12.0.1 to 12.0.4
[RMV] - Remove empty file [IMP] - Update no_update cron after migration [IMP] - move contract template recurrence info to line level [FIX] - Fix contract line model description [IMP] - Link contracts to analytic accounts [FIX] - Fix pylint [IMP] - Move chatter and attachments from analytic account to contract [IMP] - Move account_analytic_id to contract line level [IMP] - Improve version check in migration script [IMP] - Move contracts followers from analytic accounts [ADD] - Add mail.activity.mixin to contract.contract model remove data drop from migration scripts [12.0][FIX] - Fix _init_last_date_invoiced fix flake8 [ADD] - Update contributors list
1 parent a429b10 commit d93139d

File tree

12 files changed

+357
-230
lines changed

12 files changed

+357
-230
lines changed

contract/migrations/12.0.2.0.0/post-migration.py

Lines changed: 0 additions & 30 deletions
This file was deleted.

contract/migrations/12.0.2.0.0/pre-migration.py

Lines changed: 81 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,92 @@
33

44
import logging
55

6-
from odoo import SUPERUSER_ID, api
6+
from openupgradelib import openupgrade
77

88
_logger = logging.getLogger(__name__)
99

1010

11-
def migrate(cr, version):
11+
def _set_finished_contract(cr):
12+
_logger.info("set recurring_next_date to false for finished contract")
13+
openupgrade.logged_query(
14+
cr,
15+
"""
16+
UPDATE account_analytic_account
17+
SET recurring_next_date=NULL
18+
WHERE recurring_next_date > date_end
19+
""",
20+
)
21+
22+
23+
def _move_contract_recurrence_info_to_contract_line(cr):
24+
_logger.info("Move contract data to line level")
25+
openupgrade.logged_query(
26+
cr,
27+
"""
28+
ALTER TABLE account_analytic_invoice_line
29+
ADD COLUMN IF NOT EXISTS recurring_rule_type VARCHAR(255),
30+
ADD COLUMN IF NOT EXISTS recurring_invoicing_type VARCHAR(255),
31+
ADD COLUMN IF NOT EXISTS recurring_interval INTEGER,
32+
ADD COLUMN IF NOT EXISTS recurring_next_date DATE,
33+
ADD COLUMN IF NOT EXISTS date_start DATE,
34+
ADD COLUMN IF NOT EXISTS date_end DATE
35+
""",
36+
)
37+
38+
openupgrade.logged_query(
39+
cr,
40+
"""
41+
UPDATE account_analytic_invoice_line AS contract_line
42+
SET
43+
recurring_rule_type=contract.recurring_rule_type,
44+
recurring_invoicing_type=contract.recurring_invoicing_type,
45+
recurring_interval=contract.recurring_interval,
46+
recurring_next_date=contract.recurring_next_date,
47+
date_start=contract.date_start,
48+
date_end=contract.date_end
49+
FROM
50+
account_analytic_account AS contract
51+
WHERE
52+
contract.id=contract_line.analytic_account_id
53+
""",
54+
)
55+
56+
57+
def _move_contract_template_recurrence_info_to_contract_template_line(cr):
58+
_logger.info("Move contract template data to line level")
59+
openupgrade.logged_query(
60+
cr,
61+
"""
62+
ALTER TABLE account_analytic_contract_line
63+
ADD COLUMN IF NOT EXISTS recurring_rule_type VARCHAR(255),
64+
ADD COLUMN IF NOT EXISTS recurring_invoicing_type VARCHAR(255),
65+
ADD COLUMN IF NOT EXISTS recurring_interval INTEGER
66+
""",
67+
)
68+
69+
openupgrade.logged_query(
70+
cr,
71+
"""
72+
UPDATE account_analytic_contract_line AS contract_template_line
73+
SET
74+
recurring_rule_type=contract_template.recurring_rule_type,
75+
recurring_invoicing_type=contract_template.recurring_invoicing_type,
76+
recurring_interval=contract_template.recurring_interval
77+
FROM
78+
account_analytic_contract AS contract_template
79+
WHERE
80+
contract_template.id=contract_template_line.analytic_account_id
81+
""",
82+
)
83+
84+
85+
@openupgrade.migrate()
86+
def migrate(env, version):
1287
"""
1388
set recurring_next_date to false for finished contract
1489
"""
1590
_logger.info(">> Pre-Migration 12.0.2.0.0")
16-
with api.Environment(cr, SUPERUSER_ID, {}) as env:
17-
contracts = env["account.analytic.account"].search([])
18-
finished_contract = contracts.filtered(
19-
lambda c: not c.create_invoice_visibility
20-
)
21-
cr.execute(
22-
"UPDATE account_analytic_account set recurring_next_date=null "
23-
"where id in (%)" % ','.join(finished_contract.ids)
24-
)
91+
cr = env.cr
92+
_set_finished_contract(cr)
93+
_move_contract_recurrence_info_to_contract_line(cr)
94+
_move_contract_template_recurrence_info_to_contract_template_line(cr)

contract/migrations/12.0.3.0.0/post-migration.py

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)