odoo-addon-openupgrade-scripts 16.0.1.0.3.276__py3-none-any.whl → 16.0.1.0.3.281__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ ---Models in module 'account_fleet'---
2
+ ---Fields in module 'account_fleet'---
3
+ ---XML records in module 'account_fleet'---
4
+ ---nothing has changed in this module--
@@ -0,0 +1,57 @@
1
+ # Copyright 2023 Tecnativa - Pilar Vargas
2
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
3
+ from openupgradelib import openupgrade
4
+
5
+ from odoo.tools.translate import _
6
+
7
+ _deleted_xml_records = [
8
+ "loyalty.sale_coupon_generate_rule",
9
+ ]
10
+
11
+
12
+ def convert_loyalty_program_rewards(env):
13
+ openupgrade.m2o_to_x2m(
14
+ env.cr, env["loyalty.program"], "loyalty_program", "reward_ids", "reward_id"
15
+ )
16
+
17
+
18
+ def convert_loyalty_program_rules(env):
19
+ openupgrade.m2o_to_x2m(
20
+ env.cr, env["loyalty.program"], "loyalty_program", "rule_ids", "rule_id"
21
+ )
22
+
23
+
24
+ def compute_portal_point_name(env):
25
+ """This is a computed field, but the _program_type_default_values method of the
26
+ loyalty module sets the following values in portal_point_name depending on the
27
+ program_type field. This is done in post so that the language context can be used."""
28
+ portal_point_names = {
29
+ "coupons": _("Coupon point(s)"),
30
+ "promotion": _("Promo point(s)"),
31
+ "gift_card": _("Gift Card"),
32
+ "loyalty": _("Loyalty point(s)"),
33
+ "ewallet": _("eWallet"),
34
+ "promo_code": _("Discount point(s)"),
35
+ "buy_x_get_y": _("Credit(s)"),
36
+ "next_order_coupons": _("Coupon point(s)"),
37
+ }
38
+ loyalty_programs = env["loyalty.program"].search([])
39
+ for program in loyalty_programs:
40
+ if program.program_type in portal_point_names:
41
+ translated_name = portal_point_names[program.program_type]
42
+ # By default when the module is installed it contains the terms in the
43
+ # language code "en_US".
44
+ program.with_context(lang="en_US").write(
45
+ {"portal_point_name": translated_name}
46
+ )
47
+
48
+
49
+ @openupgrade.migrate()
50
+ def migrate(env, version):
51
+ convert_loyalty_program_rewards(env)
52
+ convert_loyalty_program_rules(env)
53
+ compute_portal_point_name(env)
54
+ openupgrade.delete_records_safely_by_xml_id(
55
+ env,
56
+ _deleted_xml_records,
57
+ )
@@ -0,0 +1,835 @@
1
+ # Copyright 2023 Tecnativa - Pilar Vargas
2
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
3
+ from openupgradelib import openupgrade
4
+
5
+ _field_renames = [
6
+ ("coupon.program", "coupon_program", "promo_applicability", "applies_on"),
7
+ ("coupon.program", "coupon_program", "promo_code_usage", "trigger"),
8
+ ("coupon.program", "coupon_program", "maximum_use_number", "max_usage"),
9
+ ("coupon.reward", "coupon_reward", "reward_description", "description"),
10
+ ("coupon.reward", "coupon_reward", "discount_percentage", "discount"),
11
+ ("coupon.reward", "coupon_reward", "discount_apply_on", "discount_applicability"),
12
+ ("coupon.reward", "coupon_reward", "discount_type", "discount_mode"),
13
+ (
14
+ "coupon.reward",
15
+ "coupon_reward",
16
+ "discount_specific_product_ids",
17
+ "discount_product_ids",
18
+ ),
19
+ ("coupon.reward", "coupon_reward", "reward_product_quantity", "reward_product_qty"),
20
+ ("coupon.rule", "coupon_rule", "rule_minimum_amount", "minimum_amount"),
21
+ ("coupon.rule", "coupon_rule", "rule_min_quantity", "minimum_qty"),
22
+ ("coupon.rule", "coupon_rule", "rule_products_domain", "product_domain"),
23
+ (
24
+ "coupon.rule",
25
+ "coupon_rule",
26
+ "rule_minimum_amount_tax_inclusion",
27
+ "minimum_amount_tax_mode",
28
+ ),
29
+ ]
30
+ _models_renames = [
31
+ ("coupon.program", "loyalty.program"),
32
+ ("coupon.reward", "loyalty.reward"),
33
+ ("coupon.coupon", "loyalty.card"),
34
+ ("coupon.rule", "loyalty.rule"),
35
+ ]
36
+ _tables_renames = [
37
+ ("coupon_program", "loyalty_program"),
38
+ ("coupon_reward", "loyalty_reward"),
39
+ ("coupon_coupon", "loyalty_card"),
40
+ ("coupon_rule", "loyalty_rule"),
41
+ ]
42
+ _xmlids_renames = [
43
+ (
44
+ "loyalty.coupon_action",
45
+ "loyalty.loyalty_card_action",
46
+ ),
47
+ (
48
+ "loyalty.coupon_generate",
49
+ "loyalty.loyalty_generate_wizard_action",
50
+ ),
51
+ (
52
+ "loyalty.report_coupon_code",
53
+ "loyalty.report_loyalty_card",
54
+ ),
55
+ (
56
+ "loyalty.coupon_view_form",
57
+ "loyalty.loyalty_card_view_form",
58
+ ),
59
+ (
60
+ "loyalty.coupon_view_tree",
61
+ "loyalty.loyalty_card_view_tree",
62
+ ),
63
+ (
64
+ "loyalty.coupon_generate_view_form",
65
+ "loyalty.loyalty_generate_wizard_view_form",
66
+ ),
67
+ (
68
+ "loyalty.coupon_program_view_form_common",
69
+ "loyalty.loyalty_program_view_form",
70
+ ),
71
+ (
72
+ "loyalty.coupon_program_view_search",
73
+ "loyalty.loyalty_program_view_search",
74
+ ),
75
+ (
76
+ "loyalty.coupon_program_view_tree",
77
+ "loyalty.loyalty_program_view_tree",
78
+ ),
79
+ (
80
+ "sale_loyalty.mail_template_sale_coupon",
81
+ "loyalty.mail_template_loyalty_card",
82
+ ),
83
+ (
84
+ "gift_card.gift_card_product_50",
85
+ "loyalty.gift_card_product_50",
86
+ ),
87
+ ]
88
+
89
+ _noupdate_xmlids = [
90
+ "mail_template_loyalty_card",
91
+ "gift_card_product_50",
92
+ ]
93
+
94
+ _columns_copies = {
95
+ "loyalty_rule": [
96
+ ("minimum_amount_tax_mode", None, None),
97
+ ],
98
+ "loyalty_reward": [
99
+ ("discount_applicability", None, None),
100
+ ("discount_mode", None, None),
101
+ ],
102
+ "loyalty_program": [
103
+ ("applies_on", None, None),
104
+ ("trigger", None, None),
105
+ ("program_type", None, None),
106
+ ],
107
+ }
108
+
109
+
110
+ def update_loyalty_program_data(env):
111
+ # Fill date_to field: This data is updated with the values of the field 'rule_date_to
112
+ # field of the 'loyalty_rule' table. Sets the 'date_to' field of the 'loyalty_program'
113
+ # table to non-null values of to the non-null values of 'rule_date_to' where the old
114
+ # 'loyalty_program.rule_id' field is equal to loyalty_rule.id' and
115
+ # 'loyalty_rule.rule_date_to' is not null.
116
+ openupgrade.logged_query(
117
+ env.cr,
118
+ """
119
+ ALTER TABLE loyalty_program
120
+ ADD COLUMN IF NOT EXISTS date_to DATE
121
+ """,
122
+ )
123
+ openupgrade.logged_query(
124
+ env.cr,
125
+ """
126
+ UPDATE loyalty_program
127
+ SET date_to = loyalty_rule.rule_date_to
128
+ FROM loyalty_rule
129
+ WHERE loyalty_program.rule_id = loyalty_rule.id
130
+ AND loyalty_rule.rule_date_to IS NOT NULL
131
+ """,
132
+ )
133
+ # Sets the value of the limit_usage column to True for those records where the max_usage
134
+ # column is not null.
135
+ openupgrade.logged_query(
136
+ env.cr,
137
+ """
138
+ ALTER TABLE loyalty_program
139
+ ADD COLUMN IF NOT EXISTS limit_usage BOOLEAN
140
+ """,
141
+ )
142
+ openupgrade.logged_query(
143
+ env.cr,
144
+ """
145
+ UPDATE loyalty_program
146
+ SET limit_usage = TRUE
147
+ WHERE max_usage IS NOT NULL
148
+ """,
149
+ )
150
+ # Determine the visibility on the default portal of specific loyalty programs, based
151
+ # on their type (program_type)
152
+ openupgrade.logged_query(
153
+ env.cr,
154
+ """
155
+ ALTER TABLE loyalty_program
156
+ ADD COLUMN IF NOT EXISTS portal_visible BOOLEAN
157
+ """,
158
+ )
159
+ openupgrade.logged_query(
160
+ env.cr,
161
+ """
162
+ UPDATE loyalty_program
163
+ SET portal_visible =
164
+ CASE
165
+ WHEN program_type
166
+ IN ('gift_card', 'ewallet', 'loyalty', 'next_order_coupons') THEN true
167
+ ELSE false
168
+ END
169
+ """,
170
+ )
171
+ # Update standard selection values
172
+ openupgrade.map_values(
173
+ env.cr,
174
+ openupgrade.get_legacy_name("applies_on"),
175
+ "applies_on",
176
+ [("on_current_order", "current"), ("on_next_order", "future")],
177
+ table="loyalty_program",
178
+ )
179
+ openupgrade.map_values(
180
+ env.cr,
181
+ openupgrade.get_legacy_name("trigger"),
182
+ "trigger",
183
+ [("no_code_needed", "auto"), ("code_needed", "with_code")],
184
+ table="loyalty_program",
185
+ )
186
+ openupgrade.map_values(
187
+ env.cr,
188
+ openupgrade.get_legacy_name("program_type"),
189
+ "program_type",
190
+ [("coupon_program", "coupons"), ("promotion_program", "promotion")],
191
+ table="loyalty_program",
192
+ )
193
+
194
+
195
+ def update_loyalty_reward_data(env):
196
+ # Determine which program_id and company_id each reward belongs to
197
+ openupgrade.logged_query(
198
+ env.cr,
199
+ """
200
+ ALTER TABLE loyalty_reward
201
+ ADD COLUMN IF NOT EXISTS program_id INT
202
+ """,
203
+ )
204
+ openupgrade.logged_query(
205
+ env.cr,
206
+ """
207
+ UPDATE loyalty_reward AS lr
208
+ SET program_id = lp.id
209
+ FROM loyalty_program AS lp
210
+ WHERE lr.id = lp.reward_id
211
+ """,
212
+ )
213
+ openupgrade.logged_query(
214
+ env.cr,
215
+ """
216
+ ALTER TABLE loyalty_reward
217
+ ADD COLUMN IF NOT EXISTS company_id INT
218
+ """,
219
+ )
220
+ openupgrade.logged_query(
221
+ env.cr,
222
+ """
223
+ UPDATE loyalty_reward AS lr
224
+ SET company_id = lp.company_id
225
+ FROM loyalty_program AS lp
226
+ WHERE lr.id = lp.reward_id
227
+ """,
228
+ )
229
+ # Update standard selection values for discount mode
230
+ openupgrade.map_values(
231
+ env.cr,
232
+ openupgrade.get_legacy_name("discount_mode"),
233
+ "discount_mode",
234
+ [
235
+ ("percentage", "discount_percentage"),
236
+ ("fixed_amount", "discount_fixed_amount"),
237
+ ],
238
+ table="loyalty_reward",
239
+ )
240
+ # Establish whether a reward is active based on the status of the program to which the
241
+ # reward belongs
242
+ openupgrade.logged_query(
243
+ env.cr,
244
+ """
245
+ ALTER TABLE loyalty_reward
246
+ ADD COLUMN IF NOT EXISTS active BOOLEAN
247
+ """,
248
+ )
249
+ openupgrade.logged_query(
250
+ env.cr,
251
+ """
252
+ UPDATE loyalty_reward AS lr
253
+ SET active = lp.active
254
+ FROM loyalty_program AS lp
255
+ WHERE lr.id = lp.reward_id
256
+ """,
257
+ )
258
+ # Set default values
259
+ if not openupgrade.column_exists(env.cr, "loyalty_reward", "clear_wallet"):
260
+ openupgrade.add_fields(
261
+ env,
262
+ [
263
+ (
264
+ "clear_wallet",
265
+ "loyalty.reward",
266
+ "loyalty_reward",
267
+ "boolean",
268
+ "bool",
269
+ "loyalty",
270
+ False,
271
+ )
272
+ ],
273
+ )
274
+ if not openupgrade.column_exists(env.cr, "loyalty_reward", "required_points"):
275
+ openupgrade.add_fields(
276
+ env,
277
+ [
278
+ (
279
+ "required_points",
280
+ "loyalty.reward",
281
+ "loyalty_reward",
282
+ "float",
283
+ "float",
284
+ "loyalty",
285
+ 1,
286
+ )
287
+ ],
288
+ )
289
+ # Update standard selection values
290
+ openupgrade.map_values(
291
+ env.cr,
292
+ openupgrade.get_legacy_name("discount_applicability"),
293
+ "discount_applicability",
294
+ [
295
+ ("on_order", "order"),
296
+ ("cheapest_product", "cheapest"),
297
+ ("specific_products", "specific"),
298
+ ],
299
+ table="loyalty_reward",
300
+ )
301
+ openupgrade.map_values(
302
+ env.cr,
303
+ openupgrade.get_legacy_name("discount_mode"),
304
+ "discount_mode",
305
+ [("percentage", "percent"), ("fixed_amount", "per_order")],
306
+ table="loyalty_reward",
307
+ )
308
+
309
+
310
+ def update_loyalty_rule_data(env):
311
+ # Determine which program_id and company_id each rule belongs to
312
+ openupgrade.logged_query(
313
+ env.cr,
314
+ """
315
+ ALTER TABLE loyalty_rule
316
+ ADD COLUMN IF NOT EXISTS program_id INT
317
+ """,
318
+ )
319
+ openupgrade.logged_query(
320
+ env.cr,
321
+ """
322
+ UPDATE loyalty_rule AS lr
323
+ SET program_id = lp.id
324
+ FROM loyalty_program AS lp
325
+ WHERE lr.id = lp.rule_id
326
+ """,
327
+ )
328
+ openupgrade.logged_query(
329
+ env.cr,
330
+ """
331
+ ALTER TABLE loyalty_rule
332
+ ADD COLUMN IF NOT EXISTS company_id INT
333
+ """,
334
+ )
335
+ openupgrade.logged_query(
336
+ env.cr,
337
+ """
338
+ UPDATE loyalty_rule AS lr
339
+ SET company_id = lp.company_id
340
+ FROM loyalty_program AS lp
341
+ WHERE lr.id = lp.rule_id
342
+ """,
343
+ )
344
+ # Copy values from the "promo_code" field of loyalty.program to the "code" field of
345
+ # loyalty.rule
346
+ openupgrade.logged_query(
347
+ env.cr,
348
+ """
349
+ ALTER TABLE loyalty_rule
350
+ ADD COLUMN IF NOT EXISTS code VARCHAR
351
+ """,
352
+ )
353
+ openupgrade.logged_query(
354
+ env.cr,
355
+ """
356
+ UPDATE loyalty_rule AS lr
357
+ SET code = lp.promo_code
358
+ FROM loyalty_program AS lp
359
+ WHERE lr.id = lp.rule_id
360
+ """,
361
+ )
362
+ # If the code field is not null, the mode of application of a promotion based on its
363
+ # rules will be set to "with_code", otherwise it will be "auto"
364
+ openupgrade.logged_query(
365
+ env.cr,
366
+ """
367
+ ALTER TABLE loyalty_rule
368
+ ADD COLUMN IF NOT EXISTS mode VARCHAR
369
+ """,
370
+ )
371
+ openupgrade.logged_query(
372
+ env.cr,
373
+ """
374
+ UPDATE loyalty_rule
375
+ SET mode = CASE
376
+ WHEN code IS NOT NULL THEN 'with_code'
377
+ ELSE 'auto'
378
+ END
379
+ """,
380
+ )
381
+ # Establish whether a rule is active based on the status of the program to which the
382
+ # rule belongs
383
+ openupgrade.logged_query(
384
+ env.cr,
385
+ """
386
+ ALTER TABLE loyalty_rule
387
+ ADD COLUMN IF NOT EXISTS active BOOLEAN
388
+ """,
389
+ )
390
+ openupgrade.logged_query(
391
+ env.cr,
392
+ """
393
+ UPDATE loyalty_rule AS lr
394
+ SET active = lp.active
395
+ FROM loyalty_program AS lp
396
+ WHERE lr.id = lp.rule_id
397
+ """,
398
+ )
399
+ # Set default values
400
+ openupgrade.logged_query(
401
+ env.cr,
402
+ """
403
+ ALTER TABLE loyalty_rule
404
+ ADD COLUMN IF NOT EXISTS reward_point_amount FLOAT
405
+ """,
406
+ )
407
+ openupgrade.logged_query(
408
+ env.cr,
409
+ """
410
+ UPDATE loyalty_rule
411
+ SET reward_point_amount = 1
412
+ """,
413
+ )
414
+ openupgrade.logged_query(
415
+ env.cr,
416
+ """
417
+ ALTER TABLE loyalty_rule
418
+ ADD COLUMN IF NOT EXISTS reward_point_mode VARCHAR
419
+ """,
420
+ )
421
+ openupgrade.logged_query(
422
+ env.cr,
423
+ """
424
+ UPDATE loyalty_rule
425
+ SET reward_point_mode = 'order'
426
+ """,
427
+ )
428
+ openupgrade.logged_query(
429
+ env.cr,
430
+ """
431
+ ALTER TABLE loyalty_rule
432
+ ADD COLUMN IF NOT EXISTS reward_point_split BOOLEAN
433
+ """,
434
+ )
435
+ openupgrade.logged_query(
436
+ env.cr,
437
+ """
438
+ UPDATE loyalty_rule
439
+ SET reward_point_split = false
440
+ """,
441
+ )
442
+ openupgrade.map_values(
443
+ env.cr,
444
+ openupgrade.get_legacy_name("minimum_amount_tax_mode"),
445
+ "minimum_amount_tax_mode",
446
+ [("tax_included", "incl"), ("tax_excluded", "excl")],
447
+ table="loyalty_rule",
448
+ )
449
+
450
+
451
+ def update_loyalty_card_data(env):
452
+ # Determine which company_id each loyalty_card belongs to
453
+ openupgrade.logged_query(
454
+ env.cr,
455
+ """
456
+ ALTER TABLE loyalty_card
457
+ ADD COLUMN IF NOT EXISTS company_id INT
458
+ """,
459
+ )
460
+ openupgrade.logged_query(
461
+ env.cr,
462
+ """
463
+ UPDATE loyalty_card AS lc
464
+ SET company_id = lp.company_id
465
+ FROM loyalty_program AS lp
466
+ WHERE lc.program_id = lp.id
467
+ """,
468
+ )
469
+ # In v16 points are used to establish the usability of a loyalty card, in case the
470
+ # card has been used it will be 0, in case it is still valid it will be 1
471
+ openupgrade.logged_query(
472
+ env.cr,
473
+ """
474
+ ALTER TABLE loyalty_card
475
+ ADD COLUMN IF NOT EXISTS points FLOAT
476
+ """,
477
+ )
478
+ openupgrade.logged_query(
479
+ env.cr,
480
+ """
481
+ UPDATE loyalty_card
482
+ SET points = CASE
483
+ WHEN loyalty_card.state IN ('used', 'cancel') THEN 0
484
+ ELSE 1
485
+ END
486
+ """,
487
+ )
488
+
489
+
490
+ # Field incorporated in new module loyalty_initial_date_validity
491
+ def fill_date_from_field(env):
492
+ """Field incorporated in new module loyalty_initial_date_validity. This field takes
493
+ the data from the old rule_date_from field of the coupon.rule template."""
494
+ openupgrade.logged_query(
495
+ env.cr,
496
+ """
497
+ ALTER TABLE loyalty_program
498
+ ADD COLUMN IF NOT EXISTS date_from DATE
499
+ """,
500
+ )
501
+ openupgrade.logged_query(
502
+ env.cr,
503
+ """
504
+ UPDATE loyalty_program
505
+ SET date_from = loyalty_rule.rule_date_from
506
+ FROM loyalty_rule
507
+ WHERE loyalty_program.rule_id = loyalty_rule.id
508
+ AND loyalty_rule.rule_date_from IS NOT NULL
509
+ """,
510
+ )
511
+
512
+
513
+ def check_and_install_module_if_applicable(env):
514
+ """
515
+ The migration script for the loyalty_initial_date_validity modules is included.
516
+ It is checked if there is any record with a start date in the rules of the
517
+ established promotion. If there is any record, the modules are installed and the
518
+ data is migrated from the database.
519
+ """
520
+ env.cr.execute(
521
+ """
522
+ SELECT 1 FROM loyalty_rule WHERE rule_date_from IS NOT NULL
523
+ """,
524
+ )
525
+ has_date_from = env.cr.rowcount
526
+ if has_date_from:
527
+ openupgrade.logged_query(
528
+ env.cr,
529
+ """
530
+ UPDATE ir_module_module
531
+ SET state='to install'
532
+ WHERE name = 'loyalty_initial_date_validity' AND state='uninstalled'
533
+ """,
534
+ )
535
+ fill_date_from_field(env)
536
+
537
+
538
+ def delete_sql_constraints(env):
539
+ # Delete constraints to recreate it
540
+ openupgrade.delete_sql_constraint_safely(
541
+ env, "loyalty", "loyalty_rule", "check_coupon_rule_dates"
542
+ )
543
+ openupgrade.delete_sql_constraint_safely(
544
+ env, "loyalty", "loyalty_card", "unique_coupon_code"
545
+ )
546
+
547
+
548
+ def update_template_keys(env):
549
+ openupgrade.logged_query(
550
+ env.cr,
551
+ """
552
+ UPDATE ir_ui_view
553
+ SET key = 'loyalty.loyalty_report'
554
+ WHERE key = 'coupon.report_coupon'
555
+ """,
556
+ )
557
+ openupgrade.logged_query(
558
+ env.cr,
559
+ """
560
+ UPDATE ir_ui_view
561
+ SET key = 'loyalty.loyalty_report_i18n'
562
+ WHERE key = 'coupon.report_coupon_i18n'
563
+ """,
564
+ )
565
+
566
+
567
+ def merge_gift_card_to_loyalty_card(env):
568
+ """Merging the gift_card module into loyalty. To perform this data migration task,
569
+ we work with gift_card and two tables to be updated, loyalty_program and
570
+ loyalty_card. First, the data from gift_card will be inserted into loyalty_program
571
+ to adapt the functionality to the gift card programs in v16, and then the data from
572
+ gift_card will be copied to loyalty_card and the corresponding records will be
573
+ referenced."""
574
+ table = openupgrade.get_model2table("gift.card")
575
+ if not openupgrade.table_exists(env.cr, table):
576
+ return
577
+ # Create records in loyalty_program based on gift_card data
578
+ openupgrade.logged_query(
579
+ env.cr,
580
+ """
581
+ INSERT INTO loyalty_program (
582
+ company_id,
583
+ create_uid,
584
+ write_uid,
585
+ program_type,
586
+ applies_on,
587
+ trigger,
588
+ name,
589
+ active,
590
+ portal_visible,
591
+ create_date,
592
+ write_date
593
+ )
594
+ SELECT
595
+ company_id,
596
+ create_uid,
597
+ write_uid,
598
+ 'gift_card' AS program_type,
599
+ 'future' AS applies_on,
600
+ 'auto' AS trigger,
601
+ '{"en_US": "Gift Cards"}' AS name,
602
+ CASE WHEN state = 'valid' THEN true ELSE false END AS active,
603
+ true AS portal_visible,
604
+ create_date,
605
+ write_date
606
+ FROM gift_card
607
+ """,
608
+ )
609
+ # Add program_id column to gift_card to reference the program it belongs to
610
+ openupgrade.logged_query(
611
+ env.cr,
612
+ """
613
+ ALTER TABLE gift_card ADD COLUMN program_id INT;
614
+ """,
615
+ )
616
+ # Update gift_card to link records with loyalty_program
617
+ openupgrade.logged_query(
618
+ env.cr,
619
+ """
620
+ UPDATE gift_card gc
621
+ SET program_id = (
622
+ SELECT lp.id
623
+ FROM loyalty_program lp
624
+ WHERE lp.create_uid = gc.create_uid
625
+ AND lp.create_date = gc.create_date
626
+ AND lp.company_id = gc.company_id
627
+ AND lp.program_type = 'gift_card'
628
+ )
629
+ """,
630
+ )
631
+ # After having correctly referenced the data, we will copy the data from gift_card
632
+ # to loyalty_card
633
+ openupgrade.logged_query(
634
+ env.cr,
635
+ """
636
+ INSERT INTO loyalty_card (
637
+ program_id,
638
+ company_id,
639
+ partner_id,
640
+ create_uid,
641
+ write_uid,
642
+ code,
643
+ expiration_date,
644
+ create_date,
645
+ write_date,
646
+ points
647
+ )
648
+ SELECT
649
+ program_id,
650
+ company_id,
651
+ partner_id,
652
+ create_uid,
653
+ write_uid,
654
+ code,
655
+ expired_date AS expiration_date,
656
+ create_date,
657
+ write_date,
658
+ initial_amount AS points
659
+ FROM gift_card
660
+ """,
661
+ )
662
+ # Create records in loyalty_reward based on gift_card data
663
+ openupgrade.add_fields(
664
+ env,
665
+ [
666
+ (
667
+ "discount_product_domain",
668
+ "loyalty.reward",
669
+ "loyalty_reward",
670
+ "char",
671
+ False,
672
+ "loyalty",
673
+ "[]",
674
+ )
675
+ ],
676
+ )
677
+ openupgrade.logged_query(
678
+ env.cr,
679
+ """
680
+ INSERT INTO loyalty_reward (
681
+ active,
682
+ program_id,
683
+ company_id,
684
+ description,
685
+ reward_type,
686
+ discount,
687
+ discount_mode,
688
+ discount_applicability,
689
+ discount_line_product_id,
690
+ clear_wallet,
691
+ required_points,
692
+ reward_product_qty,
693
+ create_uid,
694
+ write_uid,
695
+ discount_product_domain,
696
+ create_date,
697
+ write_date
698
+ )
699
+ SELECT
700
+ lp.active,
701
+ gc.program_id,
702
+ gc.company_id,
703
+ '{"en_US": "Gift Card"}',
704
+ 'discount',
705
+ 1,
706
+ 'per_point',
707
+ 'order',
708
+ sol.product_id,
709
+ false,
710
+ 1,
711
+ 1,
712
+ gc.create_uid,
713
+ gc.write_uid,
714
+ '[]',
715
+ gc.create_date,
716
+ gc.write_date
717
+ FROM gift_card AS gc
718
+ JOIN loyalty_program AS lp ON gc.program_id = lp.id
719
+ JOIN sale_order_line AS sol ON sol.gift_card_id = gc.id
720
+ """,
721
+ )
722
+ # Create records in loyalty_rule based on gift_card data
723
+ openupgrade.logged_query(
724
+ env.cr,
725
+ """
726
+ INSERT INTO loyalty_rule (
727
+ program_id,
728
+ company_id,
729
+ minimum_qty,
730
+ create_uid,
731
+ write_uid,
732
+ product_domain,
733
+ reward_point_mode,
734
+ minimum_amount_tax_mode,
735
+ mode,
736
+ active,
737
+ reward_point_split,
738
+ create_date,
739
+ write_date,
740
+ reward_point_amount
741
+ )
742
+ SELECT
743
+ gc.program_id,
744
+ gc.company_id,
745
+ 1,
746
+ gc.create_uid,
747
+ gc.write_uid,
748
+ '[]',
749
+ 'money',
750
+ 'incl',
751
+ 'auto',
752
+ lp.active,
753
+ true,
754
+ gc.create_date,
755
+ gc.write_date,
756
+ 1
757
+ FROM gift_card AS gc
758
+ JOIN loyalty_program AS lp ON gc.program_id = lp.id
759
+ """,
760
+ )
761
+ # If the card has been used, it calculates the new points value by subtracting the
762
+ # sum of the absolute price_unit values of the order lines linked to a gift_card
763
+ # from the initial value of the loyalty card (loyalty_card.initial_amount). In case
764
+ # there is no order line linked to the gift card, the initial value of the loyalty
765
+ # card shall be maintained.
766
+ openupgrade.logged_query(
767
+ env.cr,
768
+ """
769
+ UPDATE loyalty_card lc
770
+ SET points =
771
+ CASE
772
+ WHEN (
773
+ SELECT SUM(ABS(sol.price_unit))
774
+ FROM sale_order_line sol
775
+ JOIN gift_card gc ON gc.id = sol.gift_card_id
776
+ WHERE gc.program_id = lc.program_id
777
+ ) IS NOT NULL
778
+ THEN gc.initial_amount - (
779
+ SELECT SUM(ABS(sol.price_unit))
780
+ FROM sale_order_line sol
781
+ JOIN gift_card gc ON gc.id = sol.gift_card_id
782
+ WHERE gc.program_id = lc.program_id
783
+ )
784
+ ELSE lc.points
785
+ END
786
+ FROM gift_card gc
787
+ WHERE lc.program_id = gc.program_id
788
+ """,
789
+ )
790
+
791
+
792
+ @openupgrade.migrate()
793
+ def migrate(env, version):
794
+ openupgrade.rename_fields(env, _field_renames)
795
+ openupgrade.rename_models(env.cr, _models_renames)
796
+ openupgrade.rename_tables(env.cr, _tables_renames)
797
+ openupgrade.copy_columns(env.cr, _columns_copies)
798
+ openupgrade.rename_xmlids(env.cr, _xmlids_renames)
799
+ # Renamed in rename_xmlids method.
800
+ # In v15 are noupdate=1 and in v16 are noupdate=0
801
+ openupgrade.set_xml_ids_noupdate_value(env, "loyalty", _noupdate_xmlids, False)
802
+ update_loyalty_program_data(env)
803
+ update_loyalty_reward_data(env)
804
+ update_loyalty_rule_data(env)
805
+ update_loyalty_card_data(env)
806
+ check_and_install_module_if_applicable(env)
807
+ delete_sql_constraints(env)
808
+ update_template_keys(env)
809
+
810
+ # Set default values
811
+ if not openupgrade.column_exists(env.cr, "loyalty_card", "expiration_date"):
812
+ openupgrade.add_fields(
813
+ env,
814
+ [
815
+ (
816
+ "expiration_date",
817
+ "loyalty.card",
818
+ "loyalty_card",
819
+ "date",
820
+ "date",
821
+ "loyalty",
822
+ False,
823
+ )
824
+ ],
825
+ )
826
+ openupgrade.logged_query(
827
+ env.cr,
828
+ """
829
+ UPDATE loyalty_card lc
830
+ SET expiration_date = lc.create_date + interval '1' day * lp.validity_duration
831
+ from loyalty_program lp
832
+ where lp.id = lc.program_id and lp.validity_duration > 0
833
+ """,
834
+ )
835
+ merge_gift_card_to_loyalty_card(env)
@@ -0,0 +1,179 @@
1
+ ---Models in module 'loyalty'---
2
+ new model loyalty.card
3
+ new model loyalty.rule
4
+ new model loyalty.program
5
+ new model loyalty.reward
6
+ # DONE pre-migration: renamed models and tables
7
+
8
+ new model loyalty.generate.wizard [transient]
9
+ # NOTHING TO DO: transient model
10
+
11
+ new model loyalty.mail
12
+ # NOTHING TO DO: new model
13
+
14
+ ---Fields in module 'loyalty'---
15
+ loyalty / loyalty.program / program_type (selection) : NEW required, selection_keys: ['buy_x_get_y', 'coupons', 'ewallet', 'gift_card', 'loyalty', 'next_order_coupons', 'promo_code', 'promotion'], hasdefault: default
16
+ # DONE pre-migration: update selection_keys
17
+
18
+ loyalty / loyalty.program / applies_on (selection) : NEW required, selection_keys: ['both', 'current', 'future'], hasdefault: default
19
+ loyalty / loyalty.program / trigger (selection) : NEW selection_keys: ['auto', 'with_code'], hasdefault: compute
20
+ loyalty / loyalty.reward / discount_applicability (selection): NEW selection_keys: ['cheapest', 'order', 'specific'], hasdefault: default
21
+ loyalty / loyalty.reward / discount_mode (selection) : NEW required, selection_keys: function, hasdefault: default
22
+ loyalty / loyalty.rule / minimum_amount_tax_mode (selection): NEW required, selection_keys: ['excl', 'incl'], hasdefault: default
23
+ # DONE pre-migration: rename field and update selection_keys
24
+
25
+ loyalty / loyalty.program / max_usage (integer) : NEW
26
+ loyalty / loyalty.reward / description (char) : NEW hasdefault: compute
27
+ loyalty / loyalty.reward / discount_product_ids (many2many): NEW relation: product.product
28
+ loyalty / loyalty.reward / reward_product_qty (integer) : NEW hasdefault: default
29
+ loyalty / loyalty.rule / minimum_amount (float) : NEW
30
+ loyalty / loyalty.rule / minimum_qty (integer) : NEW hasdefault: default
31
+ loyalty / loyalty.rule / product_domain (char) : NEW hasdefault: default
32
+ # DONE pre-migration: rename field
33
+
34
+ loyalty / loyalty.program / active (boolean) : NEW hasdefault: default
35
+ loyalty / loyalty.program / limit_usage (boolean) : NEW
36
+ loyalty / loyalty.reward / active (boolean) : NEW hasdefault: default
37
+ loyalty / loyalty.rule / active (boolean) : NEW hasdefault: default
38
+ # DONE pre-migration: setting values
39
+
40
+ loyalty / loyalty.program / reward_ids (one2many) : NEW relation: loyalty.reward, hasdefault: compute
41
+ loyalty / loyalty.program / rule_ids (one2many) : NEW relation: loyalty.rule, hasdefault: compute
42
+ # DONE post-migration: convert data many2many to one2many
43
+
44
+ loyalty / loyalty.program / date_to (date) : NEW
45
+ loyalty / loyalty.reward / program_id (many2one) : NEW relation: loyalty.program, required
46
+ loyalty / loyalty.reward / company_id (many2one) : NEW relation: res.company, isrelated: related, stored
47
+ loyalty / loyalty.reward / discount (float) : NEW hasdefault: default
48
+ loyalty / loyalty.rule / code (char) : NEW hasdefault: compute
49
+ loyalty / loyalty.rule / company_id (many2one) : NEW relation: res.company, isrelated: related, stored
50
+ loyalty / loyalty.rule / mode (selection) : NEW selection_keys: ['auto', 'with_code'], hasdefault: compute
51
+ loyalty / loyalty.rule / program_id (many2one) : NEW relation: loyalty.program, required
52
+ loyalty / loyalty.card / company_id (many2one) : NEW relation: res.company, isrelated: related, stored
53
+ loyalty / loyalty.card / points (float) : NEW
54
+ # DONE pre-migration: fill in data
55
+
56
+ loyalty / loyalty.program / portal_visible (boolean) : NEW hasdefault: default
57
+ loyalty / loyalty.reward / clear_wallet (boolean) : NEW hasdefault: default
58
+ loyalty / loyalty.reward / required_points (float) : NEW hasdefault: default
59
+ loyalty / loyalty.rule / reward_point_amount (float) : NEW hasdefault: default
60
+ loyalty / loyalty.rule / reward_point_mode (selection) : NEW required, selection_keys: function, hasdefault: default
61
+ loyalty / loyalty.rule / reward_point_split (boolean) : NEW hasdefault: default
62
+ # DONE pre-migration: set default value
63
+
64
+ loyalty / loyalty.program / portal_point_name (char) : NEW hasdefault: default
65
+ # DONE post-migration: compute value
66
+
67
+ loyalty / loyalty.program / name (char) : NEW required
68
+ loyalty / loyalty.program / sequence (integer) : NEW
69
+ loyalty / loyalty.program / company_id (many2one) : NEW relation: res.company, hasdefault: default
70
+ loyalty / loyalty.program / currency_id (many2one) : NEW relation: res.currency, required, hasdefault: compute
71
+ loyalty / loyalty.program / coupon_ids (one2many) : NEW relation: loyalty.card
72
+ loyalty / loyalty.reward / discount_line_product_id (many2one): NEW relation: product.product
73
+ loyalty / loyalty.reward / discount_max_amount (float) : NEW
74
+ loyalty / loyalty.reward / reward_product_id (many2one) : NEW relation: product.product
75
+ loyalty / loyalty.reward / reward_type (selection) : NEW required, selection_keys: ['discount', 'product'], hasdefault: default
76
+ loyalty / loyalty.card / code (char) : NEW required, hasdefault: default
77
+ loyalty / loyalty.card / expiration_date (date) : NEW
78
+ loyalty / loyalty.card / partner_id (many2one) : NEW relation: res.partner
79
+ loyalty / loyalty.card / program_id (many2one) : NEW relation: loyalty.program, hasdefault: default
80
+ # NOTHING TO DO
81
+
82
+ loyalty / loyalty.program / available_on (boolean) : NEW
83
+ loyalty / loyalty.program / communication_plan_ids (one2many): NEW relation: loyalty.mail, hasdefault: compute
84
+ loyalty / loyalty.reward / discount_product_category_id (many2one): NEW relation: product.category
85
+ loyalty / loyalty.reward / discount_product_domain (char): NEW hasdefault: default
86
+ loyalty / loyalty.reward / discount_product_tag_id (many2one): NEW relation: product.tag
87
+ loyalty / loyalty.reward / reward_product_tag_id (many2one): NEW relation: product.tag
88
+ loyalty / loyalty.rule / product_category_id (many2one): NEW relation: product.category
89
+ loyalty / loyalty.rule / product_ids (many2many) : NEW relation: product.product
90
+ loyalty / loyalty.rule / product_tag_id (many2one) : NEW relation: product.tag
91
+ loyalty / loyalty.card / message_follower_ids (one2many): NEW relation: mail.followers
92
+ loyalty / loyalty.card / message_ids (one2many) : NEW relation: mail.message
93
+ loyalty / loyalty.card / message_main_attachment_id (many2one): NEW relation: ir.attachment
94
+ loyalty / loyalty.mail / active (boolean) : NEW hasdefault: default
95
+ loyalty / loyalty.mail / mail_template_id (many2one) : NEW relation: mail.template, required
96
+ loyalty / loyalty.mail / points (float) : NEW
97
+ loyalty / loyalty.mail / program_id (many2one) : NEW relation: loyalty.program, required
98
+ loyalty / loyalty.mail / trigger (selection) : NEW required, selection_keys: ['create', 'points_reach']
99
+ # NOTHING TO DO: new field
100
+
101
+ ---XML records in module 'loyalty'---
102
+ NEW ir.actions.act_window: loyalty.loyalty_card_action
103
+ NEW ir.actions.act_window: loyalty.loyalty_generate_wizard_action
104
+ # DONE pre-migration: rename xmlids
105
+
106
+ NEW ir.actions.act_window: loyalty.loyalty_program_discount_loyalty_action
107
+ NEW ir.actions.act_window: loyalty.loyalty_program_gift_ewallet_action
108
+ # NOTHING TO DO
109
+
110
+ NEW ir.actions.act_window.view: loyalty.action_loyalty_program_form_discount_loyalty
111
+ NEW ir.actions.act_window.view: loyalty.action_loyalty_program_form_gift_card_ewallet
112
+ NEW ir.actions.act_window.view: loyalty.action_loyalty_program_tree_discount_loyalty
113
+ NEW ir.actions.act_window.view: loyalty.action_loyalty_program_tree_gift_card_ewallet
114
+ # NOTHING TO DO
115
+
116
+ NEW ir.actions.report: loyalty.report_gift_card
117
+ # NOTHING TO DO
118
+
119
+ NEW ir.actions.report: loyalty.report_loyalty_card
120
+ # DONE pre-migration: rename xmlids
121
+
122
+ NEW ir.model.access: loyalty.access_loyalty_card
123
+ NEW ir.model.access: loyalty.access_loyalty_generate_wizard
124
+ NEW ir.model.access: loyalty.access_loyalty_mail
125
+ NEW ir.model.access: loyalty.access_loyalty_program
126
+ NEW ir.model.access: loyalty.access_loyalty_reward
127
+ NEW ir.model.access: loyalty.access_loyalty_rule
128
+ # NOTHING TO DO
129
+
130
+ NEW ir.model.constraint: loyalty.constraint_loyalty_card_card_code_unique
131
+ NEW ir.model.constraint: loyalty.constraint_loyalty_program_check_max_usage
132
+ NEW ir.model.constraint: loyalty.constraint_loyalty_reward_discount_positive
133
+ NEW ir.model.constraint: loyalty.constraint_loyalty_reward_product_qty_positive
134
+ NEW ir.model.constraint: loyalty.constraint_loyalty_reward_required_points_positive
135
+ NEW ir.model.constraint: loyalty.constraint_loyalty_rule_reward_point_amount_positive
136
+ # DONE pre-migration: safely delete constraint to recreate it
137
+
138
+ NEW ir.rule: loyalty.sale_loyalty_card_company_rule (noupdate)
139
+ NEW ir.rule: loyalty.sale_loyalty_program_company_rule (noupdate)
140
+ NEW ir.rule: loyalty.sale_loyalty_reward_company_rule (noupdate)
141
+ NEW ir.rule: loyalty.sale_loyalty_rule_company_rule (noupdate)
142
+ # DONE post-migration: safely deleted xmlid
143
+
144
+ NEW ir.ui.view: loyalty.gift_card_report
145
+ NEW ir.ui.view: loyalty.gift_card_report_i18n
146
+ # NOTHING TO DO
147
+
148
+ NEW ir.ui.view: loyalty.loyalty_report
149
+ NEW ir.ui.view: loyalty.loyalty_report_i18n
150
+ # DONE pre-migration: update template keys
151
+
152
+ NEW ir.ui.view: loyalty.loyalty_card_view_form
153
+ NEW ir.ui.view: loyalty.loyalty_card_view_tree
154
+ NEW ir.ui.view: loyalty.loyalty_generate_wizard_view_form
155
+ NEW ir.ui.view: loyalty.loyalty_program_view_form
156
+ NEW ir.ui.view: loyalty.loyalty_program_view_search
157
+ NEW ir.ui.view: loyalty.loyalty_program_view_tree
158
+ # DONE pre-migration: rename xmlids
159
+
160
+ NEW ir.ui.view: loyalty.loyalty_card_view_search
161
+ NEW ir.ui.view: loyalty.loyalty_mail_view_tree
162
+ NEW ir.ui.view: loyalty.loyalty_program_gift_ewallet_view_form
163
+ NEW ir.ui.view: loyalty.loyalty_reward_view_form
164
+ NEW ir.ui.view: loyalty.loyalty_reward_view_kanban
165
+ NEW ir.ui.view: loyalty.loyalty_rule_view_form
166
+ NEW ir.ui.view: loyalty.loyalty_rule_view_kanban
167
+ # NOTHING TO DO
168
+
169
+ NEW mail.template: loyalty.mail_template_gift_card [renamed from sale_gift_card module]
170
+ # NOTHING TO DO
171
+
172
+ NEW mail.template: loyalty.mail_template_loyalty_card
173
+ # DONE pre-migration: rename xmlids and set noupdate value
174
+
175
+ NEW product.product: loyalty.ewallet_product_50
176
+ # NOTHING TO DO
177
+
178
+ NEW product.product: loyalty.gift_card_product_50 [renamed from gift_card module] (noupdate switched)
179
+ # DONE pre-migration: rename and set to noupdate=0
@@ -0,0 +1,5 @@
1
+ ---Models in module 'website_sale_digital'---
2
+ ---Fields in module 'website_sale_digital'---
3
+ ---XML records in module 'website_sale_digital'---
4
+ ---nothing has changed in this module--
5
+ # NOTHING TO DO
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-openupgrade_scripts
3
- Version: 16.0.1.0.3.276
3
+ Version: 16.0.1.0.3.281
4
4
  Summary: Module that contains all the migrations analysis and scripts for migrate Odoo SA modules.
