Daily updates from Odoo
Wednesday, September 18, 2024
6 changes
New functionality added to Odoo
Odoo Sign now supports radio button groups in PDF templates, allowing users to offer multiple options where only one can be selected per group. This improves document customization and makes forms with mutually exclusive choices clearer for signers.
Original PR description
This commits adds the "Radio Button" functionality, where the user can create multiple sets of items to select a single item in each set. Within each seat of items, lines are drawn between consecutive items so the user can differentiate between them. This functionality makes PDF handling in sign much more dinamic and increase PDFs customization by adding the possibility to select a single item in an extended range in the page. task-3876672
Odoo Recruitment can now manage job postings on external job boards directly from Odoo, starting with Monster.com. The update also helps create richer job post content from existing website job pages, reducing manual work for recruiters preparing announcements for multiple channels.
Original PR description
Recruitment: External API Integration ------------------------------------------------------- This PR adds new modules to permit to post job announce to external job boards and manage them directly…
Recruitment: External API Integration
-------------------------------------------------------
This PR adds new modules to permit to post job announce to external job boards and manage them directly inside odoo.
This follows the revamp of hr_recruitment for headhunters
External board integration: Monster.com
-----------------------------------------------------------
This PR also adds the first external board to odoo, Monster.com the new modules will communicate with monster with their SOAP api. see : https://schemas.monster.com/
Website ETL and Job Post Generation
------------------------------------------------
This PR also add a new feature if online jobs is installed to suggest a job description to the user to reduce the amount of work necessary to publish a job announce to other platforms
The idea is that the job description is not sufficient to generate a satisfactory job description.
what this will do is to extract description fromconvert a code like this
```html
<!-- Description text and ratings -->
<section class="pt0">
<div class="container">
<div class="row">
<div class="col-lg-8 pb32" itemprop="description">
<p class="lead">
As an employee of our company, you will <b>collaborate with each department to create and deploy
disruptive products.</b> Come work at a growing company that offers great benefits with opportunities to
moving forward and learn alongside accomplished leaders. We're seeking an experienced and outstanding member of staff.
<br><br>
This position is both <b>creative and rigorous</b> by nature you need to think outside the box.
We expect the candidate to be proactive and have a "get it done" spirit. To be successful,
you will have solid solving problem skills.
</p>
</div>
<div class="col-lg-3 offset-lg-1 pb32">
<div class="s_rating pb8" data-vcss="001" data-icon="fa-star" data-snippet="s_rating">
<h6 class="s_rating_title">Customer Relationship</h6>
<div class="s_rating_icons o_not_editable">
<span class="s_rating_active_icons text-primary">
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
</span>
<span class="s_rating_inactive_icons text-primary">
</span>
</div>
</div>
<div class="s_rating pb8" data-vcss="001" data-icon="fa-star" data-snippet="s_rating">
<h6 class="s_rating_title">Personal Evolution</h6>
<div class="s_rating_icons o_not_editable">
<span class="s_rating_active_icons text-primary">
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
</span>
<span class="s_rating_inactive_icons text-primary">
</span>
</div>
</div>
<div class="s_rating pb8" data-vcss="001" data-icon="fa-star" data-snippet="s_rating">
<h6 class="s_rating_title">Autonomy</h6>
<div class="s_rating_icons o_not_editable">
<span class="s_rating_active_icons text-primary">
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
</span>
<span class="s_rating_inactive_icons text-primary">
<i class="fa fa-star-o"></i>
</span>
</div>
</div>
<div class="s_rating pb8" data-vcss="001" data-icon="fa-star" data-snippet="s_rating">
<h6 class="s_rating_title">Administrative Work</h6>
<div class="s_rating_icons o_not_editable">
<span class="s_rating_active_icons text-primary">
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
</span>
<span class="s_rating_inactive_icons text-primary">
<i class="fa fa-star-o"></i>
<i class="fa fa-star-o"></i>
<i class="fa fa-star-o"></i>
</span>
</div>
</div>
<div class="s_rating pb8" data-vcss="001" data-icon="fa-star" data-snippet="s_rating">
<h6 class="s_rating_title">Technical Expertise</h6>
<div class="s_rating_icons o_not_editable">
<span class="s_rating_active_icons text-primary">
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
</span>
<span class="s_rating_inactive_icons text-primary">
</span>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Responsabilities, Must Have and Nice to have -->
<section class="s_comparisons pt24 pb24 bg-200" data-snippet="s_comparisons">
<div class="container">
<div class="row">
<div class="col-lg-4 s_col_no_bgcolor pt16 pb16" data-name="Box">
<div class="card text-bg-primary">
<h4 class="card-header">Responsibilities</h4>
<ul class="list-group list-group-flush">
<li class="list-group-item">Lead the entire sales cycle</li>
<li class="list-group-item">Achieve monthly sales objectives</li>
<li class="list-group-item">Qualify the customer needs</li>
<li class="list-group-item">Negotiate and contract</li>
<li class="list-group-item">Master demos of our software</li>
</ul>
</div>
</div>
<div class="col-lg-4 s_col_no_bgcolor pt16 pb16" data-name="Box">
<div class="card text-bg-primary">
<h4 class="card-header">Must Have</h4>
<ul class="list-group list-group-flush">
<li class="list-group-item">Bachelor Degree or Higher</li>
<li class="list-group-item">Passion for software products</li>
<li class="list-group-item">Perfect written English</li>
<li class="list-group-item">Highly creative and autonomous</li>
<li class="list-group-item">Valid work permit for Belgium</li>
</ul>
</div>
</div>
<div class="col-lg-4 s_col_no_bgcolor pt16 pb16" data-name="Box">
<div class="card text-bg-primary">
<h4 class="card-header">Nice to have</h4>
<ul class="list-group list-group-flush">
<li class="list-group-item">Experience in writing online content</li>
<li class="list-group-item">Additional languages</li>
<li class="list-group-item">Google Adwords experience</li>
<li class="list-group-item">Strong analytical skills</li>
</ul>
</div>
</div>
</div>
</div>
</section>
<!-- What's great -->
<section class="s_comparisons pt24 pb24" data-snippet="s_comparisons">
<div class="container">
<div class="row align-items-center">
<div class="col-sm-7 pb40">
<h2>What's great in the job?</h2>
<br>
<ul class="lead">
<li>Great team of smart people, in a friendly and open culture</li>
<li>No dumb managers, no stupid tools to use, no rigid working hours</li>
<li>No waste of time in enterprise processes, real responsibilities and autonomy</li>
<li>Expand your knowledge of various business industries</li>
<li>Create content that will help our users on a daily basis</li>
<li>Real responsibilities and challenges in a fast evolving company</li>
</ul>
</div>
<div data-name="Box" class="col-sm-4 offset-sm-1 pt16 pb16">
<div class="card shadow text-center">
<h5 class="card-header o_colored_level text-bg-primary">Our Product</h5>
<div class="card-body p-0 pt-3">
<img class="img-fluid o_we_custom_image pb24" src="/website_hr_recruitment/static/src/img/job_product.svg" style="width: 75% !important;" alt="Our Product">
<p>Discover our products.</p>
<p><a href="/" class="btn btn-primary" target="_blank"><small><b>READ</b></small></a></p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- What we offer -->
<section class="s_features pt64 pb40 bg-200" data-name="Features" data-snippet="s_features">
<div class="container">
<h2>What We Offer</h2>
<br>
<p class="lead">
Each employee has a chance to see the impact of his work.
You can make a real contribution to the success of the company.
<br>
Several activities are often organized all over the year, such as weekly
sports sessions, team building events, monthly drink, and much more
</p>
<div class="row pt16">
<div class="col-lg-3 text-center pt16 pb32">
<i class="fa fa-2x fa-gift rounded-circle text-bg-primary m-3"></i>
<h3>Perks</h3>
<p>A full-time position <br>Attractive salary package.</p>
</div>
<div class="col-lg-3 text-center pt16 pb32">
<i class="fa fa-2x fa-bar-chart rounded-circle text-bg-primary m-3"></i>
<h3>Trainings</h3>
<p>12 days / year, including <br>6 of your choice.</p>
</div>
<div class="col-lg-3 text-center pt16 pb32">
<i class="fa fa-2x fa-futbol-o rounded-circle text-bg-primary m-3"></i>
<h3>Sport Activity</h3>
<p>Play any sport with colleagues, <br>the bill is covered.</p>
</div>
<div class="col-lg-3 text-center pt16 pb32">
<i class="fa fa-2x fa-coffee rounded-circle text-bg-primary m-3"></i>
<h3>Eat & Drink</h3>
<p>Fruit, coffee and <br>snacks provided.</p>
</div>
</div>
</div>
</section>
<!-- Photos -->
<section class="o_jobs_image_gallery s_image_gallery pt24 pb24 o_grid o_spc-medium" data-vcss="001" data-columns="3" style="overflow: hidden;" data-snippet="s_images_wall" data-name="Images Wall">
<div class="container">
<div class="row s_nb_column_fixed">
<div class="col-lg-8">
<img src="/website_hr_recruitment/static/src/img/job_image_9.jpg" class="img img-fluid d-block h-100 w-100 shadow" style="object-fit: cover;">
</div>
<div class="col-lg-4">
<img src="/website_hr_recruitment/static/src/img/job_image_10.jpg" class="img img-fluid d-block h-100 w-100 shadow" style="object-fit: cover;">
</div>
</div>
<div class="row s_nb_column_fixed">
<div class="col-lg-3">
<img src="/website_hr_recruitment/static/src/img/job_image_11.jpg" class="img img-fluid d-block h-100 w-100 shadow" style="object-fit: cover;">
</div>
<div class="col-lg-3">
<img src="/website_hr_recruitment/static/src/img/job_image_12.jpg" class="img img-fluid d-block h-100 w-100 shadow" style="object-fit: cover;">
</div>
<div class="col-lg-6">
<img src="/website_hr_recruitment/static/src/img/job_image_13.jpg" class="img img-fluid d-block h-100 w-100 shadow" style="object-fit: cover;">
</div>
</div>
</div>
</section>
```
to something like this
```
job title: Experienced Developer
job url: http://snakysnakysketchy:8069/jobs/experienced-developer-4
job features:
Customer Relationship 5/5
Personal Evolution 5/5
Autonomy 4/5
Administrative Work 2/5
Technical Expertise 5/5
job description:
As an employee of our company, you will collaborate with each department to create and deploy disruptive products. Come work at a growing company that offers great benefits with opportunities to moving forward and learn alongside accomplished leaders. We're seeking an experienced and outstanding member of staff. This position is both creative and rigorous by nature you need to think outside the box. We expect the candidate to be proactive and have a "get it done" spirit. To be successful, you will have solid solving problem skills.
Responsibilities:
Lead the entire sales cycle
Achieve monthly sales objectives
Qualify the customer needs
Negotiate and contract
Master demos of our software
Must Have:
Bachelor Degree or Higher
Passion for software products
Perfect written English
Highly creative and autonomous
Valid work permit for Belgium
Nice to have:
Experience in writing online content
Additional languages
Google Adwords experience
Strong analytical skills
What's great in the job?:
Great team of smart people, in a friendly and open culture
No dumb managers, no stupid tools to use, no rigid working hours
No waste of time in enterprise processes, real responsibilities and autonomy
Expand your knowledge of various business industries
Create content that will help our users on a daily basis
Real responsibilities and challenges in a fast evolving company
What We Offer:
Each employee has a chance to see the impact of his work.
You can make a real contribution to the success of the company.
Several activities are often organized all over the year, such as weekly
sports sessions, team building events, monthly drink, and much more
Perks
A full-time position Attractive salary package.
Trainings
12 days / year, including 6 of your choice.
Sport Activity
Play any sport with colleagues, the bill is covered.
Eat & Drink
Fruit, coffee and snacks provided.
```
and then generating a suggested post looking like this with genAI
**Job Title: Experienced Developer**
**Location:** Belgium
**Job URL:** [Apply Here](http://snakysnakysketchy:8069/jobs/experienced-developer-4)
**About Us:**
Join our dynamic and innovative team at [Company Name], where we are redefining the future with cutting-edge technology and creative solutions. We believe in fostering a collaborative environment where creativity and autonomy thrive. As a growing company, we are excited to offer great benefits and opportunities for personal and professional growth.
**Role Overview:**
We are seeking an experienced and outstanding developer to join our team. This role requires a blend of creativity and technical rigor. You will collaborate with various departments to create and deploy groundbreaking products. The ideal candidate is proactive, has strong problem-solving skills, and a "get it done" attitude.
**Key Responsibilities:**
- Lead and manage the entire software development cycle.
- Design, develop, and deploy disruptive software products.
- Engage in technical discussions and provide insights on best practices.
- Collaborate with cross-functional teams to achieve project goals.
- Master and demonstrate our software through effective presentations.
**Must-Have Qualifications:**
- Bachelor’s Degree or higher in a relevant field.
- Passion for software development and technology.
- Excellent written and spoken English skills.
- Highly creative, autonomous, and proactive mindset.
- Valid work permit for Belgium.
**Nice to Have:**
- Experience in writing online content.
- Additional language skills.
- Knowledge of Google Adwords.
- Strong analytical skills.
**Why You'll Love Working Here:**
- **Great Team:** Work with smart, friendly colleagues in a supportive and open culture.
- **Autonomy:** Enjoy flexible working hours and minimal administrative work.
- **Impact:** See the direct impact of your contributions to the company’s success.
- **Learning:** Expand your knowledge across various business industries.
- **Responsibilities:** Take on real challenges in a fast-evolving environment.
**What We Offer:**
- **Competitive Salary:** Attractive salary package with full-time employment.
- **Training:** 12 days of training per year, including 6 days of your choice.
- **Sport Activities:** Engage in sports with colleagues, with expenses covered.
- **Eat & Drink:** Enjoy provided fruit, coffee, and snacks.
- **Team Building:** Participate in weekly sports sessions, team-building events, and monthly social drinks.
**How to Apply:**
If you are an experienced developer looking for an exciting opportunity to make a real impact, we would love to hear from you. Apply now through the [job listing](http://snakysnakysketchy:8069/jobs/experienced-developer-4).
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prEnhancements to existing features
Australian payroll now automates more Single Touch Payroll steps by adding payslips to STP records, creating STP records for pay runs, and warning users about unsubmitted records. The update also improves compliance handling for SuperStream, backpayments, child support, Medicare, STP finalisation, and file replacement, reducing manual work and reporting risk.
Original PR description
- Adds new payslips to STP automatically when they are created.
- Creates a new STP record for each Payrun. Adds warnings to the
dashboard for any STP records that have not been submitted.
3494990Odoo financial reports now apply the appropriate currency conversion method when consolidating companies with different currencies, using average, historical, or period-end rates depending on the account type. This improves the accuracy of consolidated statements and period comparisons, while related sales and manufacturing reports keep their existing behavior.
Original PR description
The CTA conversion method is used when consolidating multiple companies with different main currencies. The general idea is to use different rates depending on the account we're consolidating: -…
The CTA conversion method is used when consolidating multiple companies with different main currencies. The general idea is to use different rates depending on the account we're consolidating:
- Income/Expense accounts should use the average rate on the considered period
- Equity accounts should use the historical rate at the date they were made
- Other accounts should use the current rate, the one that applies at the end of the considered period
Before this commit, Odoo handled such conversions by always applying the current rate everywhere. For this, a structure called the currency table was used.
The community counterpart commit modifies the currency table in order to handle CTA conversion. This commit converts the reports to this new structure, and adds a field on account.report to control whether the report should use 'current' rates or CTA in case of multi-currency consolidation.
We also change the way the comparison feature of the reports works with multi-currency consolidation. In the past, the 'current' rate at the date_to chosen in the reports filter was used for every compared period. Now, each compared period computes a different rate depending on its date bounds. So, the 'current' rate will correspond in each period to the rate applying at the end of the period. The 'average' rate is also computed on each period individually.
Non-accounting reports defined in some sale and mrp modules are also impacted by this commit, to update the way they call the currency table. Their behavior is unaffected, they still make use of the current rates at the time they're opened.
task-4129647Subscriptions can now be billed at the end of a period based on what customers actually received or used, making recurring contracts better suited for usage-based services and delivered goods. The update also clarifies delivery timing for subscription products and prevents invoices from being created for already finished contracts.
Original PR description
Currently we always create invoice for the [period next_invoice_date --> next_invoice_date + period] but for products with an invoicing policy based on delivered quantity it is on non-sense.
There are also a lot of use cases requiring periodic invoicing but at the end of the period with an invoicing based on what the customers "received". Some examples:
Subscription for a service where the usage made affects the price:
Electricity
mobile subscriptions
...
Subscription of a physical product that can fail during the period preventing the customer to use it.
Leasing / renting of cars
Tracking device in truck (existing client)
Subscriptions of fresh produce
taskid: 3071118Features or functions removed from Odoo
The eBay sales integration has been removed because it depended on a deprecated SDK and was no longer sustainable to support. This means Odoo will no longer maintain this marketplace connector, allowing development effort to shift toward better-supported marketplace integrations.
Original PR description
This module relied on an sdk that is deprecated, therefore the functionality can no longer be supported. task-4185344