first comit
This commit is contained in:
117
templates/hrm/holiday_request.html
Normal file
117
templates/hrm/holiday_request.html
Normal file
@@ -0,0 +1,117 @@
|
||||
{% extends 'includes/base.html' %}
|
||||
{% load static %}
|
||||
{% load gravatar %}
|
||||
{% block styles %}
|
||||
|
||||
{% endblock styles %}
|
||||
{% block content %}
|
||||
<!-- End Navbar -->
|
||||
<div class="card shadow-lg mx-4 card-profile-bottom">
|
||||
<div class="card-body p-3">
|
||||
<div class="row gx-4">
|
||||
<div class="col-auto">
|
||||
<div class="avatar avatar-xl position-relative">
|
||||
{% if employee.employee.email %}
|
||||
<img class="img-profile rounded-circle m-1" src="{% gravatar_url employee.employee.email 50 %}" alt="" />
|
||||
{% else %}
|
||||
<img class="img-profile rounded-circle m-1" src="{% static 'img/profile.png' %}" alt="" />
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto my-auto">
|
||||
<div class="h-100">
|
||||
<h5 class="mb-1">
|
||||
{{ employee.employee.first_name }} {{ employee.employee.last_name }}
|
||||
</h5>
|
||||
<p class="mb-0 font-weight-bold text-sm">
|
||||
{{ employee.job_title }}
|
||||
</p>
|
||||
<p class="mb-0 font-weight-bold text-sm">
|
||||
{{ employee.company.name }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container-fluid py-4">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="card">
|
||||
<div class="card-header pb-0">
|
||||
<div class="d-flex align-items-center">
|
||||
<p class="mb-0">Holdiay Request</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form id="holiday_request z-index-5">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6 for="example-text-input" class="form-control-label">Start Date</h6>
|
||||
<div class="input-group">
|
||||
<input class="form-control" placeholder="Please select date" id="input_from" name="holiday_start_date" type="text" value="{{absence.start_date}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h6 for="example-text-input" class="form-control-label">End Date</h6>
|
||||
<div class="input-group">
|
||||
<input class="form-control" placeholder="Please select date" type="text" id="input_to" name="holiday_end_date" value="{{absence.end_date}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<button class="btn btn-success mt-2 mb-2" type="button" onclick="requestHoliday()">
|
||||
<span class="spinner-border spinner-border-sm" id="submitSpinner" role="status" aria-hidden="true" hidden></span>
|
||||
<span id="submitText">Request</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="mt-4 z-index-2" >
|
||||
<p>Existing bookings for your department are shown below</p>
|
||||
<div id='calendar-container'>
|
||||
<div id='calendar'></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
{% block scripts %}
|
||||
<script src="{% static 'js/plugins/calendar/rome.js' %}"></script>
|
||||
<script src="{% static 'js/plugins/calendar/main.js' %}"></script>
|
||||
<script src="{% static 'fullcalendar/dist/index.global.js' %}"></script>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var calendarEl = document.getElementById('calendar');
|
||||
var calendar = new FullCalendar.Calendar(calendarEl, {
|
||||
themeSystem: 'bootstrap5',
|
||||
headerToolbar: {
|
||||
left: 'prev,next today',
|
||||
center: 'title',
|
||||
right: 'dayGridYear,dayGridMonth'
|
||||
},
|
||||
initialView: 'dayGridYear',
|
||||
initialDate: "{{today}}",
|
||||
navLinks: false,
|
||||
editable: false,
|
||||
eventLimit: true,
|
||||
events: "{% url 'api:get_existing_holidays' %}?employee_id={{employee.id}}",
|
||||
});
|
||||
calendar.render();
|
||||
});
|
||||
|
||||
|
||||
|
||||
function requestHoliday(){
|
||||
document.getElementById('submitSpinner').removeAttribute('hidden')
|
||||
document.getElementById('submitText').setAttribute('hidden', true)
|
||||
var from = document.getElementById('input_from').value;
|
||||
var to = document.getElementById('input_to').value;
|
||||
postData = {'data': JSON.stringify({'employee_id': {{employee.id}}, 'from': from, 'to': to})};
|
||||
console.log(postData);
|
||||
}
|
||||
</script>
|
||||
|
||||
{% endblock scripts %}
|
||||
260
templates/hrm/index.html
Normal file
260
templates/hrm/index.html
Normal file
@@ -0,0 +1,260 @@
|
||||
{% extends 'includes/base.html' %}
|
||||
{% load static %}
|
||||
{% load gravatar %}
|
||||
{% block content %}
|
||||
<!-- End Navbar -->
|
||||
<div class="card shadow-lg mx-4 card-profile-bottom">
|
||||
<div class="card-body p-3">
|
||||
<div class="row gx-4">
|
||||
<div class="col-auto">
|
||||
<div class="avatar avatar-xl position-relative">
|
||||
{% if employee.employee.email %}
|
||||
<img class="img-profile rounded-circle m-1" src="{% gravatar_url user.email 50 %}" alt="" />
|
||||
{% else %}
|
||||
<img class="img-profile rounded-circle m-1" src="{% static 'img/profile.png' %}" alt="" />
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto my-auto">
|
||||
<div class="h-100">
|
||||
<h5 class="mb-1">
|
||||
{{ employee.employee.first_name }} {{ employee.employee.last_name }}
|
||||
</h5>
|
||||
<p class="mb-0 font-weight-bold text-sm">
|
||||
{{ employee.job_title }}
|
||||
</p>
|
||||
<p class="mb-0 font-weight-bold text-sm">
|
||||
{{ employee.company.name }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container-fluid py-4">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="card">
|
||||
<div class="card-header pb-0 d-flex">
|
||||
<div class="d-flex align-items-center">
|
||||
<p class="mb-0">Quick Links</p>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-secondary position-absolute top-10 end-2" type="button" data-bs-toggle="modal" data-bs-target="#addLinkModal">Manage Links</button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<ul class="px-2 py-3 me-sm-n4 list-unstyled" id="enabledLinks">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="addLinkModal" tabindex="-1" role="dialog" aria-labelledby="addLinkModal" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered modal-md" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body p-0">
|
||||
<div class="card card-plain">
|
||||
<div class="card-header pb-0 text-left">
|
||||
<h3 class="font-weight-bolder text-primary text-gradient">Links</h3>
|
||||
</div>
|
||||
<div class="card-body pb-3">
|
||||
<form role="form" id="enablelinkForm">
|
||||
<div class="col-auto" id='availableLinks'>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<button type="button" class="btn bg-gradient-primary btn-lg btn-rounded w-100 mt-4 mb-0" onclick="addLink()">
|
||||
<span class="spinner-border spinner-border-sm" id="createSpinner" role="status" aria-hidden="true" hidden></span>
|
||||
<span id="createText">Add</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<form role="form text-left" id="addlinkForm" hidden>
|
||||
<label>Link Name</label>
|
||||
<div class="input-group mb-3">
|
||||
<input type="text" class="form-control" id="linkName" placeholder="Name" aria-label="Name" aria-describedby="name-addon">
|
||||
</div>
|
||||
<label>Link URL</label>
|
||||
<div class="input-group mb-3">
|
||||
<input type="text" class="form-control" id="linkURL" placeholder="/your_page_here" aria-label="Name" aria-describedby="name-addon">
|
||||
</div>
|
||||
<label>Link Enabled</label>
|
||||
<div class="input-group mb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="linkEnabled" checked="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<button type="button" class="btn bg-gradient-primary btn-lg btn-rounded w-100 mt-4 mb-0" onclick="addNewLink()">
|
||||
<span class="spinner-border spinner-border-sm" id="createSpinner" role="status" aria-hidden="true" hidden></span>
|
||||
<span id="createText">Add</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
{% block scripts %}
|
||||
<script>
|
||||
|
||||
|
||||
function get_links() {
|
||||
try {
|
||||
document.getElementById('availableLinks').innerHTML = "";
|
||||
document.getElementById('enabledLinks').innerHTML = "";
|
||||
} catch {};
|
||||
$.ajax({
|
||||
url: "{% url 'api:get_links' %}",
|
||||
dataType: "JSON",
|
||||
type: 'GET',
|
||||
headers: {'X-CSRFToken': csrftoken},
|
||||
success: function(data) {
|
||||
for (var i = 0; i < data['links'].length; i++) {
|
||||
var toggle_box = document.getElementById(data['links'][i]['id']);
|
||||
var link_box = document.getElementById('link_'+data['links'][i]['id']);
|
||||
if (data['links'][i]['enabled'] === true) {
|
||||
if (toggle_box === null ){
|
||||
$('#availableLinks').append(
|
||||
'<div class="row" id="linkToggle_'+data['links'][i]['id']+'">'+
|
||||
'<div class="form-check form-switch ">'+
|
||||
'<input class="form-check-input" type="checkbox" id="'+data['links'][i]['id']+'" checked="" onclick="toggleLink(this.id)">'+
|
||||
'<label class="form-check-label" for="'+data['links'][i]['id']+'">'+data['links'][i]['name']+'</label>'+
|
||||
'<a class="position-absolute end-10" onclick="deleteLink('+data['links'][i]['id']+')"><i class="fa fa-trash"></i></a>'+
|
||||
'</div>'+
|
||||
|
||||
'</div>'
|
||||
);
|
||||
};
|
||||
if (link_box === null ){
|
||||
$('#enabledLinks').append(
|
||||
'<li class="mb-2" id="link_'+data['links'][i]['id']+'">'+
|
||||
'<a href="'+data['links'][i]['link']+'">'+
|
||||
data['links'][i]['name']+
|
||||
'</a>'+
|
||||
'</li>'
|
||||
)
|
||||
};
|
||||
} else {
|
||||
if (toggle_box === null ){
|
||||
$('#availableLinks').append(
|
||||
'<div class="row" id="linkToggle_'+data['links'][i]['id']+'">'+
|
||||
'<div class="form-check form-switch">'+
|
||||
'<input class="form-check-input" type="checkbox" id="'+data['links'][i]['id']+'" onclick="toggleLink(this.id)">'+
|
||||
'<label class="form-check-label" for="'+data['links'][i]['id']+'">'+data['links'][i]['name']+'</label>'+
|
||||
'<a class="position-absolute end-10" onclick="deleteLink('+data['links'][i]['id']+')"><i class="fa fa-trash"></i></a>'+
|
||||
'</div>'+
|
||||
'</div>'
|
||||
);
|
||||
};
|
||||
try {
|
||||
document.getElementById('link_'+data['links'][i]['id']).remove();
|
||||
} catch {};
|
||||
}
|
||||
};
|
||||
},
|
||||
});
|
||||
};
|
||||
$(document).ready(function() {
|
||||
get_links();
|
||||
});
|
||||
|
||||
function addLink() {
|
||||
document.getElementById('enablelinkForm').setAttribute('hidden', true);
|
||||
document.getElementById('addlinkForm').removeAttribute('hidden');
|
||||
}
|
||||
function addNewLink(){
|
||||
var name = document.getElementById('linkName').value;
|
||||
var link = document.getElementById('linkURL').value;
|
||||
var enabled = document.getElementById('linkEnabled').checked;
|
||||
|
||||
postData = {'data': JSON.stringify({'name': name, 'link': link, 'enabled': enabled})}
|
||||
//console.log(postData)
|
||||
$.ajax({
|
||||
url: "{% url 'api:add_homepage_link' %}",
|
||||
dataType: "JSON",
|
||||
data: postData,
|
||||
type: 'POST',
|
||||
headers: {'X-CSRFToken': csrftoken},
|
||||
success: function(results) {
|
||||
get_links();
|
||||
toast.classList.remove('text-bg-danger', 'text-bg-success', 'text-bg-warning')
|
||||
toast.classList.add(results['messageStatus']);
|
||||
document.getElementById("toast-title").innerHTML = results['messageTitle'];
|
||||
document.getElementById("toast-message").innerHTML = results['message'];
|
||||
toastBootstrap.show();
|
||||
document.getElementById('addlinkForm').setAttribute('hidden', true);
|
||||
document.getElementById('enablelinkForm').removeAttribute('hidden');
|
||||
},
|
||||
error: function(results){
|
||||
toast.classList.remove('text-bg-danger', 'text-bg-success', 'text-bg-warning')
|
||||
toast.classList.add(results['messageStatus']);
|
||||
document.getElementById("toast-title").innerHTML = results['messageTitle'];
|
||||
document.getElementById("toast-message").innerHTML = results['message'];
|
||||
toastBootstrap.show();
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function toggleLink(link_id) {
|
||||
var toggle = document.getElementById(link_id);
|
||||
if (toggle.checked) {
|
||||
var checked = true
|
||||
} else {
|
||||
var checked = false
|
||||
}
|
||||
$.ajax({
|
||||
url: "{% url 'api:toggle_link' %}",
|
||||
dataType: "JSON",
|
||||
data: {'data': JSON.stringify({'link_id': link_id, "checked": checked})},
|
||||
type: 'POST',
|
||||
headers: {'X-CSRFToken': csrftoken},
|
||||
success: function(results){
|
||||
toast.classList.remove('text-bg-danger', 'text-bg-success', 'text-bg-warning')
|
||||
toast.classList.add(results['messageStatus']);
|
||||
document.getElementById("toast-title").innerHTML = results['messageTitle'];
|
||||
document.getElementById("toast-message").innerHTML = results['message'];
|
||||
toastBootstrap.show();
|
||||
get_links();
|
||||
},
|
||||
error: function(results) {
|
||||
toast.classList.remove('text-bg-danger', 'text-bg-success', 'text-bg-warning')
|
||||
toast.classList.add(results['messageStatus']);
|
||||
document.getElementById("toast-title").innerHTML = results['messageTitle'];
|
||||
document.getElementById("toast-message").innerHTML = results['message'];
|
||||
toastBootstrap.show();
|
||||
get_links();
|
||||
}
|
||||
})
|
||||
}
|
||||
function deleteLink(link_id) {
|
||||
$.ajax({
|
||||
url: "{% url 'api:delete_link' %}",
|
||||
dataType: "JSON",
|
||||
data: {'data': JSON.stringify({'link_id': link_id})},
|
||||
type: 'POST',
|
||||
headers: {'X-CSRFToken': csrftoken},
|
||||
success: function(results){
|
||||
toast.classList.remove('text-bg-danger', 'text-bg-success', 'text-bg-warning')
|
||||
toast.classList.add(results['messageStatus']);
|
||||
document.getElementById("toast-title").innerHTML = results['messageTitle'];
|
||||
document.getElementById("toast-message").innerHTML = results['message'];
|
||||
toastBootstrap.show();
|
||||
get_links();
|
||||
},
|
||||
error: function(results) {
|
||||
toast.classList.remove('text-bg-danger', 'text-bg-success', 'text-bg-warning')
|
||||
toast.classList.add(results['messageStatus']);
|
||||
document.getElementById("toast-title").innerHTML = results['messageTitle'];
|
||||
document.getElementById("toast-message").innerHTML = results['message'];
|
||||
toastBootstrap.show();
|
||||
get_links();
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{% endblock scripts %}
|
||||
214
templates/hrm/profile.html
Executable file
214
templates/hrm/profile.html
Executable file
@@ -0,0 +1,214 @@
|
||||
{% extends 'includes/base.html' %}
|
||||
{% load static %}
|
||||
{% load gravatar %}
|
||||
{% block content %}
|
||||
<!-- End Navbar -->
|
||||
<div class="card shadow-lg mx-4 card-profile-bottom">
|
||||
<div class="card-body p-3">
|
||||
<div class="row gx-4">
|
||||
<div class="col-auto">
|
||||
<div class="avatar avatar-xl position-relative">
|
||||
{% if user.email %}
|
||||
<img class="img-profile rounded-circle m-1" src="{% gravatar_url user.email 50 %}" alt="" />
|
||||
{% else %}
|
||||
<img class="img-profile rounded-circle m-1" src="{% static 'img/profile.png' %}" alt="" />
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto my-auto">
|
||||
<div class="h-100">
|
||||
<h5 class="mb-1">
|
||||
{{ user.first_name }} {{ user.last_name }}
|
||||
</h5>
|
||||
<p class="mb-0 font-weight-bold text-sm">
|
||||
{{ employee.job_title }}
|
||||
</p>
|
||||
<p class="mb-0 font-weight-bold text-sm">
|
||||
{{ employee.company.name }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 col-md-6 my-sm-auto ms-sm-auto me-sm-0 mx-auto mt-3">
|
||||
<div class="nav-wrapper position-relative end-0">
|
||||
<ul class="nav nav-pills nav-fill p-1" role="tablist">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link mb-0 px-0 py-1 active d-flex align-items-center justify-content-center " data-bs-toggle="tab" href="javascript:;" role="tab" aria-selected="true">
|
||||
<i class="ni ni-app"></i>
|
||||
<span class="ms-2">App</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link mb-0 px-0 py-1 d-flex align-items-center justify-content-center " data-bs-toggle="tab" href="javascript:;" role="tab" aria-selected="false">
|
||||
<i class="ni ni-email-83"></i>
|
||||
<span class="ms-2">Messages</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link mb-0 px-0 py-1 d-flex align-items-center justify-content-center " data-bs-toggle="tab" href="javascript:;" role="tab" aria-selected="false">
|
||||
<i class="ni ni-settings-gear-65"></i>
|
||||
<span class="ms-2">Settings</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container-fluid py-4">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="card">
|
||||
<div class="card-header pb-0">
|
||||
<div class="d-flex align-items-center">
|
||||
<p class="mb-0">Edit Profile</p>
|
||||
<button class="btn btn-primary btn-sm ms-auto">Edit</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="text-uppercase text-sm">Employee Information</p>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label for="example-text-input" class="form-control-label">Email address</label>
|
||||
<input class="form-control" type="email" value="{{ user.email }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label for="example-text-input" class="form-control-label">First name</label>
|
||||
<input class="form-control" type="text" value="{{user.first_name}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label for="example-text-input" class="form-control-label">Last name</label>
|
||||
<input class="form-control" type="text" value="{{user.last_name}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label for="example-text-input" class="form-control-label">Preferred Name</label>
|
||||
<input class="form-control" type="text" value="{{employee.preferred_name}}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="horizontal dark">
|
||||
<p class="text-uppercase text-sm">Contact Information</p>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label for="example-text-input" class="form-control-label">Address</label>
|
||||
<input class="form-control" type="text" value="{{employee.address_street}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="example-text-input" class="form-control-label">City</label>
|
||||
<input class="form-control" type="text" value="{{employee.address_city}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="example-text-input" class="form-control-label">Country</label>
|
||||
<input class="form-control" type="text" value="{{employee.address_country}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="example-text-input" class="form-control-label">Postal code</label>
|
||||
<input class="form-control" type="text" value="{{employee.address_postcode}}">
|
||||
</div>
|
||||
</div>
|
||||
<hr class="horizontal dark">
|
||||
<p class="text-uppercase text-sm">Emergency Contact Information</p>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label for="example-text-input" class="form-control-label">Address</label>
|
||||
<input class="form-control" type="text" value="{{employee.emergency_contact_address_street}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="example-text-input" class="form-control-label">City</label>
|
||||
<input class="form-control" type="text" value="{{employee.emergency_contact_address_city}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="example-text-input" class="form-control-label">Country</label>
|
||||
<input class="form-control" type="text" value="{{employee.emergency_contact_address_country}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="example-text-input" class="form-control-label">Postal code</label>
|
||||
<input class="form-control" type="text" value="{{employee.emergency_contact_address_postcode}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="example-text-input" class="form-control-label">Contact Number</label>
|
||||
<input class="form-control" type="text" value="{{employee.emergency_contact_phone_number}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="example-text-input" class="form-control-label">Alternative Number</label>
|
||||
<input class="form-control" type="text" value="{{employee.emergency_contact_alternative_number}}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card card-profile">
|
||||
<div class="card-header text-center border-0 pt-0 pt-lg-2 pb-4 pb-lg-3">
|
||||
<div class="d-flex justify-content-between">
|
||||
<a href="{% url 'request_holiday' %}" class="btn btn-sm btn-info mb-0 d-none d-lg-block">Book Holiday</a>
|
||||
<a href="javascript:;" class="btn btn-sm btn-info mb-0 d-block d-lg-none"><i class="ni ni-collection"></i></a>
|
||||
<a href="javascript:;" class="btn btn-sm btn-dark float-right mb-0 d-none d-lg-block">Log Sick Day</a>
|
||||
<a href="javascript:;" class="btn btn-sm btn-dark float-right mb-0 d-block d-lg-none"><i class="ni ni-email-83"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body pt-0">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="d-flex justify-content-center">
|
||||
<div class="d-grid text-center m-2">
|
||||
<span class="text-lg font-weight-bolder">{{ employee.holiday_days_allocated }}</span>
|
||||
<span class="text-sm opacity-8">Allocation</span>
|
||||
</div>
|
||||
<div class="d-grid text-center m-2">
|
||||
<span class="text-lg font-weight-bolder">{{ employee.holiday_days_remaining }}</span>
|
||||
<span class="text-sm opacity-8">Remaining</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-content-left">
|
||||
<div class="text-left">
|
||||
<h6>Employee Links</h6>
|
||||
<ul>
|
||||
<li>
|
||||
<a href=# >Employee Handbook</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href=# >Code of Conduct</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href=# >Employee Progression</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user