5
5
  Home-page: https://github.com/OCA/OpenUpgrade
6
6
  Author: Odoo Community Association (OCA)
@@ -19,6 +19,7 @@ odoo/addons/openupgrade_scripts/scripts/account_edi_proxy_client/16.0.1.0/upgrad
19
19
  odoo/addons/openupgrade_scripts/scripts/account_edi_ubl_cii/16.0.1.0/upgrade_analysis.txt,sha256=ZYIkW8_Nni1fma0yneD50Y1iG2caA9CxwRtc1ARIAf0,1937
20
20
  odoo/addons/openupgrade_scripts/scripts/account_edi_ubl_cii/16.0.1.0/upgrade_analysis_work.txt,sha256=23bKjZGvAbLubnTaQoHvQA5hj9Xa3dv1OqfDNFk9mzw,2021
21
21
  odoo/addons/openupgrade_scripts/scripts/account_fleet/16.0.1.0/upgrade_analysis.txt,sha256=4ACWUpmQ7qvzWsQSP3Z3qbz5Z3YpOFAN7V5wC69WxmA,162
22
+ odoo/addons/openupgrade_scripts/scripts/account_fleet/16.0.1.0/upgrade_analysis_work.txt,sha256=4ACWUpmQ7qvzWsQSP3Z3qbz5Z3YpOFAN7V5wC69WxmA,162
22
23
  odoo/addons/openupgrade_scripts/scripts/account_payment/16.0.2.0/upgrade_analysis.txt,sha256=1oLZzMBx3SZEmAyklfh3EC_nm_S4v3SOHyp_gfQbSQA,3870
