Redmine Entr’ouvert: Demandeshttps://dev.entrouvert.org/https://dev.entrouvert.org/favicon.ico?15861920342024-03-12T17:48:11ZRedmine Entr’ouvert
Redmine Hobo - Development #88093 (En cours): gestion d'une timezone par tenanthttps://dev.entrouvert.org/issues/880932024-03-12T17:48:11ZThomas Noël
Le plan d'ensemble :
<ul>
<li>on imagine un settings.json avec <code>{"TIME_ZONE": "America/Los_Angeles"}</code></li>
<li>on ajoute un middleware tel que <a class="external" href="https://docs.djangoproject.com/en/3.2/topics/i18n/timezones/#selecting-the-current-time-zone">https://docs.djangoproject.com/en/3.2/topics/i18n/timezones/#selecting-the-current-time-zone</a> à charger très tôt</li>
</ul>
<p>Petit difficulté que je vois : ce middleware doit être chargé tôt, sans doute au tout début des tenant_settings (qui chargent le settings.json)... mais n'est-ce pas déjà trop tard ? Il faut analyser les middleware qui ont lieu au dessus, s'ils nécessitent une timezone ou pas.</p> Authentic 2 - Development #87906 (En cours): Rendre la recherche sur les rôles insensible aux acc...https://dev.entrouvert.org/issues/879062024-03-07T17:50:12ZThomas Noël
<p>Actuellement on fait un icontains simple :</p>
<pre>
# extrait de manager/role_views.py :
class UserOrRoleSelect2View(DetailView):
...
@staticmethod
def filter_queryset(qs, search_term, search_fields):
lookups = Q()
for term in [term for term in search_term.split() if not term == '']:
lookups &= reduce(Q.__or__, (Q(**{'%s__icontains' % field: term}) for field in search_fields))
return qs.filter(lookups)
</pre>
<p>Il semble qu'avec ce qui est installé sur Authentic on pourrait ajouter sans frais un <code>__unaccent__</code> : <a class="external" href="https://docs.djangoproject.com/en/3.2/ref/contrib/postgres/lookups/#unaccent">https://docs.djangoproject.com/en/3.2/ref/contrib/postgres/lookups/#unaccent</a></p>
<p>Mais il y a ce warning dans la doc : « unaccent lookups should perform fine in most use cases. However, queries using this filter will generally perform full table scans, which can be slow on large tables. In those cases, using dedicated full text indexing tools might be appropriate. ». Et là je ne sais pas très bien ce qu'ils appellent des « large tables », si c'est un grand nombre de colonnes ou la présence de beaucoup de lignes (dans ce cas ça n'ira pas, on veut quelque chose qui répond (très) vite).</p> Passerelle - Development #69594 (Nouveau): sectorisation: descendre au niveau de l'adresse, simpl...https://dev.entrouvert.org/issues/695942022-09-26T21:52:01ZThomas Noël
<p>Actuellement le connecteur "sector" gère des tronçons de rue : de tel numéro à tel numéro (ou tous), côté pair ou impair (ou les deux), pour telle rue => tel secteur.</p>
<p>C'est en fait peu adapté aux fichiers de découpage qu'on reçoit, qui sont de nature très diverses.</p>
<p>Il serait plus simple que la gestion dans la base se fasse au niveau du numéro : un numéro + un code rue (+ son nom) (+ un code insee de ville) => un secteur</p>
<p>Ce genre de fichier est plus simple à demander en source CSV (ou sinon à produire depuis un fichier reçu, transformé au préalable via un simple script voire quelques formules/macro dans un tableur)</p> Hobo - Bug #41423 (En cours): gestion du nonce dans la signature : verifier seulement s'il existehttps://dev.entrouvert.org/issues/414232020-04-07T12:18:33ZThomas Noël
<p>Dans le code de vérification de signature, j'ai récemment fait ceci :</p>
<pre>
if known_nonce is not None:
if ('nonce' not in parsed) or known_nonce(parsed['nonce'][0]):
return False
</pre>
<p>C'est à dire que si une fonction de vérification du nonce existe, elle rend le nonce obligatoire.</p>
<p>Je pense que c'est une mauvaise idée, il faut plutôt faire comme dans wcs : vérifier le nonce s'il existe, et sinon laisser filer.</p>
<p>L'idée étant que le nonce est une protection que se donne l'appelant contre le rejeu, mais l'appelé ça ne le concerne pas.</p>