Development #29187
Ordre des catégories dans la cellule Saisie back-office
0%
Description
Reprendre l'ordre des catégories qui est définie dans la rubrique catégorie plutôt qu'un ordre alphabétique
Related issues
History
#1 Updated by Frédéric Péters 11 months ago
- Subject changed from Portail agent : cellule Saisie back-office to Ordre des catégories dans la cellule Saisie back-office
#2 Updated by Nicolas Roche 3 months ago
- Related to Development #23536: Cellule reprenant les démarches pour lesquels l'utilisateur (agent) a les droits en saisie added
#3 Updated by Nicolas Roche 3 months ago
- Patch proposed changed from No to Yes
- Status changed from Nouveau to Solution proposée
- File 0001-wcs-use-wcs-category-order-in-backoffice-submission-.patch View added
Les formulaires sont groupés par catégories dans l'ordre où les catégories apparaissent en premier dans la liste renvoyée par wcs.
J'ai considéré que wcs n'envoie pas forcément les formulaires groupés par catégories (bien que j'ai l'impression que ce soit déjà le cas).
#4 Updated by Nicolas Roche 3 months ago
- Assignee set to Nicolas Roche
#5 Updated by Frédéric Péters 3 months ago
Les formulaires sont groupés par catégories dans l'ordre où les catégories apparaissent en premier dans la liste renvoyée par wcs.
L'ordre des catégories se trouve dans l'attribut "position" de l'objet catégorie dans w.c.s., donc il serait nécessaire de commencer par définir celui-ci, dans les tests, dans la boucle for i in range(1, 10): cat = Category()
.
Ensuite,
- {% for formdef in category_formdefs.list|dictsort:"title" %} (...) + {% for formdef in category.formdefs %}
ça me semble faire perdre l'assurance de tri alphabétique des démarches.
~~
Mais en gros je dirais que ce patch, plutôt, il devrait côté gabarit uniquement retirer le {% regroup ... actuel, de loin quelque chose comme :
- {% regroup site_formdefs.data|dictsort:"category" by category as categories_formdefs %} - {% for category_formdefs in categories_formdefs %} + {% for category_formdefs in site_formdefs.formdefs_by_category %} <-- et dans models.py créer ça.
#6 Updated by Nicolas Roche 3 months ago
côté gabarit uniquement retirer le {% regroup ... actuel,
tout juste, merci !
La construction de 'formdefs_by_category' pourrait être plus simple si on fait confiance à l'ordre retourné par wcs.
#7 Updated by Frédéric Péters 3 months ago
La construction de 'formdefs_by_category' pourrait être plus simple si on fait confiance à l'ordre retourné par wcs.
Je ne suis pas sûr de voir la question mais les démarches sont bien retournées par w.c.s. en respectant l'ordre des catégories, et avec un truc en second niveau de tri, alphabétique; tu constates autre chose ?
#8 Updated by Nicolas Roche 3 months ago
les démarches sont bien retournées par w.c.s. en respectant l'ordre des catégories, et avec un truc en second niveau de tri, alphabétique;
Oui, c'est même validé dans le test.
Je ne suis pas sûr de voir la question
Je pensais que l'algo suivant serait plus court/simple à écrire/relire, mais en fait ça ne me semble pas être le cas.
# group formdef by categories, keeping the w.c.s. categories order for site_formdefs in context['all_formdefs'].values(): length = len(site_formdefs['data']) indice = 0 if length > 0: site_formdefs['formdefs_by_category'] = [] grouper = site_formdefs['data'][0]['category'] while indice < length: category_list = [] while indice < length and site_formdefs['data'][indice]['category'] == grouper: category_list.append(site_formdefs['data'][indice]) indice += 1 site_formdefs['formdefs_by_category'].append({ 'grouper': grouper, 'list': category_list }) if indice < length: grouper = site_formdefs['data'][indice]['category']