fix autosuggest

This commit is contained in:
Emmanuel Viennet 2021-07-05 23:04:39 +02:00
parent dc77cdcc68
commit 4d637db3fc
5 changed files with 46 additions and 22 deletions

View File

@ -9,7 +9,7 @@
v 1.2
"""
from types import BooleanType, StringType
from types import BooleanType, StringType, UnicodeType
def TrivialFormulator(
@ -746,7 +746,7 @@ def dict2js(d):
v = "true"
else:
v = "false"
elif type(v) == StringType:
elif type(v) == StringType or type(v) == UnicodeType:
v = '"' + v + '"'
r.append("%s: %s" % (k, v))

View File

@ -28,6 +28,9 @@
"""Gestion des emails
"""
from flask import request
# XXX WIP: à ré-écrire pour ScoDoc 8 (étaient des méthodes de ZScoDoc)
import os
import time
@ -83,7 +86,7 @@ def send_debug_alert(context, txt, REQUEST=None):
return
if REQUEST:
txt = _report_request(context, REQUEST) + txt
URL = REQUEST.get("URL", "")
URL = REQUEST.URL
else:
URL = "send_debug_alert"
msg = MIMEMultipart()
@ -100,26 +103,26 @@ def send_debug_alert(context, txt, REQUEST=None):
def _report_request(context, REQUEST, fmt="txt"):
"""string describing current request for bug reports"""
QUERY_STRING = REQUEST.get("QUERY_STRING", "")
QUERY_STRING = REQUEST.QUERY_STRING
if QUERY_STRING:
QUERY_STRING = "?" + QUERY_STRING
if fmt == "txt":
REFERER = REQUEST.get("HTTP_REFERER", "")
HTTP_USER_AGENT = REQUEST.get("HTTP_USER_AGENT", "")
REFERER = request.referrer
HTTP_USER_AGENT = request.user_agent
else:
REFERER = "na"
HTTP_USER_AGENT = "na"
params = dict(
AUTHENTICATED_USER=REQUEST.get("AUTHENTICATED_USER", ""),
AUTHENTICATED_USER=REQUEST.AUTHENTICATED_USER,
dt=time.asctime(),
URL=REQUEST.get("URL", ""),
URL=REQUEST.URL,
QUERY_STRING=QUERY_STRING,
METHOD=REQUEST.get("REQUEST_METHOD", ""),
METHOD=request.method,
REFERER=REFERER,
HTTP_USER_AGENT=HTTP_USER_AGENT,
form=REQUEST.get("form", ""),
HTTP_X_FORWARDED_FOR=REQUEST.get("HTTP_X_FORWARDED_FOR", ""),
form=REQUEST.form,
HTTP_X_FORWARDED_FOR="?",
svn_version=scu.get_svn_version(scu.SCO_SRC_DIR),
SCOVERSION=VERSION.SCOVERSION,
)

View File

@ -27,6 +27,7 @@
"""Form choix modules / responsables et creation formsemestre
"""
from flask import url_for, g
from app.auth.models import User
import app.scodoc.notesdb as ndb
@ -102,7 +103,7 @@ def formsemestre_editwithmodules(context, REQUEST, formsemestre_id):
)
else:
H.append(do_formsemestre_createwithmodules(context, REQUEST=REQUEST, edit=1))
if not REQUEST.get("tf-submitted", False):
if not REQUEST.form.get("tf-submitted", False):
H.append(
"""<p class="help">Seuls les modules cochés font partie de ce semestre. Pour les retirer, les décocher et appuyer sur le bouton "modifier".
</p>
@ -271,7 +272,10 @@ def do_formsemestre_createwithmodules(context, REQUEST=None, edit=False):
"allowed_values": allowed_user_names,
"allow_null": False, # il faut au moins un responsable de semestre
"text_suggest_options": {
"script": "Users/get_user_list_xml?",
"script": url_for(
"users.get_user_list_xml", scodoc_dept=g.scodoc_dept
)
+ "?", # "Users/get_user_list_xml?",
"varname": "start",
"json": False,
"noresults": "Valeur invalide !",
@ -289,7 +293,10 @@ def do_formsemestre_createwithmodules(context, REQUEST=None, edit=False):
"allowed_values": allowed_user_names,
"allow_null": True, # optionnel
"text_suggest_options": {
"script": "Users/get_user_list_xml?",
"script": url_for(
"users.get_user_list_xml", scodoc_dept=g.scodoc_dept
)
+ "?",
"varname": "start",
"json": False,
"noresults": "Valeur invalide !",
@ -573,7 +580,10 @@ def do_formsemestre_createwithmodules(context, REQUEST=None, edit=False):
"allowed_values": allowed_user_names,
"template": itemtemplate,
"text_suggest_options": {
"script": "Users/get_user_list_xml?",
"script": url_for(
"users.get_user_list_xml", scodoc_dept=g.scodoc_dept
)
+ "?",
"varname": "start",
"json": False,
"noresults": "Valeur invalide !",
@ -728,10 +738,11 @@ def do_formsemestre_createwithmodules(context, REQUEST=None, edit=False):
"responsable_id": tf[2][module_id],
}
_ = sco_moduleimpl.do_moduleimpl_create(context, modargs)
return REQUEST.RESPONSE.redirect(
REQUEST.RESPONSE.redirect(
"formsemestre_status?formsemestre_id=%s&head_message=Nouveau%%20semestre%%20créé"
% formsemestre_id
)
return ""
else:
# modification du semestre:
# on doit creer les modules nouvellement selectionnés
@ -934,7 +945,10 @@ def formsemestre_clone(context, formsemestre_id, REQUEST=None):
"allowed_values": allowed_user_names,
"allow_null": False,
"text_suggest_options": {
"script": "Users/get_user_list_xml?",
"script": url_for(
"users.get_user_list_xml", scodoc_dept=g.scodoc_dept
)
+ "?",
"varname": "start",
"json": False,
"noresults": "Valeur invalide !",

View File

@ -36,7 +36,7 @@ import datetime
import jaxml
import pprint
from flask import g
from flask import url_for, g
from flask import current_app
from config import Config
@ -230,6 +230,7 @@ sco_publish(
"/formsemestre_editwithmodules",
sco_formsemestre_edit.formsemestre_editwithmodules,
Permission.ScoView,
methods=["GET", "POST"],
)
sco_publish(
@ -759,7 +760,10 @@ def edit_enseignants_form(context, REQUEST, moduleimpl_id):
"allowed_values": allowed_user_names,
"allow_null": False,
"text_suggest_options": {
"script": "Users/get_user_list_xml?",
"script": url_for(
"users.get_user_list_xml", scodoc_dept=g.scodoc_dept
)
+ "?",
"varname": "start",
"json": False,
"noresults": "Valeur invalide !",
@ -849,7 +853,10 @@ def edit_moduleimpl_resp(context, REQUEST, moduleimpl_id):
"allowed_values": allowed_user_names,
"allow_null": False,
"text_suggest_options": {
"script": "Users/get_user_list_xml?",
"script": url_for(
"users.get_user_list_xml", scodoc_dept=g.scodoc_dept
)
+ "?",
"varname": "start",
"json": False,
"noresults": "Valeur invalide !",

View File

@ -470,7 +470,7 @@ def get_user_list_xml(context, dept=None, start="", limit=25, REQUEST=None):
userlist = [
user
for user in userlist
if scu.suppress_accents(scu.strlower(user.nom)).startswith(start)
if scu.suppress_accents(scu.strlower(user.nom or "")).startswith(start)
]
if REQUEST:
REQUEST.RESPONSE.setHeader("content-type", scu.XML_MIMETYPE)
@ -478,7 +478,7 @@ def get_user_list_xml(context, dept=None, start="", limit=25, REQUEST=None):
doc.results()
for user in userlist[:limit]:
doc._push()
doc.rs(user["nomplogin"], id=user["user_id"], info="")
doc.rs(user.get_nomplogin(), id=user.id, info="")
doc._pop()
return repr(doc)