23
24
  odoo/addons/openupgrade_scripts/scripts/account_payment/16.0.2.0/upgrade_analysis_work.txt,sha256=QgVW-HvbkJ0QCnVU8_zhKYhpSjb5cepWn8VIkJVn23E,4388
24
25
  odoo/addons/openupgrade_scripts/scripts/account_payment_invoice_online_payment_patch/16.0.1.0/upgrade_analysis.txt,sha256=wrd72W_QJg34IsT5iezC4oCVY_zMLn53AY1__ZfzB4w,594
@@ -350,7 +351,10 @@ odoo/addons/openupgrade_scripts/scripts/l10n_ve/16.0.1.0/noupdate_changes.xml,sh
350
351
  odoo/addons/openupgrade_scripts/scripts/l10n_vn/16.0.2.0.1/upgrade_analysis.txt,sha256=YiP48_bJ39QM5p9lAc0CRVCre9ut6pvpS_SVZI0QuuI,1261
351
352
  odoo/addons/openupgrade_scripts/scripts/l10n_za/16.0.1.0/upgrade_analysis.txt,sha256=-rQO3Wi0H1nDy8cjmJOl_yo6IgOxMhm6f4FHP31Qs4g,1739
352
353
  odoo/addons/openupgrade_scripts/scripts/link_tracker/16.0.1.1/upgrade_analysis.txt,sha256=Ph-CuEBHU1WnRHswlXmC4YvE1LOo-0EpydbqIJ4VBSU,159
