Preface

IOFP Foundation network is an exclusive network designed specifically for Odoo partners with a strong background in finance within their respective countries. As a member, you gain access to a valuable pool of partners ready to collaborate on projects requiring financial expertise. Also, by joining this foundation, organizations gain exclusive access to a network that attracts and nurtures groundbreaking international projects.

There is no obligation to accept every collaboration request. However, once you agree to collaborate, collaborators are expected to commit to providing professional services throughout the project, adhering to these guidelines, until the project is completed or local assistance is no longer needed.

As the primary partner, you will oversee the overall project management, ensuring a smooth global operation. As a supporting partner, you will be the primary point of contact for the client regarding all country-specific localization questions. This includes local adaptations, regulatory compliance, and delivering a seamless user experience in the local language.

This collaborative approach ensures streamlined communication and maximizes the chances of project success.

Definition

    Roles:

    • Requester (Requesting partner or Project lead): The partner within the network who has a project requiring assistance and seeks support from other members, or the partner who was first contacted by the customer
    • Supporter (Supporting partner): The partner in the network who responds to a request for assistance and agrees to collaborate on a project as a supporting partner

Project Roles and Responsibilities

    Requester:

    • Leads the overall project and is accountable for its global success
    • Oversees the global project management process and project roadmap
    • Primary contact for acquiring and handling Odoo licenses
    • Holds primary authority over the project code
    • Coordinates and manages the activities of supporting partners

    Supporter:

    • Provides project support primarily in terms of localization to the Requester
    • Collaborates with the Requester to achieve project goals
    • Acts as the primary point of contact for the client in their assigned country, handling communication and localization needs
    • Regularly updates the Requester on their progress and any relevant issues

Code Quality General Guidelines

    Many partners could collaborate on code development for a specific project. To ensure smooth collaboration and successful outcomes, adhering to established coding standards and design principles is crucial. This applies especially when designing localization modules.


    We recommend following the OCA standards for consistent and maintainable code:


    For effective module design, consider applying the following principles.

    Keep it simple

    • Use as few models as possible
    • Only add new models if they are absolutely necessary or required by law
    • Avoid adding models that are redundant or complex

    Keep it practical

    • Before creating something new, always check to see if something similar already exists in the standard Odoo or reputable localization packs
    • Don't be afraid to borrow ideas from others as long as you give credit where credit is due
    • Don't waste time reinventing the wheel

    Keep it clean

    • Always write clean code and use English (default) for comments, fields, names, documentation, views and labels
    • Provide local translation (.po) files
    • Avoid using abbreviations or jargon in your code
    • Use descriptive names for your variables, functions, classes and fields
    • Always version modules

    Keep it compatible

    • Always make the solution in line with the standard Odoo and never break the standard flow, your solution must work on a clean Odoo Enterprise codebase and should be installable on a clean database
    • All Odoo tests must pass when run with your code
    • Your solution needs to be compatible with all other localizations and with multi company. If there are special things that are only necessary within the country, it must be visible only for that country
    • Always test with multi-company setup
    • Use code coverage for modules that are direct localization related, it should be at least 70%, for other modules use code coverage if it is requested

    Keep it upgradeable

    • Write code with the migration in mind
    • Risky modifications should be commented on and mentioned in the readme, as they may be difficult to migrate in future

    Keep it Open Source

    • We favor a true open source over encrypted Python code


    By adhering to these specific coding principles, localization modules can ensure a smooth and consistent user experience across different languages and regions.

Membership

    As a member of the foundation, you'll have access to the foundation logo and marketing materials to promote your services and affiliation. Currently, there are no membership fees. However, to ensure the foundation's long-term sustainability, we may introduce a nominal annual fee in the future. These fees will be used solely to cover operational costs and continue providing valuable resources for our members

    New partners

    New partners can join the foundation through a two-step invitation process. 

  1. Invitation step: Invitation is done by an existing member of the foundation. In order to be considered for candidacy as a partner in our IOFP Foundation, the future member must have proven accounting knowledge in Odoo and/or the Odoo localization pack for its own country
  2. Approval step: Approval of an invited partner requires affirmative votes from at least two existing foundation members, with no more than one negative vote

    Process

    To join, an existing member must formally propose a new candidate. This proposal, including the candidate's qualifications and reasons for joining, is sent to all current members via email. Members have 3 weeks to respond and vote on the application. Abstaining from voting means your vote won't count. The proposer will notify the candidate of the final decision. 

    If approved, the candidate will be formally introduced to the other members via email and our website will be updated.

    Permit to use logo

    IOFP Foundation and its members can use their logos and names for marketing and promotion.

    All projects obtained through our network should be reported to the Foundation and its members for inclusion in our reference list

Members impartiality

    The foundation will ensure fair treatment of all members, avoiding preferential treatment. Each member will be prominently featured on the foundation's website, outlining their localization and financial services.

    When an end customer first contacts a member from their home country, that member typically becomes the Requester. However, this arrangement is flexible. If the Requester lacks the necessary skills, they may transfer the project to another member while maintaining a Supporter role.

Responsibility of the Members

    Members are responsible for solving all claims arising from their work on the project. This particularly includes issues caused by legislative changes or mismatches between localization modules and local regulations.

Membership termination

    Membership in the foundation may be terminated under two primary conditions: voluntarily initiated by the member, or involuntarily terminated by the foundation.

    Termination initiated by the member

    A member wishing to leave the foundation must formally notify other members and, once set up, the Managing Board.

    Termination initiated by the foundation

    The foundation takes ethical conduct among its members seriously. Membership may be terminated for the following reasons:

    • Misappropriation of Intellectual Property: Stealing or copying code from other members
    • Project Hijacking: Taking over a project assigned to another partner without their consent
    • Unethical Recruitment: Poaching employees from other member companies
    • Professional Conduct:
      • Failure to meet project deadlines or deliver on agreed-upon services
      • Repeatedly providing poor quality work or service to clients
      • Engaging in unprofessional or disrespectful behavior towards other members or clients
      • Promoting false or misleading information about the foundation or its services
      • Failing to uphold the reputation and integrity of the foundation or other members
      • Engaging in fraudulent financial or any other activities
    • Financial Obligations: Non-payment of any membership fees (when implemented in the future)
    • Inactivity: Extended periods of inactivity within the network without communication,  repeatedly missing annual partner meetings or not participating in network activities

    Termination Process when initiated by the organization

    In the event of suspected misconduct, the foundation will conduct a thorough investigation. If the allegations are substantiated, a virtual meeting will be held as soon as possible to discuss expulsion. A two-thirds (2/3) majority vote of participating members is required to expel a member.

    Inactive members or members with outstanding fees will be flagged as Inactive at the first joint meeting and expelled at the following one.

    Consequences of Termination

    Loss of membership leads to immediate exclusion from the Foundation and revocation of all associated rights and privileges

    Upon departure, the member's logo will be removed from the foundation's website, and they may no longer claim affiliation with the organization. The foundation logo must be removed from the member's website and all associated materials upon termination of membership.

    Use of source code after the Termination

    The Requester may continue using the terminated member's localization source code exclusively to complete the current project. This prevents potential financial or reputational damage to ongoing projects. Further commercialization or use of the code of the terminated member for other purposes is strictly prohibited.