summaryrefslogtreecommitdiff
path: root/addons/hr_recruitment/static/src
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/hr_recruitment/static/src
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/hr_recruitment/static/src')
-rw-r--r--addons/hr_recruitment/static/src/img/congratulations.pngbin0 -> 40574 bytes
-rw-r--r--addons/hr_recruitment/static/src/js/recruitment.js18
-rw-r--r--addons/hr_recruitment/static/src/js/tours/hr_recruitment.js103
-rw-r--r--addons/hr_recruitment/static/src/scss/hr_job.scss101
4 files changed, 222 insertions, 0 deletions
diff --git a/addons/hr_recruitment/static/src/img/congratulations.png b/addons/hr_recruitment/static/src/img/congratulations.png
new file mode 100644
index 00000000..bcdd8875
--- /dev/null
+++ b/addons/hr_recruitment/static/src/img/congratulations.png
Binary files differ
diff --git a/addons/hr_recruitment/static/src/js/recruitment.js b/addons/hr_recruitment/static/src/js/recruitment.js
new file mode 100644
index 00000000..e9758dda
--- /dev/null
+++ b/addons/hr_recruitment/static/src/js/recruitment.js
@@ -0,0 +1,18 @@
+odoo.define('job.update_kanban', function (require) {
+ 'use strict';
+ var KanbanRecord = require('web.KanbanRecord');
+
+ KanbanRecord.include({
+ /**
+ * @override
+ * @private
+ */
+ _openRecord: function () {
+ if (this.modelName === 'hr.job' && this.$(".o_hr_job_boxes a").length) {
+ this.$(".o_hr_job_boxes a").first().click();
+ } else {
+ this._super.apply(this, arguments);
+ }
+ }
+ });
+});
diff --git a/addons/hr_recruitment/static/src/js/tours/hr_recruitment.js b/addons/hr_recruitment/static/src/js/tours/hr_recruitment.js
new file mode 100644
index 00000000..368b9775
--- /dev/null
+++ b/addons/hr_recruitment/static/src/js/tours/hr_recruitment.js
@@ -0,0 +1,103 @@
+odoo.define('hr_recruitment.tour', function(require) {
+"use strict";
+
+var core = require('web.core');
+var tour = require('web_tour.tour');
+
+var _t = core._t;
+
+tour.register('hr_recruitment_tour',{
+ url: "/web",
+ rainbowManMessage: _t("<div>Great job! You hired a new colleague!</div><div>Try the Website app to publish job offers online.</div>"),
+ sequence: 230,
+}, [tour.stepUtils.showAppsMenuItem(), {
+ trigger: '.o_app[data-menu-xmlid="hr_recruitment.menu_hr_recruitment_root"]',
+ content: _t("Let's have a look at how to <b>improve</b> your <b>hiring process</b>."),
+ position: 'right',
+ edition: 'community'
+}, {
+ trigger: '.o_app[data-menu-xmlid="hr_recruitment.menu_hr_recruitment_root"]',
+ content: _t("Let's have a look at how to <b>improve</b> your <b>hiring process</b>."),
+ position: 'bottom',
+ edition: 'enterprise'
+}, {
+ trigger: ".o-kanban-button-new",
+ content: _t("Create your first Job Position."),
+ position: "bottom",
+ width: 195
+}, {
+ trigger: ".o_job_name",
+ extra_trigger: '.o_hr_job_simple_form',
+ content: _t("What do you want to recruit today? Choose a job title..."),
+ position: "right"
+}, {
+ trigger: ".o_job_alias",
+ extra_trigger: '.o_hr_job_simple_form',
+ content: _t("Choose an application email."),
+ position: "right"
+}, {
+ trigger: '.o_create_job',
+ content: _t('Let\'s create the position. An email will be setup for applications, and a public job description, if you use the Website app.'),
+ position: 'bottom',
+ run: function (actions) {
+ actions.auto('.modal:visible .btn.btn-primary');
+ },
+}, {
+ trigger: ".oe_kanban_action_button",
+ extra_trigger: '.o_hr_recruitment_kanban',
+ content: _t("Let\'s have a look at the applications pipeline."),
+ position: "bottom"
+}, {
+ trigger: ".o_copy_paste_email",
+ content: _t("Copy this email address, to paste it in your email composer, to apply."),
+ position: "bottom"
+}, {
+ trigger: ".breadcrumb-item:not(.active):last",
+ extra_trigger: '.o_kanban_applicant',
+ content: _t("Let’s go back to the dashboard."),
+ position: "bottom"
+}, {
+ trigger: ".oe_kanban_action_button",
+ extra_trigger: '.o_hr_recruitment_kanban',
+ content: _t("<b>Did you apply by sending an email?</b> Check incoming applications."),
+ position: "bottom"
+}, {
+ trigger: ".oe_kanban_card",
+ extra_trigger: '.o_kanban_applicant',
+ content: _t("<b>Drag this card</b>, to qualify him for a first interview."),
+ position: "bottom",
+ run: "drag_and_drop .o_kanban_group:eq(1) ",
+}, {
+ trigger: ".oe_kanban_card",
+ extra_trigger: '.o_kanban_applicant',
+ content: _t("<b>Click to view</b> the application."),
+ position: "bottom"
+}, {
+ trigger: ".o_Chatter .o_ChatterTopbar_buttonSendMessage",
+ extra_trigger: '.o_applicant_form',
+ content: _t("<div><b>Try to send an email</b> to the applicant.</div><div><i>Tips: All emails sent or received are saved in the history here</i>"),
+ position: "bottom"
+}, {
+ trigger: ".o_Chatter .o_Composer_buttonSend",
+ extra_trigger: '.o_applicant_form',
+ content: _t("Send your email. Followers will get a copy of the communication."),
+ position: "bottom"
+}, {
+ trigger: ".o_Chatter .o_ChatterTopbar_buttonLogNote",
+ extra_trigger: '.o_applicant_form',
+ content: _t("Or talk about this applicant privately with your colleagues."),
+ position: "bottom"
+}, {
+ trigger: ".o_create_employee",
+ extra_trigger: '.o_applicant_form',
+ content: _t("Let’s create this new employee now."),
+ position: "bottom"
+}, {
+ trigger: ".o_form_button_save",
+ extra_trigger: ".o_employee_form",
+ content: _t("Save it !"),
+ position: "bottom",
+ width: 80
+}]);
+
+});
diff --git a/addons/hr_recruitment/static/src/scss/hr_job.scss b/addons/hr_recruitment/static/src/scss/hr_job.scss
new file mode 100644
index 00000000..3025c1bd
--- /dev/null
+++ b/addons/hr_recruitment/static/src/scss/hr_job.scss
@@ -0,0 +1,101 @@
+.o_kanban_view.o_kanban_dashboard {
+ &.o_hr_recruitment_kanban {
+ &.o_kanban_ungrouped .o_kanban_record {
+ width: 350px;
+ &:not(.o_kanban_ghost) {
+ height: 180px;
+ }
+ }
+
+ .ribbon {
+ &::before, &::after {
+ display: none;
+ }
+
+ span {
+ background-color: $o-brand-odoo;
+ padding: 5px;
+ font-size: small;
+ z-index: unset;
+ height: auto;
+ }
+ }
+ .ribbon-top-right {
+ margin-top: -$o-kanban-dashboard-vpadding;
+
+ span {
+ left: 0px;
+ right: 30px;
+ }
+ }
+ }
+
+ .o_kanban_record_subtitle {
+ height: 1em;
+ }
+
+ .o_recruitment_kanban_boxes {
+ display: flex;
+ flex-flow: row nowrap;
+
+ .o_recruitment_kanban_box {
+ position: relative;
+ padding: 0 0 0 0;
+ flex: 1 1 auto;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: center;
+
+ &:first-child {
+ justify-content: flex-start;
+ padding-left: 16px;
+ }
+ div:last-child {
+ justify-content: flex-end;
+ text-align: right;
+ }
+ .o_link_trackers{
+ .fa{
+ color: $o-brand-primary;
+ }
+ }
+ .o_value {
+ font-weight: 800;
+ }
+
+ > a {
+ font-weight: 500;
+
+ &.o_needaction{
+ font-size: small;
+ font-weight: 400;
+ margin-left: 4px;
+ @include o-hover-opacity(0.5, 1);
+
+ &:before {
+ content: "/ ";
+ }
+
+ &:after {
+ content: "\f086";
+ font: normal normal normal 14px/1 FontAwesome;
+ }
+ }
+ }
+ }
+ }
+}
+
+.o_kanban_view .oe_kanban_card {
+ .o_kanban_state_with_padding {
+ padding-left:7%;
+ padding-bottom:5%;
+ width: 12px;
+ }
+}
+
+.o_recruitment_list {
+ .o_list_button {
+ text-align: right;
+ }
+}