- Content type "Ligne comptable" with Paragraphs "Répartition" (Compte + Montant) - Taxonomies: Compte (9 comptes) and Client (unified client list) - hook_node_presave + form validate: sum(répartition) must equal montant HT - /dashboard route (progressive decoupling): Vue 3 app fetching JSON:API, computing solde par compte / par client client-side - "Ajouter une ligne" opens the real Drupal node form in an AJAX modal - Gin as default + admin theme - 9 opening-balance lines seeded from suivi_compta_SASFigli2026_v2.ods Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
324 lines
8.5 KiB
YAML
324 lines
8.5 KiB
YAML
uuid: 7d40e87d-1625-4fe7-9c0d-abdf29b43a45
|
|
langcode: en
|
|
status: true
|
|
dependencies:
|
|
config:
|
|
- field.storage.paragraph.field_compte
|
|
- paragraphs.paragraphs_type.repartition
|
|
module:
|
|
- paragraphs
|
|
id: solde_par_compte
|
|
label: 'Solde par compte'
|
|
module: views
|
|
description: ''
|
|
tag: ''
|
|
base_table: paragraphs_item_field_data
|
|
base_field: id
|
|
display:
|
|
default:
|
|
id: default
|
|
display_title: Default
|
|
display_plugin: default
|
|
position: 0
|
|
display_options:
|
|
title: 'Solde par compte'
|
|
fields:
|
|
id:
|
|
id: id
|
|
table: paragraphs_item_field_data
|
|
field: id
|
|
relationship: none
|
|
group_type: group
|
|
admin_label: ''
|
|
entity_type: null
|
|
entity_field: id
|
|
plugin_id: field
|
|
label: ID
|
|
exclude: true
|
|
alter:
|
|
alter_text: false
|
|
text: ''
|
|
make_link: false
|
|
path: ''
|
|
absolute: false
|
|
external: false
|
|
replace_spaces: false
|
|
path_case: none
|
|
trim_whitespace: false
|
|
alt: ''
|
|
rel: ''
|
|
link_class: ''
|
|
prefix: ''
|
|
suffix: ''
|
|
target: ''
|
|
nl2br: false
|
|
max_length: 0
|
|
word_boundary: true
|
|
ellipsis: true
|
|
more_link: false
|
|
more_link_text: ''
|
|
more_link_path: ''
|
|
strip_tags: false
|
|
trim: false
|
|
preserve_tags: ''
|
|
html: false
|
|
element_type: ''
|
|
element_class: ''
|
|
element_label_type: ''
|
|
element_label_class: ''
|
|
element_label_colon: false
|
|
element_wrapper_type: ''
|
|
element_wrapper_class: ''
|
|
element_default_classes: true
|
|
empty: ''
|
|
hide_empty: false
|
|
empty_zero: false
|
|
hide_alter_empty: true
|
|
click_sort_column: value
|
|
type: number_integer
|
|
settings:
|
|
thousand_separator: ''
|
|
prefix_suffix: true
|
|
group_column: value
|
|
group_columns: { }
|
|
group_rows: true
|
|
delta_limit: 0
|
|
delta_offset: 0
|
|
delta_reversed: false
|
|
delta_first_last: false
|
|
multi_type: separator
|
|
separator: ', '
|
|
field_api_classes: false
|
|
field_compte:
|
|
id: field_compte
|
|
table: paragraph__field_compte
|
|
field: field_compte
|
|
relationship: none
|
|
group_type: group
|
|
admin_label: ''
|
|
plugin_id: field
|
|
label: Compte
|
|
exclude: false
|
|
alter:
|
|
alter_text: false
|
|
text: ''
|
|
make_link: false
|
|
path: ''
|
|
absolute: false
|
|
external: false
|
|
replace_spaces: false
|
|
path_case: none
|
|
trim_whitespace: false
|
|
alt: ''
|
|
rel: ''
|
|
link_class: ''
|
|
prefix: ''
|
|
suffix: ''
|
|
target: ''
|
|
nl2br: false
|
|
max_length: 0
|
|
word_boundary: true
|
|
ellipsis: true
|
|
more_link: false
|
|
more_link_text: ''
|
|
more_link_path: ''
|
|
strip_tags: false
|
|
trim: false
|
|
preserve_tags: ''
|
|
html: false
|
|
element_type: ''
|
|
element_class: ''
|
|
element_label_type: ''
|
|
element_label_class: ''
|
|
element_label_colon: false
|
|
element_wrapper_type: ''
|
|
element_wrapper_class: ''
|
|
element_default_classes: true
|
|
empty: ''
|
|
hide_empty: false
|
|
empty_zero: false
|
|
hide_alter_empty: true
|
|
click_sort_column: target_id
|
|
type: entity_reference_label
|
|
settings:
|
|
link: true
|
|
group_column: target_id
|
|
group_columns: { }
|
|
group_rows: true
|
|
delta_limit: 0
|
|
delta_offset: 0
|
|
delta_reversed: false
|
|
delta_first_last: false
|
|
multi_type: separator
|
|
separator: ', '
|
|
field_api_classes: false
|
|
field_montant:
|
|
id: field_montant
|
|
table: paragraph__field_montant
|
|
field: field_montant
|
|
relationship: none
|
|
group_type: sum
|
|
admin_label: ''
|
|
plugin_id: field
|
|
label: 'Montant (€)'
|
|
exclude: false
|
|
alter:
|
|
alter_text: false
|
|
text: ''
|
|
make_link: false
|
|
path: ''
|
|
absolute: false
|
|
external: false
|
|
replace_spaces: false
|
|
path_case: none
|
|
trim_whitespace: false
|
|
alt: ''
|
|
rel: ''
|
|
link_class: ''
|
|
prefix: ''
|
|
suffix: ''
|
|
target: ''
|
|
nl2br: false
|
|
max_length: 0
|
|
word_boundary: true
|
|
ellipsis: true
|
|
more_link: false
|
|
more_link_text: ''
|
|
more_link_path: ''
|
|
strip_tags: false
|
|
trim: false
|
|
preserve_tags: ''
|
|
html: false
|
|
element_type: ''
|
|
element_class: ''
|
|
element_label_type: ''
|
|
element_label_class: ''
|
|
element_label_colon: false
|
|
element_wrapper_type: ''
|
|
element_wrapper_class: ''
|
|
element_default_classes: true
|
|
empty: ''
|
|
hide_empty: false
|
|
empty_zero: false
|
|
hide_alter_empty: true
|
|
click_sort_column: value
|
|
type: number_decimal
|
|
settings: { }
|
|
group_column: value
|
|
group_columns: { }
|
|
group_rows: true
|
|
delta_limit: 0
|
|
delta_offset: 0
|
|
delta_reversed: false
|
|
delta_first_last: false
|
|
multi_type: separator
|
|
separator: ', '
|
|
field_api_classes: false
|
|
set_precision: false
|
|
precision: 0
|
|
decimal: .
|
|
format_plural: false
|
|
format_plural_string: !!binary MQNAY291bnQ=
|
|
prefix: ''
|
|
suffix: ' €'
|
|
pager:
|
|
type: mini
|
|
options:
|
|
offset: 0
|
|
pagination_heading_level: h4
|
|
items_per_page: 10
|
|
total_pages: null
|
|
id: 0
|
|
tags:
|
|
next: ››
|
|
previous: ‹‹
|
|
expose:
|
|
items_per_page: false
|
|
items_per_page_label: 'Items per page'
|
|
items_per_page_options: '5, 10, 25, 50'
|
|
items_per_page_options_all: false
|
|
items_per_page_options_all_label: '- All -'
|
|
offset: false
|
|
offset_label: Offset
|
|
exposed_form:
|
|
type: basic
|
|
options:
|
|
submit_button: Apply
|
|
reset_button: false
|
|
reset_button_label: Reset
|
|
exposed_sorts_label: 'Sort by'
|
|
expose_sort_order: true
|
|
sort_asc_label: Asc
|
|
sort_desc_label: Desc
|
|
access:
|
|
type: none
|
|
options: { }
|
|
cache:
|
|
type: tag
|
|
options: { }
|
|
empty: { }
|
|
sorts: { }
|
|
arguments: { }
|
|
filters:
|
|
status:
|
|
id: status
|
|
table: paragraphs_item_field_data
|
|
field: status
|
|
entity_type: paragraph
|
|
entity_field: status
|
|
plugin_id: boolean
|
|
value: '1'
|
|
group: 1
|
|
expose:
|
|
operator: ''
|
|
type:
|
|
id: type
|
|
table: paragraphs_item_field_data
|
|
field: type
|
|
entity_type: paragraph
|
|
entity_field: type
|
|
plugin_id: bundle
|
|
value:
|
|
repartition: repartition
|
|
style:
|
|
type: table
|
|
row:
|
|
type: fields
|
|
query:
|
|
type: views_query
|
|
options:
|
|
query_comment: ''
|
|
disable_sql_rewrite: false
|
|
distinct: false
|
|
replica: false
|
|
query_tags: { }
|
|
relationships: { }
|
|
group_by: true
|
|
header: { }
|
|
footer: { }
|
|
display_extenders: { }
|
|
cache_metadata:
|
|
max-age: -1
|
|
contexts:
|
|
- 'languages:language_content'
|
|
- 'languages:language_interface'
|
|
- url.query_args
|
|
tags:
|
|
- 'config:field.storage.paragraph.field_compte'
|
|
page_1:
|
|
id: page_1
|
|
display_title: Page
|
|
display_plugin: page
|
|
position: 1
|
|
display_options:
|
|
display_extenders: { }
|
|
path: solde-par-compte
|
|
cache_metadata:
|
|
max-age: -1
|
|
contexts:
|
|
- 'languages:language_content'
|
|
- 'languages:language_interface'
|
|
- url.query_args
|
|
tags:
|
|
- 'config:field.storage.paragraph.field_compte'
|