Contributors mailing list archives

contributors@odoo-community.org

Browse archives

Avatar

Re: OCA Contract Repository

by
Akretion France, Raphaël Reverdy
- 24/02/2023 17:55:54
Hi,

Does anyone have a real use case with a supplier contract ?

I have the feeling supporting this use case adds a lot of complexity on the contract module.


Good idea to refactor / split this contract module.

Regards,





Le jeu. 23 févr. 2023 à 01:53, Nicolas Rodriguez Sande <notifications@odoo-community.org> a écrit :
Hello! Thanks for your response Denis. I Just go back from vacation so I think next week I will start working on contract module.

In fact, the state is managed on line level, see https://github.com/OCA/contract/blob/14.0/contract/models/contract_line.py#L94

Okay so, if state is managed in line level, will it make sense to make a computed contract level state that is based on line state? Because I think that for the user, they will expect contract to have a state, even some lines have different states we can make some logic to compute a state based on all lines states. Something like: 

States: “active”, “canceled”, “closed” can be computed based on lines. “Active” can be the contract state when at least one line is active, “Canceled” when all lines are canceled and “closed” when all lines closed. If we have mixed situations like some lines canceled and some active, we can still show active. 

This will allow the user to easily filter contracts without having to enter each contract to see lines. Or maybe we have to make a contract lines view. 

Next week I will be with this project and open some PRs to see what people think, also make the view improvements that will make sure life easier. 

And yes, base_conteact was just an idea but the point is to have more smaller and maintainable modules that plug-in functionalities, that’s always the easiest way to have a user-specific implementation without having a lot of functionalities that won’t be user by all users. Will try to open the issue next week to discuss this and also review the link between agreements and contracts PR. 

Please if another people have more ideas/problems/suggestions to contract module, feel free to reply this thread. 

Regards and good week for all of you! 



El El mié, 15 de feb. de 2023 a la(s) 06:17, Roussel, Denis <notifications@odoo-community.org> escribió:
> - Contract objects don’t have states. It appears to me that in some versions states existed but is a functionality that was dropped and some point. I strongly think that a module like this must have states.


>  I think the name of the contract should be computed, or at least use a sequence. I don’t see the point of the name to be manually edited. Having a computed one will help with search and filtering. 

Indeed, this can be improved.

> - There is not grouping entity of contract objects. Meaning we don't have an easy way to group contracts by category or an hicherarchical structure. I think this is useful for usability and to set default parameters. 

Maybe adding a 'contract.category' model could be great (in another module ?). But, for the time being, this can be done through contract tags. See: https://github.com/OCA/contract/blob/14.0/contract/models/contract.py#L110

> - There is not link between contracts and agreement modules. My common sense dict that a contract should be created from an agreement, meaning that an agreement is a legal contract and when approved and signed, it creates a contract record which defines invoicing schedule. If not, i really don't see any use for agreements if they are not linked. Maybe this can be solved with a new module. 

This is still tested in a draft PR: https://github.com/OCA/contract/pull/649 You can review it and make suggestions.

> - I think all codebase should be refactored and maybe split the contract module to have one base_contract with basic functionality for simple cases and then other modules to plug-in more functionality. 

This module has indeed a big history, refactored on 12.0 version I think. Since, some improvements have been done (refactoring on recurrency computations by Pedro see: https://github.com/OCA/contract/pull/533/commits/cd086ddbb4a9b85ccfcac288e53fb93e716d9446)

Indeed, I think it has now a very complex implementation that makes user understanding (and debugging) difficult.

We could make an issue on the github repository to help gathering ideas and focus discussion there than on this mailing list. But I agree that we could split some logic in separate modules (with meaningful names - if we could avoid base_contract).

I hope this answered your questions.


Regards,


On Fri, Feb 10, 2023 at 5:57 PM Nicolas Rodriguez Sande <notifications@odoo-community.org> wrote:

Hello, I’m writing to know your opinion about the contract repository. I started to use the modules in the repository and noted that the module versions of contract module differ a lot between odoo versions. 


I have to do some implementations regarding that modules so I’m going to start making PRs to that repo and try to improve the modules starting in version 14.0 and then port it to the others. 

I want to have your opinions on things you can tell me about what is missing in the modules and so I can organize my roadmap. Also, I don’t know if there are currently active PSC of the module, if not or you want me to join the team I will be interested, because I need to improve the modules and if that can help the development of the repo, count with me. 

From what I saw, I see the following issues to solve, please if you know another issues or want to make an opinion of changes you would like to see in the module please comment me here: 

- Contract objects don’t have states. It appears to me that in some versions states existed but is a functionality that was dropped and some point. I strongly think that a module like this must have states.

- I think the name of the contract should be computed, or at least use a sequence. I don’t see the point of the name to be manually edited. Having a computed one will help with search and filtering. 

- There is not grouping entity of contract objects. Meaning we don't have an easy way to group contracts by category or an hicherarchical structure. I think this is useful for usability and to set default parameters. 

- There is not link between contracts and agreement modules. My common sense dict that a contract should be created from an agreement, meaning that an agreement is a legal contract and when approved and signed, it creates a contract record which defines invoicing schedule. If not, i really don't see any use for agreements if they are not linked. Maybe this can be solved with a new module. 

- Contract views are awful and need to be improved to favor user usability and comprehension of the module mechanics and uses. This is one of the first changes i want to introduce. 

- Contract reports and portal views need to be improved. Currently the contract report is not so much developed. Also could be a good idea to allow to see agreements from portal contracts. 

- I think all codebase should be refactored and maybe split the contract module to have one base_contract with basic functionality for simple cases and then other modules to plug-in more functionality. 

If you have more opinions and things you want to see in a roadmap, please tell me here and i can maybe add it to my next PRs. Also if you have opinions of how the module should work will be great for when we refactor it. 

Regards and i want for your thoughts. 

_______________________________________________
Mailing-List: https://odoo-community.org/groups/contributors-15
Post to: mailto:contributors@odoo-community.org
Unsubscribe: https://odoo-community.org/groups?unsubscribe



--

Denis Roussel
Software Engineer
T    : +32 2 888 31 49
M : +32 472 22 00 57


Zone industrielle 22 | L-8287 Kehlen | Luxembourg

_______________________________________________
Mailing-List: https://odoo-community.org/groups/contributors-15
Post to: mailto:contributors@odoo-community.org
Unsubscribe: https://odoo-community.org/groups?unsubscribe

_______________________________________________
Mailing-List: https://odoo-community.org/groups/contributors-15
Post to: mailto:contributors@odoo-community.org
Unsubscribe: https://odoo-community.org/groups?unsubscribe



--
Raphaël Reverdy
Mobile +33 6 38 02 03 93
Fixe +33 4 82 53 84 60

Reference