This project serves as a pre-assessment for future applicants of Odev Solutions. If you want to know more about the opportunities, please visit https://www.odevsolutions.com/jobs.
We expect applicants to have a foundational understanding of Odoo and Python. If you are new to Odoo (trust us, it's amazing), please check out the official website and the official developer documentation.
Basic Git knowledge is required. Here are some resources to help you get started: freeCodeCamp: The beginner’s guide to Git & GitHub, Git Immersion.
We use Docker for our development environment. Ensure Docker is installed on your machine by following this guide: Get Docker.
You should also be able to set up an Odoo container using the odoo:17 image. Refer to the usage guide on the page for detailed instructions.
To start the Odoo service using Docker Compose, run:
docker compose upMake sure you are in the directory containing the docker-compose.yml file.
Navigate to the local Odoo instance at localhost:8069. Go through the basic setup process to initialize the Odoo database.
Then, install and activate the Library Extensions module from the apps list. This will also install the Library module.
You may now navigate to the Library module by clicking at the drop down menu button from the top navigation bar.
This assessment involves creating a custom Odoo module for a simple library management system. An existing module in this repository can be used as a starting point. Refer to: library.
First, fork this repository and clone it to your local machine. Then add the repository in your Odoo instance's addons path.
Refer to the sample snippet below for quick setup:
# Run postgres container
docker run -d -v odoo-db:/var/lib/postgresql/data -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:15
# Clone your repository
git clone https://github.com/your-username/library.git
# Run odoo container
docker run -v ./library:/mnt/extra-addons \
--name odoo \
-p 8069:8069 \
--link db:db \
-t odoo:17Note: If this snippet doesn't work for you, please refer to the official documentation for odoo Docker container.
Create a new module named library_extensions. It should depend on the library module.
This is where you will add your code for the other tasks.
Inherit the library.book model and add an author_id field.
- The
author_idfield should be aMany2onefield with theres.partnermodel. - The
author_idfield should be required.
-
Create a new model named
library.book.category. It should have anamefield.- The
namefield should be aCharfield. - The
namefield should be required. - The
namefield should be unique.
- The
-
Add a
category_idfield to thelibrary.bookmodel. It should be aMany2manyfield with thelibrary.book.categorymodel. -
A list and form view should also be created for the
library.book.categorymodel. The view should be accessible from theLibrary > Book Categorymenu. (You have to create a new menu item for this)
-
Update the
library.booklist view to display the following fields:author_idcategory_id
-
Update the
library.bookform view to display the following fields:author_idcategory_id
Now that you have completed the pre-assessment, you can continue to the Odev Solutions website and submit your application. Make sure your repository is public.
We will quickly review your submission and reach out to you for the next steps.
If you have any questions, contact us at [email protected].