354
+ odoo/addons/openupgrade_scripts/scripts/loyalty/16.0.1.0/post-migration.py,sha256=XP28cFyPCipISepMu7e2nrSp--vPvoJARj5fr8M86ig,1963
355
+ odoo/addons/openupgrade_scripts/scripts/loyalty/16.0.1.0/pre-migration.py,sha256=P3qrMNAVByN0ezDDXsmhwk9M4J6wySWfZYmYGcKEZpQ,24055
353
356
  odoo/addons/openupgrade_scripts/scripts/loyalty/16.0.1.0/upgrade_analysis.txt,sha256=N2waWK_WAcEsvrjG2mgGAVb4WLl76tVH7oU880Ei2mk,14561
357
+ odoo/addons/openupgrade_scripts/scripts/loyalty/16.0.1.0/upgrade_analysis_work.txt,sha256=CW3VLkf5gsTyuA_YHUeqxDKSyuXn5x5MBuMz8FYOuKY,11368
354
358
  odoo/addons/openupgrade_scripts/scripts/loyalty_delivery/16.0.1.0/upgrade_analysis.txt,sha256=8TnNXqdMPDyxBHuN4C6DaxijUWSLag4XVe15HbTg4BI,419
355
359
  odoo/addons/openupgrade_scripts/scripts/lunch/16.0.1.0/upgrade_analysis.txt,sha256=Vx_uxoW1IhIJF-UcG6q09VSnBCeY0VjBc1YE71RXgZs,593
