Initial commit: Hr packages

This commit is contained in:
Ernad Husremovic 2025-08-29 15:20:50 +02:00
commit 62531cd146
2820 changed files with 1432848 additions and 0 deletions

View file

@ -0,0 +1,49 @@
# Recruitment
Odoo addon: hr_recruitment
## Installation
```bash
pip install odoo-bringout-oca-ocb-hr_recruitment
```
## Dependencies
This addon depends on:
- hr
- calendar
- utm
- attachment_indexation
- web_tour
- digest
## Manifest Information
- **Name**: Recruitment
- **Version**: 1.1
- **Category**: Human Resources/Recruitment
- **License**: LGPL-3
- **Installable**: True
## Source
Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `hr_recruitment`.
## License
This package maintains the original LGPL-3 license from the upstream Odoo project.
## Documentation
- Overview: doc/OVERVIEW.md
- Architecture: doc/ARCHITECTURE.md
- Models: doc/MODELS.md
- Controllers: doc/CONTROLLERS.md
- Wizards: doc/WIZARDS.md
- Install: doc/INSTALL.md
- Usage: doc/USAGE.md
- Configuration: doc/CONFIGURATION.md
- Dependencies: doc/DEPENDENCIES.md
- Troubleshooting: doc/TROUBLESHOOTING.md
- FAQ: doc/FAQ.md

View file

@ -0,0 +1,32 @@
# Architecture
```mermaid
flowchart TD
U[Users] -->|HTTP| V[Views and QWeb Templates]
V --> C[Controllers]
V --> W[Wizards Transient Models]
C --> M[Models and ORM]
W --> M
M --> R[Reports]
DX[Data XML] --> M
S[Security ACLs and Groups] -. enforces .-> M
subgraph Hr_recruitment Module - hr_recruitment
direction LR
M:::layer
W:::layer
C:::layer
V:::layer
R:::layer
S:::layer
DX:::layer
end
classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px
```
Notes
- Views include tree/form/kanban templates and report templates.
- Controllers provide website/portal routes when present.
- Wizards are UI flows implemented with `models.TransientModel`.
- Data XML loads data/demo records; Security defines groups and access.

View file

@ -0,0 +1,3 @@
# Configuration
Refer to Odoo settings for hr_recruitment. Configure related models, access rights, and options as needed.

View file

@ -0,0 +1,3 @@
# Controllers
This module does not define custom HTTP controllers.

View file

@ -0,0 +1,10 @@
# Dependencies
This addon depends on:
- [hr](../../odoo-bringout-oca-ocb-hr)
- [calendar](../../odoo-bringout-oca-ocb-calendar)
- [utm](../../odoo-bringout-oca-ocb-utm)
- [attachment_indexation](../../odoo-bringout-oca-ocb-attachment_indexation)
- [web_tour](../../odoo-bringout-oca-ocb-web_tour)
- [digest](../../odoo-bringout-oca-ocb-digest)

View file

@ -0,0 +1,4 @@
# FAQ
- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged).
- Q: How to enable? A: Start server with --addon hr_recruitment or install in UI.

View file

@ -0,0 +1,7 @@
# Install
```bash
pip install odoo-bringout-oca-ocb-hr_recruitment"
# or
uv pip install odoo-bringout-oca-ocb-hr_recruitment"
```

View file

@ -0,0 +1,26 @@
# Models
Detected core models and extensions in hr_recruitment.
```mermaid
classDiagram
class hr_applicant
class hr_applicant_category
class hr_applicant_refuse_reason
class hr_job
class hr_recruitment_degree
class hr_recruitment_source
class hr_recruitment_stage
class calendar_event
class digest_digest
class hr_department
class hr_employee
class ir_ui_menu
class res_users
class utm_campaign
class utm_source
```
Notes
- Classes show model technical names; fields omitted for brevity.
- Items listed under _inherit are extensions of existing models.

View file

@ -0,0 +1,6 @@
# Overview
Packaged Odoo addon: hr_recruitment. Provides features documented in upstream Odoo 16 under this addon.
- Source: OCA/OCB 16.0, addon hr_recruitment
- License: LGPL-3

View file

@ -0,0 +1,3 @@
# Reports
This module does not define custom reports.

View file

@ -0,0 +1,42 @@
# Security
Access control and security definitions in hr_recruitment.
## Access Control Lists (ACLs)
Model access permissions defined in:
- **[ir.model.access.csv](../hr_recruitment/security/ir.model.access.csv)**
- 20 model access rules
## Record Rules
Row-level security rules defined in:
## Security Groups & Configuration
Security groups and permissions defined in:
- **[hr_recruitment_security.xml](../hr_recruitment/security/hr_recruitment_security.xml)**
- 5 security groups defined
```mermaid
graph TB
subgraph "Security Layers"
A[Users] --> B[Groups]
B --> C[Access Control Lists]
C --> D[Models]
B --> E[Record Rules]
E --> F[Individual Records]
end
```
Security files overview:
- **[hr_recruitment_security.xml](../hr_recruitment/security/hr_recruitment_security.xml)**
- Security groups, categories, and XML-based rules
- **[ir.model.access.csv](../hr_recruitment/security/ir.model.access.csv)**
- Model access permissions (CRUD rights)
Notes
- Access Control Lists define which groups can access which models
- Record Rules provide row-level security (filter records by user/group)
- Security groups organize users and define permission sets
- All security is enforced at the ORM level by Odoo

View file

@ -0,0 +1,5 @@
# Troubleshooting
- Ensure Python and Odoo environment matches repo guidance.
- Check database connectivity and logs if startup fails.
- Validate that dependent addons listed in DEPENDENCIES.md are installed.

View file

@ -0,0 +1,7 @@
# Usage
Start Odoo including this addon (from repo root):
```bash
python3 scripts/nix_odoo_web_server.py --db-name mydb --addon hr_recruitment
```

View file

@ -0,0 +1,9 @@
# Wizards
Transient models exposed as UI wizards in hr_recruitment.
```mermaid
classDiagram
class ApplicantGetRefuseReason
class ApplicantSendMail
```

View file

@ -0,0 +1,39 @@
Manage Recruitment and Job applications
---------------------------------------
Publish, promote and organize your job offers with the Odoo
<a href="https://www.odoo.com/app/recruitment">Open Source Recruitment Application</a>.
Organize your job board, promote your job announces and keep track of
application submissions easily. Follow every applicant and build up a database
of skills and profiles with indexed documents.
Post Your Jobs on Best Job Boards
---------------------------------
Connect automatically to most famous job board websites; linkedIn, Monster,
Craigslist, ... Every job position has a new email address automatically
assigned to route applications automatically to the right job position.
Whether applicants contact you by email or using an online form, you get all
the data indexed automatically (resumes, motivation letter) and you can answer
in just a click, reusing templates of answers.
Customize Your Recruitment Process
----------------------------------
Use the kanban view and customize the steps of your recruitments process;
pre-qualification, first interview, second interview, negociaiton, ...
Get accurate statistics on your recruitment pipeline. Get reports to compare
the performance of your different investments on external job boards.
Streamline Your Recruitment Process
-----------------------------------
Follow applicants in your recruitment process with the smart kanban view. Save
time by automating some communications with email templates.
Documents like resumes and motivation letters are indexed automatically,
allowing you to easily find for specific skills and build up a database of
profiles.

View file

@ -0,0 +1,5 @@
# -*- encoding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import models
from . import wizard

View file

@ -0,0 +1,51 @@
# -*- encoding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Recruitment',
'version': '1.1',
'category': 'Human Resources/Recruitment',
'sequence': 90,
'summary': 'Track your recruitment pipeline',
'website': 'https://www.odoo.com/app/recruitment',
'depends': [
'hr',
'calendar',
'utm',
'attachment_indexation',
'web_tour',
'digest',
],
'data': [
'security/hr_recruitment_security.xml',
'security/ir.model.access.csv',
'data/digest_data.xml',
'data/mail_alias_data.xml',
'data/mail_message_subtype_data.xml',
'data/mail_template_data.xml',
'data/mail_templates.xml',
'data/hr_recruitment_data.xml',
'views/hr_recruitment_views.xml',
'views/res_config_settings_views.xml',
'views/hr_department_views.xml',
'views/hr_job_views.xml',
'views/mail_activity_views.xml',
'views/digest_views.xml',
'wizard/applicant_refuse_reason_views.xml',
'wizard/applicant_send_mail_views.xml',
],
'demo': [
'data/hr_recruitment_demo.xml',
],
'installable': True,
'application': True,
'assets': {
'web.assets_backend': [
'hr_recruitment/static/src/**/*.js',
'hr_recruitment/static/src/**/*.scss',
'hr_recruitment/static/src/**/*.xml',
'hr_recruitment/static/src/js/tours/hr_recruitment.js',
],
},
'license': 'LGPL-3',
}

View file

@ -0,0 +1,28 @@
<?xml version='1.0' encoding='utf-8'?>
<odoo>
<data noupdate="1">
<record id="digest.digest_digest_default" model="digest.digest">
<field name="kpi_hr_recruitment_new_colleagues">True</field>
</record>
</data>
<data>
<record id="digest_tip_hr_recruitment_0" model="digest.tip">
<field name="name">Tip: Let candidates apply by email</field>
<field name="sequence">1300</field>
<field name="group_id" ref="hr_recruitment.group_hr_recruitment_manager" />
<field name="tip_description" type="html">
<div>
<p class="tip_title">Tip: Let candidates apply by email</p>
<p class="tip_content">
By setting an alias to a job position, emails sent to this address create applications automatically. You can even use multiple trackers to get statistics according to the source of the application: LinkedIn, Monster, Indeed, etc.
<t t-set="record" t-value="object.env['hr.job'].search([('alias_name', '!=', False)], limit=1)" />
<t t-if="record and record.alias_domain">
<a t-attf-href="mailto:{{record.alias_id.display_name}}" target="_blank" style="color: #875a7b; text-decoration: none;">Try sending an email</a>
</t>
</p>
</div>
</field>
</record>
</data>
</odoo>

View file

@ -0,0 +1,103 @@
<?xml version="1.0"?>
<odoo>
<data noupdate="1">
<!-- Meeting Types (for interview meetings) -->
<record model="calendar.event.type" id="categ_meet_interview">
<field name="name">Interview</field>
</record>
<record model="hr.recruitment.degree" id="degree_graduate">
<field name="name">Graduate</field>
<field name="sequence">1</field>
</record>
<record model="hr.recruitment.degree" id="degree_bachelor">
<field name="name">Bachelor Degree</field>
<field name="sequence">2</field>
</record>
<record model="hr.recruitment.degree" id="degree_licenced">
<field name="name">Master Degree</field>
<field name="sequence">3</field>
</record>
<record model="hr.recruitment.degree" id="degree_bac5">
<field name="name">Doctoral Degree</field>
<field name="sequence">4</field>
</record>
<!-- Applicant Categories(Tag) -->
<record id="tag_applicant_reserve" model="hr.applicant.category">
<field name="name">Reserve</field>
</record>
<record id="tag_applicant_manager" model="hr.applicant.category">
<field name="name">Manager</field>
</record>
<record id="tag_applicant_it" model="hr.applicant.category">
<field name="name">IT</field>
</record>
<record id="tag_applicant_sales" model="hr.applicant.category">
<field name="name">Sales</field>
</record>
<record model="utm.campaign" id="utm_campaign_job">
<field name="name">Job Campaign</field>
</record>
<record model="hr.recruitment.stage" id="stage_job1">
<field name="name">Initial Qualification</field>
<field name="sequence">1</field>
</record>
<record model="hr.recruitment.stage" id="stage_job2">
<field name="name">First Interview</field>
<field name="sequence">2</field>
<field name="template_id" ref="email_template_data_applicant_congratulations"/>
</record>
<record model="hr.recruitment.stage" id="stage_job3">
<field name="name">Second Interview</field>
<field name="sequence">3</field>
</record>
<record model="hr.recruitment.stage" id="stage_job4">
<field name="name">Contract Proposal</field>
<field name="sequence">4</field>
</record>
<record model="hr.recruitment.stage" id="stage_job5">
<field name="name">Contract Signed</field>
<field name="sequence">5</field>
<field name="fold" eval="True"/>
<field name="hired_stage">True</field>
</record>
<!-- applicant refuse reason -->
<record id="refuse_reason_1" model="hr.applicant.refuse.reason">
<field name="name">Doesn't fit the job requirements</field>
<field name="template_id" ref="email_template_data_applicant_refuse"/>
</record>
<record id="refuse_reason_2" model="hr.applicant.refuse.reason">
<field name="name">Refused by Applicant: don't like job</field>
<field name="template_id" ref="email_template_data_applicant_not_interested"/>
</record>
<record id="refuse_reason_3" model="hr.applicant.refuse.reason">
<field name="name">Refused by Applicant: better offer</field>
<field name="template_id" ref="email_template_data_applicant_not_interested"/>
</record>
<record id="refuse_reason_4" model="hr.applicant.refuse.reason">
<field name="name">Language issues</field>
<field name="template_id" ref="email_template_data_applicant_refuse"/>
</record>
<record id="refuse_reason_5" model="hr.applicant.refuse.reason">
<field name="name">Role already fulfilled</field>
<field name="template_id" ref="email_template_data_applicant_refuse"/>
</record>
<record id="refuse_reason_6" model="hr.applicant.refuse.reason">
<field name="name">Duplicate</field>
<field name="template_id" ref="email_template_data_applicant_refuse"/>
</record>
<record id="refuse_reason_7" model="hr.applicant.refuse.reason">
<field name="name">Spam</field>
<field name="template_id" ref="email_template_data_applicant_refuse"/>
</record>
<record id="refuse_reason_8" model="hr.applicant.refuse.reason">
<field name="name">Refused by Applicant: salary</field>
<field name="template_id" ref="email_template_data_applicant_not_interested"/>
</record>
</data>
</odoo>

