Skip to Content
Menu
This question has been flagged
2 Replies
2297 Views

We are new to Odoo, but I really like what I've seen so far in playing with it. I think we're going to take the leap to implement it into our business processes, but before I do so, I have a question about how best to implement custom changes. 


For instance, in the CRM, we need to add quite a few new fields, some new tabs, etc... to leads. The easiest way forward would be to just use Studio to add these, but we are also perfectly capable of creating a 'crm_customizations' module and adding them there. Is there any downside to using Studio to make simple changes like this? 


In a similar vein - I have this same question for pretty much every aspect of the software. If we want to add a new model, does that have to be done in the code, or can we just do it from developer mode in Odoo? Or if we want to make a new Server Action, same thing. Can we just throw it in via the web interface and call it good or do we need to add it to our codebase?


Lastly, for now, if we have multiple modules that we're making, what's the typical deployment flow look like? Can these be managed as one git repo or are people creating separate repos for each thing they build, and deploying them separately?


Thanks!

Avatar
Discard
Best Answer

Hi Kevin,

Using Odoo Studio for making simple changes like adding new fields, tabs, or customizations to existing modules such as CRM leads can be convenient and efficient, especially for users who are not comfortable with coding. It provides a user-friendly interface for making these modifications directly within the application.

However, there are some considerations to keep in mind when using Studio:

  1. Limited Flexibility: While Studio offers a quick way to make changes, it may have limitations compared to custom development. For complex or highly customized requirements, developing a custom module using code might offer more flexibility and control over the functionality.
  2. Version Control: Changes made through Studio are stored in the database and can't be easily version-controlled like code. This can make it harder to track changes over time, especially when multiple users are making modifications simultaneously.
  3. Portability: Customizations made through Studio are tied to the specific database where they are created. If you need to deploy the same changes to another instance or environment, you would need to manually replicate them or use Odoo's data migration tools.

Regarding adding new models or server actions:

  • New models and server actions can also be created using Studio, but once again, it may have limitations compared to custom development, especially for complex business logic or integration requirements.
  • For more advanced or complex functionality, creating custom modules using code allows for greater control and customization. This would involve developing Python code, XML views, and other necessary files to implement the desired features.

For deployment and managing multiple modules:

  • The deployment flow can vary depending on your specific requirements and development practices. Some organizations manage all their custom modules within a single Git repository, while others prefer separate repositories for each module.
  • Managing multiple modules in a single repository can simplify version control and deployment, especially if the modules are closely related or dependent on each other. However, separate repositories offer more granularity and isolation for each module's development and maintenance.

Ultimately, the choice between using Studio and custom development depends on factors such as the complexity of your requirements, the level of control and flexibility needed, and the expertise of your team. It's essential to evaluate the pros and cons of each approach and choose the one that best aligns with your business goals and resources.

Hope it helps

Avatar
Discard
Best Answer

Using Odoo Studio to make simple changes, such as adding fields or tabs in the CRM, is a convenient approach and doesn't necessarily have a downside. However, it's essential to consider a few factors:

Odoo Studio:
  • Pros: Quick and easy modifications, no need for coding skills, immediate implementation.
  • Cons: Changes made in Studio might be more challenging to version control and manage in a team environment. They could also potentially be overwritten during an update or migration.
Custom Module Development:
  • Pros: Offers greater control, easier version control and management, better suited for complex or extensive changes, allows for writing custom code and business logic.
  • Cons: Requires coding skills and knowledge of Odoo development.
Customization Approach:

For small changes, Odoo Studio might suffice. However, for larger or more complex modifications, it's advisable to create a custom module. This approach allows you to have better control over your changes and makes them easier to manage in the long run.

Adding New Models or Server Actions:

Creating new models or server actions can be done both through the web interface (using Developer Mode) and by developing custom modules. For more complex or structured changes, it's often better to implement them through custom modules to maintain control and manage them efficiently.

Deployment and Version Control:

Regarding deployment and version control, there's flexibility in how you manage multiple modules. Some teams prefer managing multiple modules within a single Git repository, especially if the modules are closely related or interdependent. Others prefer separate repositories for better organization and separation of concerns.

Typical Deployment Flow:
  • Single Repository: You can manage multiple modules within a single repository, organizing them into different directories.
  • Separate Repositories: Each module gets its own repository, allowing for independent version control and deployment.
Best Practice:
  • Start Simple: Begin with Odoo Studio for quick changes.
  • Gradually Transition: As your customization needs grow complex or extensive, consider creating custom modules for better control and management.
  • Version Control: Whichever approach you choose, ensure you maintain proper version control to track changes and facilitate collaboration within your team.

Ultimately, the best approach depends on the scale, complexity, and long-term maintenance needs of your customization. It's often helpful to evaluate each scenario to determine the most suitable approach for your specific requirements.


Avatar
Discard