--- /dev/null
+# -*- coding: utf-8 -*-
-
- import openerp
+from openerp.addons.web import http
+from openerp.addons.web.http import request
- from openerp.addons.website.controllers.main import template_values
+import base64
- import tempfile
+
+from urllib import quote_plus
+
+class website_hr_recruitment(http.Controller):
+
- @http.route(['/career'], type='http', auth="admin")
- def career(self, *arg, **post):
- values = template_values()
++ @http.route(['/career'], type='http', auth="public")
++ def career(self, **post):
++ website = request.registry['website']
+ jobpost_ids = request.registry['hr.job'].search(request.cr, request.uid, [("state", "=", 'open')])
- values.update({
- 'res_job': request.registry['hr.job'].browse(request.cr, request.uid, jobpost_ids),
- 'res_company': request.registry['res.company'].browse(request.cr, request.uid, 1)
++ values = website.get_rendering_context({
++ 'res_job': request.registry['hr.job'].browse(request.cr, request.uid, jobpost_ids)
+ })
- html = request.registry.get("ir.ui.view").render(request.cr, request.uid, "website_hr_recruitment.career", values)
++ html = website.render("website_hr_recruitment.career", values)
+ return html
+
- @http.route(['/job/detail/<id>'], type='http', auth="admin")
++ @http.route(['/job/detail/<id>'], type='http', auth="public")
+ def detail(self, id=0):
- values = template_values()
+ id = id and int(id) or 0
- values.update({
- 'job': request.registry['hr.job'].browse(request.cr, request.uid, id),
- 'res_company': request.registry['res.company'].browse(request.cr, request.uid, 1)
++ website = request.registry['website']
++ values = website.get_rendering_context({
++ 'job': request.registry['hr.job'].browse(request.cr, request.uid, id)
+ })
- html = request.registry.get("ir.ui.view").render(request.cr, request.uid, "website_hr_recruitment.detail", values)
++ html = website.render("website_hr_recruitment.detail", values)
+ return html
+
+ @http.route(['/job/success'], type='http', auth="admin")
- def success(self, *arg, **post):
++ def success(self, **post):
+ id = request.registry['hr.applicant'].create(request.cr, request.uid, post)
+ if post['ufile']:
+ attachment_values = {
+ 'name': post['ufile'].filename,
+ 'datas': base64.encodestring(post['ufile'].read()),
+ 'datas_fname': post['ufile'].filename,
+ 'res_model': 'hr.applicant',
+ 'res_name': post['name'],
+ 'res_id': id
+ }
+ request.registry['ir.attachment'].create(request.cr, request.uid, attachment_values)
- values = template_values()
- values.update({
- 'jobid': post['job_id'],
- 'res_company': request.registry['res.company'].browse(request.cr, request.uid, 1)
++ website = request.registry['website']
++ values = website.get_rendering_context({
++ 'jobid': post['job_id']
+ })
- html = request.registry.get("ir.ui.view").render(request.cr, request.uid, "website_hr_recruitment.thankyou", values)
++ html = website.render("website_hr_recruitment.thankyou", values)
+ return html
+# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+ <record id="header_career" model="ir.ui.view">
+ <field name="name">header_career</field>
+ <field name="type">qweb</field>
+ <field name="inherit_id" ref="website.header"/>
+ <field name="arch" type="xml">
+ <data>
+ <xpath expr="(//li)[last()]" position="after">
+ <li class="pull-right"><a href="/career">Career</a></li>
+ </xpath>
+ </data>
+ </field>
+ </record>
+ <template id="career">
+ <t t-call="website.layout">
+ <t t-set="title">Career</t>
+ <div class="container">
+ <section id="tables">
+ <div class="page-header">
+ <h1>Job Position</h1>
+ </div>
+ <table class="table table-bordered table-striped table-hover">
+ <thead>
+ <tr>
+ <th>Post Name</th>
+ </tr>
+ </thead>
+ <tbody>
+ <t t-foreach="res_job" t-as="job">
+ <tr>
+ <td>
- <a t-att-href="'/job/detail/%%s' %% job.id"><span class="lead" t-record="job" t-field="name"><t t-esc="job.name"/></span></a><br/>
++ <a t-att-href="'/job/detail/%%s' %% job.id"><span class="lead"><t t-esc="job.name"/></span></a><br/>
+ <span t-if="job.department_id"><t t-esc="job.department_id.name"/></span>
+ <span><t t-esc="job.post_date"/></span>
+ </td>
+ <td>
+ <a t-att-href="'/job/detail/%%s' %% job.id">Apply</a>
+ </td>
+ </tr>
+ </t>
+ </tbody>
+ </table>
+ </section>
+ </div>
+ </t>
+ </template>
+ <template id="detail">
+ <t t-call="website.layout">
+ <t t-set="title">Job Detail</t>
+ <div class="span4 pull-right">
+ <ul class="pager">
+ <li><a t-att-href="'/career'">Back</a></li>
+ </ul>
+ </div>
+ <div class="container">
+ <div class="page-header">
+ <h1><t t-esc="job.name"/></h1>
+ </div>
+ <div class="row">
+ <div class="span12">
+ <h3>Description</h3>
+ <p t-if="job.description"><t t-esc="job.description"/></p>
+ <h3>Requirements</h3>
+ <p t-if="job.requirements"><t t-esc="job.requirements"/></p>
+ </div>
+ </div>
+ <t t-call="website_hr_recruitment.applyjobpost"/>
+ </div>
+ </t>
+ </template>
+ <template id="applyjobpost">
+ <t t-set="title">Apply Job</t>
+ <section id="forms">
+ <div class="page-header">
+ <h1>Apply</h1>
+ </div>
+ <div class="row">
+ <form class="form-horizontal well" action="/job/success" method="post" enctype="multipart/form-data">
+ <fieldset>
+ <input type="hidden" t-att-value="job.department_id.id" name="department_id"/>
+ <input type="hidden" t-att-value="job.id" name="job_id"/>
+ <input type="hidden" t-att-value="job.name" name="name"/>
+ <div class="control-group">
+ <input type="text" class="input-xlarge" id="nametxt" name="partner_name" required="true" placeholder="Name..."/>
+ </div>
+ <div class="control-group">
+ <input type="text" class="input-xlarge" id="emailtxt" name="email_from" required="true" placeholder="Email..."/>
+ </div>
+ <div class="control-group">
+ <textarea class="span8" style="margin-top:5px; height: 140px;" name="description" placeholder="Enter your comment..."> </textarea>
+ </div>
+ <div class="control-group">
+ <input class="input-file" id="fileInput" type="file" name="ufile" required="true"/>
+ </div>
+ <div class="control-group">
+ <label class="control-label">Please enter the letters displayed:</label>
+ <div class="controls">
+ <input type="text" id="defaultReal" name="defaultReal" required="true"/>
+ <input type="hidden" id="captchaval" name="captchaval"/>
+ </div>
+ </div>
+ <div class="form-actions">
+ <button type="submit" class="btn btn-primary">Save</button>
+ <button type="reset" class="btn"><a t-att-href="'/career'">Cancel</a></button>
+ </div>
+ </fieldset>
+ </form>
+ </div>
+ </section>
+ </template>
+ <template id="thankyou">
+ <t t-call="website.layout">
+ <t t-set="title">Thank You!</t>
+ <div class="span4 pull-right">
+ <ul class="pager">
+ <li><a t-att-href="'/job/detail/%%s' %% jobid">Back</a></li>
+ </ul>
+ </div>
+ <section id="typography">
+ <div class="container">
+ <div class="row">
+ <h2 class="oe_slogan">You have successfully applied for job.</h2>
+ </div>
+ </div>
+ </section>
+ </t>
+ </template>
+ </data>
+</openerp>