diff --git a/sco_find_etud.py b/sco_find_etud.py
index 52b5800b9..27ccf8370 100644
--- a/sco_find_etud.py
+++ b/sco_find_etud.py
@@ -108,7 +108,7 @@ def search_etud_in_dept(
REQUEST=None,
):
"""Page recherche d'un etudiant
- expnom est un regexp sur le nom ou un code_nip
+ expnom est un regexp sur le nom ou un code_nip ou un etudid
dest_url est la page sur laquelle on sera redirigé après choix
parameters spécifie des arguments additionnels à passer à l'URL (en plus de etudid)
"""
@@ -134,8 +134,10 @@ def search_etud_in_dept(
etuds = search_etuds_infos(context, code_nip=expnom, REQUEST=REQUEST)
elif expnom:
etuds = search_etuds_infos(context, expnom=expnom, REQUEST=REQUEST)
- else:
- etuds = []
+ if expnom and not etuds:
+ etuds = context.getEtudInfo(filled=1, etudid=expnom, REQUEST=REQUEST)
+ if len(etuds) != 1:
+ etuds = []
if len(etuds) == 1:
# va directement a la destination
return REQUEST.RESPONSE.redirect(
@@ -268,14 +270,14 @@ def search_etud_by_name(context, term, REQUEST=None):
else:
r = ndb.SimpleDictFetch(
context,
- "SELECT nom, prenom FROM identite WHERE nom LIKE %(beginning)s ORDER BY nom",
+ "SELECT etudid, nom, prenom FROM identite WHERE nom LIKE %(beginning)s ORDER BY nom",
{"beginning": term + "%"},
)
data = [
{
"label": "%s %s" % (x["nom"], scolars.format_prenom(x["prenom"])),
- "value": x["nom"],
+ "value": x["etudid"],
}
for x in r
]
diff --git a/static/js/scodoc.js b/static/js/scodoc.js
index 7ae653eee..c4def3d6d 100644
--- a/static/js/scodoc.js
+++ b/static/js/scodoc.js
@@ -1,7 +1,7 @@
// JS for all ScoDoc pages (using jQuery UI)
-$(function() {
+$(function () {
// Autocomplete recherche etudiants par nom
$("#in-expnom").autocomplete(
{
@@ -9,49 +9,50 @@ $(function() {
minLength: 2, // min nb of chars before suggest
position: { collision: 'flip' }, // automatic menu position up/down
source: "search_etud_by_name",
- select: function(event, ui) {
- $("#form-chercheetud").submit();
+ select: function (event, ui) {
+ $("#in-expnom").val(ui.item.value);
+ $("#form-chercheetud").submit();
}
- });
-
+ });
+
// Date picker
$(".datepicker").datepicker({
- showOn: 'button',
- buttonImage: '/ScoDoc/static/icons/calendar_img.png',
+ showOn: 'button',
+ buttonImage: '/ScoDoc/static/icons/calendar_img.png',
buttonImageOnly: true,
- dateFormat: 'dd/mm/yy',
- duration : 'fast',
+ dateFormat: 'dd/mm/yy',
+ duration: 'fast',
});
- $('.datepicker').datepicker('option', $.extend({showMonthAfterYear: false},
- $.datepicker.regional['fr']));
+ $('.datepicker').datepicker('option', $.extend({ showMonthAfterYear: false },
+ $.datepicker.regional['fr']));
/* Barre menu */
- var sco_menu_position = {my: "left top", at: "left bottom"};
+ var sco_menu_position = { my: "left top", at: "left bottom" };
$("#sco_menu").menu({
position: sco_menu_position,
- blur: function() {
+ blur: function () {
$(this).menu("option", "position", sco_menu_position);
},
- focus: function(e, ui) {
+ focus: function (e, ui) {
if ($("#sco_menu").get(0) !== $(ui).get(0).item.parent().get(0)) {
- $(this).menu("option", "position", {my: "left top", at: "right top"});
+ $(this).menu("option", "position", { my: "left top", at: "right top" });
}
}
- }).mouseleave(function(x, y) {
- $( "#sco_menu" ).menu('collapseAll');
- });
+ }).mouseleave(function (x, y) {
+ $("#sco_menu").menu('collapseAll');
+ });
$("#sco_menu > li > a > span").switchClass("ui-icon-carat-1-e", "ui-icon-carat-1-s");
/* Les menus isoles dropdown */
$(".sco_dropdown_menu").menu({
position: sco_menu_position
- }).mouseleave(function(x, y) {
- $( ".sco_dropdown_menu" ).menu('collapseAll');
+ }).mouseleave(function (x, y) {
+ $(".sco_dropdown_menu").menu('collapseAll');
}
- );
+ );
$(".sco_dropdown_menu > li > a > span").switchClass("ui-icon-carat-1-e", "ui-icon-carat-1-s");
-
+
});
@@ -65,14 +66,14 @@ function sco_message(msg, color) {
$('#sco_msg').css('color', color);
}
setTimeout(
- function() {
+ function () {
$('#sco_msg').fadeOut(
'slow',
- function() {
+ function () {
$('#sco_msg').html('');
}
- );
- },
+ );
+ },
2000 // <-- duree affichage en milliseconds
);
}
@@ -81,30 +82,30 @@ function sco_message(msg, color) {
function get_query_args() {
var s = window.location.search; // eg "?x=1&y=2"
var vars = {};
- s.replace(
- /[?&]+([^=&]+)=?([^&]*)?/gi, // regexp
- function( m, key, value ) { // callback
- vars[key] = value !== undefined ? value : '';
- }
+ s.replace(
+ /[?&]+([^=&]+)=?([^&]*)?/gi, // regexp
+ function (m, key, value) { // callback
+ vars[key] = value !== undefined ? value : '';
+ }
);
return vars;
}
// Tables (gen_tables)
-$(function() {
- $('table.gt_table').DataTable( {
- "paging" : false,
- "searching" : false,
- "info" : false,
+$(function () {
+ $('table.gt_table').DataTable({
+ "paging": false,
+ "searching": false,
+ "info": false,
/* "autoWidth" : false, */
- "fixedHeader" : {
+ "fixedHeader": {
"header": true,
"footer": true
},
"orderCellsTop": true, // cellules ligne 1 pour tri
- "aaSorting": [ ], // Prevent initial sorting
- } );
+ "aaSorting": [], // Prevent initial sorting
+ });
});
@@ -112,9 +113,9 @@ $(function() {
function readOnlyTags(nodes) {
// nodes are textareas, hide them and create a span showing tags
for (var i = 0; i < nodes.length; i++) {
- var node = $(nodes[i]);
- node.hide();
- var tags = nodes[i].value.split(',');
- node.after('' + tags.join('') + '');
+ var node = $(nodes[i]);
+ node.hide();
+ var tags = nodes[i].value.split(',');
+ node.after('' + tags.join('') + '');
}
}