.. _tablehandler/ViewResource/advanced_methods/th_sections_method/th_monthlySections:
monthlySections
===============
Le ``th_monthlySections`` sono un tipo particolare di section che permette di costruire facilmente una bottoniera con indicazione dei mesi passati o futuri. Per esempio::
@metadata(multivalue=True, exclude_fields='data')
def th_sections_periodo(self):
return self.th_monthlySections(column='$data',
n_previous=2,
n_following=2,
all_previous=True,
allPosition='last')
Darà come risultato la seguente bottoniera:
.. image:: /_static/images/ViewResource/advanced_methods/th_sections_method/section_22.png
:width: 400px
:align: center
Con ``column`` si identifica la colonna da utilizzare per confrontare le date con la ``dtstart`` (qui non specificata e pari alla data di lavoro).
Si noti che la data di inizio si riferisce quindi (in questo caso) al mese di febbraio, di conseguenza vengono aggiunti con ``n_previous`` e ``n_following`` due mesi prima e due mesi dopo la data corrente. Con ``all_previous``, poi, si mostra il bottone che raccoglie tutti i mesi precedenti all'inizio, e con ``allPosition='last'`` si mostra il pulsante che raccoglie tutte le date.
.. hint::
In alternativa avremmo anche potuto specificare ``allPosition=True``, essendo il fondo la posizione di default, ma questa forma è più utile a scopo didattico.
Con il decoratore ``metadata`` possiamo poi richiedere anche la selezione contemporanea di più bottoni (``multivalue=True``) e l'esclusione dei record che presentano un valore di *data* nullo o vuoto (``exclude_fields='data'``)
.. raw:: html
**Parametri:**
+------------------------+------+--------------------------------------------------+
| Nome parametro | Tipo | Descrizione |
+========================+======+==================================================+
|multivalue |B |Se impostato a True consente di poter effettuare |
| | |selezioni multiple di valori di partizionamento |
| | |dei dati |
+------------------------+------+--------------------------------------------------+
|multiButton |L |Permette di indicare un numero di bottoni oltre il|
| | |quale la bottoniera si convertirà in tendina (es: |
| | |multiButton=5) |
+------------------------+------+--------------------------------------------------+
|variable_struct |B |Se impostato a True permette di selezionare nelle |
| | |sections una determinata th_struct precedentemente|
| | |definita (es: struct="clienti con_acquisti") |
+------------------------+------+--------------------------------------------------+
|column |T |La colonna da utilizzare per il campo data su cui |
| | |filtrare i record (es: column='$data') |
+------------------------+------+--------------------------------------------------+
|dtstart |T |La data di inizio, se non specificata |
| | |dtstart=self.db.workdate |
+------------------------+------+--------------------------------------------------+
|n_previous |L |Il numero di mesi passati da aggiungere (es: |
| | |n_previous=3) |
+------------------------+------+--------------------------------------------------+
|n_following |L |Il numero di mesi futuri da aggiungere (es: |
| | |n_previous=4) |
+------------------------+------+--------------------------------------------------+
|all_previous |B |Se impostato a True, comparirà all'inizio un |
| | |bottone "Previous months" relativo a tutti i mesi |
| | |precedenti esclusi dalla bottoniera |
+------------------------+------+--------------------------------------------------+
|all_following |B |Se impostato a True, comparirà alla fine un |
| | |bottone "Following months" relativo a tutti i mesi|
| | |futuri esclusi dalla bottoniera |
+------------------------+------+--------------------------------------------------+
|allPosition |B |Se impostato a True, comparirà un bottone "All" |
| | |relativo a tutti i mesi (se impostato a True, sarà|
| | |posizionato in fondo, se definito come |
| | |allPosition='first' verrà posizionato all'inizio) |
+------------------------+------+--------------------------------------------------+
.. sectionauthor:: Davide Paci