[IMP]Add job postion for career.

bzr revid: bth@tinyerp.com-20130730111910-1ahiibbeec601q2b
This commit is contained in:
bth-openerp 2013-07-30 16:49:10 +05:30
parent 474b984f0e
commit d7322de797
13 changed files with 8778 additions and 0 deletions

View File

@ -0,0 +1 @@
import controllers

View File

@ -0,0 +1,20 @@
{
'name': 'Careers Form',
'category': '',
'version': '1.0',
'description': """
OpenERP Contact Form
====================
""",
'author': 'OpenERP SA',
'depends': ['website', 'hr', 'hr_recruitment'],
'data': [
'views/website_career.xml'
],
'js': ['static/src/js/*.js'],
'css': ['static/src/css/*.css',
'static/lib/bootstrap/css/*.css'],
'installable': True,
'auto_install': False,
}

View File

@ -0,0 +1,3 @@
import main
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,56 @@
# -*- 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_career(http.Controller):
@http.route(['/career'], type='http', auth="admin")
def career(self, *arg, **post):
values = template_values()
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)
})
html = request.registry.get("ir.ui.view").render(request.cr, request.uid, "website_career.career", values)
return html
@http.route(['/job/detail/<id>'], type='http', auth="admin")
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)
})
html = request.registry.get("ir.ui.view").render(request.cr, request.uid, "website_career.detail", values)
return html
@http.route(['/job/success'], type='http', auth="admin")
def success(self, *arg, **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)
})
html = request.registry.get("ir.ui.view").render(request.cr, request.uid, "website_career.thankyou", values)
return html
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,7 @@
from openerp.osv import osv, fields
class job_post(osv.osv):
_inherit = "hr.job"
_columns = {
'post_date': fields.date('Post Date'),
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,433 @@
section {
margin-top: 60px;
padding-top: 100px;
}
/* index */
.tooltip-inner {
max-width: 500px;
}
.hero-unit {
padding-bottom: 5px;
background-color: #F3F3F3;
border: 1px solid #ddd;
text-align: center;
}
.hero-unit h1,
.hero-unit p {
margin-bottom: 15px;
}
#social {
display: inline-block;
margin-top: 45px;
text-align: center;
}
#gh-star {
margin-right: 10px;
}
.twitter-share-button {
margin-right: 15px;
}
.rss-button {
width: 40px;
height: 14px;
font-size: 11px;
line-height: 14px;
font-weight: bold;
margin: 0 0 10px;
padding: 2px 5px 2px 4px;
}
.index h3 {
text-align: center;
font-size: 20px;
}
#ticker {
margin-top: 40px;
margin-bottom: 10px;
font-size: 14px;
line-height: 1.4;
}
.about {
margin-top: 40px;
margin-bottom: 40px;
}
.about > div {
margin-bottom: 20px;
}
.about h3 {
margin: 0;
text-align: left;
}
.about i {
margin-right: 8px;
font-size: 1.3em;
}
#gallery {
padding-top: 60px;
}
.thumbnail {
margin-bottom: 20px;
background-color: #f3f3f3;
background-color: rgba(0, 0, 0, 0.05);
}
.thumbnail img {
width: 100%;
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
border-radius: 7px;
}
.thumbnail .caption {
color: inherit;
}
.thumbnail .caption p {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.thumbnail h3 {
text-align: left;
margin-bottom: 0;
}
.thumbnail .btn-toolbar {
margin-top: 15px;
text-align: right;
}
.more {
margin-top: 40px;
margin-bottom: 20px;
text-align: center;
}
.links {
margin-bottom: 20px;
}
.links > a {
margin-right: 10px;
}
.bsa {
float: right;
max-width: 400px;
padding: 0;
}
body .one .bsa_it_ad {
margin-bottom: -10px;
padding: 25px;
background: none;
border: none;
font-family: inherit;
color: inherit;
}
body .one .bsa_it_ad .bsa_it_t,
body .one .bsa_it_ad .bsa_it_d {
color: inherit;
font-size: inherit;
}
body .one .bsa_it_p {
display: none;
}
.bsap img {
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
#footer {
margin-bottom: 20px;
}
#footer .links a {
margin-right: 10px;
}
@media (max-width: 480px) {
.hero-unit {
padding: 20px 20px 0;
margin: 0 0 20px;
}
.hero-unit h1 {
font-size: 36px;
}
.hero-unit iframe {
margin-right: 0 !important;
}
#social {
margin-top: 0px;
margin-bottom: 20px;
}
#social > span {
display: block;
}
#ticker {
margin-top: 0;
}
.about {
margin-top: 0;
}
.about h3 {
margin-top: 30px;
}
.about p {
margin-bottom: 0;
}
.thumbnail .btn {
font-size: 15px;
}
.modal {
position: fixed !important;
top: 25% !important;
}
}
@media (min-width: 481px) and (max-width: 767px) {
.hero-unit {
margin-top: 0;
padding: 30px;
}
.about {
margin-top: 0;
}
}
@media (max-width: 767px) {
section {
padding-top: 20px;
}
.bsa {
float: none;
}
}
@media (max-width: 979px) and (min-width: 768px) {
.index .navbar {
margin-bottom: 0;
}
.hero-unit {
border-radius: 0;
}
section {
padding-top: 20px;
}
.thumbnail .btn {
padding: 6px 10px;
font-size: 14px;
}
}
@media (min-width: 980px) {
.index {
padding-top: 40px;
}
.preview {
padding-top: 100px;
}
}
/* preview */
.subhead {
padding-bottom: 0;
margin-bottom: 9px;
}
.subhead h1 {
font-size: 54px;
}
.subhead > div:first-child {
min-height: 200px;
}
/* subnav */
.subnav {
margin-bottom: 60px;
width: 100%;
height: 36px;
background-color: #eeeeee; /* Old browsers */
background-repeat: repeat-x; /* Repeat the gradient */
background-image: -moz-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%); /* FF3.6+ */
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(100%,#eeeeee)); /* Chrome,Safari4+ */
background-image: -webkit-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* Chrome 10+,Safari 5.1+ */
background-image: -ms-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* IE10+ */
background-image: -o-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* Opera 11.10+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#eeeeee',GradientType=0 ); /* IE6-9 */
background-image: linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* W3C */
border: 1px solid #e5e5e5;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.subnav .nav {
margin-bottom: 0;
}
.subnav .nav > li > a {
margin: 0;
padding-top: 11px;
padding-bottom: 11px;
border-left: 1px solid #f5f5f5;
border-right: 1px solid #e5e5e5;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
.subnav .nav > .active > a,
.subnav .nav > .active > a:hover {
padding-left: 13px;
color: #777;
background-color: #e9e9e9;
border-right-color: #ddd;
border-left: 0;
-webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
-moz-box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
}
.subnav .nav > .active > a .caret,
.subnav .nav > .active > a:hover .caret {
border-top-color: #777;
}
.subnav .nav > li:first-child > a,
.subnav .nav > li:first-child > a:hover {
border-left: 0;
padding-left: 12px;
-webkit-border-radius: 4px 0 0 4px;
-moz-border-radius: 4px 0 0 4px;
border-radius: 4px 0 0 4px;
}
.subnav .nav > li:last-child > a {
border-right: 0;
}
.subnav .dropdown-menu {
-webkit-border-radius: 0 0 4px 4px;
-moz-border-radius: 0 0 4px 4px;
border-radius: 0 0 4px 4px;
}
@media (max-width: 767px) {
.subnav {
position: static;
top: auto;
z-index: auto;
width: auto;
height: auto;
background: #fff; /* whole background property since we use a background-image for gradient */
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.subnav .nav > li {
float: none;
}
.subnav .nav > li > a {
border: 0;
}
.subnav .nav > li + li > a {
border-top: 1px solid #e5e5e5;
}
.subnav .nav > li:first-child > a,
.subnav .nav > li:first-child > a:hover {
-webkit-border-radius: 4px 4px 0 0;
-moz-border-radius: 4px 4px 0 0;
border-radius: 4px 4px 0 0;
}
}
@media (min-width: 980px) {
.subnav-fixed {
position: fixed;
top: 40px;
left: 0;
right: 0;
z-index: 1020; /* 10 less than .navbar-fixed to prevent any overlap */
border-color: #d5d5d5;
border-width: 0 0 1px; /* drop the border on the fixed edges */
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
-webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
-moz-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); /* IE6-9 */
}
.subnav-fixed .nav {
width: 938px;
margin: 0 auto;
padding: 0 1px;
}
.subnav .nav > li:first-child > a,
.subnav .nav > li:first-child > a:hover {
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
}
@media (min-width: 1210px) {
.subnav-fixed .nav {
width: 1168px; /* 2px less to account for left/right borders being removed when in fixed mode */
}
}

View File

@ -0,0 +1,593 @@
// Slate 2.3.2
// Bootswatch
// -----------------------------------------------------
// TYPOGRAPHY
// -----------------------------------------------------
h1, h2, h3, h4, h5, h6 {
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
}
code, pre {
background-color: #F7F7F7;
border: 1px solid darken(@grayDarker, 5%);
text-shadow: none;
}
// SCAFFOLDING
// -----------------------------------------------------
legend, .page-header {
border-bottom: 1px solid @hrBorder;
}
hr {
border-bottom: none;
}
// NAVBAR
// -----------------------------------------------------
.navbar {
.navbar-inner {
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
}
.brand {
font-weight: bold;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
border-right: 1px solid darken(@gray, 15%);
}
.navbar-text {
padding: 0 15px;
font-weight: bold;
}
.nav > li > a {
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
border-right: 1px solid rgba(0, 0, 0, 0.2);
border-left: 1px solid rgba(255, 255, 255, 0.1);
&:hover {
#gradient > .directional(@grayDarker, @grayDark, 280deg);
border-left: 1px solid transparent;
border-right: 1px solid transparent;
}
}
.nav > li.active > a,
.nav > li.active > a:hover {
color: @grayLighter;
background-color: @grayDark;
#gradient > .directional(lighten(@grayDarker, 4%), lighten(@grayDark, 4%), 280deg);
border-right: 1px solid darken(@gray, 15%);
}
.navbar-search .search-query {
border: 1px solid darken(@gray, 15%);
}
.btn,
.btn-group {
margin: 4px 0;
}
.divider-vertical {
background-color: transparent;
border-right: none;
}
.dropdown-menu::after {
border-bottom: 6px solid @grayDark;
}
&-inverse {
.navbar-inner {
#gradient > .vertical-three-colors(darken(@grayDarker, 3%), darken(@grayDarker, 8%), 70%, darken(@grayDarker, 8%));
}
.nav li > a {
background-image: none;
background-color: transparent;
}
.nav li > a:hover,
.nav li.active > a,
.nav li.active > a:hover {
#gradient > .directional(darken(@grayDarker, 10%), darken(@grayDarker, 5%), 280deg);
}
}
}
@media (max-width: @navbarCollapseWidth) {
.navbar .nav-collapse {
.nav li > a,
.nav li > a:hover,
.nav .active > a,
.nav .active > a:hover {
.box-shadow(none);
color: @grayLighter;
border: 1px solid transparent;
background-color: transparent;
background-image: none;
}
.nav li > a:hover,
.nav .active > a:hover {
background-color: @grayDarker;
}
.navbar-form,
.navbar-search {
border-color: transparent;
.box-shadow(none);
}
.nav-header {
color: @grayLight;
}
}
.navbar-inverse .nav-collapse {
.nav li > a:hover,
.nav .active > a:hover {
background-color: @grayDarker !important;
}
}
}
div.subnav {
margin: 0 1px;
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
border: 1px solid transparent;
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
.nav > li > a {
color: @grayLighter;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
border-right: 1px solid darken(@gray, 15%);
border-left: 1px solid @gray;
&:hover {
color: @grayLighter;
background-color: @grayDark;
#gradient > .directional(@grayDarker, @grayDark, 280deg);
border-left: 1px solid transparent;
border-right: 1px solid transparent;
}
}
.nav > li.active > a,
.nav > li.active > a:hover {
color: @grayLighter;
background-color: @grayDark;
#gradient > .directional(lighten(@grayDarker, 4%), lighten(@grayDark, 4%), 280deg);
border-right: 1px solid darken(@gray, 15%);
}
.nav > li:first-child > a,
.nav > li:first-child > a:hover {
border-left: 1px solid transparent;
}
.nav > li.active:last-child > a,
.nav > li:last-child > a:hover {
border-right: 1px solid darken(@gray, 15%);
}
.open .dropdown-toggle {
border-right: 1px solid darken(@gray, 15%);
border-left: 1px solid @gray;
}
&.subnav-fixed {
top: @navbarHeight;
margin: 0;
.box-shadow(none);
.nav > li.active:first-child > a,
.nav > li:first-child > a:hover {
border-left: 1px solid darken(@gray, 15%);
}
}
}
// NAV
// -----------------------------------------------------
.nav {
.nav-header {
text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
}
& > li > a {
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
border: none;
color: @grayLight;
font-weight: bold;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
}
li.active > a,
li.active > a:hover {
background-color: transparent;
border: none;
color: @white;
}
& > li.disabled > a,
& > li.disabled > a:hover {
color: @gray;
}
li > a:hover {
background-color: transparent;
color: @grayLighter;
}
}
.nav-list {
background-color: @grayDark;
.box-shadow(1px 1px 1px rgba(0, 0, 0, 0.4));
li > a {
background-image: none;
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
}
.nav-header {
color: @gray;
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
}
.divider {
border-bottom: 1px solid darken(@grayDarker, 5%);
background-color: transparent;
}
}
.nav-tabs {
border-bottom: none;
}
.tabs-below .nav-tabs {
border-top: none;
}
.tabs-left .nav-tabs {
border-right: none;
}
.tabs-right .nav-tabs {
border-left: none;
}
.nav-tabs.nav-stacked {
li > a,
li > a:hover {
border: 1px solid darken(@grayDarker, 5%);
background-image: none;
}
li > a:hover,
.active > a,
.active > a:hover {
background-color: @wellBackground;
color: @white;
}
}
.breadcrumb {
border: 1px solid transparent;
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
a {
color: @grayLighter;
font-weight: bold;
}
li {
color: @grayLight;
font-weight: bold;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
}
}
.pagination {
ul {
.box-shadow(none);
}
ul > li > a,
ul > li > span {
border-left: 1px solid @gray;
border-right: 1px solid darken(@gray, 15%);
border-top: none;
border-bottom: none;
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
color: @grayLighter;
font-weight: bold;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
&:hover {
#gradient > .directional(@grayDarker, @grayDark, 280deg);
border-left: 1px solid transparent;
}
}
ul > .active > a,
ul > .active > a:hover,
ul > .active > span,
ul > .active > span:hover {
color: @grayLighter;
background-color: @grayDark;
#gradient > .directional(lighten(@grayDarker, 4%), lighten(@grayDark, 4%), 280deg);
border-left: 1px solid transparent;
}
ul > .disabled > a,
ul > .disabled > a:hover,
ul > .disabled > span,
ul > .disabled > span:hover {
border-left: 1px solid @gray;
border-right: 1px solid darken(@gray, 15%);
border-top: none;
border-bottom: none;
#gradient > .vertical-three-colors(@grayLight, @gray, 70%, @gray);
}
}
.pager {
li > a,
li > span {
border: 1px solid transparent;
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
&:hover {
#gradient > .directional(@grayDarker, @grayDark, 280deg);
border: 1px solid transparent;
}
}
.disabled a,
.disabled a:hover {
background-color: transparent;
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
}
}
// BUTTONS
// -----------------------------------------------------
.btn {
.buttonBackground(@gray, darken(@gray, 10%));
.border-radius(3px);
border: 1px solid @grayDarker;
}
.btn, .btn:hover {
color: @white;
font-weight: bold;
text-shadow: -1px -1px 1px rgba(0, 0, 0, 0.3);
}
.btn-primary {
.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
color: @grayDark;
text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.3);
}
.btn-warning {
.buttonBackground(lighten(@orange, 15%), @orange);
}
.btn-danger {
.buttonBackground(@red, #bd362f);
}
.btn-success {
.buttonBackground(@green, #51a351);
}
.btn-info {
.buttonBackground(@blue, #2f96b4);
}
.btn-inverse {
.buttonBackground(@gray, @grayDarker);
}
.caret {
border-top-color: @white;
}
// TABLES
// -----------------------------------------------------
.table {
tbody tr.success td {
background-color: @successText;
}
tbody tr.error td {
background-color: @errorText;
}
tbody tr.info td {
background-color: @infoText;
}
}
// FORMS
// -----------------------------------------------------
label, input, button, select, textarea, legend {
color: @textColor;
}
legend, label {
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
}
.input-prepend .add-on,
.input-append .add-on {
vertical-align: top;
background-color: @gray;
border-top: 1px solid @grayLight;
border-left: 1px solid @grayLight;
border-bottom: 1px solid @grayDark;
border-right: 1px solid @grayDark;
text-shadow: none;
}
.input-append .btn,
.input-prepend .btn {
margin-top: -1px;
padding: 5px 14px;
}
.uneditable-input,
input[disabled],
select[disabled],
textarea[disabled],
input[readonly],
select[readonly],
textarea[readonly] {
color: @grayLighter;
}
.form-actions {
border-top: none;
}
// DROPDOWNS
// -----------------------------------------------------
.dropdown-menu {
.box-shadow(0 5px 5px rgba(0, 0, 0, 0.2));
}
.dropdown.open .dropdown-toggle {
background-color: @grayDark;
color: @grayLighter;
}
.dropdown-submenu > a::after {
border-left-color: @white;
}
// ALERTS, LABELS, BADGES
// -----------------------------------------------------
.label, .alert {
color: rgba(255, 255, 255, 0.9);
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
.box-shadow(1px 1px 1px rgba(0, 0, 0, 0.3));
}
.alert {
background-color: @orange;
border-color: @orange;
.alert-heading {
color: rgba(255, 255, 255, 0.9);
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.4);
}
}
.alert-success {
background-color: @successText;
border-color: @successText;
}
.alert-error {
background-color: @errorText;
border-color: @errorText;
}
.alert-info {
background-color: @infoText;
border-color: @infoText;
}
// MISC
// -----------------------------------------------------
.well, .hero-unit {
.box-shadow(inset 1px 1px 1px rgba(0, 0, 0, 0.5));
}
.thumbnail,
a.thumbnail:hover {
border: 1px solid darken(@grayDarker, 5%);
}
.progress {
background-color: darken(@grayDarker, 3%);
#gradient > .vertical(darken(@grayDarker, 3%), darken(@grayDarker, 3%));
.box-shadow(inset 1px 1px 1px rgba(0, 0, 0, 0.5));
}
.footer {
border-top: 1px solid darken(@grayDarker, 5%);
p {
color: @textColor;
}
}
.modal {
background-color: darken(@grayDark, 5%);
&-header {
border-bottom: none;
}
&-body {
border-bottom: 1px solid #1C1E22;
}
&-footer {
border-top: none;
background-color: @grayDarker;
.box-shadow(none);
}
}
// MEDIA QUERIES
// -----------------------------------------------------
@media (max-width: 979px) {
.navbar .brand {
border-right: none;
}
}
@media (max-width: 768px) {
div.subnav .nav > li + li > a {
border-top: 1px solid transparent;
}
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,301 @@
// Slate 2.3.2
// Variables
// --------------------------------------------------
// Global values
// --------------------------------------------------
// Grays
// -------------------------
@black: #000;
@grayDarker: #272B30;
@grayDark: #3A3F44;
@gray: #52575C;
@grayLight: #7A8288;
@grayLighter: #BBBFC2;
@white: #fff;
// Accent colors
// -------------------------
@blue: #5bc0de;
@blueDark: #108CBB;
@green: #62c462;
@red: #ee5f5b;
@yellow: #F6D30D;
@orange: #f89406;
@pink: #c3325f;
@purple: #7a43b6;
// Scaffolding
// -------------------------
@bodyBackground: @grayDarker;
@textColor: #C8C8C8;
// Links
// -------------------------
@linkColor: @white;
@linkColorHover: @white;
// Typography
// -------------------------
@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
@serifFontFamily: Georgia, "Times New Roman", Times, serif;
@monoFontFamily: Menlo, Monaco, Consolas, "Courier New", monospace;
@baseFontSize: 14px;
@baseFontFamily: @sansFontFamily;
@baseLineHeight: 21px;
@altFontFamily: @serifFontFamily;
@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily
@headingsFontWeight: bold; // instead of browser default, bold
@headingsColor: inherit; // empty to use BS default, @textColor
// Component sizing
// -------------------------
// Based on 14px font-size and 20px line-height
@fontSizeLarge: @baseFontSize * 1.25; // ~18px
@fontSizeSmall: @baseFontSize * 0.85; // ~12px
@fontSizeMini: @baseFontSize * 0.75; // ~11px
@paddingLarge: 11px 19px; // 44px
@paddingSmall: 2px 10px; // 26px
@paddingMini: 0px 6px; // 22px
@baseBorderRadius: 4px;
@borderRadiusLarge: 6px;
@borderRadiusSmall: 3px;
// Tables
// -------------------------
@tableBackground: transparent; // overall background-color
@tableBackgroundAccent: darken(@grayDark, 5%); // for striping
@tableBackgroundHover: @grayDark; // for hover
@tableBorder: darken(@grayDarker, 5%); // table and cell border
// Buttons
// -------------------------
@btnBackground: @white;
@btnBackgroundHighlight: darken(@white, 10%);
@btnBorder: darken(@white, 20%);
@btnPrimaryBackground: @grayLighter;
@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 15%);
@btnInfoBackground: @blue;
@btnInfoBackgroundHighlight: #2f96b4;
@btnSuccessBackground: @green;
@btnSuccessBackgroundHighlight: #51a351;
@btnWarningBackground: lighten(@orange, 15%);
@btnWarningBackgroundHighlight: @orange;
@btnDangerBackground: @red;
@btnDangerBackgroundHighlight: #bd362f;
@btnInverseBackground: @gray;
@btnInverseBackgroundHighlight: @grayDarker;
// Forms
// -------------------------
@inputBackground: @white;
@inputBorder: #ccc;
@inputBorderRadius: @baseBorderRadius;
@inputDisabledBackground: @grayLighter;
@formActionsBackground: darken(@grayDarker, 3%);
@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border
// Dropdowns
// -------------------------
@dropdownBackground: @grayDark;
@dropdownBorder: rgba(0,0,0,.2);
@dropdownDividerTop: transparent;
@dropdownDividerBottom: darken(@grayDarker, 5%);
@dropdownLinkColor: @grayLight;
@dropdownLinkColorHover: @white;
@dropdownLinkColorActive: @white;
@dropdownLinkBackgroundActive: @grayDarker;
@dropdownLinkBackgroundHover: @grayDarker;
// COMPONENT VARIABLES
// --------------------------------------------------
// Z-index master list
// -------------------------
// Used for a bird's eye view of components dependent on the z-axis
// Try to avoid customizing these :)
@zindexDropdown: 1000;
@zindexPopover: 1010;
@zindexTooltip: 1030;
@zindexFixedNavbar: 1030;
@zindexModalBackdrop: 1040;
@zindexModal: 1050;
// Sprite icons path
// -------------------------
@iconSpritePath: "../img/glyphicons-halflings.png";
@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";
// Input placeholder text color
// -------------------------
@placeholderText: @grayLight;
// Hr border color
// -------------------------
@hrBorder: darken(@grayDarker, 5%);
// Horizontal forms & lists
// -------------------------
@horizontalComponentOffset: 180px;
// Wells
// -------------------------
@wellBackground: darken(@grayDarker, 3%);
// Navbar
// -------------------------
@navbarCollapseWidth: 979px;
@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1;
@navbarHeight: 40px;
@navbarBackground: @grayDarker;
@navbarBackgroundHighlight: @grayDark;
@navbarBorder: darken(@navbarBackground, 12%);
@navbarText: @textColor;
@navbarLinkColor: @textColor;
@navbarLinkColorHover: @white;
@navbarLinkColorActive: @navbarLinkColorHover;
@navbarLinkBackgroundHover: @grayDark;
@navbarLinkBackgroundActive: @navbarBackground;
@navbarBrandColor: @grayLighter;
// Inverted navbar
@navbarInverseBackground: darken(@grayDarker, 10%);
@navbarInverseBackgroundHighlight: @grayDarker;
@navbarInverseBorder: #252525;
@navbarInverseText: @grayLight;
@navbarInverseLinkColor: @grayLight;
@navbarInverseLinkColorHover: @white;
@navbarInverseLinkColorActive: @navbarInverseLinkColorHover;
@navbarInverseLinkBackgroundHover: transparent;
@navbarInverseLinkBackgroundActive: @navbarInverseBackground;
@navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%);
@navbarInverseSearchBackgroundFocus: @white;
@navbarInverseSearchBorder: @navbarInverseBackground;
@navbarInverseSearchPlaceholderColor: #ccc;
@navbarInverseBrandColor: @navbarInverseLinkColor;
// Pagination
// -------------------------
@paginationBackground: #fff;
@paginationBorder: #ddd;
@paginationActiveBackground: #f5f5f5;
// Hero unit
// -------------------------
@heroUnitBackground: darken(@grayDarker, 3%);
@heroUnitHeadingColor: inherit;
@heroUnitLeadColor: inherit;
// Form states and alerts
// -------------------------
@warningText: #c09853;
@warningBackground: #fcf8e3;
@warningBorder: darken(spin(@warningBackground, -10), 3%);
@errorText: #b94a48;
@errorBackground: #f2dede;
@errorBorder: darken(spin(@errorBackground, -10), 3%);
@successText: #468847;
@successBackground: #dff0d8;
@successBorder: darken(spin(@successBackground, -10), 5%);
@infoText: #3a87ad;
@infoBackground: #d9edf7;
@infoBorder: darken(spin(@infoBackground, -10), 7%);
// Tooltips and popovers
// -------------------------
@tooltipColor: #fff;
@tooltipBackground: @dropdownBackground;
@tooltipArrowWidth: 5px;
@tooltipArrowColor: @tooltipBackground;
@popoverBackground: @dropdownBackground;
@popoverArrowWidth: 10px;
@popoverArrowColor: @dropdownBackground;
@popoverTitleBackground: lighten(@popoverBackground, 3%);
// Special enhancement for popovers
@popoverArrowOuterWidth: @popoverArrowWidth + 1;
@popoverArrowOuterColor: rgba(0,0,0,.25);
// GRID
// --------------------------------------------------
// Default 940px grid
// -------------------------
@gridColumns: 12;
@gridColumnWidth: 60px;
@gridGutterWidth: 20px;
@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
// 1200px min
@gridColumnWidth1200: 70px;
@gridGutterWidth1200: 30px;
@gridRowWidth1200: (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1));
// 768px-979px
@gridColumnWidth768: 42px;
@gridGutterWidth768: 20px;
@gridRowWidth768: (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1));
// Fluid grid
// -------------------------
@fluidGridColumnWidth: percentage(@gridColumnWidth/@gridRowWidth);
@fluidGridGutterWidth: percentage(@gridGutterWidth/@gridRowWidth);
// 1200px min
@fluidGridColumnWidth1200: percentage(@gridColumnWidth1200/@gridRowWidth1200);
@fluidGridGutterWidth1200: percentage(@gridGutterWidth1200/@gridRowWidth1200);
// 768px-979px
@fluidGridColumnWidth768: percentage(@gridColumnWidth768/@gridRowWidth768);
@fluidGridGutterWidth768: percentage(@gridGutterWidth768/@gridRowWidth768);

View File

@ -0,0 +1,252 @@
<?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="//div[@class='container']" position="attributes">
<!-- <attribute name="class">jumbotron subhead</attribute>
<attribute name="id">overview</attribute> -->
<attribute name="class"></attribute>
</xpath>
<!-- <xpath expr="//div[@id='overview']/div[@class='row']/div" position="attributes"> -->
<xpath expr="//div/div[@class='row']/div" position="attributes">
<attribute name="class">span6</attribute>
</xpath>
<!-- <xpath expr="//div[@id='overview']/div[@class='row']/div[@class='span6']/a" position="replace"> -->
<xpath expr="//div/div[@class='row']/div[@class='span6']/a" position="replace">
<h1>OpenERP</h1>
<p class="lead">Opensource Product.</p>
</xpath>
<!-- <xpath expr="//div[@id='overview']/div[@class='row']/div[@class='span6']" position="after"> -->
<xpath expr="//div/div[@class='row']/div[@class='span6']" position="after">
<div class="span6">
<!-- <div class="bsa well">
<div id="bsap_1277971" class="bsarocks bsap_c466df00a3cd5ee8568b5c4983b6bb19"></div>
</div> -->
</div>
</xpath>
<xpath expr="(//li)[last()]" position="after">
<li class="pull-right"><a href="/career">Career</a></li>
</xpath>
<!-- <xpath expr="//li[@*]" position="attributes">
<li class="pull-right"><a href="/career">Career</a></li>
<attribute name="class"></attribute>
</xpath> -->
<!-- <xpath expr="(//li)[last()]" position="after">
<li class="pull-right"><a href="/career">Career</a></li>
</xpath>
<xpath expr="(//ul)" position="attributes">
<attribute name="class">nav nav-pills</attribute>
</xpath>
<xpath expr="(//ul)" position="before">
<div class="subnav"></div>
</xpath> -->
<!-- <xpath expr="//div[@id='overview']/div[@class='row']/ul" position="replace">
<xpath expr="//div/div[@class='row']/ul" position="replace">
</xpath>-->
<!-- <xpath expr="//div[@id='overview']" position="after"> -->
<!--<xpath expr="//div" position="after">
<div class="subnav">
<ul class="nav nav-pills">
<li><a href="/">Home</a></li>
<li><a href="/page/website.contactus">Contact Us</a></li>
<li><a href="/career">Career</a></li>
<li><a href="/blog">Blog</a></li>
</ul>
</div>
</xpath>
-->
</data>
</field>
</record>
<record id="footer_career" model="ir.ui.view">
<field name="name">footer_career</field>
<field name="type">qweb</field>
<field name="inherit_id" ref="website.footer"/>
<field name="arch" type="xml">
<data>
<xpath expr="//div" position="attributes">
<attribute name="class">links</attribute>
</xpath>
</data>
</field>
</record>
<record id="body_career" model="ir.ui.view">
<field name="name">body_career</field>
<field name="type">qweb</field>
<field name="inherit_id" ref="website.layout"/>
<field name="arch" type="xml">
<data>
<xpath expr="//html/body" position="attributes">
<attribute name="class">preview</attribute>
<attribute name="id">top</attribute>
<attribute name="data-spy">scroll</attribute>
<attribute name="data-target">.subnav</attribute>
<attribute name="data-offset">80</attribute>
</xpath>
<xpath expr="//header" position="before">
<div class="container"></div>
</xpath>
<xpath expr="//header" position="attributes">
<!-- <attribute name="class"></attribute> -->
<attribute name="class">jumbotron subhead</attribute>
<attribute name="id">overview</attribute>
</xpath>
<xpath expr="//footer" position="attributes">
<attribute name="class"></attribute>
<attribute name="id">footer</attribute>
</xpath>
<xpath expr="//footer" position="before">
<br/><br/><br/><br/>
</xpath>
<xpath expr="//div[@class='oe_website_body']" position="attributes">
<attribute name="class"></attribute>
</xpath>
</data>
</field>
</record>
<template id="career">
<t t-call="website.layout">
<t t-set="head">
<link rel='stylesheet' href='/website_career/static/lib/bootstrap/css/bootstrap.min.css'/>
<link rel='stylesheet' href='/website_career/static/lib/bootstrap/css/bootstrap.css'/>
<link rel='stylesheet' href='/website_career/static/lib/bootstrap/css/bootswatch.css'/>
<link rel='stylesheet' href='/website_career/static/lib/bootstrap/css/font-awesome.min.css'/>
</t>
<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/>
<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 class="oe_row">
<h2 class="oe_slogan">Job Position</h2>
<table cellspacing="1" cellpadding="1">
<t t-foreach="res_job" t-as="job">
<tr>
<td><span t-record="job" t-field="name"><t t-esc="job.name"/></span></td>
<td><span t-record="job" t-field="no_of_recruitment"><t t-esc="job.no_of_recruitment"/></span></td>
<td t-if="job.description"><span t-record="job" t-field="description"><t t-esc="job.description"/></span></td>
</tr>
</t>
</table>
</div>-->
</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>
<section id="typography">
<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>
</section>
<t t-call="website_career.applyjobpost">
</t>
</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">
<label class="control-label" for="nametxt">Full Name</label>
<div class="controls">
<input type="text" class="input-xlarge" id="nametxt" name="partner_name"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="emailtxt">Email</label>
<div class="controls">
<input type="text" class="input-xlarge" id="emailtxt" name="email_from"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="descriptiontxtarea">Description</label>
<div class="controls">
<textarea rows="4" cols="50" class="input-xlarge" id="descriptiontxtarea" name="description">
</textarea>
</div>
</div>
<div class="control-group">
<label class="control-label" for="fileInput">Upload resume / cv</label>
<div class="controls">
<input class="input-file" id="fileInput" type="file" name="ufile"/>
</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>