Commit e41b046c by Damien Moulard

shifts history instead of points history

parent b5c9d742
...@@ -134,5 +134,5 @@ BLOCK_SERVICE_EXCHANGE_24H_BEFORE = True ...@@ -134,5 +134,5 @@ BLOCK_SERVICE_EXCHANGE_24H_BEFORE = True
ORDERS_HELPER_METABASE_URL = "url_meta_base" ORDERS_HELPER_METABASE_URL = "url_meta_base"
# New members space # New members space
USE_NEW_MEMBERS_SPACE = True USE_NEW_MEMBERS_SPACE = True
START_DATE_FOR_POINTS_HISTORY = "2018-01-01" START_DATE_FOR_SHIFTS_HISTORY = "2018-01-01"
...@@ -11,38 +11,37 @@ class CagetteMembersSpace(models.Model): ...@@ -11,38 +11,37 @@ class CagetteMembersSpace(models.Model):
"""Init with odoo id.""" """Init with odoo id."""
self.o_api = OdooAPI() self.o_api = OdooAPI()
def get_points_history(self, partner_id, limit, offset, date_from, shift_type): def get_shifts_history(self, partner_id, limit, offset, date_from):
""" Get partner points history with related shift registration if needed """ """ Get partner shifts history """
res = {}
today = str(datetime.date.today())
try:
cond = [ cond = [
['partner_id', '=', partner_id], ['partner_id', '=', partner_id],
['type', '=', shift_type],
['create_date', '>', date_from], ['create_date', '>', date_from],
['point_qty', '!=', 0] ['date_begin', '<', today],
['state', '!=', 'draft'],
['state', '!=', 'open'],
['state', '!=', 'waiting'],
['state', '!=', 'replaced'],
['state', '!=', 'replacing'],
] ]
f = ['create_date', 'create_uid', 'shift_id', 'name', 'point_qty'] f = ['create_date', 'shift_id', 'name', 'state', 'is_late', 'is_makeup']
res = self.o_api.search_read('shift.counter.event', cond, f, limit=limit, offset=offset, marshal_none_error = 'cannot marshal None unless allow_none is enabled'
try:
res = self.o_api.search_read('shift.registration', cond, f, limit=limit, offset=offset,
order='create_date DESC') order='create_date DESC')
except Exception as e:
# Get related data from shift.registration if not (marshal_none_error in str(e)):
shift_ids = [] res['error'] = repr(e)
for item in res: coop_logger.error(res['error'] + ' : %s', str(payment_id))
item['is_late'] = False # So every item has the attribute else:
res = []
if item['shift_id'] is not False:
shift_ids.append(item['shift_id'][0]) except Exception as e:
print(str(e))
cond = [['shift_id', 'in', shift_ids]]
f = ['is_late', 'shift_id']
res_shift_registration = self.o_api.search_read('shift.registration', cond, f)
for registration_item in res_shift_registration:
for shift_counter_item in res:
if (shift_counter_item['shift_id'] is not False
and shift_counter_item['shift_id'] == registration_item['shift_id']):
shift_counter_item['is_late'] = registration_item['is_late']
break
return res return res
\ No newline at end of file
...@@ -35,7 +35,14 @@ table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child:before { ...@@ -35,7 +35,14 @@ table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child:before {
background-color: white; background-color: white;
font-weight: bold; font-weight: bold;
border: none; border: none;
font-size: 2rem; font-size: 1.6rem;
height: 16px;
width: 16px;
border-radius: 2em;
}
@media screen {
} }
table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before, table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,
table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before { table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before {
...@@ -43,7 +50,10 @@ table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before { ...@@ -43,7 +50,10 @@ table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before {
background-color: white; background-color: white;
font-weight: bold; font-weight: bold;
border: none; border: none;
font-size: 2rem;; font-size: 1.6rem;
height: 16px;
width: 16px;
border-radius: 2em;
} }
.loading-more-history { .loading-more-history {
......
...@@ -54,6 +54,7 @@ ...@@ -54,6 +54,7 @@
display: none; display: none;
width: min-content; width: min-content;
max-width: 100%; max-width: 100%;
white-space: nowrap;
} }
@media screen and (max-width:768px) { @media screen and (max-width:768px) {
......
...@@ -9,13 +9,12 @@ function load_partner_history(offset = 0) { ...@@ -9,13 +9,12 @@ function load_partner_history(offset = 0) {
return new Promise((resolve) => { return new Promise((resolve) => {
$.ajax({ $.ajax({
type: 'GET', type: 'GET',
url: "/members_space/get_points_history", url: "/members_space/get_shifts_history",
data: { data: {
partner_id: partner_data.concerned_partner_id, partner_id: partner_data.concerned_partner_id,
verif_token: partner_data.verif_token, verif_token: partner_data.verif_token,
limit: history_items_limit, limit: history_items_limit,
offset: offset, offset: offset,
shift_type: (partner_data.in_ftop_team === "True") ? "ftop" : "standard"
}, },
dataType:"json", dataType:"json",
traditional: true, traditional: true,
...@@ -49,36 +48,18 @@ function prepare_server_data(data) { ...@@ -49,36 +48,18 @@ function prepare_server_data(data) {
res = []; res = [];
for (history_item of data) { for (history_item of data) {
// Date formating history_item.details = '';
let datetime_shift_start = new Date(history_item.create_date); if (history_item.state === 'excused' || history_item.state === 'absent') {
history_item.details = "Absent";
let f_date_shift_start = datetime_shift_start.toLocaleDateString("fr-fr", date_options); } else if (history_item.state === 'done' && history_item.is_late != false) {
history_item.details = "Présent (En Retard)";
f_date_shift_start = f_date_shift_start.charAt(0).toUpperCase() + f_date_shift_start.slice(1); } else if (history_item.state === 'done') {
history_item.details = "Présent";
history_item.movement_date = f_date_shift_start + " - " + datetime_shift_start.toLocaleTimeString("fr-fr", time_options); } else if (history_item.state === 'cancel') {
history_item.details = "Annulé";
// Text replacements
history_item.name = (history_item.name === "Clôturer le service") ? "Décompte 28j" : history_item.name;//Clôlturer le service
history_item.name = (history_item.name === "Rattrapage") ? "Absence" : history_item.name;
if (history_item.name === "Clôturer le service" || history_item.name === "Clôlturer le service") {
history_item.name = "Décompte 28j";
} else if (history_item.name === "Rattrapage") {
history_item.name = "Absence";
} else if (history_item.name === "Présent" && history_item.is_late != false) {
history_item.name = "Retard";
}
history_item.created_by = history_item.create_uid[1];
if (history_item.created_by === "Administrator") {
history_item.created_by = "Administrateur";
} else if (history_item.created_by === "api") {
history_item.created_by = "Système";
} }
history_item.shift_name = (history_item.shift_id === false) ? '' : history_item.shift_id[1]; history_item.shift_name = (history_item.shift_id === false) ? '' : history_item.shift_id[1];
// if Present && is_late -> Absent
} }
return data; return data;
...@@ -99,18 +80,14 @@ function init_history() { ...@@ -99,18 +80,14 @@ function init_history() {
data: partner_history, data: partner_history,
columns: [ columns: [
{ {
data: "movement_date",
title: `Date`,
responsivePriority: 1
},
{
data: "shift_name", data: "shift_name",
title: "Service" title: "<spans class='dt-body-center'>Service</span>",
width: "60%",
}, },
{ {
data: "name", data: "details",
title: "Détails", title: "Détails",
responsivePriority: 3 className: "tablet-l desktop"
} }
], ],
iDisplayLength: -1, iDisplayLength: -1,
...@@ -126,7 +103,7 @@ function init_history() { ...@@ -126,7 +103,7 @@ function init_history() {
$(row).addClass('row_partner_ok'); $(row).addClass('row_partner_ok');
} else if (cell.text() === "Retard") { } else if (cell.text() === "Retard") {
$(row).addClass('row_partner_late'); $(row).addClass('row_partner_late');
} else if (cell.text() === "Absence") { } else if (cell.text() === "Absent") {
$(row).addClass('row_partner_absent'); $(row).addClass('row_partner_absent');
} }
} }
......
...@@ -10,6 +10,6 @@ urlpatterns = [ ...@@ -10,6 +10,6 @@ urlpatterns = [
url(r'^my_shifts$', views.my_shifts), url(r'^my_shifts$', views.my_shifts),
url(r'^shifts_exchange$', views.shifts_exchange), url(r'^shifts_exchange$', views.shifts_exchange),
url(r'^no_content$', views.no_content), url(r'^no_content$', views.no_content),
url(r'^get_points_history$', views.get_points_history), url(r'^get_shifts_history$', views.get_shifts_history),
url('/*$', views.index), url('/*$', views.index),
] ]
...@@ -165,7 +165,7 @@ def no_content(request): ...@@ -165,7 +165,7 @@ def no_content(request):
} }
return HttpResponse(template.render(context, request)) return HttpResponse(template.render(context, request))
def get_points_history(request): def get_shifts_history(request):
res = {} res = {}
partner_id = int(request.GET.get('partner_id')) partner_id = int(request.GET.get('partner_id'))
...@@ -173,8 +173,7 @@ def get_points_history(request): ...@@ -173,8 +173,7 @@ def get_points_history(request):
limit = int(request.GET.get('limit')) limit = int(request.GET.get('limit'))
offset = int(request.GET.get('offset')) offset = int(request.GET.get('offset'))
shift_type = request.GET.get('shift_type') date_from = getattr(settings, 'START_DATE_FOR_SHIFTS_HISTORY', '2018-01-01')
date_from = getattr(settings, 'START_DATE_FOR_POINTS_HISTORY', '2018-01-01') res["data"] = m.get_shifts_history(partner_id, limit, offset, date_from)
res["data"] = m.get_points_history(partner_id, limit, offset, date_from, shift_type)
return JsonResponse(res) return JsonResponse(res)
\ No newline at end of file
...@@ -352,7 +352,7 @@ ...@@ -352,7 +352,7 @@
Should be set to False by default if parameter not set Should be set to False by default if parameter not set
- START_DATE_FOR_POINTS_HISTORY = "2018-01-01" - START_DATE_FOR_SHIFTS_HISTORY = "2018-01-01"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment