Compare commits

...

49 Commits

Author SHA1 Message Date
administrator 1b513a5666 Initial commit 2025-06-24 15:23:38 +05:30
administrator a7110eff7e Initial commit 2025-06-24 15:23:38 +05:30
administrator 571d7ae9c9 Initial commit 2025-06-24 15:23:38 +05:30
administrator 7026a05260 Initial commit 2025-06-24 15:23:38 +05:30
administrator 02e08b9dba Initial commit 2025-06-24 15:23:38 +05:30
administrator 728651278e Initial commit 2025-06-24 15:23:38 +05:30
administrator 2fe5c74c63 Initial commit 2025-06-24 15:23:38 +05:30
administrator aabb7e786d Initial commit 2025-06-24 15:23:38 +05:30
administrator f5e2787ce4 Initial commit 2025-06-24 15:23:38 +05:30
administrator 1d00debd40 Initial commit 2025-06-24 15:23:37 +05:30
administrator 7f7a47d2c7 Initial commit 2025-06-24 15:23:37 +05:30
administrator 01a4b67c6d Initial commit 2025-06-24 15:23:37 +05:30
administrator c97d57c679 Initial commit 2025-06-24 15:23:37 +05:30
administrator 10ec9c3f1f Initial commit 2025-06-24 15:23:37 +05:30
administrator 29231ebe69 Initial commit 2025-06-24 15:23:37 +05:30
administrator b1a021aa57 Initial commit 2025-06-24 15:23:37 +05:30
administrator 88e2bfdd57 Initial commit 2025-06-24 15:23:37 +05:30
administrator cd1d3d5f7b Initial commit 2025-06-24 15:23:37 +05:30
administrator 4583286e99 Initial commit 2025-06-24 15:23:37 +05:30
administrator 36ca8544b7 Initial commit 2025-06-24 15:23:37 +05:30
administrator de32d15005 Initial commit 2025-06-24 15:23:37 +05:30
administrator 311bf1768e pull commit 2025-06-24 15:23:37 +05:30
administrator 33112a0ab7 Initial commit 2025-06-24 15:23:37 +05:30
Pranay c36a8016be TimeOff Fix 2025-06-24 15:23:37 +05:30
Pranay 6f58131b7b time-off FIX 2025-06-24 15:23:37 +05:30
Pranay 1b1f3b9ced Recruitment Changes 2025-06-24 15:23:37 +05:30
Pranay b5e4b65936 fix whatsapp 2025-06-24 15:23:37 +05:30
Pranay 9859c253e5 update whatsapp code 2025-06-24 15:23:37 +05:30
administrator 178e052261 Initial commit 2025-06-24 15:23:37 +05:30
administrator 3a20f753c2 Initial commit 2025-06-24 15:23:37 +05:30
administrator cceabf3403 Initial commit 2025-06-24 15:23:36 +05:30
administrator 2fe0960f9c Initial commit 2025-06-24 15:23:36 +05:30
administrator 3929caa732 Initial commit 2025-06-24 15:23:36 +05:30
administrator a301468cb5 Initial commit 2025-06-24 15:23:36 +05:30
administrator b006f5fc59 Initial commit 2025-06-24 15:23:36 +05:30
administrator 97fd24d58e Initial commit 2025-06-24 15:23:36 +05:30
administrator 7da2f09165 Initial commit 2025-06-24 15:23:36 +05:30
administrator 5212ae90c4 Initial commit 2025-06-24 15:23:36 +05:30
administrator 7dda1e50b2 Initial commit 2025-06-24 15:23:36 +05:30
administrator dfed07a1db Initial commit 2025-06-24 15:23:36 +05:30
administrator 2e78e5c658 Initial commit 2025-06-24 15:23:36 +05:30
administrator 9283895246 Initial commit 2025-06-24 15:23:36 +05:30
administrator 8702da4957 Initial commit 2025-06-24 15:23:36 +05:30
administrator 6ba601d534 Initial commit 2025-06-24 15:23:36 +05:30
administrator 0e5c58c8e4 Initial commit 2025-06-24 15:23:36 +05:30
administrator 93bd39a75f Initial commit 2025-06-24 15:23:36 +05:30
administrator 9f8e5cd946 Initial commit 2025-06-24 15:23:36 +05:30
administrator db1e49c026 Initial commit 2025-06-24 15:23:36 +05:30
Pranay 95a321fd10 JOD FORM ISSUE 2025-06-24 15:20:51 +05:30
6 changed files with 377 additions and 350 deletions

View File

