Commit d0fea7ae by Thibault Grandjean

can select parent

parent 5d9feee1
......@@ -410,7 +410,7 @@ def delete_shift_registration(request):
# Gestion des binômes
def get_member_info(request, member_id):
def get_member_info(request,coop_id):
"""Retrieve information about a member."""
res = {}
is_connected_user = CagetteUser.are_credentials_ok(request)
......@@ -418,6 +418,7 @@ def get_member_info(request, member_id):
api = OdooAPI()
fields = [
'id',
'name',
'sex',
'cooperative_state',
'email',
......@@ -430,27 +431,10 @@ def get_member_info(request, member_id):
'parent_id',
'is_associated_people',
]
member = api.search_read('res.partner', [['id', '=', member_id]], fields)
member = api.search_read('res.partner', [['barcode_base', '=', coop_id]], fields)
# get incomming shifts
fields = [
"date_begin",
"date_end",
"final_standard_point",
"shift_id",
"shift_type",
"partner_id",
"id",
]
cond = [
["partner_id.id", "=", member_id],
["state", "=", "open"],
["date_begin", ">", datetime.datetime.now().isoformat()],
]
shifts = api.search_read('shift.registration', cond, fields, order="date_begin ASC")
if member:
res['member'] = member[0]
res['member']['incoming_shifts'] = shifts
response = JsonResponse(res)
else:
response = JsonResponse({"message": "Not found"}, status=404)
......
var parentId = null;
var childId = null;
/**
* Load member infos
*/
function load_member_infos() {
function load_member_infos(divId, memberId) {
console.log(memberId)
$.ajax({
type: 'GET',
url: "/members/get_member_info/" + selected_member.id,
url: "/members/get_member_info/" + memberId,
dataType:"json",
traditional: true,
contentType: "application/json; charset=utf-8",
success: function(data) {
console.log(data)
display_member_infos(data.member);
display_member_infos(divId, data.member)
},
error: function(data) {
err = {msg: "erreur serveur lors de la récupération des infos du membre", ctx: 'load_member_infos'};
......@@ -26,18 +29,13 @@ function load_member_infos() {
}
/**
* Display table of member future shifts
*/
function display_member_shifts() {
}
/**
* Display table of member future shifts
* Display member info
*/
function display_member_infos(memberData) {
function display_member_infos(divId, memberData) {
$("#" + divId).show()
console.log(memberData)
shifts = memberData.incoming_shifts
$("#" + divId).find("#name").text(memberData.name)
}
......@@ -58,23 +56,24 @@ $(document).ready(function() {
window.location.assign(base_location);
});
// Set action to search for the member
$('#search_member_form').submit(function() {
let search_str = $('#search_member_input').val();
$("#search_member_input").autocomplete({source: function(request, response) {
$.ajax({
url: '/members/search/' + search_str,
url: '/members/search/' + request.term,
dataType : 'json',
success: function(data) {
members_search_results = [];
for (member of data.res) {
if (member.is_member || member.is_associated_people) {
members_search_results.push(member);
}
}
display_possible_members();
response($.map(data.res, function(item) {
return {
label: item.barcode_base + ' ' + item.name,
value: item.barcode_base
}
}))
},
error: function() {
err = {
......@@ -87,7 +86,55 @@ $(document).ready(function() {
globalPosition:"top right",
className: "error"
});
},
}
)
},
minLength: 3,
select: function( event, ui ) {
if (ui.item) {
load_member_infos("parentInfo", ui.item.value)
}
}
})
$("#search_child_input").autocomplete({source: function(request, response) {
$.ajax({
url: '/members/search/' + request.term,
dataType : 'json',
success: function(data) {
members_search_results = [];
for (member of data.res) {
if (member.is_member || member.is_associated_people) {
members_search_results.push(member);
}
}
console.log(members_search_results)
response($.map(data.res, function(item) {
return {
label: item.barcode_base + ' ' + item.name,
value: item.barcode_base
}
}))
},
error: function() {
err = {
msg: "erreur serveur lors de la recherche de membres",
ctx: 'search_member_form.search_members'
};
report_JS_error(err, 'members.admin');
$.notify("Erreur lors de la recherche de membre, il faut ré-essayer plus tard...", {
globalPosition:"top right",
className: "error"
});
});
});
\ No newline at end of file
},
}
)
},
minLength: 3,
select: function( event, ui ) {
return null
},
})
})
......@@ -27,38 +27,26 @@
<div class="page_content">
<div class="tiles_container">
<div class="tile high_tile">
<div id="search_member_form_area">
<h4>Rechercher le.a coopérateur.ice titulaire</h4>
<form id="search_member_form" action="javascript:;" method="post">
<input type="text" id="search_member_input" value="" placeholder="Nom ou numéro du coop..." required>
<button type="submit" class="btn--primary" id="search_member_button">Recherche</button>
<form autocomplete="off" id="search_member_form" action="javascript:;" method="post">
<input name="searchParent" type="text" id="search_member_input" value="" placeholder="Nom ou numéro du coop..." required>
</form>
</div>
<div class="search_member_results_area" style="display:none;">
<div class="search_results_text">
<p><i>Choisissez parmi les membres trouvés :</i></p>
<div id="parentInfo" style="display:none;">
<div>Nom</div><div id="name"></div>
</div>
<div class="search_member_results"></div>
</div>
</div>
<div class="tile ">
<div class="tiles_container">
<div class="tile high_tile">
<div id="search_member_form_area">
<h4>Rechercher le.a coopérateur.ice co-titulaire</h4>
<form id="search_member_form" action="javascript:;" method="post">
<input type="text" id="search_member_input" value="" placeholder="Nom ou numéro du coop..." required>
<button type="submit" class="btn--primary" id="search_member_button">Recherche</button>
<form autocomplete="off" id="search_member_form_child" action="javascript:;" method="post">
<input name="searchChild" type="text" id="search_child_input" value="" placeholder="Nom ou numéro du coop..." required>
</form>
</div>
<div class="search_member_results_area" style="display:none;">
<div class="search_results_text">
<p><i>Choisissez parmi les membres trouvés :</i></p>
</div>
<div class="search_member_results"></div>
</div>
</div>
</div>
</div>
</div>
......
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