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.