View file

@ -0,0 +1,492 @@
<?xml version="1.0"?>
<odoo noupdate="1">
<record id="base.user_demo" model="res.users">
<field name="groups_id" eval="[(4, ref('hr_recruitment.group_hr_recruitment_user'))]"/>
</record>
<!--Manage the job_id to get in hr.applicant-->
<record id="hr.job_developer" model="hr.job">
<field name="no_of_recruitment">4</field>
<field name="no_of_hired_employee">56</field>
<field name="user_id" ref="base.user_admin" />
</record>
<record id="hr.job_ceo" model="hr.job">
<field name="no_of_hired_employee">1</field>
</record>
<record id="hr.job_cto" model="hr.job">
<field name="no_of_hired_employee">1</field>
<field name="user_id" ref="base.user_admin" />
</record>
<record id="hr.job_consultant" model="hr.job">
<field name="no_of_recruitment">1</field>
<field name="no_of_hired_employee">17</field>
<field name="user_id" ref="base.user_demo" />
</record>
<record id="hr.job_hrm" model="hr.job">
<field name="no_of_recruitment">1</field>
<field name="no_of_hired_employee">5</field>
</record>
<record id="hr.job_marketing" model="hr.job">
<field name="no_of_recruitment">3</field>
<field name="no_of_hired_employee">2</field>
<field name="user_id" ref="base.user_demo" />
</record>
<record id="hr.job_trainee" model="hr.job">
<field name="no_of_recruitment">6</field>
</record>
<record id="hr_recruitment_linkedin_developer" model="hr.recruitment.source">
<field name="source_id" ref="utm.utm_source_linkedin"/>
<field name="job_id" ref="hr.job_developer"/>
</record>
<record id="hr_recruitment_linkedin_ceo" model="hr.recruitment.source">
<field name="source_id" ref="utm.utm_source_linkedin"/>
<field name="job_id" ref="hr.job_ceo"/>
</record>
<record id="hr_recruitment_linkedin_cto" model="hr.recruitment.source">
<field name="source_id" ref="utm.utm_source_linkedin"/>
<field name="job_id" ref="hr.job_cto"/>
</record>
<record id="hr_recruitment_linkedin_consultant" model="hr.recruitment.source">
<field name="source_id" ref="utm.utm_source_linkedin"/>
<field name="job_id" ref="hr.job_consultant"/>
</record>
<record id="hr_recruitment_linkedin_hrm" model="hr.recruitment.source">
<field name="source_id" ref="utm.utm_source_linkedin"/>
<field name="job_id" ref="hr.job_hrm"/>
</record>
<record id="hr_recruitment_linkedin_marketing" model="hr.recruitment.source">
<field name="source_id" ref="utm.utm_source_linkedin"/>
<field name="job_id" ref="hr.job_marketing"/>
</record>
<record id="hr_recruitment_linkedin_trainee" model="hr.recruitment.source">
<field name="source_id" ref="utm.utm_source_linkedin"/>
<field name="job_id" ref="hr.job_trainee"/>
</record>
<record id="hr_case_salesman0" model="hr.applicant">
<field name="name">Sales Manager</field>
<field name="job_id" ref="hr.job_marketing"/>
<field name="department_id" ref="hr.dep_sales"/>
<field name="medium_id" ref="utm.utm_medium_direct"/>
<field name="type_id" ref="degree_graduate"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_sales')])]"/>
<field name="user_id" ref="base.user_demo"/>
<field name="priority">1</field>
<field name="partner_name">Enrique Jones</field>
<field name="email_from">enrique.jones152@gmail.example.com</field>
<field name="partner_mobile">9963214587</field>
<field name="stage_id" ref="stage_job2"/>
<field name="create_date" eval="DateTime.now() - relativedelta(days=29)"/>
<field name="date_last_stage_update" eval="(DateTime.today() - timedelta(days=27)).strftime('%Y-%m-%d')"/>
</record>
<record id="hr_case_salesman1" model="hr.applicant">
<field name="name">Sales</field>
<field name="job_id" ref="hr.job_marketing"/>
<field name="department_id" ref="hr.dep_sales"/>
<field name="type_id" ref="degree_graduate"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_sales')])]"/>
<field name="user_id" ref="base.user_demo"/>
<field name="priority">1</field>
<field name="partner_name">Meldona Thang</field>
<field name="email_from">thing.thang.thong@gmail.example.com</field>
<field name="partner_mobile">998655451</field>
<field name="stage_id" ref="stage_job1"/>
</record>
<record id="hr_case_dev0" model="hr.applicant">
<field name="name">Developer PHP</field>
<field name="job_id" ref="hr.job_developer"/>
<field name="department_id" ref="hr.dep_rd"/>
<field name="medium_id" ref="utm.utm_medium_email"/>
<field name="type_id" ref="degree_graduate"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_it')])]"/>
<field name="user_id" ref="base.user_admin"/>
<field name="priority">3</field>
<field name="partner_name">Johan Duck</field>
<field name="email_from">coincoin@gmail.example.com</field>
<field name="partner_mobile">8955545</field>
<field name="stage_id" ref="stage_job1"/>
</record>
<record id="hr_case_dev1" model="hr.applicant">
<field name="name">Developer Fullstack</field>
<field name="job_id" ref="hr.job_developer"/>
<field name="department_id" ref="hr.dep_rd"/>
<field name="type_id" ref="degree_graduate"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_it')])]"/>
<field name="user_id" ref="base.user_admin"/>
<field name="priority">0</field>
<field name="partner_name">Kelly Wallant</field>
<field name="email_from">kelly@wallant.example.com</field>
<field name="partner_mobile">879895515</field>
<field name="stage_id" ref="stage_job1"/>
</record>
<record id="hr_case_dev2" model="hr.applicant">
<field name="name">Developer Python</field>
<field name="job_id" ref="hr.job_developer"/>
<field name="department_id" ref="hr.dep_rd"/>
<field name="medium_id" ref="utm.utm_medium_email"/>
<field name="type_id" ref="degree_graduate"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_it')])]"/>
<field name="user_id" ref="base.user_admin"/>
<field name="priority">0</field>
<field name="partner_name">Cécile Donth</field>
<field name="email_from">c-cile72@msn.example.com</field>
<field name="partner_mobile">98765411</field>
<field name="stage_id" ref="stage_job1"/>
</record>
<record id="hr_case_dev3" model="hr.applicant">
<field name="name">Developer C/C++</field>
<field name="job_id" ref="hr.job_developer"/>
<field name="department_id" ref="hr.dep_rd"/>
<field name="type_id" ref="degree_graduate"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_it')])]"/>
<field name="user_id" ref="base.user_admin"/>
<field name="priority">0</field>
<field name="partner_name">Ohen Rizome</field>
<field name="email_from">0h3n-rijaune@yahoo.example.com</field>
<field name="partner_mobile">654687987654</field>
<field name="stage_id" ref="stage_job1"/>
</record>
<record id="hr_case_traineemca0" model="hr.applicant">
<field name="name">Trainee - MCA</field>
<field name="job_id" ref="hr.job_trainee"/>
<field name="department_id" ref="hr.dep_rd"/>
<field name="type_id" ref="degree_licenced"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_manager')])]"/>
<field name="user_id" ref="base.user_demo"/>
<field name="priority">2</field>
<field name="partner_name">Marie Justine</field>
<field name="email_from">justinemarie@outlook.example.com</field>
<field name="partner_mobile">9988774455</field>
<field name="stage_id" ref="stage_job4"/>
<field name="partner_phone">6633225</field>
<field name="create_date" eval="DateTime.now() - relativedelta(days=17)"/>
<field name="date_last_stage_update" eval="(DateTime.today() - timedelta(days=7)).strftime('%Y-%m-%d')"/>
</record>
<record id="hr_case_fresher0" model="hr.applicant">
<field name="name">Fresher</field>
<field name="job_id" ref="hr.job_trainee"/>
<field name="department_id" ref="hr.dep_administration"/>
<field name="type_id" ref="degree_bachelor"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_it')])]"/>
<field name="user_id" ref="base.user_demo"/>
<field name="priority">0</field>
<field name="partner_name">Jose</field>
<field name="email_from">the.jose@gmail.example.com</field>
<field name="stage_id" ref="stage_job3"/>
<field name="partner_phone">999666735</field>
</record>
<record id="hr_case_mkt0" model="hr.applicant">
<field name="name">Marketing</field>
<field name="job_id" ref="hr.job_marketing"/>
<field name="department_id" ref="hr.dep_sales"/>
<field name="type_id" ref="degree_graduate"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_manager')])]"/>
<field name="user_id" ref="base.user_admin"/>
<field name="partner_name">Yin Lee</field>
<field name="email_from">yin.lee@wechat.example.com</field>
<field name="stage_id" ref="stage_job1"/>
</record>
<record id="hr_case_mkt1" model="hr.applicant">
<field name="name">Marketing 2 Year Experience</field>
<field name="job_id" ref="hr.job_marketing"/>
<field name="department_id" ref="hr.dep_sales"/>
<field name="type_id" ref="degree_graduate"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_manager')])]"/>
<field name="user_id" ref="base.user_admin"/>
<field name="partner_name">Hubert Blank</field>
<field name="email_from">st-hubertus@gmail.example.com</field>
<field name="priority">3</field>
<field name="stage_id" ref="stage_job3"/>
</record>
<record id="hr_case_yrsexperienceinphp0" model="hr.applicant">
<field name="name">Marketing Job</field>
<field eval="(datetime.now()+relativedelta(months=-2)).strftime('%Y-%m-03 01:00:00')" name="create_date"/>
<field name="job_id" ref="hr.job_marketing"/>
<field name="department_id" ref="hr.dep_sales"/>
<field name="type_id" ref="degree_graduate"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_manager')])]"/>
<field name="user_id" ref="base.user_admin"/>
<field name="partner_name">John Bruno</field>
<field name="email_from">johnnyboy@gmail.example.com</field>
<field name="stage_id" ref="stage_job5"/>
<field name="create_date" eval="DateTime.now() - relativedelta(days=61)"/>
<field name="date_last_stage_update" eval="(DateTime.today() - timedelta(days=37)).strftime('%Y-%m-%d')"/>
</record>
<record id="hr_case_marketingjob0" model="hr.applicant">
<field name="name">More than 5 yrs Experience in PHP</field>
<field eval="(datetime.now()+relativedelta(months=-1)).strftime('%Y-%m-08 01:00:00')" name="create_date"/>
<field name="job_id" ref="hr.job_developer"/>
<field name="department_id" ref="hr.dep_rd"/>
<field name="type_id" ref="degree_licenced"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_reserve')])]"/>
<field name="user_id" ref="base.user_demo"/>
<field name="partner_name">Sandra Elvis</field>
<field name="email_from">sandra.elvis.the.king25@gmail.example.com</field>
<field name="stage_id" ref="stage_job5"/>
<field name="create_date" eval="DateTime.now() - relativedelta(days=34)"/>
<field name="date_last_stage_update" eval="(DateTime.today() - timedelta(days=7)).strftime('%Y-%m-%d')"/>
</record>
<record id="hr_case_financejob0" model="hr.applicant">
<field name="name">Finance Manager</field>
<field name="job_id" ref="hr.job_hrm"/>
<field name="department_id" ref="hr.dep_administration"/>
<field name="type_id" ref="degree_licenced"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_reserve')])]"/>
<field name="user_id" ref="base.user_admin"/>
<field name="priority">1</field>
<field name="partner_name">David Armstrong</field>
<field name="email_from">david.strongarm@gmail.example.com</field>
<field name="stage_id" ref="stage_job2"/>
<field name="partner_phone">33968745</field>
</record>
<record id="hr_case_financejob1" model="hr.applicant">
<field name="name">Finance</field>
<field name="job_id" ref="hr.job_hrm"/>
<field name="department_id" ref="hr.dep_administration"/>
<field name="type_id" ref="degree_licenced"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_reserve')])]"/>
<field name="user_id" ref="base.user_admin"/>
<field name="priority">1</field>
<field name="partner_name">Joren Jacob</field>
<field name="email_from">joren.jacob@outlook.example.com</field>
<field name="stage_id" ref="stage_job2"/>
<field name="create_date" eval="DateTime.now() - relativedelta(days=7)"/>
<field name="date_last_stage_update" eval="(DateTime.today() - timedelta(days=3)).strftime('%Y-%m-%d')"/>
</record>
<record id="hr_case_traineemca1" model="hr.applicant">
<field name="name">Trainee - MCA</field>
<field name="job_id" ref="hr.job_trainee"/>
<field name="department_id" ref="hr.dep_rd"/>
<field name="type_id" ref="degree_licenced"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_sales')])]"/>
<field name="partner_name">Tina Augustie</field>
<field name="email_from">tina.turner@gmail.example.com</field>
<field name="partner_mobile">9898745745</field>
<field name="stage_id" ref="stage_job4"/>
<field name="partner_phone">6630125</field>
<field name="user_id" ref="base.user_admin"/>
<field name="create_date" eval="DateTime.now() - relativedelta(days=67)"/>
<field name="date_last_stage_update" eval="(DateTime.today() - timedelta(days=45)).strftime('%Y-%m-%d')"/>
</record>
<record id="hr_case_programmer" model="hr.applicant">
<field name="name">Programmer</field>
<field name="job_id" ref="hr.job_developer"/>
<field name="department_id" ref="hr.dep_rd"/>
<field name="type_id" ref="degree_licenced"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_it')])]"/>
<field name="user_id" ref="base.user_admin"/>
<field name="partner_name">Shane Williams</field>
<field name="email_from">the.real.shane@gmail.example.com</field>
<field name="partner_mobile">9812398524</field>
<field name="stage_id" ref="stage_job4"/>
<field name="partner_phone">6630125</field>
<field name="salary_expected">11000.0</field>
<field name="create_date" eval="DateTime.now() - relativedelta(days=13)"/>
<field name="date_last_stage_update" eval="(DateTime.today() - timedelta(days=4)).strftime('%Y-%m-%d')"/>
</record>
<record id="hr_case_advertisement" model="hr.applicant">
<field name="name">Advertisement</field>
<field name="job_id" ref="hr.job_consultant"/>
<field name="department_id" ref="hr.dep_ps"/>
<field name="type_id" ref="degree_licenced"/>
<field name="categ_ids" eval="[(6,0,[ref('tag_applicant_it')])]"/>
<field name="user_id" ref="base.user_admin"/>
<field name="partner_name">David Billy</field>
<field name="email_from">billy.boy12@gmail.example.com</field>
<field name="partner_mobile">9988774455</field>
<field name="stage_id" ref="stage_job2"/>
<field name="salary_expected">11000.0</field>
<field name="create_date" eval="DateTime.now() - relativedelta(days=4)"/>
<field name="date_last_stage_update" eval="(DateTime.today() - timedelta(days=2)).strftime('%Y-%m-%d')"/>
</record>
<record id="hr_case_salesman0_cv" model="ir.attachment">
<field name="name">Jones_CV.pdf</field>
<field name="datas" type="base64" file="hr_recruitment/data/hr_recruitment_demo_jones_cv.pdf"></field>
<field name="res_model">hr.applicant</field>
<field name="res_id" ref="hr_recruitment.hr_case_salesman0"/>
</record>
<record id="hr_case_fresher0_cv" model="ir.attachment">
<field name="name">Jose_CV.txt</field>
<field name="datas" type="base64" file="hr_recruitment/data/hr_recruitment_demo_jose_cv.txt"></field>
<field name="res_model">hr.applicant</field>
<field name="res_id" ref="hr_recruitment.hr_case_fresher0"/>
</record>
<record id="hr_case_programmer_cv" model="ir.attachment">
<field name="name">Williams_CV.doc</field>
<field name="datas" type="base64" file="hr_recruitment/data/hr_recruitment_demo_williams_cv.doc"></field>
<field name="res_model">hr.applicant</field>
<field name="res_id" ref="hr_recruitment.hr_case_programmer"/>
</record>
<record id="message_application_demo" model="mail.message">
<field name="model">hr.applicant</field>
<field name="res_id" ref="hr_case_advertisement"/>
<field name="body">Please do refer to this application for sure.</field>
<field name="message_type">comment</field>
<field name="author_id" ref="base.res_partner_2"/>
</record>
<record id="msg_case18_aplicant" model="mail.message">
<field name="subject">Regarding reference</field>
<field name="model">hr.applicant</field>
<field name="res_id" ref="hr_case_advertisement"/>
<field name="date" eval="DateTime.now() - relativedelta(days=3)"/>
<field name="body" type="html">
<p>Hello!<br />
I will surely refer to this application as it is by your reference and <br />
will try to conduct an interview within a very short time<br />
Thanks,</p>
</field>
<field name="message_type">comment</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="author_id" ref="base.partner_demo"/>
</record>
<function model="mail.message" name="toggle_message_starred"
eval="[ref('msg_case18_aplicant')]"
/>
<record id="msg_case_salesman0_aplicant" model="mail.message">
<field name="subject">Refuse Application</field>
<field name="model">hr.applicant</field>
<field name="res_id" ref="hr_case_salesman0"/>
<field name="body" type="html">
<p>Hello,</p>
<p>I have checked this application but it does not match with our requirements. We don't need to proceed further and we should refuse this application.</p>
<p>Kind regards,</p>
</field>
<field name="message_type">comment</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="author_id" ref="base.partner_demo"/>
</record>
<record id="msg_case_dev0_aplicant" model="mail.message">
<field name="subject">Refuse Application</field>
<field name="model">hr.applicant</field>
<field name="res_id" ref="hr_case_dev0"/>
<field name="body" type="html">
<p>Hello,</p>
<p>This applicant has excellent skills and would greatly fit in the RD Team!</p>
<p>Kind regards,</p>
</field>
<field name="message_type">comment</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="author_id" ref="base.partner_demo"/>
</record>
<record id="msg_case_fresher0_aplicant" model="mail.message">
<field name="model">hr.applicant</field>
<field name="res_id" ref="hr_case_fresher0"/>
<field name="body" type="html">
<p>Hello,</p>
<p>We should move further for this application as early as possible.</p>
<p>Kind regards,</p>
</field>
<field name="message_type">comment</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="author_id" ref="base.partner_demo"/>
</record>
<record id="msg_case_advertisement_aplicant" model="mail.message">
<field name="model">hr.applicant</field>
<field name="res_id" ref="hr_case_advertisement"/>
<field name="body" type="html">
<p>Hello,</p>
<p>The first interview was good. Skilled and open minded applicant.</p>
<p>I think we should consider hiring him.</p>
<p>Kind regards,</p>
</field>
<field name="message_type">comment</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="author_id" ref="base.partner_demo"/>
</record>
<record id="msg_case_mkt1_1" model="mail.message">
<field name="model">hr.applicant</field>
<field name="res_id" ref="hr_case_mkt1"/>
<field name="body" type="html">
<p>Hello,</p>
<p>The first interview was good. I will propose a second interview</p>
<p>Kind regards,</p>
</field>
<field name="message_type">comment</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="author_id" ref="base.partner_demo"/>
</record>
<record id="msg_case_mkt1_2" model="mail.message">
<field name="model">hr.applicant</field>
<field name="res_id" ref="hr_case_mkt1"/>
<field name="body" type="html">
<p>Hello,</p>
<p>After the second interview, I think we should consider hiring him.</p>
<p>Kind regards,</p>
</field>
<field name="message_type">comment</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="author_id" ref="base.partner_admin"/>
</record>
<record id="mail_activity_0" model="mail.activity">
<field name="res_id" ref="hr_recruitment.hr_case_dev0" />
<field name="res_model_id" ref="model_hr_applicant"/>
<field name="activity_type_id" ref="mail.mail_activity_data_email" />
<field name="date_deadline" eval="time.strftime('%Y-%m-27 18:15:00')"/>
<field name="summary">Send mail regarding our interview</field>
<field name="create_uid" ref="base.user_admin"/>
<field name="user_id" ref="base.user_admin"/>
</record>
<record id="mail_activity_1" model="mail.activity">
<field name="res_id" ref="hr_recruitment.hr_case_dev1" />
<field name="res_model_id" ref="model_hr_applicant"/>
<field name="activity_type_id" ref="mail.mail_activity_data_email" />
<field name="date_deadline" eval="time.strftime('%Y-%m-%d')"/>
<field name="summary">Send mail for first interview</field>
<field name="create_uid" ref="base.user_admin"/>
<field name="user_id" ref="base.user_admin"/>
</record>
<record id="mail_activity_2" model="mail.activity">
<field name="res_id" ref="hr_recruitment.hr_case_salesman0" />
<field name="res_model_id" ref="model_hr_applicant"/>
<field name="activity_type_id" ref="mail.mail_activity_data_email" />
<field name="date_deadline" eval="time.strftime('%Y-%m-15 18:15:00')"/>
<field name="summary">Send mail regarding our interview</field>
<field name="create_uid" ref="base.user_admin"/>
<field name="user_id" ref="base.user_admin"/>
</record>
<record id="mail_activity_3" model="mail.activity">
<field name="res_id" ref="hr_recruitment.hr_case_traineemca0" />
<field name="res_model_id" ref="model_hr_applicant"/>
<field name="activity_type_id" ref="mail.mail_activity_data_call" />
<field name="date_deadline" eval="time.strftime('%Y-%m-10 18:15:00')"/>
<field name="summary">Call to define real needs about training</field>
<field name="create_uid" ref="base.user_admin"/>
<field name="user_id" ref="base.user_admin"/>
</record>
<record id="mail_activity_4" model="mail.activity">
<field name="res_id" ref="hr_recruitment.hr_case_yrsexperienceinphp0" />
<field name="res_model_id" ref="model_hr_applicant"/>
<field name="activity_type_id" ref="mail.mail_activity_data_call" />
<field name="date_deadline" eval="time.strftime('%Y-%m-24 18:15:00')"/>
<field name="summary">Call to define real needs about training</field>
<field name="create_uid" ref="base.user_admin"/>
<field name="user_id" ref="base.user_admin"/>
</record>
<record id="mail_activity_5" model="mail.activity">
<field name="res_id" ref="hr_recruitment.hr_case_advertisement" />
<field name="res_model_id" ref="model_hr_applicant"/>
<field name="activity_type_id" ref="mail.mail_activity_data_call" />
<field name="date_deadline" eval="time.strftime('%Y-%m-26 18:15:00')"/>
<field name="summary">Call to schedule a second interview</field>
<field name="create_uid" ref="base.user_admin"/>
<field name="user_id" ref="base.user_admin"/>
</record>
<record id="mail_activity_6" model="mail.activity">
<field name="res_id" ref="hr_recruitment.hr_case_mkt1" />
<field name="res_model_id" ref="model_hr_applicant"/>
<field name="activity_type_id" ref="mail.mail_activity_data_call" />
<field name="date_deadline" eval="time.strftime('%Y-%m-18 17:15:00')"/>
<field name="summary">Call to propose a contract</field>
<field name="create_uid" ref="base.user_admin"/>
<field name="user_id" ref="base.user_admin"/>
</record>
</odoo>

