Saas Custo template - odoo-ps/psbe-process GitHub Wiki

For Saas/Odoo.sh/On-Premise projects

Rules

Features

Separate the features that can be isolated from one another (no link between features)

Module Setup Time

Range between :

- New customer 0.5h to
- Big database 4H

Nomenclature

Use standard nomenclature. English variable names. No capitals. Words separated by _.

Try to make explicit variable names. Ex: sale_order_line_ids instead of order_line

- M2O end with _id
- O2M, M2M end with _ids

Time estimate reliability

For website, front-end, webshop, modification of standard record rules => 50% to MAXIMUM 70%

Template

How to use?

Try separating features and create one block like the template below for each feature. You only need to display the blocks that you need for your task analysis, no need to display all the blocks.

Exemple:

Data model:
    - account.invoice: 
        New Field: margin, float, RQ

Feature 1

Data:
    - Config parameters
    - Sequence
    - New records for configurations
    - Email templates

Data model:
    - (New) Model 1: 
        New Field: Name, String, Type, RQ, RO, Compute, Related, Stored (compute/related), groups
    - Model 2:
        New Field: Name, String, Type, RQ, RO, Compute, Related, Stored (compute/related), groups
    - Model n:
        ...

Back-end view change (View, Menu, Action):
    - Model 1:
        New View
           See mock-up + domain attrs, button, groups
        Inherit View: xml_id
           Change (domain, attrs, button, groups) 
        menu + action
    - Model 2:
        ...

Business Flow change (Python code in model, compute fields explanation):
    - Method to overwrite
    - Compute
    - Explain the behavior
    - Use external library.. 
    - New button: new method
    - Constrains
    - On change
    - Server actions
    - Automated actions
    - Scheduled actions

Security :
    - Groups
    - ACL (required if new model)
         name, model, group, read, write, create, unlink
    - Record rules

Report Change:
    - Use studio as much as possible ! 
    - Change existing report
    - New Report => minimum 8h estimate

Controller:
    - Change existing controller: Specify which one (route/method) + Behavior
    - Create new controller

Website template change:
    - Specify which template to change (xml_id)
    - To create

Js Change:
    - Specify which file (*.js)
    - Specify which class to inherit

Scripts:
    - Migration scripts
    - Workflow change scripts. Example: changing an M2O to an O2M, creating new fields that need to have set values, etc.


Integration:
    - Type: out / in / out real time / odoo api call  
    - Trigger: Cron or real time (which user action)
    - Which record to filter
    - Mapping: Based on functional mapping
    - Post-process

Feature 2:

The new feature, no link to feature 1