ddionrails / steering

0 stars 0 forks source link

Neukonzeption des Skriptgenerators, insbesondere für Long #13

Open kwenzig opened 4 years ago

hansendx commented 4 years ago

Wir brauchen eine Anforderungsanalyse.

mpahl commented 3 years ago

Stand der Dinge:

Der Skriptgenerator operiert zur Zeit noch unabhängig vom Kern paneldata mittels einer statischen JSON Datei, die alle verwendbaren SOEP-Core Datensätze beinhaltet. Für jeden Datensatz sehen die Infos exemplarisch wie folgt aus:

"xkind": { "dataset_name": "xkind", "syear": 2007, "prefix": "x", "analyse_unit": "p", "is_matchable": true, "curr_hid": "xhhnr", "is_special": false },

Zukünftig soll diese JSON abgeschafft werden und die Informationen aus den Models der DJANGO Datenbank entnommen werden. Basis dafür wird speziell die datasets.csv aus dem paneldata/soep-core Repository sein. (https://github.com/paneldata/soep-core/blob/master/metadata/datasets.csv)

"is_matchable": false betreffen die luecke sowie noch einigen weiteren Datensätzen. Es gilt zu erwägen, diese händisch zu kennzeichnen. "curr_hid": ergibt sich aus Datensatzname "minus" dollar_dataset "plus" hhnr, wobei das dollar_dataset aus der logical_datasets.csv kommen muss. "is_special" ist nur true bei href, pref, hpfad, ppfad. Der Prefix lässt sich über eine Funktion ausgeben.

Über from ddionrails.data.models import Dataset

Dataset.objects.values( "name", "period_idname", "analysis_unit_idname", "conceptual_dataset_id__name" )

kann auf die übrigen Values zugegriffen werden. Mit ".filter()" kann die Anfrage eingegrenzt werden.

Ich bin noch dabei, die Schnittstellen zu schaffen und zu prüfen, ob die Infos aus der Datenbank sich ausreichend zuschneiden lassen, wie in der JSON.

Dabei kann für Long alles vorbereitet werden, da der Aufbau des Skriptes an sich vereinfacht wird. Im Interface kann ein Switch Knopf (Wide/Long) implementiert werden. Vielleicht brauche ich dann noch ein mal Nachhilfe in Long Stata Skripte, um die richtige Syntax hinzubekommen.