New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Option to expose expanded foreign keys in JSON/CSV #233
Comments
I'm going with the terminology "labels" here. You'll be able to add
I need this to help build foreign key expansions for CSV files, see #266 |
I considered including a
This would help generate the HTML links using just the JSON data. But... I realized that in a list of 50 rows that value would be duplicated 50 times which is a bit nasty. |
Nearly done, but I need the HTML view to ignore the |
Output looks something like this: { "rowid": 233, "TreeID": 121240, "qLegalStatus": { "value" 2, "label": "Private" } "qSpecies": { "value": 16, "label": "Sycamore" } "qAddress": "91 Commonwealth Ave", ... }
I'm also going to add the ability to specify individual columns that you want to expand using |
The |
I'm going to support Related: 7e0caa1 where I added a new |
Should facets always have their labels expanded or should they also obey the |
I'm a bit torn on naming - choices are:
|
For the moment I'm going with |
These new querystring arguments can be used to request expanded foreign keys in both JSON and CSV formats. ?_labels=on turns on expansions for ALL foreign key columns ?_label=COLUMN1&_label=COLUMN2 can be used to pick specific columns to expand e.g. `Street_Tree_List.json?_label=qSpecies&_label=PlantType&_shape=array` [ { "rowid": 1, "TreeID": 141565, "qLegalStatus": 1, "qSpecies": { "value": 1, "label": "Myoporum laetum :: Myoporum" }, "qAddress": "501X Baker St", "SiteOrder": 1, "qSiteInfo": 1, "PlantType": { "value": 1, "label": "Tree" }, "qCaretaker": 1, "qCareAssistant": null, "PlantDate": "07/21/1988 12:00:00 AM", "DBH": 21, "PlotSize": "Width 0ft", "PermitNotes": "Permit Number 25401", "XCoord": 6000609, "YCoord": 2110829, "Latitude": 37.7759676911831, "Longitude": -122.441396661871, "Location": "(37.7759676911831, -122.441396661871)" }, { "rowid": 2, "TreeID": 232565, "qLegalStatus": 2, "qSpecies": { "value": 2, "label": "Metrosideros excelsa :: New Zealand Xmas Tree" }, "qAddress": "940 Elizabeth St", "SiteOrder": 1, "qSiteInfo": 2, "PlantType": { "value": 1, "label": "Tree" }, "qCaretaker": 1, "qCareAssistant": null, "PlantDate": "03/20/2017 12:00:00 AM", "DBH": 3, "PlotSize": "Width 4ft", "PermitNotes": "Permit Number 779625", "XCoord": 6000396.48544, "YCoord": 2101998.8644, "Latitude": 37.7517102172731, "Longitude": -122.441498017841, "Location": "(37.7517102172731, -122.441498017841)" } ] The labels option also works for the HTML and CSV views. HTML defaults to `?_labels=on`, so if you pass `?_labels=off` you can disable foreign key expansion entirely - or you can use `?_label=COLUMN` to request just specific columns. If you expand labels on CSV you get additional columns in the output: `/Street_Tree_List.csv?_label=qLegalStatus` rowid,TreeID,qLegalStatus,qLegalStatus_label... 1,141565,1,Permitted Site... 2,232565,2,Undocumented... I also refactored the existing foreign key expansion code. Closes #233. Refs #266.
Some demos:
|
https://datasette-cluster-map-demo.datasettes.com/sf-trees-02c8ef1/Street_Tree_List?qCareAssistant=1
It would be nice if the info bubbles there could expose more than just the IDs, and if the title showed the expanded name of the selected qCareAssistant.
The text was updated successfully, but these errors were encountered: