Skip to content

Conversation

@BhaveshHeliconia
Copy link
Contributor

No description provided.

ThomasBinsfeld and others added 30 commits October 1, 2025 13:54
[FIX] - manual_renew_needed should be visible to all contract users
[REF] - add _get_next_invoiced_period method
[FIX] - Fix In progress contract filter
[REF] - add method to get quantity to invoice
  the contract line quantity can be in some use cases variable, to simplify
  the way it is changed we add a new method _get_quantity_to_invoice.
[FIX] - Onchange contract line don't reste contract lines
[FIX] - Rename _get_invoiced_period to _get_period_to_invoice
[ADD] - Add stop_at_date_end to _get_period_to_invoice
[FIX] - Remove useless filter
[FIX] - don't play onchange date_start for old lines on contract template change
[FIX] - Fix stop post message
[FIX] - Fix sale_contract_count should count all partner contract
[FIX] - set recurring_next_date to False if contract line stoped at last date invoiced
[FIX] - Group by next_invoice also considers dates in the past
[IMP] - A canceled contract line can't be set to auto-renew
[REF] Contract: pep8
[IMP] Contract: update USAGE section of README
[IMP]call onchange_is_auto_renew when changing template
[REF] use context_today instead of time in filters
[REF] Contract: split from analytic account
[REF] Contract Sale Invoicing: split from analytic account
[REF] Contract Sale Invoicing: update translations
[IMP] - Assert that the predecessor is available for new link at uncancel
[RMV] - remove usless changes
[RMV] - Remove usless field recurring_invoices
  after the total isolation between contract model and account analytic one.
  recurring_invoices which was used to mark analytic account as contract became usless
[IMP] - P3 syntax
[IMP] - use @openupgrade.migrate() and openupgrade.logged_query
[IMP] - drop transient table in migration script
[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
* Remove incorrect oldname attributes.
* Add filter on partners for running contracts (+ a support o2m field for that).
* Cover more tables in model renaming + cleaner code using a loop.
* Don't copy contract lines, but rename table + copy contract records on pre.
* Contract code is now populated to "Reference/Description" field in invoice.
* Order on new contract model has been restored to the same as old analytic accounts.
Currently translated at 100.0% (211 of 211 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/zh_CN/
Currently translated at 96.2% (204 of 212 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/it/
As v11 takes salesman from linked partner and now the salesman is a field in the
contract that is initialized to current user, we need to assign to the recently
converted contracts following old logic, or they will have admin as responsible.
Currently translated at 78.8% (167 of 212 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/de/
The lowest model access for contract.contract model is group_account_invoice group. However the addon adds two smart buttons to res.partner view without any security restrictions and without compute_sudo attribute on computed fields.
This causes the view to crash when a user without the proper permissions tries to access the res.partner form view.
The solution adds groups_id to the partner form views in which the buttons are added, so the only loads when the user has proper permissions.
Other way to solve it would be to add compute_sudo attribute to the relevant fields, but this causes an access error when the user clicks on the smart buttons.
Currently translated at 61.3% (130 of 212 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/ca/
Currently translated at 100.0% (212 of 212 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/pt_BR/
Currently translated at 100.0% (212 of 212 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/zh_CN/
Currently translated at 98.1% (208 of 212 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/nl/
Currently translated at 99.1% (210 of 212 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/de/
Currently translated at 100.0% (212 of 212 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/es/
…tract partner label + contract company must be the same as the sale order

- multi-company record rules on contract line causes performance issue
- the label Partner (always False) don't make any sens
- When creating a contract from a sale order the company must be the sale order
  company and not the user company
Don't transfer to contract those analytic accounts with the "Recurring invoicing" flag
unchecked.
Currently translated at 21.7% (46 of 212 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/hr/
There were an error in previous query for moving only contracts with the mark checked,
but it's also more logic to move them, but remain them disabled.
Currently translated at 22.2% (47 of 212 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/hr/
…emplate

Fix this use-case:

If the contract journal is not set on the contract template the contract is created
without a journal when confirming the sale order
… with duplicated name

- Don't execute onchange after invoice creation
  Using that approach (that is the current one in core)  has a lot of side effects and
  performance bottlenecks. You can read odoo/odoo#40156 for summarizing them.
  This also improves the handling of the values of payment term an fiscal position
  for using the partner ones if not set.
- Tests with duplicated name
  So they are not executed at all. Detected by chance looking for a test for the other PR.
@BhaveshHeliconia BhaveshHeliconia force-pushed the 19.0-mig-contract branch 2 times, most recently from b527c46 to 4e377c2 Compare November 21, 2025 09:51
@pedrobaeza
Copy link
Member

Please include #1341

@BhaveshHeliconia
Copy link
Contributor Author

Please include #1341

Done. Thanks!

@carlos-lopez-tecnativa
Copy link
Contributor

carlos-lopez-tecnativa commented Nov 25, 2025

Please include #1351 and #1345

…ct lines

This field is unused in this module, but in the contract_sale_invoicing module it is used to search Sales Orders. However, many times this field goes unnoticed and users set the analytic distribution directly on the lines.

After this commit, the field is computed automatically based on the contract lines.
@BhaveshHeliconia
Copy link
Contributor Author

Please include #1351 and #1345

Done. Thanks!

@victoralmau
Copy link
Member

Please, cherry-pick #1352 to commit history (before migration commit).

@BhaveshHeliconia
Copy link
Contributor Author

Please, cherry-pick #1352 to commit history (before migration commit).

Done. Thanks!

@pedrobaeza
Copy link
Member

/ocabot migration contract

Please include #1360

pedrobaeza and others added 2 commits December 11, 2025 10:17
On portal, the cancelled lines are not distinguished from running ones,
as the next invoice date is still displayed, and the color is the same
(on contrary than the backend, that appears greyed).

So let's do something similar in portal:

- Put the row as grey.
- Hide the nexte invoice date on that case.

TT59704
Copy link
Contributor

@bosd bosd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Functional test 👍

Copy link
Member

@pedrobaeza pedrobaeza left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I think we are almost there.

comodel_name="uom.category",
related="product_id.uom_id.category_id",
readonly=True,
allowed_uom_ids = fields.Binary(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The usual convention is to name this as field_domain, which would be in this case uom_id_domain.

)
if not date_ref:
date_ref = fields.Date.context_today(self)
domain = self._get_contracts_to_invoice_domain(date_ref)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this method, it's better to return a Domain, isn't it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, correct! I'll update it to return a Domain object instead of a list.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.