backoffice: group adjacent block subfield columns (#78318) #893
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/78318-group-adjacent-subfield-columns"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
371cc13573
tob142ee0ce5
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").
@ -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]
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))
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 ''
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).
@ -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)
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)
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:
Deuxième ligne du thead, on ajoute des colonnes pour les champs des blocs.
WIP: backoffice: group adjacent block subfield columns (#78318)to backoffice: group adjacent block subfield columns (#78318)