356
360
  odoo/addons/openupgrade_scripts/scripts/lunch/16.0.1.0/upgrade_analysis_work.txt,sha256=4szGZDLH6jY7ZNGZq0aSB6ozmAMyMWv47yZYult2gTg,660
@@ -687,6 +691,7 @@ odoo/addons/openupgrade_scripts/scripts/website_sale_delivery/16.0.1.0/upgrade_a
687
691
  odoo/addons/openupgrade_scripts/scripts/website_sale_delivery/16.0.1.0/upgrade_analysis_work.txt,sha256=FvJYgjfqYqFPK1axHqCNC8t9CpXFsjIAmaWivVq1aZQ,202
688
692
  odoo/addons/openupgrade_scripts/scripts/website_sale_delivery_mondialrelay/16.0.0.1/upgrade_analysis.txt,sha256=BCxNxJ48VdYt5bV337TfePuo0MN-uhhRUqYwC-bPp0c,433
689
693
  odoo/addons/openupgrade_scripts/scripts/website_sale_digital/16.0.0.1/upgrade_analysis.txt,sha256=ow2g8lrO5k51Ec1gCFTG5_8D9pnfJAzxeVyk5au2qiA,183
694
+ odoo/addons/openupgrade_scripts/scripts/website_sale_digital/16.0.0.1/upgrade_analysis_work.txt,sha256=9xGa08jnG6Dce9tsHCeCKpNn_IkfOqd7pRLQLXyWZZg,199
690
695
  odoo/addons/openupgrade_scripts/scripts/website_sale_loyalty/16.0.1.0/upgrade_analysis.txt,sha256=M753BVZ9F-ZP039qyWr2V8SMeehrt8iizS0T-cwNVmU,3308
691
696
  odoo/addons/openupgrade_scripts/scripts/website_sale_picking/16.0.1.0/upgrade_analysis.txt,sha256=TUeJygEuVPq6CRW7o-1WlNj-ytg3qMwvIrn1GSLjJK4,1075
692
697
  odoo/addons/openupgrade_scripts/scripts/website_sale_product_configurator/16.0.0.1/upgrade_analysis.txt,sha256=AoU15nW3TnH5g6D1uusr9M5j0rUdG0rsHxfwTgML3D4,350
@@ -709,7 +714,7 @@ odoo/addons/openupgrade_scripts/scripts/website_twitter/16.0.1.0/upgrade_analysi
709
714
  odoo/addons/openupgrade_scripts/static/description/banner.png,sha256=KTIBu4gfxeZVw9zjs_fivTgFEOeaAorlBxajmCA1p6k,26859
710
715
  odoo/addons/openupgrade_scripts/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
711
716
  odoo/addons/openupgrade_scripts/static/description/index.html,sha256=IOWtZdzr_jN_Dja8HYIfzIxrO8NE5pFgazKJtPsLKw0,12678
712
- odoo_addon_openupgrade_scripts-16.0.1.0.3.276.dist-info/METADATA,sha256=i9v_vlw_wMP0wQceTvth3hnrjMP6dexqrNJXO63P93Y,3790
713
- odoo_addon_openupgrade_scripts-16.0.1.0.3.276.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
714
- odoo_addon_openupgrade_scripts-16.0.1.0.3.276.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
715
- odoo_addon_openupgrade_scripts-16.0.1.0.3.276.dist-info/RECORD,,
717
+ odoo_addon_openupgrade_scripts-16.0.1.0.3.281.dist-info/METADATA,sha256=z9mj0Gn2tIDZNaqDJ4plAGoZSCOtFrsPmancGy3EHL4,3790
718
+ odoo_addon_openupgrade_scripts-16.0.1.0.3.281.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
719
+ odoo_addon_openupgrade_scripts-16.0.1.0.3.281.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
720
+ odoo_addon_openupgrade_scripts-16.0.1.0.3.281.dist-info/RECORD,,