@ -18,8 +18,12 @@
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['base','hr','account','mail','hr_skills', 'hr_contract'],
# always loaded
'data': [
'security/security.xml',

View File

@ -247,17 +247,16 @@ class website_hr_recruitment_applications(http.Controller):
}) for education in education_data
]
# employer details
employer_history_data_json = post.get('employer_history_data_json', '[]')
employer_data = json.loads(employer_history_data_json) if employer_history_data_json else []
if employer_data:
applicant_data['employer_history'] = [
(0,0,{
'company_name': company.get('company_name',''),
(0, 0, {
'company_name': company.get('company_name', ''),
'designation': company.get('designation', ''),
'date_of_joining': datetime.strptime(company.get('date_of_joining'), '%Y-%m-%d').date() if company.get('date_of_joining') else '',
'last_working_day': datetime.strptime(company.get('last_working_day'), '%Y-%m-%d').date() if company.get('last_working_day') else '',
'date_of_joining': self.safe_date_parse(company.get('date_of_joining')),
'last_working_day': self.safe_date_parse(company.get('last_working_day')),
'ctc': company.get('ctc', ''),
}) for company in employer_data
]
@ -284,6 +283,11 @@ class website_hr_recruitment_applications(http.Controller):
return request.render("hr_recruitment_extended.thank_you_template")
def safe_date_parse(self,date_str):
try:
return datetime.strptime(date_str, '%Y-%m-%d').date() if date_str else None
except (ValueError, TypeError):
return None

View File

@ -7,5 +7,41 @@
<field name="type">binary</field>
</record>
<!--Skill Types-->
<record id="hr_skill_type_additional" model="hr.skill.type">
<field name="name">Others</field>
</record>
<!--Skill Levels-->
<!--Programming-->
<record id="hr_skill_level_additional_beginner" model="hr.skill.level">
<field name="name">Beginner</field>
<field name="default_level">1</field>
<field name="level_progress">15</field>
<field name="skill_type_id" ref="hr_skill_type_additional"/>
</record>
<record id="hr_skill_level_additional_elementary" model="hr.skill.level">
<field name="name">Elementary</field>
<field name="level_progress">25</field>
<field name="skill_type_id" ref="hr_skill_type_additional"/>
</record>
<record id="hr_skill_level_additional_intermediate" model="hr.skill.level">
<field name="name">Intermediate</field>
<field name="level_progress">50</field>
<field name="skill_type_id" ref="hr_skill_type_additional"/>
</record>
<record id="hr_skill_level_additional_advanced" model="hr.skill.level">
<field name="name">Advanced</field>
<field name="level_progress">80</field>
<field name="skill_type_id" ref="hr_skill_type_additional"/>
</record>
<record id="hr_skill_level_additional_expert" model="hr.skill.level">
<field name="name">Expert</field>
<field name="level_progress">100</field>
<field name="skill_type_id" ref="hr_skill_type_additional"/>
</record>
</data>
</odoo>

View File

@ -1,43 +1,9 @@
<odoo>
<!-- <template id="joining_form_custom_external_layout_standard">-->
<!-- <div t-attf-class="header">-->
<!-- </div>-->
<!-- <div t-attf-class="footer o_company_#{company.id}_layout {{report_type != 'pdf' and 'mt-auto'}}">-->
<!-- <div class="o_footer_content d-flex border-top pt-2">-->
<!-- <div class="flex-grow-1 text-start me-2" t-field="company.report_footer"/>-->
<!-- <div class="text-end text-muted">-->
<!-- <div t-if="report_type == 'pdf' and display_name_in_footer" t-out="o.name">(document name)</div>-->
<!-- <div t-if="report_type == 'pdf'">Page <span class="page"/> / <span class="topage"/></div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </template>-->
<!-- <template id="joining_form_custom_external_layout">-->
<!-- <t t-if="not o" t-set="o" t-value="doc"/>-->
<!-- <t t-if="not company">-->
<!-- &lt;!&ndash; Multicompany &ndash;&gt;-->
<!-- <t t-if="company_id">-->
<!-- <t t-set="company" t-value="company_id"/>-->
<!-- </t>-->
<!-- <t t-elif="o and 'company_id' in o and o.company_id.sudo()">-->
<!-- <t t-set="company" t-value="o.company_id.sudo()"/>-->
<!-- </t>-->
<!-- <t t-else="else">-->
<!-- <t t-set="company" t-value="res_company"/>-->
<!-- </t>-->
<!-- </t>-->
<!-- <t t-if="company.external_report_layout_id" t-call="{{company.external_report_layout_id.sudo().key}}"><t t-out="0"/></t>-->
<!-- <t t-else="else" t-call="hr_recruitment_extended.joining_form_custom_external_layout_standard"><t t-out="0"/></t>-->
<!-- </template>-->
<odoo>
<odoo>
<template id="employee_joining_form_template">
<t t-call="web.external_layout">
<main class="page" style="margin: 0px; padding: 0px; font-size: 16px; font-family: 'Arial', sans-serif;">
<main class="page"
style="margin: 0px; padding: 0px; font-size: 16px; font-family: 'Arial', sans-serif;">
<t t-foreach="docs" t-as="doc">
<!-- Candidate Image -->
@ -346,5 +312,5 @@
</main>
</t>
</template>
</odoo>
</odoo>
</odoo>

View File

@ -256,6 +256,8 @@ class HRJobRecruitment(models.Model):
rec.submission_status = 'zero'
experience = fields.Many2one('candidate.experience', string="Experience")
@api.depends('application_ids.submitted_to_client')
def _compute_no_of_submissions(self):
counts = dict(self.env['hr.applicant']._read_group(

View File

@ -401,6 +401,18 @@
</field>
</record>
<record id="custom_paper_format" model="report.paperformat">
<field name="name">No Margin</field>
<field name="default" eval="False"/>
<field name="format">A4</field>
<field name="margin_top">20</field>
<field name="margin_bottom">20</field>
<field name="margin_left">15</field>
<field name="margin_right">15</field>
<field name="header_line" eval="False"/>
<field name="header_spacing">0</field>
<field name="orientation">Portrait</field>
</record>
<record id="action_download_joining_form" model="ir.actions.report">
<field name="name">Download Joining Form</field>
@ -410,7 +422,10 @@
<field name="report_file">hr_recruitment_extended.employee_joining_form_template</field>
<field name="binding_model_id" ref="hr_recruitment.model_hr_applicant"/>
<field name="print_report_name">'JOD - %s' % (object.display_name)</field>
<field name="paperformat_id" ref="hr_recruitment_extended.custom_paper_format"/>
<field name="binding_type">report</field>
</record>
</odoo>