View file

@ -0,0 +1,9 @@
Profile
Name : Jose
Address : 93, Press Avenue
: Le Bourget du Lac, 73377,
: France
Qualification : MCA
Email : Jose@gmail.com
Mobile : 9968513587

View file

@ -0,0 +1,11 @@
<?xml version="1.0"?>
<odoo>
<data noupdate="1">
<record id="mail_alias_jobs" model="mail.alias">
<field name="alias_name">jobs</field>
<field name="alias_model_id" ref="model_hr_applicant"/>
<field name="alias_user_id" ref="base.user_admin"/>
<field name="alias_parent_model_id" ref="model_hr_job"/>
</record>
</data>
</odoo>

View file

@ -0,0 +1,63 @@
<?xml version="1.0"?>
<odoo>
<data noupdate="1">
<!-- Applicant-related subtypes for messaging / Chatter -->
<record id="mt_applicant_new" model="mail.message.subtype">
<field name="name">New Applicant</field>
<field name="res_model">hr.applicant</field>
<field name="default" eval="False"/>
<field name="hidden" eval="True"/>
<field name="description">Applicant created</field>
</record>
<record id="mt_applicant_stage_changed" model="mail.message.subtype">
<field name="name">Stage Changed</field>
<field name="res_model">hr.applicant</field>
<field name="default" eval="False"/>
<field name="description">Stage changed</field>
</record>
<record id="mt_applicant_hired" model="mail.message.subtype">
<field name="name">Applicant Hired</field>
<field name="res_model">hr.applicant</field>
<field name="default" eval="True"/>
<field name="description">Applicant hired</field>
</record>
<!-- Job-related subtypes for messaging / Chatter -->
<record id="mt_job_new" model="mail.message.subtype">
<field name="name">Job Position created</field>
<field name="res_model">hr.job</field>
<field name="default" eval="False"/>
<field name="hidden" eval="True"/>
</record>
<record id="mt_job_applicant_stage_changed" model="mail.message.subtype">
<field name="name">Applicant Stage Changed</field>
<field name="res_model">hr.job</field>
<field name="default" eval="False"/>
<field name="parent_id" ref="mt_applicant_stage_changed"/>
<field name="relation_field">job_id</field>
</record>
<record id="mt_job_applicant_hired" model="mail.message.subtype">
<field name="name">Applicant Hired</field>
<field name="res_model">hr.job</field>
<field name="default" eval="True"/>
<field name="parent_id" ref="mt_applicant_hired"/>
<field name="relation_field">job_id</field>
</record>
<record id="mt_job_applicant_new" model="mail.message.subtype">
<field name="name">New Applicant</field>
<field name="res_model">hr.job</field>
<field name="default" eval="False"/>
<field name="parent_id" ref="mt_applicant_new" />
<field name="relation_field">job_id</field>
</record>
<!-- Department-related (parent) subtypes for messaging / Chatter -->
<record id="mt_department_new" model="mail.message.subtype">
<field name="name">Job Position Created</field>
<field name="res_model">hr.department</field>
<field name="sequence" eval="1"/>
<field name="parent_id" ref="mt_job_new"/>
<field name="relation_field">department_id</field>
</record>
</data></odoo>

