backoffice: group adjacent block subfield columns (#78318) #893

Merged
fpeters merged 1 commits from wip/78318-group-adjacent-subfield-columns into main 2023-12-18 13:19:42 +01:00
Owner
No description provided.
fpeters force-pushed wip/78318-group-adjacent-subfield-columns from 371cc13573 to b142ee0ce5 2023-12-06 13:45:38 +01:00 Compare
Author
Owner

Illustration avec deux champs d'un bloc côte à côte, qui gagnent le nouveau comportement, puis plus loin un autre champ du même bloc, isolé et dont le rendu ne change pas (libellé avec "bloc / champ").

image

Illustration avec deux champs d'un bloc côte à côte, qui gagnent le nouveau comportement, puis plus loin un autre champ du même bloc, isolé et dont le rendu ne change pas (libellé avec "bloc / champ"). ![image](/attachments/dcb8b3c7-807d-44e0-97b7-7e6503a73891)
fpeters reviewed 2023-12-06 14:24:37 +01:00
@ -101,0 +108,4 @@
previous_block_subfield.include_block_label = False
grouped_columns[-1]['count'] += 1
f.include_block_label = False
f.block_column = grouped_columns[-1]
Author
Owner

Si on est sur le cas de sous-champs de blocs qui se suivent, on n'inclut plus le libellé du bloc dans le libellé de la colonne, on incrément le nombre de colonnes qui seront réunies et on ajoute une référence à ces infos dans l'objet du champ, ça resservira plus tard.

Si on est sur le cas de sous-champs de blocs qui se suivent, on n'inclut plus le libellé du bloc dans le libellé de la colonne, on incrément le nombre de colonnes qui seront réunies et on ajoute une référence à ces infos dans l'objet du champ, ça resservira plus tard.
@ -112,0 +142,4 @@
if len(label) < 20:
return htmltext('<span>%s</span>') % label
else:
return htmltext('<span title="%s">%s</span>') % (label, misc.ellipsize(label, 20))
Author
Owner

Petite refacto de ça vu qu'on va l'utiliser plusieurs fois.

Petite refacto de ça vu qu'on va l'utiliser plusieurs fois.
@ -128,3 +162,1 @@
r += htmltext('<th data-field-sort-key="%s">') % field_sort_key
else:
r += htmltext('<th>')
th_rowspan = f' rowspan="{thead_height}"' if thead_height > 1 else ''
Author
Owner

Quand il y a une hauteur à tenir, ajout d'un attribut rowspan. (ça aurait pu être rowspan="1" dans les autres cas mais ça fait des tests qui cherchaient juste qui échouent, autant s'éviter ça).

Quand il y a une hauteur à tenir, ajout d'un attribut rowspan. (ça aurait pu être rowspan="1" dans les autres cas mais ça fait des tests qui cherchaient juste <th> qui échouent, autant s'éviter ça).
@ -134,1 +164,3 @@
r += htmltext('<span>%s</span>') % f.label
if f.include_block_label:
# isolated block subfield column
f.label = '%s / %s' % (f.block_field.label, f.label)
Author
Owner

Le comportement actuel, libellé avec bloc / champ.

Le comportement actuel, libellé avec bloc / champ.
@ -135,0 +169,4 @@
if not f.block_column.get('seen'):
f.block_column['seen'] = True
r += htmltext(f'<th class="col-group" colspan="{f.block_column["count"]}">')
r += get_column_title(f.block_field.label)
Author
Owner

Pour les colonnes groupées, si le th n'a pas encore été ajouté, on le met à la bonne largeur; sinon on zappe juste le champ, il apparaitra sur la deuxième ligne du thead.

Pour les colonnes groupées, si le th n'a pas encore été ajouté, on le met à la bonne largeur; sinon on zappe juste le champ, il apparaitra sur la deuxième ligne du thead.
@ -138,0 +186,4 @@
r += htmltext('</tr><tr>')
for f in fields:
if getattr(f, 'block_field', None) and not f.include_block_label:
if f.field_sort_key:
Author
Owner

Deuxième ligne du thead, on ajoute des colonnes pour les champs des blocs.

Deuxième ligne du thead, on ajoute des colonnes pour les champs des blocs.
fpeters changed title from WIP: backoffice: group adjacent block subfield columns (#78318) to backoffice: group adjacent block subfield columns (#78318) 2023-12-06 14:24:43 +01:00
lguerin approved these changes 2023-12-18 10:06:34 +01:00
fpeters merged commit 00532fc4d0 into main 2023-12-18 13:19:42 +01:00
fpeters deleted branch wip/78318-group-adjacent-subfield-columns 2023-12-18 13:19:42 +01:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: entrouvert/wcs#893
No description provided.