[IMP] website_hr_recruitment: add JobPosting metadata
Adds the JobPosting[1] metadata on job pages to increase their discoverability. [1]: https://schema.org/JobPosting task-2908478 closes odoo/odoo#103334 Related: odoo/upgrade#3967 Signed-off-by: Kevin Baptiste <kba@odoo.com>
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
<section class="pt32">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 pb32">
|
||||
<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
|
||||
@@ -142,7 +142,7 @@
|
||||
<h2>What's great in the job?</h2>
|
||||
<br/>
|
||||
<div class="row">
|
||||
<div class="col-lg-8 pb40">
|
||||
<div class="col-lg-8 pb40" itemprop="description">
|
||||
<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>
|
||||
@@ -235,7 +235,7 @@
|
||||
<section class="pt32">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 pb32">
|
||||
<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
|
||||
@@ -462,7 +462,7 @@
|
||||
<section class="pt32">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 pb32">
|
||||
<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
|
||||
@@ -688,7 +688,7 @@
|
||||
<section class="pt32">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 pb32">
|
||||
<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
|
||||
@@ -914,7 +914,7 @@
|
||||
<section class="pt32">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 pb32">
|
||||
<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
|
||||
@@ -1140,7 +1140,7 @@
|
||||
<section class="pt32">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 pb32">
|
||||
<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
|
||||
@@ -1366,7 +1366,7 @@
|
||||
<section class="pt32">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 pb32">
|
||||
<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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
from odoo import api, fields, models
|
||||
from odoo.tools import mute_logger
|
||||
from odoo.tools.translate import html_translate
|
||||
|
||||
@@ -33,6 +33,12 @@ class Job(models.Model):
|
||||
<span class="text-muted small">Days to get an Offer</span>
|
||||
<h6>4 Days after Interview</h6>
|
||||
""")
|
||||
published_date = fields.Date(compute='_compute_published_date', store=True)
|
||||
|
||||
@api.depends('website_published')
|
||||
def _compute_published_date(self):
|
||||
for job in self:
|
||||
job.published_date = job.website_published and fields.Date.today()
|
||||
|
||||
def _compute_website_url(self):
|
||||
super(Job, self)._compute_website_url()
|
||||
|
||||
@@ -79,42 +79,55 @@
|
||||
<t t-call="website.layout">
|
||||
<t t-set="additional_title">Job Detail</t>
|
||||
<div id="wrap" class="js_hr_recruitment">
|
||||
<!-- Breadcrumb -->
|
||||
<section class="bg-200">
|
||||
<div class="container">
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb ps-0">
|
||||
<li class="breadcrumb-item"><a href="/jobs" class="text-secondary fw-bold">Jobs</a></li>
|
||||
<li class="breadcrumb-item active" aria-current="page"><span t-field="job.name"/></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</section>
|
||||
<!-- Job name -->
|
||||
<section class="pb32">
|
||||
<div class="container">
|
||||
<div class="mt32">
|
||||
<div class="float-end">
|
||||
<a role="button" t-attf-href="/jobs/apply/#{job.id}" class="btn btn-primary btn-lg float-end">Apply Now!</a>
|
||||
</div>
|
||||
<h1 t-field="job.name"/>
|
||||
<h5 class="fw-light" t-field="job.address_id" t-options='{
|
||||
"widget": "contact",
|
||||
"fields": ["city"],
|
||||
"no_tag_br": True
|
||||
}'/>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<div itemscope="itemscope" itemtype="https://schema.org/JobPosting">
|
||||
<meta t-if="job.contract_type_id" itemprop="employmentType" t-att-content="job.contract_type_id.sudo().name"/>
|
||||
<meta t-if="job.published_date" itemprop="datePosted" t-att-content="job.published_date"/>
|
||||
<meta itemprop="directApply" content="true"/>
|
||||
<span itemprop="hiringOrganization" itemscope="itemscope" itemtype="https://schema.org/Organization">
|
||||
<meta itemprop="name" t-att-content="job.company_id.name"/>
|
||||
<meta itemprop="logo" t-attf-content="/logo.png?company=#{job.company_id.id}"/>
|
||||
</span>
|
||||
<span itemprop="jobLocation" itemscope="itemscope" itemtype="https://schema.org/Place">
|
||||
<meta itemprop="address" t-att-content="job.address_id.sudo().contact_address"/>
|
||||
</span>
|
||||
|
||||
<div t-field="job.website_description"/>
|
||||
|
||||
<div class="oe_structure">
|
||||
<section class="o_job_bottom_bar mt32 mb32">
|
||||
<div class="text-center">
|
||||
<a role="button" t-attf-href="/jobs/apply/#{job.id}" class="btn btn-primary btn-lg">Apply Now!</a>
|
||||
<!-- Breadcrumb -->
|
||||
<section class="bg-200">
|
||||
<div class="container">
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb ps-0">
|
||||
<li class="breadcrumb-item"><a href="/jobs" class="text-secondary fw-bold">Jobs</a></li>
|
||||
<li class="breadcrumb-item active" aria-current="page"><span itemprop="title" t-field="job.name"/></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</section>
|
||||
<!-- Job name -->
|
||||
<section class="pb32">
|
||||
<div class="container">
|
||||
<div class="mt32">
|
||||
<div class="float-end">
|
||||
<a role="button" t-attf-href="/jobs/apply/#{job.id}" class="btn btn-primary btn-lg float-end">Apply Now!</a>
|
||||
</div>
|
||||
<h1 t-field="job.name"/>
|
||||
<h5 class="fw-light" t-field="job.address_id" t-options='{
|
||||
"widget": "contact",
|
||||
"fields": ["city"],
|
||||
"no_tag_br": True
|
||||
}'/>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div t-field="job.website_description"/>
|
||||
|
||||
<div class="oe_structure">
|
||||
<section class="o_job_bottom_bar mt32 mb32">
|
||||
<div class="text-center">
|
||||
<a role="button" t-attf-href="/jobs/apply/#{job.id}" class="btn btn-primary btn-lg">Apply Now!</a>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
@@ -306,7 +319,7 @@
|
||||
<section class="pt32">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 pb32">
|
||||
<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
|
||||
@@ -401,7 +414,7 @@
|
||||
<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">
|
||||
<ul class="list-group list-group-flush" itemprop="responsibilities">
|
||||
<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>
|
||||
@@ -413,7 +426,7 @@
|
||||
<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">
|
||||
<ul class="list-group list-group-flush" itemprop="skills">
|
||||
<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>
|
||||
@@ -464,7 +477,7 @@
|
||||
</section>
|
||||
<!-- What we offer -->
|
||||
<section class="s_features pt40 pb40 bg-200" data-name="Features" data-snippet="s_features">
|
||||
<div class="container">
|
||||
<div class="container" itemprop="employerOverview">
|
||||
<h2>What We Offer</h2>
|
||||
<br/>
|
||||
<p class="lead">
|
||||
|
||||
Reference in New Issue
Block a user