View file

@ -0,0 +1,271 @@
<?xml version="1.0"?>
<odoo><data noupdate="1">
<!-- Templates for interest / refusing applicants -->
<record id="email_template_data_applicant_refuse" model="mail.template">
<field name="name">Recruitment: Refuse</field>
<field name="model_id" ref="hr_recruitment.model_hr_applicant"/>
<field name="subject">Your Job Application: {{ object.job_id.name }}</field>
<field name="email_to">{{ (not object.partner_id and object.email_from or '') }}</field>
<field name="partner_to">{{ object.partner_id.id or '' }}</field>
<field name="description">When you refuse an application, you can choose this template</field>
<field name="body_html" type="html">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
<tr>
<td valign="top">
<div style="font-size: 13px; margin: 0px; padding: 0px;">
Hello,<br/><br/>
Thank you for your interest in joining the
<b><t t-out="object.company_id.name or ''">YourCompany</t></b> team. We
wanted to let you know that, although your resume is
competitive, our hiring team reviewed your application
and <b>did not select it for further consideration</b>.
<br/><br/>
Please note that recruiting is hard, and we can make
mistakes. Do not hesitate to reply to this email if you
think we made a mistake, or if you want more information
about our decision.
<br/><br/>
We will, however, keep your resume on record and get in
touch with you about future opportunities that may be a
better fit for your skills and experience.
<br/><br/>
We wish you all the best in your job search and hope we
will have the chance to consider you for another role
in the future.
<br/><br/>
Thank you,
<div style="font-size: 11px; color: grey;">
<t t-if="object.user_id">
-- <br/>
<strong t-out="object.user_id.name or ''">Mitchell Admin</strong><br/>
Email: <t t-out="object.user_id.email or ''">admin@yourcompany.example.com</t><br/>
Phone: <t t-out="object.user_id.phone or ''">+1 650-123-4567</t>
</t>
<t t-else="">
-- <br/>
<t t-out="object.company_id.name or ''">YourCompany</t><br/>
The HR Team
</t>
</div>
</div>
</td>
</tr>
</table>
</field>
<field name="auto_delete" eval="True"/>
<field name="lang">{{ object.partner_id.lang or '' }}</field>
</record>
<record id="email_template_data_applicant_interest" model="mail.template">
<field name="name">Recruitment: Interest</field>
<field name="model_id" ref="hr_recruitment.model_hr_applicant"/>
<field name="subject">Your Job Application: {{ object.job_id.name }}</field>
<field name="email_to">{{ (not object.partner_id and object.email_from or '') }}</field>
<field name="partner_to">{{ object.partner_id.id or '' }}</field>
<field name="description">Set this template to a recruitment stage to send it when applications reach that stage</field>
<field name="body_html" type="html">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="background-color: white; border-collapse: collapse; margin-left: 20px;">
<tr>
<td valign="top" style="padding: 0px 10px;">
<div style="text-align: center">
<h2>Congratulations!</h2>
<div style="color:grey;">Your resume has been positively reviewed.</div>
</div>
<div style="font-size: 13px; margin: 0px; padding: 0px;">
We just reviewed your resume, and it caught our
attention. As we think you might be great for the
position, your application has been short listed for a
call or an interview.
<br/><br/>
<div t-if="'website_url' in object.job_id and object.job_id.website_url" style="padding: 16px 8px 16px 8px;">
<a t-att-href="object.job_id.website_url"
style="background-color: #875a7b; text-decoration: none; color: #fff; padding: 8px 16px 8px 16px; border-radius: 5px;">Job Description</a>
</div>
<t t-if="object.user_id">
You will soon be contacted by:<br/>
<strong t-out="object.user_id.name or ''">Mitchell Admin</strong><br/>
<span>Email: <t t-out="object.user_id.email or ''">admin@yourcompany.example.com</t></span><br/>
<span>Phone: <t t-out="object.user_id.phone or ''">+1 650-123-4567</t></span>
<br/><br/>
</t>
See you soon,
<div style="font-size: 11px; color: grey;">
-- <br/>
The HR Team
<t t-if="'website_url' in object.job_id and hasattr(object.job_id, 'website_url') and object.job_id.website_url">
Discover <a href="/jobs" style="text-decoration:none;color:#717188;">all our jobs</a>.<br/>
</t>
</div>
<hr width="97%" style="background-color: rgb(204,204,204); border: medium none; clear: both; display: block; font-size: 0px; min-height: 1px; line-height: 0; margin: 16px 0px 16px 0px;"/>
<h3 style="color:#9A6C8E;"><strong>What is the next step?</strong></h3>
We usually <strong>answer applications within a few days</strong>.
<br/><br/>
The next step is either a call or a meeting in our offices.
<br/>
Feel free to <strong>contact us if you want a faster
feedback</strong> or if you don't get news from us
quickly enough (just reply to this email).
<br/>
<hr width="97%" style="background-color: rgb(204,204,204); border: medium none; clear: both; display: block; font-size: 0px; min-height: 1px; line-height: 0; margin: 17px 0px 16px 0px;"/>
<t t-set="location" t-value="''"/>
<t t-if="object.job_id.address_id.name">
<strong t-out="object.job_id.address_id.name or ''">Teksa SpA</strong><br/>
</t>
<t t-if="object.job_id.address_id.street">
<t t-out="object.job_id.address_id.street or ''">Puerto Madero 9710</t><br/>
<t t-set="location" t-value="object.job_id.address_id.street"/>
</t>
<t t-if="object.job_id.address_id.street2">
<t t-out="object.job_id.address_id.street2 or ''">Of A15, Santiago (RM)</t><br/>
<t t-set="location" t-value="'%s, %s' % (location, object.job_id.address_id.street2)"/>
</t>
<t t-if="object.job_id.address_id.city">
<t t-out="object.job_id.address_id.city or ''">Pudahuel</t>,
<t t-set="location" t-value="'%s, %s' % (location, object.job_id.address_id.city)"/>
</t>
<t t-if="object.job_id.address_id.state_id.name">
<t t-out="object.job_id.address_id.state_id.name or ''">C1</t>,
<t t-set="location" t-value="'%s, %s' % (location, object.job_id.address_id.state_id.name)"/>
</t>
<t t-if="object.job_id.address_id.zip">
<t t-out="object.job_id.address_id.zip or ''">98450</t>
<t t-set="location" t-value="'%s, %s' % (location, object.job_id.address_id.zip)"/>
</t>
<br/>
<t t-if="object.job_id.address_id.country_id.name">
<t t-out="object.job_id.address_id.country_id.name or ''">Argentina</t><br/>
<t t-set="location" t-value="'%s, %s' % (location, object.job_id.address_id.country_id.name)"/>
</t>
<br/>
</div>
</td>
</tr>
</table></field>
<field name="auto_delete" eval="True"/>
<field name="lang">{{ object.partner_id.lang or '' }}</field>
</record>
<record id="email_template_data_applicant_congratulations" model="mail.template">
<field name="name">Recruitment: Application Acknowledgement</field>
<field name="model_id" ref="hr_recruitment.model_hr_applicant"/>
<field name="subject">Your Job Application: {{ object.job_id.name }}</field>
<field name="email_to">{{ (not object.partner_id and object.email_from or '') }}</field>
<field name="partner_to">{{ object.partner_id.id or '' }}</field>
<field name="description">Confirmation email sent to all new job applications</field>
<field name="body_html" type="html">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="background-color: white; border-collapse: collapse; margin-left: 20px;">
<tr>
<td valign="top" style="padding: 0px 10px;">
<div style="font-size: 13px; margin: 0px; padding: 0px;">
Hello,
<br/><br/>
We confirm we successfully received your application for the job
"<a t-att-href="hasattr(object.job_id, 'website_url') and object.job_id.website_url or ''" style="color:#9A6C8E;"><strong t-out="object.job_id.name or ''">Experienced Developer</strong></a>" at <strong t-out="object.company_id.name or ''">YourCompany</strong>.
<br/><br/>
We will come back to you shortly.
<div t-if="'website_url' in object.job_id and object.job_id.website_url" style="padding: 16px 8px 16px 8px;">
<a t-att-href="object.job_id.website_url"
style="background-color: #875a7b; text-decoration: none; color: #fff; padding: 8px 16px 8px 16px; border-radius: 5px;">Job Description</a>
</div>
<hr width="97%" style="background-color: rgb(204,204,204); border: medium none; clear: both; display: block; font-size: 0px; min-height: 1px; line-height: 0; margin: 16px 0px 16px 0px;"/>
<t t-if="object.user_id">
<h3 style="color:#9A6C8E;"><strong>Your Contact:</strong></h3>
<p>
<strong t-out="object.user_id.name or ''">Mitchell Admin</strong><br/>
<span>Email: <t t-out="object.user_id.email or ''">admin@yourcompany.example.com</t></span><br/>
<span>Phone: <t t-out="object.user_id.phone or ''">+1 650-123-4567</t></span>
</p>
<hr width="97%" style="background-color: rgb(204,204,204); border: medium none; clear: both; display: block; font-size: 0px; min-height: 1px; line-height: 0; margin: 16px 0px 16px 0px;"/>
</t>
<h3 style="color:#9A6C8E;"><strong>What is the next step?</strong></h3>
We usually <strong>answer applications within a few days.</strong><br/><br/>
Feel free to <strong>contact us if you want a faster
feedback</strong> or if you don't get news from us
quickly enough (just reply to this email).
<hr width="97%" style="background-color: rgb(204,204,204); border: medium none; clear: both; display: block; font-size: 0px; min-height: 1px; line-height: 0; margin: 17px 0px 16px 0px;"/>
<t t-set="location" t-value="''" />
<t t-if="object.job_id.address_id.name">
<strong t-out="object.job_id.address_id.name or ''">Teksa SpA</strong><br/>
</t>
<t t-if="object.job_id.address_id.street">
<t t-out="object.job_id.address_id.street or ''">Puerto Madero 9710</t><br/>
<t t-set="location" t-value="object.job_id.address_id.street"/>
</t>
<t t-if="object.job_id.address_id.street2">
<t t-out="object.job_id.address_id.street2 or ''">Of A15, Santiago (RM)</t><br/>
<t t-set="location" t-value="'%s, %s' % (location, object.job_id.address_id.street2)"/>
</t>
<t t-if="object.job_id.address_id.city">
<t t-out="object.job_id.address_id.city or ''">Pudahuel</t>,
<t t-set="location" t-value="'%s, %s' % (location, object.job_id.address_id.city)"/>
</t>
<t t-if="object.job_id.address_id.state_id.name">
<t t-out="object.job_id.address_id.state_id.name or ''">C1</t>,
<t t-set="location" t-value="'%s, %s' % (location, object.job_id.address_id.state_id.name)"/>
</t>
<t t-if="object.job_id.address_id.zip">
<t t-out="object.job_id.address_id.zip or ''">98450</t>
<t t-set="location" t-value="'%s, %s' % (location, object.job_id.address_id.zip)"/>
</t>
<br/>
<t t-if="object.job_id.address_id.country_id.name">
<t t-out="object.job_id.address_id.country_id.name or ''">Argentina</t><br/>
<t t-set="location" t-value="'%s, %s' % (location, object.job_id.address_id.country_id.name)"/>
</t>
<br/>
</div>
</td>
</tr>
</table></field>
<field name="auto_delete" eval="True"/>
<field name="lang">{{ object.partner_id.lang or '' }}</field>
</record>
<record id="email_template_data_applicant_not_interested" model="mail.template">
<field name="name">Recruitment: Not interested anymore</field>
<field name="model_id" ref="hr_recruitment.model_hr_applicant"/>
<field name="subject">Your Job Application: {{ object.job_id.name }}</field>
<field name="email_to">{{ (not object.partner_id and object.email_from or '') }}</field>
<field name="partner_to">{{ object.partner_id.id or '' }}</field>
<field name="description">When you refuse an application, you can choose this template</field>
<field name="body_html" type="html">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
<tr>
<td valign="top">
<div style="font-size: 13px; margin: 0px; padding: 0px;">
Dear,<br/><br/>
We would like to thank you for your interest and your time.<br/>
We wish you all the best in your future endeavors.
<br/><br/>
Best<br/>
<div style="font-size: 11px; color: grey;">
<t t-if="object.user_id">
-- <br/>
<strong t-out="object.user_id.name or ''">Marc Demo</strong><br/>
Email: <t t-out="object.user_id.email or ''">mark.brown23@example.com</t><br/>
Phone: <t t-out="object.user_id.phone or ''">+1 650-123-4567</t>
</t>
<t t-else="">
-- <br/>
<t t-out="object.company_id.name or ''">YourCompany</t><br/>
The HR Team<br/>
</t>
</div>
</div>
</td>
</tr>
</table>
</field>
<field name="auto_delete" eval="True"/>
<field name="lang">{{ object.partner_id.lang or '' }}</field>
</record>
</data></odoo>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo><data noupdate="1">
<template id="applicant_hired_template">
Applicant hired<br/>
<ul>
<li>Employee: <a href="#" t-att-data-oe-id="applicant.emp_id.id" data-oe-model="hr.employee"><t t-esc="applicant.emp_id.name"/></a></li>
</ul>
</template>
</data></odoo>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more