More on Filter Items¶
Here we introduce some more concepts about filter items.
Attributes for item filters¶
Further attributes for item filters can be introduced via attribute_json.
Let’s suppose we have a filter with two levels. In the levels we set ID and NAME (if present):
- Level 1 with kpi_filter_level_id = 8:
[{"attribute_id": 1, "attribute_name": "Corporate Code"}, {"attribute_id": 2, "attribute_name": "Corporate Description"}]
- Level 2 with kpi_filter_level_id = 9:
[{"attribute_id": 1, "attribute_name": "Risk ID"}, {"attribute_id": 2, "attribute_name": "Risk Description"}, {"attribute_id": 3, "attribute_name": "Risk Category Covered"}]
- In filter_item insert infos about attributes of both levels:
{ "level_item_8_attr_1": "C", "level_item_8_attr_version_1": [{"dt_end": 99999999, "dt_start": 0, "ver_text": "C"}], "level_item_8_attr_2": "Corporate business in GC&C perimeter", "level_item_8_attr_version_2": [{"dt_end": 99999999, "dt_start": 0, "ver_text": "Corporate business in GC&C perimeter"}], "level_item_9_attr_1": "RISK_2_9", "level_item_9_attr_version_1": [{"dt_end": 99999999, "dt_start": 0, "ver_text": "RISK_2_9"}], "level_item_9_attr_2": "SOL MELIA-AFS1", "level_item_9_attr_version_2": [{"dt_end": 99999999, "dt_start": 0, "ver_text": "SOL MELIA-AFS1"}], "level_item_9_attr_3": "", "level_item_9_attr_version_3": [{"dt_end": 99999999, "dt_start": 0, "ver_text": ""}]}
To read the attribute ID= 2 of level 2 (which has kpi_filter_level_id = 9) of the item, look for level_item_9_attr_2.
In the fields of type level_item_< kpi_filter_level_id >attr_version one can find the variations of the filters with the validity dates.
Attribute GeoJSON¶
Geometry of regions in maps can be defined through a GeoJSON object (http://geojson.org/), which contains latitude, longitude, plus other optional fields, for example:
{"geometry": {
"type": "MultiPolygon",
"coordinates": [[[
[ 15.520376010813834, 38.23115509699147 ],
[ 15.160242954171736, 37.44404551853782 ],
[ 15.309897902089006, 37.1342194687318 ],
[ 15.09998823411945, 36.6199872909954 ],
[ 14.335228712632016, 36.996630967754754 ],
[ 13.82673261887993, 37.1045313583802 ],
[ 12.431003859108813, 37.61294993748382 ],
[ 12.570943637755136, 38.12638113051969 ],
[ 13.741156447004585, 38.03496552179536 ],
[ 14.76124922044616, 38.143873602850505 ],
[ 15.520376010813834, 38.23115509699147 ]
]]]
}}
Enable Version control¶
It is possible to enable a version control of filters by modifying the entry “IMPORT_VERSION_ENABLED” in CustomConfig.
Auto Generated Filters¶
E’ possibile creare dei filtri autogenerati. Si deve creare tramite interfaccia un nuovo filtro con un solo filter level e filter item “All”. Si imposta da Django admin su KpiFilter il flag “is auto generated” a True Si creano dei filter item da interfaccia Si modificano poi da backend ( 03. Filter Item SHORT) e si selezionano i Filter Item da cui dipendono. Si Selezionano tutti i filter item creati (non serve ALL) e si forza la rigenerazione.
Se ad esempio voglio creare un nuovo ragruppamento per Zona d’Italia dovrò creare tre filter Item (Nord, Centro, Sud) e per ognuno di questi selezionerò le regioni corrispondenti. Per ogni KpiFilter deve esserci una sola associazione (e.g. la Toscana deve stare solo al Nord o solo al Centro, e non in entrambe). In caso di errata selezione l’algoritmo userà il KpiFilter con ID maggiore.
E’ invece possibile creare più suddivisioni associate a più FilterItem.
Per poter assegnare piu’ combinazioni di filtri/data view a ciascun filter item, usare il modello “Kpi filter item auto generated details”. Rimane in ogni caso la limitazione di una sola associazione per filter item.