diff --git a/Daten_ohne_relationships.ipynb b/Daten_ohne_relationships.ipynb index 9c60714..1e710d4 100644 --- a/Daten_ohne_relationships.ipynb +++ b/Daten_ohne_relationships.ipynb @@ -5,9 +5,6 @@ "execution_count": 1, "id": "73e934a8-9027-4ad1-ad15-e68fba847768", "metadata": { - "jupyter": { - "source_hidden": true - }, "scrolled": true }, "outputs": [], @@ -33,22 +30,14 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "dcf25e45-f887-4fd5-aed8-44090ed75680", "metadata": { "jupyter": { "source_hidden": true } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Die Datei wurde erfolgreich unter '/Users/Wir/Downloads/assets_1.xlsx' gespeichert.\n" - ] - } - ], + "outputs": [], "source": [ "#Excel Export\n", "import os\n", @@ -87,218 +76,15 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "ca74d822-4f5c-46d7-8129-31bbf28a1e00", "metadata": { - "collapsed": true, "jupyter": { - "outputs_hidden": true, "source_hidden": true }, "scrolled": true }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
NameStatusCreatedArea (ha)Asset typeIs fixedland_typeIs location
0Helmackeractive06.05.20243.0321asset--landTruefieldTrue
1Neureutactive06.05.20244.1875asset--landTruefieldTrue
2Schusterinselactive06.05.20244.9563asset--landTruefieldTrue
3Kesselackeractive06.05.20242.1625asset--landTruefieldTrue
4Kapelleactive06.05.20245.6771asset--landTruefieldTrue
5Loehleactive06.05.20242.0614asset--landTruefieldTrue
6Kirchenbergactive06.05.20242.4701asset--landTruefieldTrue
7Nachtweideactive06.05.20243.0704asset--landTruefieldTrue
8Steinackeractive06.05.20242.6109asset--landTruefieldTrue
9Siegelwoerthactive06.05.20240.7707asset--landTruefieldTrue
10Waethleactive06.05.20241.4308asset--landTruefieldTrue
11Wolfsfeldactive06.05.20243.5169asset--landTruefieldTrue
12Grosser Ackeractive06.05.202412.5316asset--landTruefieldTrue
\n", - "
" - ], - "text/plain": [ - " Name Status Created Area (ha) Asset type Is fixed land_type Is location\n", - "0 Helmacker active 06.05.2024 3.0321 asset--land True field True\n", - "1 Neureut active 06.05.2024 4.1875 asset--land True field True\n", - "2 Schusterinsel active 06.05.2024 4.9563 asset--land True field True\n", - "3 Kesselacker active 06.05.2024 2.1625 asset--land True field True\n", - "4 Kapelle active 06.05.2024 5.6771 asset--land True field True\n", - "5 Loehle active 06.05.2024 2.0614 asset--land True field True\n", - "6 Kirchenberg active 06.05.2024 2.4701 asset--land True field True\n", - "7 Nachtweide active 06.05.2024 3.0704 asset--land True field True\n", - "8 Steinacker active 06.05.2024 2.6109 asset--land True field True\n", - "9 Siegelwoerth active 06.05.2024 0.7707 asset--land True field True\n", - "10 Waethle active 06.05.2024 1.4308 asset--land True field True\n", - "11 Wolfsfeld active 06.05.2024 3.5169 asset--land True field True\n", - "12 Grosser Acker active 06.05.2024 12.5316 asset--land True field True" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "#Zeige alle \"Land\" Daten\n", "import pandas as pd\n", @@ -546,7 +332,8 @@ "metadata": { "jupyter": { "source_hidden": true - } + }, + "scrolled": true }, "outputs": [], "source": [ @@ -605,7 +392,7 @@ " {\n", " \"Name\": asset[\"attributes\"][\"name\"],\n", " \"Status\": asset[\"attributes\"][\"status\"],\n", - " \"Created\": pd.to_datetime(asset[\"attributes\"][\"created\"]).strftime('%d.%m.%Y'),\n", + " \"Timestamp\": pd.to_datetime(asset[\"attributes\"][\"timestamp\"]).strftime('%d.%m.%Y'),\n", " \n", " }\n", " for asset in all_harvest_assets\n", @@ -646,7 +433,7 @@ " {\n", " \"Name\": asset[\"attributes\"][\"name\"],\n", " \"Status\": asset[\"attributes\"][\"status\"],\n", - " \"Created\": pd.to_datetime(asset[\"attributes\"][\"created\"]).strftime('%d.%m.%Y'),\n", + " \"Timestamp\": pd.to_datetime(asset[\"attributes\"][\"timestamp\"]).strftime('%d.%m.%Y'),\n", " \n", " }\n", " for asset in all_activity_assets\n", @@ -668,63 +455,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "3dab14bd-e7e6-4a5f-b838-c6498fb20f23", "metadata": { - "collapsed": true, "jupyter": { - "outputs_hidden": true, "source_hidden": true } }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
NameStatusCreated
0Innovert Raps Input 24/25done14.10.2024
\n", - "
" - ], - "text/plain": [ - " Name Status Created\n", - "0 Innovert Raps Input 24/25 done 14.10.2024" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "#Zeige alle \"input\" Daten\n", "import pandas as pd\n", @@ -736,7 +474,7 @@ " {\n", " \"Name\": asset[\"attributes\"][\"name\"],\n", " \"Status\": asset[\"attributes\"][\"status\"],\n", - " \"Created\": pd.to_datetime(asset[\"attributes\"][\"created\"]).strftime('%d.%m.%Y'),\n", + " \"Timestamp\": pd.to_datetime(asset[\"attributes\"][\"timestamp\"]).strftime('%d.%m.%Y'),\n", " \n", " }\n", " for asset in all_input_assets\n", @@ -777,7 +515,7 @@ " {\n", " \"Name\": asset[\"attributes\"][\"name\"],\n", " \"Status\": asset[\"attributes\"][\"status\"],\n", - " \"Created\": pd.to_datetime(asset[\"attributes\"][\"created\"]).strftime('%d.%m.%Y'),\n", + " \"Timestamp\": pd.to_datetime(asset[\"attributes\"][\"timestamp\"]).strftime('%d.%m.%Y'),\n", " \n", " }\n", " for asset in all_maintenance_assets\n", @@ -818,7 +556,7 @@ " {\n", " \"Name\": asset[\"attributes\"][\"name\"],\n", " \"Status\": asset[\"attributes\"][\"status\"],\n", - " \"Created\": pd.to_datetime(asset[\"attributes\"][\"created\"]).strftime('%d.%m.%Y'),\n", + " \"Timestamp\": pd.to_datetime(asset[\"attributes\"][\"timestamp\"]).strftime('%d.%m.%Y'),\n", " \n", " }\n", " for asset in all_medical_assets\n", @@ -859,7 +597,7 @@ " {\n", " \"Name\": asset[\"attributes\"][\"name\"],\n", " \"Status\": asset[\"attributes\"][\"status\"],\n", - " \"Created\": pd.to_datetime(asset[\"attributes\"][\"created\"]).strftime('%d.%m.%Y'),\n", + " \"Timestamp\": pd.to_datetime(asset[\"attributes\"][\"timestamp\"]).strftime('%d.%m.%Y'),\n", " \n", " }\n", " for asset in all_seeding_assets\n", @@ -891,8 +629,6 @@ "outputs": [], "source": [ "#filter auf einen harvest log\n", - "import pandas as pd\n", - "\n", "response = farm_client.log.get('harvest')\n", "all_harvest_assets = response['data']\n", "\n", @@ -900,7 +636,7 @@ " {\n", " \"Name\": asset[\"attributes\"][\"name\"],\n", " \"Status\": asset[\"attributes\"][\"status\"],\n", - " \"Created\": pd.to_datetime(asset[\"attributes\"][\"created\"]).strftime('%d.%m.%Y'),\n", + " \"Timestamp\": pd.to_datetime(asset[\"attributes\"][\"timestamp\"]).strftime('%d.%m.%Y'),\n", " }\n", " for asset in all_harvest_assets\n", "]\n", @@ -922,79 +658,25 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "d23c84ac-9a04-4019-9b0c-0c549620af35", "metadata": { - "collapsed": true, "jupyter": { - "outputs_hidden": true, "source_hidden": true } }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
NameTimestampPlantStatusRevision Created
0W-Raps Helmacker Harvest 24/252024-10-20T10:11:15+00:00W-Raps Helmacker Plant 24/25done2024-10-21T10:56:27+00:00
\n", - "
" - ], - "text/plain": [ - " Name Timestamp Plant Status Revision Created\n", - "0 W-Raps Helmacker Harvest 24/25 2024-10-20T10:11:15+00:00 W-Raps Helmacker Plant 24/25 done 2024-10-21T10:56:27+00:00" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "#Versuch\n", "import pandas as pd\n", "\n", - "\n", "def get_related_logs_of_type(asset, type): \n", " response = farm_client.resource.get('log', type)\n", " ret = []\n", " for log in response['data']:\n", - " assets = log['relationships']['asset']['data']\n", - " for asset in assets:\n", - " if asset['id'] == id:\n", + " log_assets = log['relationships']['asset']['data']\n", + " for log_asset in log_assets:\n", + " if log_asset['id'] == asset['id']:\n", " ret.append(log)\n", " return ret\n", "\n", @@ -1020,43 +702,1141 @@ " for asset in assets:\n", " if asset['type'] == 'asset--plant': \n", " plant_id = asset['id']\n", - " seedings = get_related_logs_of_type(plant_id, 'seeding')\n", - " \n", + " seedings = get_related_logs_of_type(asset, 'seeding')\n", + " for seeding in seedings:\n", + " area_quants = get_related_quantities_of_measure(seeding, 'area')\n", + " for area_quant in area_quants:\n", + " plant_area += float(area_quant['data']['attributes']['value']['decimal'])\n", " plant = farm_client.asset.get_id('plant', plant_id)\n", " plant_name = plant['data']['attributes']['name']\n", " \n", " \n", " # log aufbauen\n", " log = {\n", - " \n", - " 'Name': item['attributes']['name'],\n", - " 'Timestamp': item['attributes']['timestamp'],\n", + " \n", + " \n", " 'Plant': plant_name,\n", - " \n", + " 'Area': plant_area,\n", + " \n", + " 'Timestamp': pd.to_datetime(item[\"attributes\"][\"timestamp\"]).strftime('%d.%m.%Y'),\n", + " 'Log Name': item['attributes']['name'],\n", " 'Status': item['attributes']['status'],\n", - " 'Revision Created': item['attributes']['revision_created'],\n", - " }\n", + " 'Revision Created': pd.to_datetime(item[\"attributes\"][\"revision_created\"]).strftime('%d.%m.%Y'),\n", + " 'Link': item['links']['self']['href']\n", + " }\n", " logs.append(log)\n", "\n", - "\n", - "\n", - "# Erstelle ein Pandas DataFrame aus den extrahierten Daten\n", + "# Erstelle ein DataFrame aus den Harvest Logs\n", "df = pd.DataFrame(logs)\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "7c9f3572-702d-4760-a3ec-3f883908ad0f", + "metadata": { + "collapsed": true, + "editable": true, + "jupyter": { + "outputs_hidden": true, + "source_hidden": true + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"jsonapi\": {\n", + " \"version\": \"1.0\",\n", + " \"meta\": {\n", + " \"links\": {\n", + " \"self\": {\n", + " \"href\": \"http://jsonapi.org/format/1.0/\"\n", + " }\n", + " }\n", + " }\n", + " },\n", + " \"data\": [\n", + " {\n", + " \"type\": \"log--harvest\",\n", + " \"id\": \"750511d3-5f7b-4e70-b541-d2f70696734f\",\n", + " \"links\": {\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f?resourceVersion=id%3A450\"\n", + " }\n", + " },\n", + " \"attributes\": {\n", + " \"drupal_internal__id\": 94,\n", + " \"drupal_internal__revision_id\": 450,\n", + " \"langcode\": \"en\",\n", + " \"revision_created\": \"2024-10-29T09:24:07+00:00\",\n", + " \"revision_log_message\": null,\n", + " \"name\": \"W-Raps Helmacker Harvest 24/25\",\n", + " \"timestamp\": \"2024-10-20T10:11:15+00:00\",\n", + " \"status\": \"done\",\n", + " \"created\": \"2024-10-15T10:12:32+00:00\",\n", + " \"changed\": \"2024-10-29T09:24:07+00:00\",\n", + " \"default_langcode\": true,\n", + " \"revision_translation_affected\": true,\n", + " \"comment\": {\n", + " \"status\": 2,\n", + " \"cid\": 0,\n", + " \"last_comment_timestamp\": 1728987169,\n", + " \"last_comment_name\": null,\n", + " \"last_comment_uid\": 1,\n", + " \"comment_count\": 0\n", + " },\n", + " \"data\": null,\n", + " \"notes\": null,\n", + " \"flag\": [],\n", + " \"is_group_assignment\": false,\n", + " \"geometry\": null,\n", + " \"is_movement\": false,\n", + " \"quick\": [],\n", + " \"lot_number\": null\n", + " },\n", + " \"relationships\": {\n", + " \"log_type\": {\n", + " \"data\": {\n", + " \"type\": \"log_type--log_type\",\n", + " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", + " \"meta\": {\n", + " \"drupal_internal__target_id\": \"harvest\"\n", + " }\n", + " },\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/log_type?resourceVersion=id%3A450\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/relationships/log_type?resourceVersion=id%3A450\"\n", + " }\n", + " }\n", + " },\n", + " \"revision_user\": {\n", + " \"data\": {\n", + " \"type\": \"user--user\",\n", + " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", + " \"meta\": {\n", + " \"drupal_internal__target_id\": 1\n", + " }\n", + " },\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/revision_user?resourceVersion=id%3A450\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/relationships/revision_user?resourceVersion=id%3A450\"\n", + " }\n", + " }\n", + " },\n", + " \"uid\": {\n", + " \"data\": {\n", + " \"type\": \"user--user\",\n", + " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", + " \"meta\": {\n", + " \"drupal_internal__target_id\": 1\n", + " }\n", + " },\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/uid?resourceVersion=id%3A450\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/relationships/uid?resourceVersion=id%3A450\"\n", + " }\n", + " }\n", + " },\n", + " \"file\": {\n", + " \"data\": [],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/file?resourceVersion=id%3A450\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/relationships/file?resourceVersion=id%3A450\"\n", + " }\n", + " }\n", + " },\n", + " \"image\": {\n", + " \"data\": [],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/image?resourceVersion=id%3A450\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/relationships/image?resourceVersion=id%3A450\"\n", + " }\n", + " }\n", + " },\n", + " \"group\": {\n", + " \"data\": [],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/group?resourceVersion=id%3A450\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/relationships/group?resourceVersion=id%3A450\"\n", + " }\n", + " }\n", + " },\n", + " \"location\": {\n", + " \"data\": [],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/location?resourceVersion=id%3A450\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/relationships/location?resourceVersion=id%3A450\"\n", + " }\n", + " }\n", + " },\n", + " \"asset\": {\n", + " \"data\": [\n", + " {\n", + " \"type\": \"asset--plant\",\n", + " \"id\": \"76f89f82-1238-43bb-b34f-796a92d491a2\",\n", + " \"meta\": {\n", + " \"drupal_internal__target_id\": 100\n", + " }\n", + " }\n", + " ],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/asset?resourceVersion=id%3A450\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/relationships/asset?resourceVersion=id%3A450\"\n", + " }\n", + " }\n", + " },\n", + " \"category\": {\n", + " \"data\": [],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/category?resourceVersion=id%3A450\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/relationships/category?resourceVersion=id%3A450\"\n", + " }\n", + " }\n", + " },\n", + " \"quantity\": {\n", + " \"data\": [\n", + " {\n", + " \"type\": \"quantity--standard\",\n", + " \"id\": \"c74fca04-27cc-44b1-8139-40f3fe3d3a4e\",\n", + " \"meta\": {\n", + " \"target_revision_id\": 208,\n", + " \"drupal_internal__target_id\": 129\n", + " }\n", + " }\n", + " ],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/quantity?resourceVersion=id%3A450\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/relationships/quantity?resourceVersion=id%3A450\"\n", + " }\n", + " }\n", + " },\n", + " \"owner\": {\n", + " \"data\": [\n", + " {\n", + " \"type\": \"user--user\",\n", + " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", + " \"meta\": {\n", + " \"drupal_internal__target_id\": 1\n", + " }\n", + " }\n", + " ],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/owner?resourceVersion=id%3A450\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/relationships/owner?resourceVersion=id%3A450\"\n", + " }\n", + " }\n", + " },\n", + " \"equipment\": {\n", + " \"data\": [\n", + " {\n", + " \"type\": \"asset--equipment\",\n", + " \"id\": \"5faba68c-aa10-45b4-b1e0-d687ef1a8562\",\n", + " \"meta\": {\n", + " \"drupal_internal__target_id\": 79\n", + " }\n", + " }\n", + " ],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/equipment?resourceVersion=id%3A450\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/750511d3-5f7b-4e70-b541-d2f70696734f/relationships/equipment?resourceVersion=id%3A450\"\n", + " }\n", + " }\n", + " }\n", + " }\n", + " },\n", + " {\n", + " \"type\": \"log--harvest\",\n", + " \"id\": \"71c022be-53c6-481f-b787-da0d16cfbf6f\",\n", + " \"links\": {\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f?resourceVersion=id%3A454\"\n", + " }\n", + " },\n", + " \"attributes\": {\n", + " \"drupal_internal__id\": 111,\n", + " \"drupal_internal__revision_id\": 454,\n", + " \"langcode\": \"en\",\n", + " \"revision_created\": \"2024-10-29T12:32:20+00:00\",\n", + " \"revision_log_message\": null,\n", + " \"name\": \"W-Raps Nachtweide Harvest 24/25\",\n", + " \"timestamp\": \"2024-10-28T23:00:00+00:00\",\n", + " \"status\": \"done\",\n", + " \"created\": \"2024-10-15T10:12:32+00:00\",\n", + " \"changed\": \"2024-10-29T12:32:20+00:00\",\n", + " \"default_langcode\": true,\n", + " \"revision_translation_affected\": true,\n", + " \"comment\": {\n", + " \"status\": 2,\n", + " \"cid\": 0,\n", + " \"last_comment_timestamp\": 1730193847,\n", + " \"last_comment_name\": null,\n", + " \"last_comment_uid\": 1,\n", + " \"comment_count\": 0\n", + " },\n", + " \"data\": null,\n", + " \"notes\": null,\n", + " \"flag\": [],\n", + " \"is_group_assignment\": false,\n", + " \"geometry\": null,\n", + " \"is_movement\": false,\n", + " \"quick\": [],\n", + " \"lot_number\": null\n", + " },\n", + " \"relationships\": {\n", + " \"log_type\": {\n", + " \"data\": {\n", + " \"type\": \"log_type--log_type\",\n", + " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", + " \"meta\": {\n", + " \"drupal_internal__target_id\": \"harvest\"\n", + " }\n", + " },\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/log_type?resourceVersion=id%3A454\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/relationships/log_type?resourceVersion=id%3A454\"\n", + " }\n", + " }\n", + " },\n", + " \"revision_user\": {\n", + " \"data\": {\n", + " \"type\": \"user--user\",\n", + " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", + " \"meta\": {\n", + " \"drupal_internal__target_id\": 1\n", + " }\n", + " },\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/revision_user?resourceVersion=id%3A454\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/relationships/revision_user?resourceVersion=id%3A454\"\n", + " }\n", + " }\n", + " },\n", + " \"uid\": {\n", + " \"data\": {\n", + " \"type\": \"user--user\",\n", + " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", + " \"meta\": {\n", + " \"drupal_internal__target_id\": 1\n", + " }\n", + " },\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/uid?resourceVersion=id%3A454\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/relationships/uid?resourceVersion=id%3A454\"\n", + " }\n", + " }\n", + " },\n", + " \"file\": {\n", + " \"data\": [],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/file?resourceVersion=id%3A454\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/relationships/file?resourceVersion=id%3A454\"\n", + " }\n", + " }\n", + " },\n", + " \"image\": {\n", + " \"data\": [],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/image?resourceVersion=id%3A454\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/relationships/image?resourceVersion=id%3A454\"\n", + " }\n", + " }\n", + " },\n", + " \"group\": {\n", + " \"data\": [],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/group?resourceVersion=id%3A454\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/relationships/group?resourceVersion=id%3A454\"\n", + " }\n", + " }\n", + " },\n", + " \"location\": {\n", + " \"data\": [],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/location?resourceVersion=id%3A454\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/relationships/location?resourceVersion=id%3A454\"\n", + " }\n", + " }\n", + " },\n", + " \"asset\": {\n", + " \"data\": [\n", + " {\n", + " \"type\": \"asset--plant\",\n", + " \"id\": \"c0371d6c-0b48-4256-96bc-2c75004e5636\",\n", + " \"meta\": {\n", + " \"drupal_internal__target_id\": 106\n", + " }\n", + " }\n", + " ],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/asset?resourceVersion=id%3A454\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/relationships/asset?resourceVersion=id%3A454\"\n", + " }\n", + " }\n", + " },\n", + " \"category\": {\n", + " \"data\": [],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/category?resourceVersion=id%3A454\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/relationships/category?resourceVersion=id%3A454\"\n", + " }\n", + " }\n", + " },\n", + " \"quantity\": {\n", + " \"data\": [\n", + " {\n", + " \"type\": \"quantity--standard\",\n", + " \"id\": \"75ddbac7-e03e-41ab-814c-4aab1246ce3e\",\n", + " \"meta\": {\n", + " \"target_revision_id\": 216,\n", + " \"drupal_internal__target_id\": 134\n", + " }\n", + " }\n", + " ],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/quantity?resourceVersion=id%3A454\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/relationships/quantity?resourceVersion=id%3A454\"\n", + " }\n", + " }\n", + " },\n", + " \"owner\": {\n", + " \"data\": [\n", + " {\n", + " \"type\": \"user--user\",\n", + " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", + " \"meta\": {\n", + " \"drupal_internal__target_id\": 1\n", + " }\n", + " }\n", + " ],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/owner?resourceVersion=id%3A454\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/relationships/owner?resourceVersion=id%3A454\"\n", + " }\n", + " }\n", + " },\n", + " \"equipment\": {\n", + " \"data\": [\n", + " {\n", + " \"type\": \"asset--equipment\",\n", + " \"id\": \"5faba68c-aa10-45b4-b1e0-d687ef1a8562\",\n", + " \"meta\": {\n", + " \"drupal_internal__target_id\": 79\n", + " }\n", + " }\n", + " ],\n", + " \"links\": {\n", + " \"related\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/equipment?resourceVersion=id%3A454\"\n", + " },\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/71c022be-53c6-481f-b787-da0d16cfbf6f/relationships/equipment?resourceVersion=id%3A454\"\n", + " }\n", + " }\n", + " }\n", + " }\n", + " }\n", + " ],\n", + " \"links\": {\n", + " \"self\": {\n", + " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest\"\n", + " }\n", + " }\n", + "}\n" + ] + } + ], + "source": [ + "# Beispiel Json print\n", + "import json\n", "\n", - "\n", - "\n", - "# Setze Pandas-Optionen für eine bessere Anzeige\n", - "pd.set_option('display.max_columns', None) # Alle Spalten anzeigen\n", - "pd.set_option('display.max_colwidth', 50) # Maximale Spaltenbreite setzen\n", - "pd.set_option('display.width', 1000) # Maximale Breite der Tabelle\n", - "\n", - "df\n" + "response = farm_client.resource.get('log', 'harvest')\n", + "print(json.dumps(response, indent=4))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a2300251-b38a-4aa8-abe0-1290572e2d3a", + "metadata": { + "jupyter": { + "source_hidden": true + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "W-Raps Helmacker Plant 24/25\n", + "active\n" + ] + } + ], + "source": [ + "# Erhalte Pflanzdaten und speichere den Namen\n", + "plant_id = \"76f89f82-1238-43bb-b34f-796a92d491a2\"\n", + "plant = farm_client.asset.get_id('plant', plant_id)\n", + "plant_name = plant.get('data', {}).get('attributes', {}).get('name', '')\n", + "plant_status= plant.get('data', {}).get('attributes', {}).get('status', '')\n", + "print (plant_name)\n", + "print (plant_status)" ] }, { "cell_type": "code", "execution_count": null, - "id": "c74becaa-5899-4ad0-bb6e-5399cc5d0aa2", + "id": "a48c8376-158d-4877-b86e-fded7aab1b74", + "metadata": { + "jupyter": { + "source_hidden": true + } + }, + "outputs": [], + "source": [ + "#Verschachtelte Abfrage test2\n", + "from farmOS import farmOS \n", + "import pandas as pd\n", + "import json\n", + "\n", + "def get_related_logs_of_type(asset, log_type): \n", + " response = farm_client.resource.get('log', log_type)\n", + " ret = []\n", + " for log in response['data']:\n", + " log_assets = log['relationships']['asset']['data']\n", + " for log_asset in log_assets:\n", + " if log_asset['id'] == asset['id']:\n", + " ret.append(log)\n", + " return ret\n", + "\n", + "def get_related_quantities_of_measure(log, measure):\n", + " quantities = log['relationships']['quantity']['data']\n", + " ret = []\n", + " for quant_ref in quantities:\n", + " quant_id = quant_ref['id']\n", + " quant = farm_client.resource.get_id('quantity', 'standard', quant_id)\n", + " if quant['data']['attributes']['measure'] == measure:\n", + " ret.append(quant)\n", + " return ret\n", + "\n", + "def get_related_quantities_of_weight(log, weight):\n", + " quantities = log['relationships']['quantity']['data']\n", + " ret = []\n", + " for quant_ref in quantities:\n", + " quant_id = quant_ref['id']\n", + " quant = farm_client.resource.get_id('quantity', 'standard', quant_id)\n", + " if quant['data']['attributes']['measure'] == weight: # Korrektur: Verwendung von weight\n", + " ret.append(quant)\n", + " return ret\n", + "\n", + "# API-Anfrage, um alle Harvest-Logs zu erhalten\n", + "response = farm_client.resource.get('log', 'harvest')\n", + "\n", + "logs = []\n", + "for item in response.get('data', []):\n", + " # plant name und fläche holen\n", + " assets = item.get('relationships', {}).get('asset', {}).get('data', [])\n", + " plant_name = ''\n", + " plant_area = 0.0\n", + " plant_status = ''\n", + " measure = ''\n", + " weight_measure = ''\n", + "\n", + " for asset in assets:\n", + " if asset['type'] == 'asset--plant': \n", + " plant_id = asset['id']\n", + " \n", + " # Alle Seeding-Logs für das Pflanzasset abrufen\n", + " seedings = get_related_logs_of_type(asset, 'seeding')\n", + " for seeding in seedings:\n", + " area_quants = get_related_quantities_of_measure(seeding, 'area')\n", + " \n", + " for area_quant in area_quants:\n", + " plant_area += float(area_quant.get('data', {}).get('attributes', {}).get('value', {}).get('decimal', 0))\n", + " measure = area_quant.get('data', {}).get('attributes', {}).get('measure', '')\n", + "\n", + " \n", + " \n", + " for seeding in seedings:\n", + " weight_quants = get_related_quantities_of_weight(seeding, 'weight')\n", + " \n", + " for weight_quant in weight_quants:\n", + " weight_measure = weight_quant.get('data', {}).get('attributes', {}).get('measure', '')\n", + " \n", + "\n", + " \n", + " # Pflanzendaten abrufen und Namen sowie Status speichern\n", + " plant = farm_client.asset.get_id('plant', plant_id)\n", + " plant_name = plant.get('data', {}).get('attributes', {}).get('name', '')\n", + " plant_status = plant.get('data', {}).get('attributes', {}).get('status', '')\n", + "\n", + " # Log erstellen und relevante Felder extrahieren\n", + " log = {\n", + " 'Plant': plant_name,\n", + " 'Area': plant_area,\n", + " 'Plant Status': plant_status,\n", + " 'Quantity measure': measure,\n", + " 'Weight measure': weight_measure, # Hinzufügen von weight_measure zur Log-Ausgabe\n", + " 'Timestamp': pd.to_datetime(item['attributes']['timestamp']).strftime('%d.%m.%Y') if 'timestamp' in item['attributes'] else None,\n", + " 'Log Name': item['attributes'].get('name', ''),\n", + " 'Log Status': item['attributes'].get('status', ''),\n", + " 'Revision Created': pd.to_datetime(item['attributes'].get('revision_created')).strftime('%d.%m.%Y') if 'revision_created' in item['attributes'] else None,\n", + " 'Link': item.get('links', {}).get('self', {}).get('href', ''),\n", + " 'Is Movement': item['attributes'].get('is_movement', ''),\n", + " }\n", + " logs.append(log)\n", + "\n", + "# DataFrame aus den Harvest Logs erstellen\n", + "df = pd.DataFrame(logs)\n", + "df\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "b753f464-3a65-4824-a231-6614e156b9e3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

W-Raps Helmacker Plant 24/25

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
 PlantStatusSeedingLog AreaMeasure Quant1SeedingLog Area Quant1SeedingLog AreaMeasure Quant0SeedingLog AreaDecimal Quant0Timestamp HarvestLogLogName HarvestLogLogStatus HarvestLogIsMovement HarvestLog
0activearea3.020000weight50.00000020.10.2024W-Raps Helmacker Harvest 24/25doneFalse
\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "

W-Raps Nachtweide Plant 24/25

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
 PlantStatusSeedingLog AreaMeasure Quant1SeedingLog Area Quant1SeedingLog AreaMeasure Quant0SeedingLog AreaDecimal Quant0Timestamp HarvestLogLogName HarvestLogLogStatus HarvestLogIsMovement HarvestLog
1activearea4.500000weight66.00000028.10.2024W-Raps Nachtweide Harvest 24/25doneFalse
\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Verschachtelte Abfrage test3\n", + "from farmOS import farmOS \n", + "import pandas as pd\n", + "\n", + "def get_related_logs_of_type(asset, log_type): \n", + " response = farm_client.resource.get('log', log_type)\n", + " return [log for log in response['data'] if any(log_asset['id'] == asset['id'] for log_asset in log['relationships']['asset']['data'])]\n", + "\n", + "def get_related_quantities(log, measure_type):\n", + " quantities = log['relationships']['quantity']['data']\n", + " return [farm_client.resource.get_id('quantity', 'standard', quant_ref['id']) for quant_ref in quantities if farm_client.resource.get_id('quantity', 'standard', quant_ref['id'])['data']['attributes']['measure'] == measure_type]\n", + "\n", + "\n", + "\n", + "\n", + "def get_related_quantities_of_measure(log, measure):\n", + " quantities = log['relationships']['quantity']['data']\n", + " ret = []\n", + " for quant_ref in quantities:\n", + " quant_id = quant_ref['id']\n", + " quant = farm_client.resource.get_id('quantity', 'standard', quant_id)\n", + " if quant['data']['attributes']['measure'] == measure:\n", + " ret.append(quant)\n", + " return ret\n", + "\n", + "# API-Anfrage, um alle Harvest-Logs zu erhalten\n", + "response = farm_client.resource.get('log', 'harvest')\n", + "\n", + "logs = []\n", + "for item in response.get('data', []):\n", + " assets = item.get('relationships', {}).get('asset', {}).get('data', [])\n", + " plant_name = ''\n", + " plant_area = 0.0\n", + " plant_status = ''\n", + " quantity_measure = ''\n", + " weight_measure = ''\n", + " weight_decimal = 0.0\n", + "\n", + " for asset in assets:\n", + " if asset['type'] == 'asset--plant': \n", + " plant_id = asset['id']\n", + " \n", + " # Alle Seeding-Logs für das Pflanzasset abrufen\n", + " seedings = get_related_logs_of_type(asset, 'seeding')\n", + " \n", + " # Fläche und Menge abrufen\n", + " for seeding in seedings:\n", + " area_quants = get_related_quantities(seeding, 'area')\n", + " for area_quant in area_quants:\n", + " plant_area += float(area_quant.get('data', {}).get('attributes', {}).get('value', {}).get('decimal', 0))\n", + " quantity_measure = area_quant.get('data', {}).get('attributes', {}).get('measure', '')\n", + "\n", + " weight_quants = get_related_quantities(seeding, 'weight')\n", + " for weight_quant in weight_quants:\n", + " weight_measure = weight_quant.get('data', {}).get('attributes', {}).get('measure', '')\n", + " weight_decimal += float(weight_quant.get('data', {}).get('attributes', {}).get('value', {}).get('decimal', 0))\n", + " \n", + " # Pflanzendaten abrufen\n", + " plant = farm_client.asset.get_id('plant', plant_id)\n", + " plant_name = plant.get('data', {}).get('attributes', {}).get('name', '')\n", + " plant_status = plant.get('data', {}).get('attributes', {}).get('status', '')\n", + "\n", + " # Log erstellen und relevante Felder extrahieren\n", + " log = {\n", + " 'PlantName': plant_name,\n", + " 'PlantStatus': plant_status,\n", + " 'SeedingLog AreaMeasure Quant1': quantity_measure,\n", + " 'SeedingLog Area Quant1': plant_area,\n", + " 'SeedingLog AreaMeasure Quant0': weight_measure,\n", + " 'SeedingLog AreaDecimal Quant0' : weight_decimal,\n", + " 'Timestamp HarvestLog': pd.to_datetime(item['attributes'].get('timestamp')).strftime('%d.%m.%Y') if 'timestamp' in item['attributes'] else None,\n", + " 'LogName HarvestLog': item['attributes'].get('name', ''),\n", + " 'LogStatus HarvestLog': item['attributes'].get('status', ''),\n", + " 'IsMovement HarvestLog': item['attributes'].get('is_movement', ''),\n", + " }\n", + " logs.append(log)\n", + "\n", + "# DataFrame aus den Harvest Logs erstellen\n", + "df = pd.DataFrame(logs)\n", + "from IPython.display import display, HTML # Für Jupyter Notebook geeignet\n", + "\n", + "# Gruppierung und Anzeige als HTML-Format\n", + "grouped = df.groupby('PlantName')\n", + "for plant, data in grouped:\n", + " display(HTML(f\"

{plant}

\")) # Pflanzname als fettgedruckte Überschrift\n", + " \n", + " # Style der Tabelle anpassen\n", + " styled_table = data.drop(columns=['PlantName']).style.set_table_styles(\n", + " [\n", + " {'selector': 'th', 'props': [('font-weight', 'bold'), ('text-align', 'center'), ('white-space', 'break-spaces'), ('max-width', '100px')]},\n", + " {'selector': 'td', 'props': [('text-align', 'center')]}\n", + " ]\n", + " )\n", + "\n", + " display(styled_table)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "3df54bf3-d8aa-4ec6-bb12-23b05f0aeb99", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

W-Raps Helmacker Plant 24/25

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
 PlantStatusSeedingLog AreaMeasure Quant1SeedingLog Area Quant1SeedingLog WeightMeasure Quant0SeedingLog WeightDecimal Quant0Timestamp HarvestLogLogName HarvestLogLogStatus HarvestLogIsMovement HarvestLog
0activearea3.020000weight50.00000020.10.2024W-Raps Helmacker Harvest 24/25doneFalse
\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "

W-Raps Nachtweide Plant 24/25

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
 PlantStatusSeedingLog AreaMeasure Quant1SeedingLog Area Quant1SeedingLog WeightMeasure Quant0SeedingLog WeightDecimal Quant0Timestamp HarvestLogLogName HarvestLogLogStatus HarvestLogIsMovement HarvestLog
1activearea4.500000weight66.00000028.10.2024W-Raps Nachtweide Harvest 24/25doneFalse
\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "testtttt\n", + "from farmOS import farmOS \n", + "import pandas as pd\n", + "\n", + "def get_related_logs_of_type(asset, log_type): \n", + " response = farm_client.resource.get('log', log_type)\n", + " return [log for log in response['data'] if any(log_asset['id'] == asset['id'] for log_asset in log['relationships']['asset']['data'])]\n", + "\n", + "def get_related_quantities(log, measure_type):\n", + " quantities = log['relationships']['quantity']['data']\n", + " return [farm_client.resource.get_id('quantity', 'standard', quant_ref['id']) \n", + " for quant_ref in quantities \n", + " if farm_client.resource.get_id('quantity', 'standard', quant_ref['id'])['data']['attributes']['measure'] == measure_type]\n", + "\n", + "def get_related_taxonomy_units(taxonomy_term, measure):\n", + " taxonomy = taxonomy_term['relationships']['units']['data']\n", + " ret = []\n", + " for tax_ref in taxonomy:\n", + " tax_id = tax_ref['id']\n", + " quant = farm_client.resource.get_id('quantity', 'standard', tax_id)\n", + " if quant['data']['attributes']['measure'] == measure:\n", + " ret.append(quant)\n", + " return ret\n", + "\n", + "# API-Anfrage, um alle Harvest-Logs zu erhalten\n", + "response = farm_client.resource.get('log', 'harvest')\n", + "\n", + "logs = []\n", + "for item in response.get('data', []):\n", + " assets = item.get('relationships', {}).get('asset', {}).get('data', [])\n", + " plant_name = ''\n", + " plant_area = 0.0\n", + " plant_status = ''\n", + " quantity_measure = ''\n", + " weight_measure = ''\n", + " weight_decimal = 0.0\n", + "\n", + " for asset in assets:\n", + " if asset['type'] == 'asset--plant': \n", + " plant_id = asset['id']\n", + " \n", + " # Alle Seeding-Logs für das Pflanzasset abrufen\n", + " seedings = get_related_logs_of_type(asset, 'seeding')\n", + " \n", + " # Fläche und Menge abrufen\n", + " for seeding in seedings:\n", + " area_quants = get_related_quantities(seeding, 'area')\n", + " for area_quant in area_quants:\n", + " plant_area += float(area_quant.get('data', {}).get('attributes', {}).get('value', {}).get('decimal', 0))\n", + " quantity_measure = area_quant.get('data', {}).get('attributes', {}).get('measure', '')\n", + "\n", + " weight_quants = get_related_quantities(seeding, 'weight')\n", + " for weight_quant in weight_quants:\n", + " weight_measure = weight_quant.get('data', {}).get('attributes', {}).get('measure', '')\n", + " weight_decimal += float(weight_quant.get('data', {}).get('attributes', {}).get('value', {}).get('decimal', 0))\n", + " \n", + " # Pflanzendaten abrufen\n", + " plant = farm_client.asset.get_id('plant', plant_id)\n", + " plant_name = plant.get('data', {}).get('attributes', {}).get('name', '')\n", + " plant_status = plant.get('data', {}).get('attributes', {}).get('status', '')\n", + "\n", + " # Log erstellen und relevante Felder extrahieren\n", + " log = {\n", + " 'PlantName': plant_name,\n", + " 'PlantStatus': plant_status,\n", + " 'SeedingLog AreaMeasure Quant1': quantity_measure,\n", + " 'SeedingLog Area Quant1': plant_area,\n", + " 'SeedingLog WeightMeasure Quant0': weight_measure,\n", + " 'SeedingLog WeightDecimal Quant0' : weight_decimal,\n", + " 'Timestamp HarvestLog': pd.to_datetime(item['attributes'].get('timestamp')).strftime('%d.%m.%Y') if 'timestamp' in item['attributes'] else None,\n", + " 'LogName HarvestLog': item['attributes'].get('name', ''),\n", + " 'LogStatus HarvestLog': item['attributes'].get('status', ''),\n", + " 'IsMovement HarvestLog': item['attributes'].get('is_movement', ''),\n", + " }\n", + " logs.append(log)\n", + "\n", + "# DataFrame aus den Harvest Logs erstellen\n", + "df = pd.DataFrame(logs)\n", + "from IPython.display import display, HTML # Für Jupyter Notebook geeignet\n", + "\n", + "# Gruppierung und Anzeige als HTML-Format\n", + "grouped = df.groupby('PlantName')\n", + "for plant, data in grouped:\n", + " display(HTML(f\"

{plant}

\")) # Pflanzname als fettgedruckte Überschrift\n", + " \n", + " # Style der Tabelle anpassen\n", + " styled_table = data.drop(columns=['PlantName']).style.set_table_styles(\n", + " [\n", + " {'selector': 'th', 'props': [('font-weight', 'bold'), ('text-align', 'center'), ('white-space', 'break-spaces'), ('max-width', '100px')]},\n", + " {'selector': 'td', 'props': [('text-align', 'center')]}\n", + " ]\n", + " )\n", + "\n", + " display(styled_table)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "da71b53e-0621-47af-84ca-11e266ec8c2e", "metadata": {}, "outputs": [], "source": [] diff --git a/Datenmodell3.xlsx b/Datenmodell3.xlsx new file mode 100644 index 0000000..8c36884 Binary files /dev/null and b/Datenmodell3.xlsx differ diff --git a/Datenmodell4.xlsx b/Datenmodell4.xlsx deleted file mode 100644 index 94aeb85..0000000 Binary files a/Datenmodell4.xlsx and /dev/null differ diff --git a/get-harvest-loga.ipynb b/get-harvest-loga.ipynb deleted file mode 100755 index b21ca57..0000000 --- a/get-harvest-loga.ipynb +++ /dev/null @@ -1,3199 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 3, - "id": "6417dfff-5142-4c4a-9d6f-a462bcb8a49d", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[\n", - " {\n", - " \"type\": \"log--harvest\",\n", - " \"id\": \"ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4\",\n", - " \"links\": {\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4?resourceVersion=id%3A117\"\n", - " }\n", - " },\n", - " \"attributes\": {\n", - " \"drupal_internal__id\": 40,\n", - " \"drupal_internal__revision_id\": 117,\n", - " \"langcode\": \"en\",\n", - " \"revision_created\": \"2024-09-23T09:15:08+00:00\",\n", - " \"revision_log_message\": null,\n", - " \"name\": \"Harvest log 40\",\n", - " \"timestamp\": \"2024-09-23T09:13:35+00:00\",\n", - " \"status\": \"done\",\n", - " \"created\": \"2024-09-23T09:13:41+00:00\",\n", - " \"changed\": \"2024-09-23T09:15:08+00:00\",\n", - " \"default_langcode\": true,\n", - " \"revision_translation_affected\": true,\n", - " \"comment\": {\n", - " \"status\": 2,\n", - " \"cid\": 0,\n", - " \"last_comment_timestamp\": 1727082908,\n", - " \"last_comment_name\": null,\n", - " \"last_comment_uid\": 1,\n", - " \"comment_count\": 0\n", - " },\n", - " \"data\": null,\n", - " \"notes\": null,\n", - " \"flag\": [],\n", - " \"is_group_assignment\": false,\n", - " \"geometry\": {\n", - " \"value\": \"POLYGON ((10.747713618221 48.694039316345, 10.747655366943 48.694041854983, 10.747352668456 48.694044456288, 10.746988118483 48.6940287062, 10.746433053748 48.693978472556, 10.746250998619 48.693961759714, 10.7461753607 48.693960936447, 10.746104245243 48.693957216059, 10.745939475211 48.693961314975, 10.745850196702 48.693972128187, 10.745790599455 48.694042190467, 10.745716117113 48.694173962885, 10.745502573537 48.695164024359, 10.745406797387 48.695235372785, 10.74520498955 48.695380745378, 10.745059826758 48.695487886107, 10.744978900971 48.695628460197, 10.744886906689 48.695842654082, 10.744784109987 48.696114283663, 10.744667158164 48.69633234191, 10.744618839846 48.69653271304, 10.744621273526 48.696652592521, 10.744641989421 48.696721633074, 10.744663189454 48.696863319971, 10.744719459551 48.697091539599, 10.744795409464 48.697276808576, 10.744950823047 48.697506108774, 10.745094966035 48.697686095699, 10.745257208999 48.697886693248, 10.745422114877 48.69810091126, 10.745634035074 48.698288053176, 10.745801394254 48.698411469309, 10.745905721986 48.698480736343, 10.746117077321 48.698595800492, 10.746424826502 48.698701343233, 10.746632693636 48.698767915052, 10.74681660007 48.698791741071, 10.747067264596 48.698832112942, 10.747295390227 48.698869250842, 10.747629399231 48.698894527626, 10.747960078898 48.698884061631, 10.748345959049 48.698853129008, 10.748566129586 48.698822421861, 10.748545941747 48.69878156207, 10.748520165013 48.698736318038, 10.748374465229 48.69845415984, 10.747053879092 48.698540875939, 10.747053546046 48.698540745584, 10.747053066437 48.698540777169, 10.746298814758 48.698245698355, 10.745821378975 48.697843469215, 10.747824633382 48.697711224506, 10.747658060988 48.697520475029, 10.747534619252 48.697387298543, 10.747428214692 48.697295673988, 10.74732669971 48.697204102543, 10.747282255281 48.697139320811, 10.747209284332 48.697030703761, 10.747182734932 48.696907214079, 10.7471967115 48.696803859423, 10.747235378259 48.696707338066, 10.747295016607 48.696625163451, 10.747355744508 48.696564763137, 10.747449337765 48.696510205824, 10.747588996812 48.696455070263, 10.747769616027 48.69640802375, 10.747913973991 48.696360582709, 10.748020387579 48.696314887248, 10.748368174046 48.696166060134, 10.748570023971 48.696057102913, 10.748695929525 48.695959370518, 10.748787396004 48.695853529492, 10.749054840599 48.695558951186, 10.749267245237 48.695352893485, 10.749357962031 48.695211432198, 10.749426252116 48.695092389323, 10.749559471935 48.694830885773, 10.749734443117 48.694468666186, 10.749841284384 48.694251930002, 10.749991043074 48.693975137752, 10.75008552632 48.693806176353, 10.750019634095 48.693658836055, 10.749974724823 48.693521278107, 10.749859249445 48.693253752548, 10.749833263471 48.693209083015, 10.749706219355 48.693234135446, 10.749598375148 48.693258388025, 10.749289429746 48.693373683396, 10.749010188146 48.693497671446, 10.748513873361 48.693724475341, 10.747884352359 48.693999288542, 10.747777729553 48.694036522286, 10.747776945448 48.694036556458, 10.747713618221 48.694039316345))\",\n", - " \"geo_type\": \"Polygon\",\n", - " \"lat\": 48.694039316345,\n", - " \"lon\": 10.747713618221,\n", - " \"left\": 10.744618839846,\n", - " \"top\": 48.698894527626,\n", - " \"right\": 10.75008552632,\n", - " \"bottom\": 48.693209083015,\n", - " \"geohash\": \"u0xth\",\n", - " \"latlon\": \"48.694039316345,10.747713618221\"\n", - " },\n", - " \"is_movement\": false,\n", - " \"quick\": [],\n", - " \"lot_number\": null\n", - " },\n", - " \"relationships\": {\n", - " \"log_type\": {\n", - " \"data\": {\n", - " \"type\": \"log_type--log_type\",\n", - " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": \"harvest\"\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/log_type?resourceVersion=id%3A117\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/relationships/log_type?resourceVersion=id%3A117\"\n", - " }\n", - " }\n", - " },\n", - " \"revision_user\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/revision_user?resourceVersion=id%3A117\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/relationships/revision_user?resourceVersion=id%3A117\"\n", - " }\n", - " }\n", - " },\n", - " \"uid\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/uid?resourceVersion=id%3A117\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/relationships/uid?resourceVersion=id%3A117\"\n", - " }\n", - " }\n", - " },\n", - " \"file\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/file?resourceVersion=id%3A117\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/relationships/file?resourceVersion=id%3A117\"\n", - " }\n", - " }\n", - " },\n", - " \"image\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/image?resourceVersion=id%3A117\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/relationships/image?resourceVersion=id%3A117\"\n", - " }\n", - " }\n", - " },\n", - " \"group\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/group?resourceVersion=id%3A117\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/relationships/group?resourceVersion=id%3A117\"\n", - " }\n", - " }\n", - " },\n", - " \"location\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--land\",\n", - " \"id\": \"7842c79e-d2be-41a7-b6a6-e9af36dd9f7e\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 54\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/location?resourceVersion=id%3A117\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/relationships/location?resourceVersion=id%3A117\"\n", - " }\n", - " }\n", - " },\n", - " \"asset\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--plant\",\n", - " \"id\": \"71c136e3-fae0-40a6-b3d7-8e1581ee4882\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 69\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/asset?resourceVersion=id%3A117\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/relationships/asset?resourceVersion=id%3A117\"\n", - " }\n", - " }\n", - " },\n", - " \"category\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/category?resourceVersion=id%3A117\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/relationships/category?resourceVersion=id%3A117\"\n", - " }\n", - " }\n", - " },\n", - " \"quantity\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"quantity--standard\",\n", - " \"id\": \"51c3d816-6256-4386-92a0-6d12b626cad0\",\n", - " \"meta\": {\n", - " \"target_revision_id\": 37,\n", - " \"drupal_internal__target_id\": 27\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/quantity?resourceVersion=id%3A117\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/relationships/quantity?resourceVersion=id%3A117\"\n", - " }\n", - " }\n", - " },\n", - " \"owner\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/owner?resourceVersion=id%3A117\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/relationships/owner?resourceVersion=id%3A117\"\n", - " }\n", - " }\n", - " },\n", - " \"equipment\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/equipment?resourceVersion=id%3A117\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ae417c7e-e1f2-4184-b6f9-e5c8027a2fc4/relationships/equipment?resourceVersion=id%3A117\"\n", - " }\n", - " }\n", - " }\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"log--harvest\",\n", - " \"id\": \"f873e803-f20a-460e-8c2c-d10835d6b2c7\",\n", - " \"links\": {\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7?resourceVersion=id%3A121\"\n", - " }\n", - " },\n", - " \"attributes\": {\n", - " \"drupal_internal__id\": 42,\n", - " \"drupal_internal__revision_id\": 121,\n", - " \"langcode\": \"en\",\n", - " \"revision_created\": \"2024-09-24T14:14:12+00:00\",\n", - " \"revision_log_message\": null,\n", - " \"name\": \"Harvest log 42\",\n", - " \"timestamp\": \"2024-09-24T14:13:40+00:00\",\n", - " \"status\": \"done\",\n", - " \"created\": \"2024-09-24T14:14:12+00:00\",\n", - " \"changed\": \"2024-09-24T14:14:12+00:00\",\n", - " \"default_langcode\": true,\n", - " \"revision_translation_affected\": true,\n", - " \"comment\": {\n", - " \"status\": 2,\n", - " \"cid\": 0,\n", - " \"last_comment_timestamp\": 1727187252,\n", - " \"last_comment_name\": null,\n", - " \"last_comment_uid\": 1,\n", - " \"comment_count\": 0\n", - " },\n", - " \"data\": null,\n", - " \"notes\": null,\n", - " \"flag\": [],\n", - " \"is_group_assignment\": null,\n", - " \"geometry\": null,\n", - " \"is_movement\": false,\n", - " \"quick\": [\n", - " \"harvest\"\n", - " ],\n", - " \"lot_number\": null\n", - " },\n", - " \"relationships\": {\n", - " \"log_type\": {\n", - " \"data\": {\n", - " \"type\": \"log_type--log_type\",\n", - " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": \"harvest\"\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/log_type?resourceVersion=id%3A121\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/relationships/log_type?resourceVersion=id%3A121\"\n", - " }\n", - " }\n", - " },\n", - " \"revision_user\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/revision_user?resourceVersion=id%3A121\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/relationships/revision_user?resourceVersion=id%3A121\"\n", - " }\n", - " }\n", - " },\n", - " \"uid\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/uid?resourceVersion=id%3A121\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/relationships/uid?resourceVersion=id%3A121\"\n", - " }\n", - " }\n", - " },\n", - " \"file\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/file?resourceVersion=id%3A121\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/relationships/file?resourceVersion=id%3A121\"\n", - " }\n", - " }\n", - " },\n", - " \"image\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/image?resourceVersion=id%3A121\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/relationships/image?resourceVersion=id%3A121\"\n", - " }\n", - " }\n", - " },\n", - " \"group\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/group?resourceVersion=id%3A121\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/relationships/group?resourceVersion=id%3A121\"\n", - " }\n", - " }\n", - " },\n", - " \"location\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/location?resourceVersion=id%3A121\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/relationships/location?resourceVersion=id%3A121\"\n", - " }\n", - " }\n", - " },\n", - " \"asset\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/asset?resourceVersion=id%3A121\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/relationships/asset?resourceVersion=id%3A121\"\n", - " }\n", - " }\n", - " },\n", - " \"category\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/category?resourceVersion=id%3A121\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/relationships/category?resourceVersion=id%3A121\"\n", - " }\n", - " }\n", - " },\n", - " \"quantity\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"quantity--standard\",\n", - " \"id\": \"7e7aaa5c-068c-4c79-8dbf-a3775b10320b\",\n", - " \"meta\": {\n", - " \"target_revision_id\": 38,\n", - " \"drupal_internal__target_id\": 28\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/quantity?resourceVersion=id%3A121\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/relationships/quantity?resourceVersion=id%3A121\"\n", - " }\n", - " }\n", - " },\n", - " \"owner\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/owner?resourceVersion=id%3A121\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/relationships/owner?resourceVersion=id%3A121\"\n", - " }\n", - " }\n", - " },\n", - " \"equipment\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/equipment?resourceVersion=id%3A121\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/f873e803-f20a-460e-8c2c-d10835d6b2c7/relationships/equipment?resourceVersion=id%3A121\"\n", - " }\n", - " }\n", - " }\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"log--harvest\",\n", - " \"id\": \"97f1f184-20ce-44da-bc70-134e3917a701\",\n", - " \"links\": {\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701?resourceVersion=id%3A123\"\n", - " }\n", - " },\n", - " \"attributes\": {\n", - " \"drupal_internal__id\": 43,\n", - " \"drupal_internal__revision_id\": 123,\n", - " \"langcode\": \"en\",\n", - " \"revision_created\": \"2024-09-24T17:30:52+00:00\",\n", - " \"revision_log_message\": null,\n", - " \"name\": \"Harvest log 43\",\n", - " \"timestamp\": \"2024-09-24T17:30:47+00:00\",\n", - " \"status\": \"done\",\n", - " \"created\": \"2024-09-24T17:30:52+00:00\",\n", - " \"changed\": \"2024-09-24T17:30:52+00:00\",\n", - " \"default_langcode\": true,\n", - " \"revision_translation_affected\": true,\n", - " \"comment\": {\n", - " \"status\": 2,\n", - " \"cid\": 0,\n", - " \"last_comment_timestamp\": 1727199052,\n", - " \"last_comment_name\": null,\n", - " \"last_comment_uid\": 1,\n", - " \"comment_count\": 0\n", - " },\n", - " \"data\": null,\n", - " \"notes\": null,\n", - " \"flag\": [],\n", - " \"is_group_assignment\": null,\n", - " \"geometry\": null,\n", - " \"is_movement\": false,\n", - " \"quick\": [\n", - " \"harvest\"\n", - " ],\n", - " \"lot_number\": null\n", - " },\n", - " \"relationships\": {\n", - " \"log_type\": {\n", - " \"data\": {\n", - " \"type\": \"log_type--log_type\",\n", - " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": \"harvest\"\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/log_type?resourceVersion=id%3A123\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/relationships/log_type?resourceVersion=id%3A123\"\n", - " }\n", - " }\n", - " },\n", - " \"revision_user\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/revision_user?resourceVersion=id%3A123\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/relationships/revision_user?resourceVersion=id%3A123\"\n", - " }\n", - " }\n", - " },\n", - " \"uid\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/uid?resourceVersion=id%3A123\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/relationships/uid?resourceVersion=id%3A123\"\n", - " }\n", - " }\n", - " },\n", - " \"file\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/file?resourceVersion=id%3A123\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/relationships/file?resourceVersion=id%3A123\"\n", - " }\n", - " }\n", - " },\n", - " \"image\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/image?resourceVersion=id%3A123\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/relationships/image?resourceVersion=id%3A123\"\n", - " }\n", - " }\n", - " },\n", - " \"group\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/group?resourceVersion=id%3A123\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/relationships/group?resourceVersion=id%3A123\"\n", - " }\n", - " }\n", - " },\n", - " \"location\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/location?resourceVersion=id%3A123\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/relationships/location?resourceVersion=id%3A123\"\n", - " }\n", - " }\n", - " },\n", - " \"asset\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/asset?resourceVersion=id%3A123\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/relationships/asset?resourceVersion=id%3A123\"\n", - " }\n", - " }\n", - " },\n", - " \"category\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/category?resourceVersion=id%3A123\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/relationships/category?resourceVersion=id%3A123\"\n", - " }\n", - " }\n", - " },\n", - " \"quantity\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"quantity--standard\",\n", - " \"id\": \"af7bf185-38c9-43a8-88e9-216424cb9b07\",\n", - " \"meta\": {\n", - " \"target_revision_id\": 39,\n", - " \"drupal_internal__target_id\": 29\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/quantity?resourceVersion=id%3A123\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/relationships/quantity?resourceVersion=id%3A123\"\n", - " }\n", - " }\n", - " },\n", - " \"owner\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/owner?resourceVersion=id%3A123\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/relationships/owner?resourceVersion=id%3A123\"\n", - " }\n", - " }\n", - " },\n", - " \"equipment\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/equipment?resourceVersion=id%3A123\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/97f1f184-20ce-44da-bc70-134e3917a701/relationships/equipment?resourceVersion=id%3A123\"\n", - " }\n", - " }\n", - " }\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"log--harvest\",\n", - " \"id\": \"fa5c7900-ef46-44fb-a160-2594ca00d65b\",\n", - " \"links\": {\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b?resourceVersion=id%3A125\"\n", - " }\n", - " },\n", - " \"attributes\": {\n", - " \"drupal_internal__id\": 44,\n", - " \"drupal_internal__revision_id\": 125,\n", - " \"langcode\": \"en\",\n", - " \"revision_created\": \"2024-09-24T17:35:08+00:00\",\n", - " \"revision_log_message\": null,\n", - " \"name\": \"Harvest log 44\",\n", - " \"timestamp\": \"2024-09-24T17:33:27+00:00\",\n", - " \"status\": \"done\",\n", - " \"created\": \"2024-09-24T17:35:08+00:00\",\n", - " \"changed\": \"2024-09-24T17:35:08+00:00\",\n", - " \"default_langcode\": true,\n", - " \"revision_translation_affected\": true,\n", - " \"comment\": {\n", - " \"status\": 2,\n", - " \"cid\": 0,\n", - " \"last_comment_timestamp\": 1727199308,\n", - " \"last_comment_name\": null,\n", - " \"last_comment_uid\": 1,\n", - " \"comment_count\": 0\n", - " },\n", - " \"data\": null,\n", - " \"notes\": null,\n", - " \"flag\": [],\n", - " \"is_group_assignment\": null,\n", - " \"geometry\": null,\n", - " \"is_movement\": false,\n", - " \"quick\": [\n", - " \"harvest\"\n", - " ],\n", - " \"lot_number\": null\n", - " },\n", - " \"relationships\": {\n", - " \"log_type\": {\n", - " \"data\": {\n", - " \"type\": \"log_type--log_type\",\n", - " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": \"harvest\"\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/log_type?resourceVersion=id%3A125\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/relationships/log_type?resourceVersion=id%3A125\"\n", - " }\n", - " }\n", - " },\n", - " \"revision_user\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/revision_user?resourceVersion=id%3A125\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/relationships/revision_user?resourceVersion=id%3A125\"\n", - " }\n", - " }\n", - " },\n", - " \"uid\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/uid?resourceVersion=id%3A125\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/relationships/uid?resourceVersion=id%3A125\"\n", - " }\n", - " }\n", - " },\n", - " \"file\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/file?resourceVersion=id%3A125\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/relationships/file?resourceVersion=id%3A125\"\n", - " }\n", - " }\n", - " },\n", - " \"image\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/image?resourceVersion=id%3A125\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/relationships/image?resourceVersion=id%3A125\"\n", - " }\n", - " }\n", - " },\n", - " \"group\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/group?resourceVersion=id%3A125\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/relationships/group?resourceVersion=id%3A125\"\n", - " }\n", - " }\n", - " },\n", - " \"location\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/location?resourceVersion=id%3A125\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/relationships/location?resourceVersion=id%3A125\"\n", - " }\n", - " }\n", - " },\n", - " \"asset\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/asset?resourceVersion=id%3A125\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/relationships/asset?resourceVersion=id%3A125\"\n", - " }\n", - " }\n", - " },\n", - " \"category\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/category?resourceVersion=id%3A125\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/relationships/category?resourceVersion=id%3A125\"\n", - " }\n", - " }\n", - " },\n", - " \"quantity\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"quantity--standard\",\n", - " \"id\": \"037734ff-dd22-4a02-8d31-eb5446dd5600\",\n", - " \"meta\": {\n", - " \"target_revision_id\": 40,\n", - " \"drupal_internal__target_id\": 30\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/quantity?resourceVersion=id%3A125\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/relationships/quantity?resourceVersion=id%3A125\"\n", - " }\n", - " }\n", - " },\n", - " \"owner\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/owner?resourceVersion=id%3A125\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/relationships/owner?resourceVersion=id%3A125\"\n", - " }\n", - " }\n", - " },\n", - " \"equipment\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/equipment?resourceVersion=id%3A125\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa5c7900-ef46-44fb-a160-2594ca00d65b/relationships/equipment?resourceVersion=id%3A125\"\n", - " }\n", - " }\n", - " }\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"log--harvest\",\n", - " \"id\": \"fa014b11-25ef-4a49-9406-0f3900952a2c\",\n", - " \"links\": {\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c?resourceVersion=id%3A129\"\n", - " }\n", - " },\n", - " \"attributes\": {\n", - " \"drupal_internal__id\": 46,\n", - " \"drupal_internal__revision_id\": 129,\n", - " \"langcode\": \"en\",\n", - " \"revision_created\": \"2024-09-24T17:48:16+00:00\",\n", - " \"revision_log_message\": null,\n", - " \"name\": \"Harvest log 46\",\n", - " \"timestamp\": \"2024-09-24T17:47:52+00:00\",\n", - " \"status\": \"done\",\n", - " \"created\": \"2024-09-24T17:48:16+00:00\",\n", - " \"changed\": \"2024-09-24T17:48:16+00:00\",\n", - " \"default_langcode\": true,\n", - " \"revision_translation_affected\": true,\n", - " \"comment\": {\n", - " \"status\": 2,\n", - " \"cid\": 0,\n", - " \"last_comment_timestamp\": 1727200096,\n", - " \"last_comment_name\": null,\n", - " \"last_comment_uid\": 1,\n", - " \"comment_count\": 0\n", - " },\n", - " \"data\": null,\n", - " \"notes\": null,\n", - " \"flag\": [],\n", - " \"is_group_assignment\": null,\n", - " \"geometry\": null,\n", - " \"is_movement\": false,\n", - " \"quick\": [\n", - " \"harvest\"\n", - " ],\n", - " \"lot_number\": null\n", - " },\n", - " \"relationships\": {\n", - " \"log_type\": {\n", - " \"data\": {\n", - " \"type\": \"log_type--log_type\",\n", - " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": \"harvest\"\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/log_type?resourceVersion=id%3A129\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/relationships/log_type?resourceVersion=id%3A129\"\n", - " }\n", - " }\n", - " },\n", - " \"revision_user\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/revision_user?resourceVersion=id%3A129\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/relationships/revision_user?resourceVersion=id%3A129\"\n", - " }\n", - " }\n", - " },\n", - " \"uid\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/uid?resourceVersion=id%3A129\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/relationships/uid?resourceVersion=id%3A129\"\n", - " }\n", - " }\n", - " },\n", - " \"file\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/file?resourceVersion=id%3A129\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/relationships/file?resourceVersion=id%3A129\"\n", - " }\n", - " }\n", - " },\n", - " \"image\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/image?resourceVersion=id%3A129\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/relationships/image?resourceVersion=id%3A129\"\n", - " }\n", - " }\n", - " },\n", - " \"group\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/group?resourceVersion=id%3A129\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/relationships/group?resourceVersion=id%3A129\"\n", - " }\n", - " }\n", - " },\n", - " \"location\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/location?resourceVersion=id%3A129\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/relationships/location?resourceVersion=id%3A129\"\n", - " }\n", - " }\n", - " },\n", - " \"asset\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--equipment\",\n", - " \"id\": \"9e4cab1a-9819-49e2-88e1-edb85a1142d7\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 72\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"asset--equipment\",\n", - " \"id\": \"f14d55ab-f74a-4069-ba46-ec2fd60c0523\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 73\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/asset?resourceVersion=id%3A129\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/relationships/asset?resourceVersion=id%3A129\"\n", - " }\n", - " }\n", - " },\n", - " \"category\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/category?resourceVersion=id%3A129\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/relationships/category?resourceVersion=id%3A129\"\n", - " }\n", - " }\n", - " },\n", - " \"quantity\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"quantity--standard\",\n", - " \"id\": \"9fdc1dbd-ae73-41a0-8041-6c6044962ad3\",\n", - " \"meta\": {\n", - " \"target_revision_id\": 42,\n", - " \"drupal_internal__target_id\": 32\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/quantity?resourceVersion=id%3A129\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/relationships/quantity?resourceVersion=id%3A129\"\n", - " }\n", - " }\n", - " },\n", - " \"owner\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/owner?resourceVersion=id%3A129\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/relationships/owner?resourceVersion=id%3A129\"\n", - " }\n", - " }\n", - " },\n", - " \"equipment\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/equipment?resourceVersion=id%3A129\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/fa014b11-25ef-4a49-9406-0f3900952a2c/relationships/equipment?resourceVersion=id%3A129\"\n", - " }\n", - " }\n", - " }\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"log--harvest\",\n", - " \"id\": \"05fd5f47-15df-4be0-8197-a4927ab87a88\",\n", - " \"links\": {\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88?resourceVersion=id%3A130\"\n", - " }\n", - " },\n", - " \"attributes\": {\n", - " \"drupal_internal__id\": 47,\n", - " \"drupal_internal__revision_id\": 130,\n", - " \"langcode\": \"en\",\n", - " \"revision_created\": \"2024-09-24T17:49:12+00:00\",\n", - " \"revision_log_message\": null,\n", - " \"name\": \"test log\",\n", - " \"timestamp\": \"2024-09-24T17:48:49+00:00\",\n", - " \"status\": \"done\",\n", - " \"created\": \"2024-09-24T17:49:07+00:00\",\n", - " \"changed\": \"2024-09-24T17:49:12+00:00\",\n", - " \"default_langcode\": true,\n", - " \"revision_translation_affected\": true,\n", - " \"comment\": {\n", - " \"status\": 2,\n", - " \"cid\": 0,\n", - " \"last_comment_timestamp\": 1727200152,\n", - " \"last_comment_name\": null,\n", - " \"last_comment_uid\": 1,\n", - " \"comment_count\": 0\n", - " },\n", - " \"data\": null,\n", - " \"notes\": null,\n", - " \"flag\": [],\n", - " \"is_group_assignment\": false,\n", - " \"geometry\": null,\n", - " \"is_movement\": false,\n", - " \"quick\": [],\n", - " \"lot_number\": null\n", - " },\n", - " \"relationships\": {\n", - " \"log_type\": {\n", - " \"data\": {\n", - " \"type\": \"log_type--log_type\",\n", - " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": \"harvest\"\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/log_type?resourceVersion=id%3A130\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/relationships/log_type?resourceVersion=id%3A130\"\n", - " }\n", - " }\n", - " },\n", - " \"revision_user\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/revision_user?resourceVersion=id%3A130\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/relationships/revision_user?resourceVersion=id%3A130\"\n", - " }\n", - " }\n", - " },\n", - " \"uid\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/uid?resourceVersion=id%3A130\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/relationships/uid?resourceVersion=id%3A130\"\n", - " }\n", - " }\n", - " },\n", - " \"file\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/file?resourceVersion=id%3A130\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/relationships/file?resourceVersion=id%3A130\"\n", - " }\n", - " }\n", - " },\n", - " \"image\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/image?resourceVersion=id%3A130\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/relationships/image?resourceVersion=id%3A130\"\n", - " }\n", - " }\n", - " },\n", - " \"group\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/group?resourceVersion=id%3A130\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/relationships/group?resourceVersion=id%3A130\"\n", - " }\n", - " }\n", - " },\n", - " \"location\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/location?resourceVersion=id%3A130\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/relationships/location?resourceVersion=id%3A130\"\n", - " }\n", - " }\n", - " },\n", - " \"asset\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/asset?resourceVersion=id%3A130\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/relationships/asset?resourceVersion=id%3A130\"\n", - " }\n", - " }\n", - " },\n", - " \"category\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/category?resourceVersion=id%3A130\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/relationships/category?resourceVersion=id%3A130\"\n", - " }\n", - " }\n", - " },\n", - " \"quantity\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/quantity?resourceVersion=id%3A130\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/relationships/quantity?resourceVersion=id%3A130\"\n", - " }\n", - " }\n", - " },\n", - " \"owner\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/owner?resourceVersion=id%3A130\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/relationships/owner?resourceVersion=id%3A130\"\n", - " }\n", - " }\n", - " },\n", - " \"equipment\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--equipment\",\n", - " \"id\": \"9e4cab1a-9819-49e2-88e1-edb85a1142d7\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 72\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"asset--equipment\",\n", - " \"id\": \"f14d55ab-f74a-4069-ba46-ec2fd60c0523\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 73\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/equipment?resourceVersion=id%3A130\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/05fd5f47-15df-4be0-8197-a4927ab87a88/relationships/equipment?resourceVersion=id%3A130\"\n", - " }\n", - " }\n", - " }\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"log--harvest\",\n", - " \"id\": \"50a16f30-79f6-4c3b-9815-3af6cf107cf3\",\n", - " \"links\": {\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3?resourceVersion=id%3A132\"\n", - " }\n", - " },\n", - " \"attributes\": {\n", - " \"drupal_internal__id\": 48,\n", - " \"drupal_internal__revision_id\": 132,\n", - " \"langcode\": \"en\",\n", - " \"revision_created\": \"2024-09-24T18:10:47+00:00\",\n", - " \"revision_log_message\": null,\n", - " \"name\": \"Harvest log 48\",\n", - " \"timestamp\": \"2024-09-24T18:10:27+00:00\",\n", - " \"status\": \"done\",\n", - " \"created\": \"2024-09-24T18:10:47+00:00\",\n", - " \"changed\": \"2024-09-24T18:10:47+00:00\",\n", - " \"default_langcode\": true,\n", - " \"revision_translation_affected\": true,\n", - " \"comment\": {\n", - " \"status\": 2,\n", - " \"cid\": 0,\n", - " \"last_comment_timestamp\": 1727201447,\n", - " \"last_comment_name\": null,\n", - " \"last_comment_uid\": 1,\n", - " \"comment_count\": 0\n", - " },\n", - " \"data\": null,\n", - " \"notes\": null,\n", - " \"flag\": [],\n", - " \"is_group_assignment\": null,\n", - " \"geometry\": null,\n", - " \"is_movement\": false,\n", - " \"quick\": [\n", - " \"harvest\"\n", - " ],\n", - " \"lot_number\": null\n", - " },\n", - " \"relationships\": {\n", - " \"log_type\": {\n", - " \"data\": {\n", - " \"type\": \"log_type--log_type\",\n", - " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": \"harvest\"\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/log_type?resourceVersion=id%3A132\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/relationships/log_type?resourceVersion=id%3A132\"\n", - " }\n", - " }\n", - " },\n", - " \"revision_user\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/revision_user?resourceVersion=id%3A132\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/relationships/revision_user?resourceVersion=id%3A132\"\n", - " }\n", - " }\n", - " },\n", - " \"uid\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/uid?resourceVersion=id%3A132\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/relationships/uid?resourceVersion=id%3A132\"\n", - " }\n", - " }\n", - " },\n", - " \"file\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/file?resourceVersion=id%3A132\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/relationships/file?resourceVersion=id%3A132\"\n", - " }\n", - " }\n", - " },\n", - " \"image\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/image?resourceVersion=id%3A132\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/relationships/image?resourceVersion=id%3A132\"\n", - " }\n", - " }\n", - " },\n", - " \"group\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/group?resourceVersion=id%3A132\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/relationships/group?resourceVersion=id%3A132\"\n", - " }\n", - " }\n", - " },\n", - " \"location\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/location?resourceVersion=id%3A132\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/relationships/location?resourceVersion=id%3A132\"\n", - " }\n", - " }\n", - " },\n", - " \"asset\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--plant\",\n", - " \"id\": \"71c136e3-fae0-40a6-b3d7-8e1581ee4882\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 69\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/asset?resourceVersion=id%3A132\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/relationships/asset?resourceVersion=id%3A132\"\n", - " }\n", - " }\n", - " },\n", - " \"category\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/category?resourceVersion=id%3A132\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/relationships/category?resourceVersion=id%3A132\"\n", - " }\n", - " }\n", - " },\n", - " \"quantity\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"quantity--standard\",\n", - " \"id\": \"581de033-ea1e-4672-bbe3-afe6cc40a18e\",\n", - " \"meta\": {\n", - " \"target_revision_id\": 43,\n", - " \"drupal_internal__target_id\": 33\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/quantity?resourceVersion=id%3A132\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/relationships/quantity?resourceVersion=id%3A132\"\n", - " }\n", - " }\n", - " },\n", - " \"owner\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/owner?resourceVersion=id%3A132\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/relationships/owner?resourceVersion=id%3A132\"\n", - " }\n", - " }\n", - " },\n", - " \"equipment\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--equipment\",\n", - " \"id\": \"9e4cab1a-9819-49e2-88e1-edb85a1142d7\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 72\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"asset--equipment\",\n", - " \"id\": \"f14d55ab-f74a-4069-ba46-ec2fd60c0523\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 73\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/equipment?resourceVersion=id%3A132\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/50a16f30-79f6-4c3b-9815-3af6cf107cf3/relationships/equipment?resourceVersion=id%3A132\"\n", - " }\n", - " }\n", - " }\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"log--harvest\",\n", - " \"id\": \"7159b3fe-bf3b-4fcc-9438-1ed0b1971937\",\n", - " \"links\": {\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937?resourceVersion=id%3A147\"\n", - " }\n", - " },\n", - " \"attributes\": {\n", - " \"drupal_internal__id\": 49,\n", - " \"drupal_internal__revision_id\": 147,\n", - " \"langcode\": \"en\",\n", - " \"revision_created\": \"2024-09-25T09:34:35+00:00\",\n", - " \"revision_log_message\": null,\n", - " \"name\": \"Harvest log 49\",\n", - " \"timestamp\": \"2024-09-24T18:15:59+00:00\",\n", - " \"status\": \"done\",\n", - " \"created\": \"2024-09-24T18:16:55+00:00\",\n", - " \"changed\": \"2024-09-25T09:34:35+00:00\",\n", - " \"default_langcode\": true,\n", - " \"revision_translation_affected\": true,\n", - " \"comment\": {\n", - " \"status\": 2,\n", - " \"cid\": 0,\n", - " \"last_comment_timestamp\": 1727201815,\n", - " \"last_comment_name\": null,\n", - " \"last_comment_uid\": 1,\n", - " \"comment_count\": 0\n", - " },\n", - " \"data\": null,\n", - " \"notes\": null,\n", - " \"flag\": [],\n", - " \"is_group_assignment\": false,\n", - " \"geometry\": null,\n", - " \"is_movement\": false,\n", - " \"quick\": [\n", - " \"harvest\"\n", - " ],\n", - " \"lot_number\": null\n", - " },\n", - " \"relationships\": {\n", - " \"log_type\": {\n", - " \"data\": {\n", - " \"type\": \"log_type--log_type\",\n", - " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": \"harvest\"\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/log_type?resourceVersion=id%3A147\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/relationships/log_type?resourceVersion=id%3A147\"\n", - " }\n", - " }\n", - " },\n", - " \"revision_user\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/revision_user?resourceVersion=id%3A147\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/relationships/revision_user?resourceVersion=id%3A147\"\n", - " }\n", - " }\n", - " },\n", - " \"uid\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/uid?resourceVersion=id%3A147\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/relationships/uid?resourceVersion=id%3A147\"\n", - " }\n", - " }\n", - " },\n", - " \"file\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/file?resourceVersion=id%3A147\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/relationships/file?resourceVersion=id%3A147\"\n", - " }\n", - " }\n", - " },\n", - " \"image\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/image?resourceVersion=id%3A147\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/relationships/image?resourceVersion=id%3A147\"\n", - " }\n", - " }\n", - " },\n", - " \"group\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/group?resourceVersion=id%3A147\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/relationships/group?resourceVersion=id%3A147\"\n", - " }\n", - " }\n", - " },\n", - " \"location\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/location?resourceVersion=id%3A147\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/relationships/location?resourceVersion=id%3A147\"\n", - " }\n", - " }\n", - " },\n", - " \"asset\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--plant\",\n", - " \"id\": \"71c136e3-fae0-40a6-b3d7-8e1581ee4882\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 69\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/asset?resourceVersion=id%3A147\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/relationships/asset?resourceVersion=id%3A147\"\n", - " }\n", - " }\n", - " },\n", - " \"category\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/category?resourceVersion=id%3A147\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/relationships/category?resourceVersion=id%3A147\"\n", - " }\n", - " }\n", - " },\n", - " \"quantity\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"quantity--standard\",\n", - " \"id\": \"389fb6ec-bea8-43dd-b5cd-46c675fc2761\",\n", - " \"meta\": {\n", - " \"target_revision_id\": 45,\n", - " \"drupal_internal__target_id\": 35\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/quantity?resourceVersion=id%3A147\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/relationships/quantity?resourceVersion=id%3A147\"\n", - " }\n", - " }\n", - " },\n", - " \"owner\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/owner?resourceVersion=id%3A147\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/relationships/owner?resourceVersion=id%3A147\"\n", - " }\n", - " }\n", - " },\n", - " \"equipment\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--equipment\",\n", - " \"id\": \"2dc81b87-e997-4cb4-a1ff-fd464b473b3b\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 80\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/equipment?resourceVersion=id%3A147\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/7159b3fe-bf3b-4fcc-9438-1ed0b1971937/relationships/equipment?resourceVersion=id%3A147\"\n", - " }\n", - " }\n", - " }\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"log--harvest\",\n", - " \"id\": \"16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd\",\n", - " \"links\": {\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd?resourceVersion=id%3A167\"\n", - " }\n", - " },\n", - " \"attributes\": {\n", - " \"drupal_internal__id\": 64,\n", - " \"drupal_internal__revision_id\": 167,\n", - " \"langcode\": \"en\",\n", - " \"revision_created\": \"2024-09-27T13:52:33+00:00\",\n", - " \"revision_log_message\": null,\n", - " \"name\": \"Harvest log 64\",\n", - " \"timestamp\": \"2024-09-27T13:52:31+00:00\",\n", - " \"status\": \"done\",\n", - " \"created\": \"2024-09-27T13:52:33+00:00\",\n", - " \"changed\": \"2024-09-27T13:52:33+00:00\",\n", - " \"default_langcode\": true,\n", - " \"revision_translation_affected\": true,\n", - " \"comment\": {\n", - " \"status\": 2,\n", - " \"cid\": 0,\n", - " \"last_comment_timestamp\": 1727445153,\n", - " \"last_comment_name\": null,\n", - " \"last_comment_uid\": 1,\n", - " \"comment_count\": 0\n", - " },\n", - " \"data\": null,\n", - " \"notes\": null,\n", - " \"flag\": [],\n", - " \"is_group_assignment\": null,\n", - " \"geometry\": null,\n", - " \"is_movement\": false,\n", - " \"quick\": [\n", - " \"harvest\"\n", - " ],\n", - " \"lot_number\": null\n", - " },\n", - " \"relationships\": {\n", - " \"log_type\": {\n", - " \"data\": {\n", - " \"type\": \"log_type--log_type\",\n", - " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": \"harvest\"\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/log_type?resourceVersion=id%3A167\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/relationships/log_type?resourceVersion=id%3A167\"\n", - " }\n", - " }\n", - " },\n", - " \"revision_user\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/revision_user?resourceVersion=id%3A167\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/relationships/revision_user?resourceVersion=id%3A167\"\n", - " }\n", - " }\n", - " },\n", - " \"uid\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/uid?resourceVersion=id%3A167\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/relationships/uid?resourceVersion=id%3A167\"\n", - " }\n", - " }\n", - " },\n", - " \"file\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/file?resourceVersion=id%3A167\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/relationships/file?resourceVersion=id%3A167\"\n", - " }\n", - " }\n", - " },\n", - " \"image\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/image?resourceVersion=id%3A167\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/relationships/image?resourceVersion=id%3A167\"\n", - " }\n", - " }\n", - " },\n", - " \"group\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/group?resourceVersion=id%3A167\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/relationships/group?resourceVersion=id%3A167\"\n", - " }\n", - " }\n", - " },\n", - " \"location\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/location?resourceVersion=id%3A167\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/relationships/location?resourceVersion=id%3A167\"\n", - " }\n", - " }\n", - " },\n", - " \"asset\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--plant\",\n", - " \"id\": \"71c136e3-fae0-40a6-b3d7-8e1581ee4882\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 69\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/asset?resourceVersion=id%3A167\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/relationships/asset?resourceVersion=id%3A167\"\n", - " }\n", - " }\n", - " },\n", - " \"category\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/category?resourceVersion=id%3A167\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/relationships/category?resourceVersion=id%3A167\"\n", - " }\n", - " }\n", - " },\n", - " \"quantity\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"quantity--standard\",\n", - " \"id\": \"cc61792b-ef87-4d1a-b7f4-ee63d7c85846\",\n", - " \"meta\": {\n", - " \"target_revision_id\": 66,\n", - " \"drupal_internal__target_id\": 46\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/quantity?resourceVersion=id%3A167\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/relationships/quantity?resourceVersion=id%3A167\"\n", - " }\n", - " }\n", - " },\n", - " \"owner\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/owner?resourceVersion=id%3A167\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/relationships/owner?resourceVersion=id%3A167\"\n", - " }\n", - " }\n", - " },\n", - " \"equipment\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--equipment\",\n", - " \"id\": \"5faba68c-aa10-45b4-b1e0-d687ef1a8562\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 79\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/equipment?resourceVersion=id%3A167\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/16a3cdd0-a9fb-403a-8e0b-1f390cefe0cd/relationships/equipment?resourceVersion=id%3A167\"\n", - " }\n", - " }\n", - " }\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"log--harvest\",\n", - " \"id\": \"c39d4bc4-4bcb-408c-b2b6-018901dd7e74\",\n", - " \"links\": {\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74?resourceVersion=id%3A169\"\n", - " }\n", - " },\n", - " \"attributes\": {\n", - " \"drupal_internal__id\": 65,\n", - " \"drupal_internal__revision_id\": 169,\n", - " \"langcode\": \"en\",\n", - " \"revision_created\": \"2024-09-27T13:53:09+00:00\",\n", - " \"revision_log_message\": null,\n", - " \"name\": \"Harvest log 65\",\n", - " \"timestamp\": \"2024-09-27T13:52:34+00:00\",\n", - " \"status\": \"done\",\n", - " \"created\": \"2024-09-27T13:53:09+00:00\",\n", - " \"changed\": \"2024-09-27T13:53:09+00:00\",\n", - " \"default_langcode\": true,\n", - " \"revision_translation_affected\": true,\n", - " \"comment\": {\n", - " \"status\": 2,\n", - " \"cid\": 0,\n", - " \"last_comment_timestamp\": 1727445189,\n", - " \"last_comment_name\": null,\n", - " \"last_comment_uid\": 1,\n", - " \"comment_count\": 0\n", - " },\n", - " \"data\": null,\n", - " \"notes\": null,\n", - " \"flag\": [],\n", - " \"is_group_assignment\": null,\n", - " \"geometry\": null,\n", - " \"is_movement\": false,\n", - " \"quick\": [\n", - " \"harvest\"\n", - " ],\n", - " \"lot_number\": null\n", - " },\n", - " \"relationships\": {\n", - " \"log_type\": {\n", - " \"data\": {\n", - " \"type\": \"log_type--log_type\",\n", - " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": \"harvest\"\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/log_type?resourceVersion=id%3A169\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/relationships/log_type?resourceVersion=id%3A169\"\n", - " }\n", - " }\n", - " },\n", - " \"revision_user\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/revision_user?resourceVersion=id%3A169\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/relationships/revision_user?resourceVersion=id%3A169\"\n", - " }\n", - " }\n", - " },\n", - " \"uid\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/uid?resourceVersion=id%3A169\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/relationships/uid?resourceVersion=id%3A169\"\n", - " }\n", - " }\n", - " },\n", - " \"file\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/file?resourceVersion=id%3A169\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/relationships/file?resourceVersion=id%3A169\"\n", - " }\n", - " }\n", - " },\n", - " \"image\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/image?resourceVersion=id%3A169\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/relationships/image?resourceVersion=id%3A169\"\n", - " }\n", - " }\n", - " },\n", - " \"group\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/group?resourceVersion=id%3A169\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/relationships/group?resourceVersion=id%3A169\"\n", - " }\n", - " }\n", - " },\n", - " \"location\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/location?resourceVersion=id%3A169\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/relationships/location?resourceVersion=id%3A169\"\n", - " }\n", - " }\n", - " },\n", - " \"asset\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--plant\",\n", - " \"id\": \"71c136e3-fae0-40a6-b3d7-8e1581ee4882\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 69\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/asset?resourceVersion=id%3A169\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/relationships/asset?resourceVersion=id%3A169\"\n", - " }\n", - " }\n", - " },\n", - " \"category\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/category?resourceVersion=id%3A169\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/relationships/category?resourceVersion=id%3A169\"\n", - " }\n", - " }\n", - " },\n", - " \"quantity\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"quantity--standard\",\n", - " \"id\": \"8b48efef-fad3-49b3-a441-f82ff89bf577\",\n", - " \"meta\": {\n", - " \"target_revision_id\": 67,\n", - " \"drupal_internal__target_id\": 47\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/quantity?resourceVersion=id%3A169\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/relationships/quantity?resourceVersion=id%3A169\"\n", - " }\n", - " }\n", - " },\n", - " \"owner\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/owner?resourceVersion=id%3A169\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/relationships/owner?resourceVersion=id%3A169\"\n", - " }\n", - " }\n", - " },\n", - " \"equipment\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--equipment\",\n", - " \"id\": \"5faba68c-aa10-45b4-b1e0-d687ef1a8562\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 79\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/equipment?resourceVersion=id%3A169\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/c39d4bc4-4bcb-408c-b2b6-018901dd7e74/relationships/equipment?resourceVersion=id%3A169\"\n", - " }\n", - " }\n", - " }\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"log--harvest\",\n", - " \"id\": \"ff8a1498-8057-4ede-be2a-a82b88f893ba\",\n", - " \"links\": {\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba?resourceVersion=id%3A173\"\n", - " }\n", - " },\n", - " \"attributes\": {\n", - " \"drupal_internal__id\": 67,\n", - " \"drupal_internal__revision_id\": 173,\n", - " \"langcode\": \"en\",\n", - " \"revision_created\": \"2024-09-27T13:56:59+00:00\",\n", - " \"revision_log_message\": null,\n", - " \"name\": \"Harvest log 67\",\n", - " \"timestamp\": \"2024-09-27T13:56:30+00:00\",\n", - " \"status\": \"done\",\n", - " \"created\": \"2024-09-27T13:56:59+00:00\",\n", - " \"changed\": \"2024-09-27T13:56:59+00:00\",\n", - " \"default_langcode\": true,\n", - " \"revision_translation_affected\": true,\n", - " \"comment\": {\n", - " \"status\": 2,\n", - " \"cid\": 0,\n", - " \"last_comment_timestamp\": 1727445419,\n", - " \"last_comment_name\": null,\n", - " \"last_comment_uid\": 1,\n", - " \"comment_count\": 0\n", - " },\n", - " \"data\": null,\n", - " \"notes\": null,\n", - " \"flag\": [],\n", - " \"is_group_assignment\": null,\n", - " \"geometry\": null,\n", - " \"is_movement\": false,\n", - " \"quick\": [\n", - " \"harvest\"\n", - " ],\n", - " \"lot_number\": null\n", - " },\n", - " \"relationships\": {\n", - " \"log_type\": {\n", - " \"data\": {\n", - " \"type\": \"log_type--log_type\",\n", - " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": \"harvest\"\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/log_type?resourceVersion=id%3A173\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/relationships/log_type?resourceVersion=id%3A173\"\n", - " }\n", - " }\n", - " },\n", - " \"revision_user\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/revision_user?resourceVersion=id%3A173\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/relationships/revision_user?resourceVersion=id%3A173\"\n", - " }\n", - " }\n", - " },\n", - " \"uid\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/uid?resourceVersion=id%3A173\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/relationships/uid?resourceVersion=id%3A173\"\n", - " }\n", - " }\n", - " },\n", - " \"file\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/file?resourceVersion=id%3A173\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/relationships/file?resourceVersion=id%3A173\"\n", - " }\n", - " }\n", - " },\n", - " \"image\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/image?resourceVersion=id%3A173\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/relationships/image?resourceVersion=id%3A173\"\n", - " }\n", - " }\n", - " },\n", - " \"group\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/group?resourceVersion=id%3A173\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/relationships/group?resourceVersion=id%3A173\"\n", - " }\n", - " }\n", - " },\n", - " \"location\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/location?resourceVersion=id%3A173\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/relationships/location?resourceVersion=id%3A173\"\n", - " }\n", - " }\n", - " },\n", - " \"asset\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--plant\",\n", - " \"id\": \"32d0496d-09ca-478f-b1a4-a34c3625b0a1\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 87\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/asset?resourceVersion=id%3A173\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/relationships/asset?resourceVersion=id%3A173\"\n", - " }\n", - " }\n", - " },\n", - " \"category\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/category?resourceVersion=id%3A173\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/relationships/category?resourceVersion=id%3A173\"\n", - " }\n", - " }\n", - " },\n", - " \"quantity\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"quantity--standard\",\n", - " \"id\": \"4b75e249-ab48-4d63-9424-236e30ec12f2\",\n", - " \"meta\": {\n", - " \"target_revision_id\": 69,\n", - " \"drupal_internal__target_id\": 49\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/quantity?resourceVersion=id%3A173\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/relationships/quantity?resourceVersion=id%3A173\"\n", - " }\n", - " }\n", - " },\n", - " \"owner\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/owner?resourceVersion=id%3A173\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/relationships/owner?resourceVersion=id%3A173\"\n", - " }\n", - " }\n", - " },\n", - " \"equipment\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--equipment\",\n", - " \"id\": \"5faba68c-aa10-45b4-b1e0-d687ef1a8562\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 79\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/equipment?resourceVersion=id%3A173\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/ff8a1498-8057-4ede-be2a-a82b88f893ba/relationships/equipment?resourceVersion=id%3A173\"\n", - " }\n", - " }\n", - " }\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"log--harvest\",\n", - " \"id\": \"e8c4b960-6947-426c-8d07-4ab4a1f11578\",\n", - " \"links\": {\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578?resourceVersion=id%3A177\"\n", - " }\n", - " },\n", - " \"attributes\": {\n", - " \"drupal_internal__id\": 69,\n", - " \"drupal_internal__revision_id\": 177,\n", - " \"langcode\": \"en\",\n", - " \"revision_created\": \"2024-09-27T13:57:37+00:00\",\n", - " \"revision_log_message\": null,\n", - " \"name\": \"Harvest log 69\",\n", - " \"timestamp\": \"2024-09-27T13:57:00+00:00\",\n", - " \"status\": \"done\",\n", - " \"created\": \"2024-09-27T13:57:37+00:00\",\n", - " \"changed\": \"2024-09-27T13:57:37+00:00\",\n", - " \"default_langcode\": true,\n", - " \"revision_translation_affected\": true,\n", - " \"comment\": {\n", - " \"status\": 2,\n", - " \"cid\": 0,\n", - " \"last_comment_timestamp\": 1727445457,\n", - " \"last_comment_name\": null,\n", - " \"last_comment_uid\": 1,\n", - " \"comment_count\": 0\n", - " },\n", - " \"data\": null,\n", - " \"notes\": null,\n", - " \"flag\": [],\n", - " \"is_group_assignment\": null,\n", - " \"geometry\": null,\n", - " \"is_movement\": false,\n", - " \"quick\": [\n", - " \"harvest\"\n", - " ],\n", - " \"lot_number\": null\n", - " },\n", - " \"relationships\": {\n", - " \"log_type\": {\n", - " \"data\": {\n", - " \"type\": \"log_type--log_type\",\n", - " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": \"harvest\"\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/log_type?resourceVersion=id%3A177\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/relationships/log_type?resourceVersion=id%3A177\"\n", - " }\n", - " }\n", - " },\n", - " \"revision_user\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/revision_user?resourceVersion=id%3A177\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/relationships/revision_user?resourceVersion=id%3A177\"\n", - " }\n", - " }\n", - " },\n", - " \"uid\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/uid?resourceVersion=id%3A177\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/relationships/uid?resourceVersion=id%3A177\"\n", - " }\n", - " }\n", - " },\n", - " \"file\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/file?resourceVersion=id%3A177\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/relationships/file?resourceVersion=id%3A177\"\n", - " }\n", - " }\n", - " },\n", - " \"image\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/image?resourceVersion=id%3A177\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/relationships/image?resourceVersion=id%3A177\"\n", - " }\n", - " }\n", - " },\n", - " \"group\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/group?resourceVersion=id%3A177\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/relationships/group?resourceVersion=id%3A177\"\n", - " }\n", - " }\n", - " },\n", - " \"location\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/location?resourceVersion=id%3A177\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/relationships/location?resourceVersion=id%3A177\"\n", - " }\n", - " }\n", - " },\n", - " \"asset\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--plant\",\n", - " \"id\": \"32d0496d-09ca-478f-b1a4-a34c3625b0a1\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 87\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/asset?resourceVersion=id%3A177\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/relationships/asset?resourceVersion=id%3A177\"\n", - " }\n", - " }\n", - " },\n", - " \"category\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/category?resourceVersion=id%3A177\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/relationships/category?resourceVersion=id%3A177\"\n", - " }\n", - " }\n", - " },\n", - " \"quantity\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"quantity--standard\",\n", - " \"id\": \"413d01f2-8336-4031-89de-766af5c8fee5\",\n", - " \"meta\": {\n", - " \"target_revision_id\": 71,\n", - " \"drupal_internal__target_id\": 51\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/quantity?resourceVersion=id%3A177\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/relationships/quantity?resourceVersion=id%3A177\"\n", - " }\n", - " }\n", - " },\n", - " \"owner\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/owner?resourceVersion=id%3A177\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/relationships/owner?resourceVersion=id%3A177\"\n", - " }\n", - " }\n", - " },\n", - " \"equipment\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--equipment\",\n", - " \"id\": \"5faba68c-aa10-45b4-b1e0-d687ef1a8562\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 79\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/equipment?resourceVersion=id%3A177\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/e8c4b960-6947-426c-8d07-4ab4a1f11578/relationships/equipment?resourceVersion=id%3A177\"\n", - " }\n", - " }\n", - " }\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"log--harvest\",\n", - " \"id\": \"a1c2eae4-5543-40ee-98b5-6ca92fc54b5a\",\n", - " \"links\": {\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a?resourceVersion=id%3A181\"\n", - " }\n", - " },\n", - " \"attributes\": {\n", - " \"drupal_internal__id\": 71,\n", - " \"drupal_internal__revision_id\": 181,\n", - " \"langcode\": \"en\",\n", - " \"revision_created\": \"2024-09-27T13:58:36+00:00\",\n", - " \"revision_log_message\": null,\n", - " \"name\": \"Harvest log 71\",\n", - " \"timestamp\": \"2024-09-27T13:58:03+00:00\",\n", - " \"status\": \"done\",\n", - " \"created\": \"2024-09-27T13:58:36+00:00\",\n", - " \"changed\": \"2024-09-27T13:58:36+00:00\",\n", - " \"default_langcode\": true,\n", - " \"revision_translation_affected\": true,\n", - " \"comment\": {\n", - " \"status\": 2,\n", - " \"cid\": 0,\n", - " \"last_comment_timestamp\": 1727445516,\n", - " \"last_comment_name\": null,\n", - " \"last_comment_uid\": 1,\n", - " \"comment_count\": 0\n", - " },\n", - " \"data\": null,\n", - " \"notes\": null,\n", - " \"flag\": [],\n", - " \"is_group_assignment\": null,\n", - " \"geometry\": null,\n", - " \"is_movement\": false,\n", - " \"quick\": [\n", - " \"harvest\"\n", - " ],\n", - " \"lot_number\": null\n", - " },\n", - " \"relationships\": {\n", - " \"log_type\": {\n", - " \"data\": {\n", - " \"type\": \"log_type--log_type\",\n", - " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": \"harvest\"\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/log_type?resourceVersion=id%3A181\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/relationships/log_type?resourceVersion=id%3A181\"\n", - " }\n", - " }\n", - " },\n", - " \"revision_user\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/revision_user?resourceVersion=id%3A181\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/relationships/revision_user?resourceVersion=id%3A181\"\n", - " }\n", - " }\n", - " },\n", - " \"uid\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/uid?resourceVersion=id%3A181\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/relationships/uid?resourceVersion=id%3A181\"\n", - " }\n", - " }\n", - " },\n", - " \"file\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/file?resourceVersion=id%3A181\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/relationships/file?resourceVersion=id%3A181\"\n", - " }\n", - " }\n", - " },\n", - " \"image\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/image?resourceVersion=id%3A181\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/relationships/image?resourceVersion=id%3A181\"\n", - " }\n", - " }\n", - " },\n", - " \"group\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/group?resourceVersion=id%3A181\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/relationships/group?resourceVersion=id%3A181\"\n", - " }\n", - " }\n", - " },\n", - " \"location\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/location?resourceVersion=id%3A181\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/relationships/location?resourceVersion=id%3A181\"\n", - " }\n", - " }\n", - " },\n", - " \"asset\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--plant\",\n", - " \"id\": \"32d0496d-09ca-478f-b1a4-a34c3625b0a1\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 87\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/asset?resourceVersion=id%3A181\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/relationships/asset?resourceVersion=id%3A181\"\n", - " }\n", - " }\n", - " },\n", - " \"category\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/category?resourceVersion=id%3A181\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/relationships/category?resourceVersion=id%3A181\"\n", - " }\n", - " }\n", - " },\n", - " \"quantity\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"quantity--standard\",\n", - " \"id\": \"6b572297-ecae-4efa-aaa5-945a4413e33f\",\n", - " \"meta\": {\n", - " \"target_revision_id\": 73,\n", - " \"drupal_internal__target_id\": 53\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/quantity?resourceVersion=id%3A181\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/relationships/quantity?resourceVersion=id%3A181\"\n", - " }\n", - " }\n", - " },\n", - " \"owner\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/owner?resourceVersion=id%3A181\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/relationships/owner?resourceVersion=id%3A181\"\n", - " }\n", - " }\n", - " },\n", - " \"equipment\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--equipment\",\n", - " \"id\": \"5faba68c-aa10-45b4-b1e0-d687ef1a8562\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 79\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/equipment?resourceVersion=id%3A181\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/a1c2eae4-5543-40ee-98b5-6ca92fc54b5a/relationships/equipment?resourceVersion=id%3A181\"\n", - " }\n", - " }\n", - " }\n", - " }\n", - " },\n", - " {\n", - " \"type\": \"log--harvest\",\n", - " \"id\": \"2058bca2-537b-49cb-bcc0-c33496384c2b\",\n", - " \"links\": {\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b?resourceVersion=id%3A185\"\n", - " }\n", - " },\n", - " \"attributes\": {\n", - " \"drupal_internal__id\": 73,\n", - " \"drupal_internal__revision_id\": 185,\n", - " \"langcode\": \"en\",\n", - " \"revision_created\": \"2024-09-27T15:30:13+00:00\",\n", - " \"revision_log_message\": null,\n", - " \"name\": \"Harvest log 73\",\n", - " \"timestamp\": \"2024-09-27T15:29:38+00:00\",\n", - " \"status\": \"done\",\n", - " \"created\": \"2024-09-27T15:30:13+00:00\",\n", - " \"changed\": \"2024-09-27T15:30:13+00:00\",\n", - " \"default_langcode\": true,\n", - " \"revision_translation_affected\": true,\n", - " \"comment\": {\n", - " \"status\": 2,\n", - " \"cid\": 0,\n", - " \"last_comment_timestamp\": 1727451013,\n", - " \"last_comment_name\": null,\n", - " \"last_comment_uid\": 1,\n", - " \"comment_count\": 0\n", - " },\n", - " \"data\": null,\n", - " \"notes\": null,\n", - " \"flag\": [],\n", - " \"is_group_assignment\": null,\n", - " \"geometry\": null,\n", - " \"is_movement\": false,\n", - " \"quick\": [\n", - " \"harvest\"\n", - " ],\n", - " \"lot_number\": null\n", - " },\n", - " \"relationships\": {\n", - " \"log_type\": {\n", - " \"data\": {\n", - " \"type\": \"log_type--log_type\",\n", - " \"id\": \"bb376a51-4586-46c8-b1cd-cdeea278599a\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": \"harvest\"\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/log_type?resourceVersion=id%3A185\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/relationships/log_type?resourceVersion=id%3A185\"\n", - " }\n", - " }\n", - " },\n", - " \"revision_user\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/revision_user?resourceVersion=id%3A185\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/relationships/revision_user?resourceVersion=id%3A185\"\n", - " }\n", - " }\n", - " },\n", - " \"uid\": {\n", - " \"data\": {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " },\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/uid?resourceVersion=id%3A185\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/relationships/uid?resourceVersion=id%3A185\"\n", - " }\n", - " }\n", - " },\n", - " \"file\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/file?resourceVersion=id%3A185\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/relationships/file?resourceVersion=id%3A185\"\n", - " }\n", - " }\n", - " },\n", - " \"image\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/image?resourceVersion=id%3A185\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/relationships/image?resourceVersion=id%3A185\"\n", - " }\n", - " }\n", - " },\n", - " \"group\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/group?resourceVersion=id%3A185\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/relationships/group?resourceVersion=id%3A185\"\n", - " }\n", - " }\n", - " },\n", - " \"location\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/location?resourceVersion=id%3A185\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/relationships/location?resourceVersion=id%3A185\"\n", - " }\n", - " }\n", - " },\n", - " \"asset\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--plant\",\n", - " \"id\": \"ac2eb49e-00f8-489b-8372-0492c6da649f\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 75\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/asset?resourceVersion=id%3A185\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/relationships/asset?resourceVersion=id%3A185\"\n", - " }\n", - " }\n", - " },\n", - " \"category\": {\n", - " \"data\": [],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/category?resourceVersion=id%3A185\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/relationships/category?resourceVersion=id%3A185\"\n", - " }\n", - " }\n", - " },\n", - " \"quantity\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"quantity--standard\",\n", - " \"id\": \"9f81cce2-72f6-48a4-9ec3-62d6b2cbe6f7\",\n", - " \"meta\": {\n", - " \"target_revision_id\": 75,\n", - " \"drupal_internal__target_id\": 55\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/quantity?resourceVersion=id%3A185\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/relationships/quantity?resourceVersion=id%3A185\"\n", - " }\n", - " }\n", - " },\n", - " \"owner\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"user--user\",\n", - " \"id\": \"a93c675c-72b1-40ea-90ae-41df789b7607\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 1\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/owner?resourceVersion=id%3A185\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/relationships/owner?resourceVersion=id%3A185\"\n", - " }\n", - " }\n", - " },\n", - " \"equipment\": {\n", - " \"data\": [\n", - " {\n", - " \"type\": \"asset--equipment\",\n", - " \"id\": \"2dc81b87-e997-4cb4-a1ff-fd464b473b3b\",\n", - " \"meta\": {\n", - " \"drupal_internal__target_id\": 80\n", - " }\n", - " }\n", - " ],\n", - " \"links\": {\n", - " \"related\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/equipment?resourceVersion=id%3A185\"\n", - " },\n", - " \"self\": {\n", - " \"href\": \"https://farmos.wagframe.duckdns.org/api/log/harvest/2058bca2-537b-49cb-bcc0-c33496384c2b/relationships/equipment?resourceVersion=id%3A185\"\n", - " }\n", - " }\n", - " }\n", - " }\n", - " }\n", - "]\n" - ] - } - ], - "source": [ - "from farmOS import farmOS\n", - "\n", - "hostname = \"farmos.wagframe.duckdns.org\"\n", - "username = \"matze\"\n", - "password = \"m6ChEHx5gMqgctr8dpb3fhATZbQS8hv4\"\n", - "\n", - "# Create the client.\n", - "farm_client = farmOS(\n", - " hostname=hostname,\n", - " client_id = \"jupyter\", # Optional. The default oauth client_id \"farm\" is enabled on all farmOS servers.\n", - ")\n", - "import json\n", - "# Authorize the client, save the token.\n", - "# A scope can be specified, but will default to the default scope set when initializing the client.\n", - "token = farm_client.authorize(username, password)\n", - "farm_client.info()\n", - "response = farm_client.resource.get('log', 'harvest')\n", - "harvest_logs = response['data'] \n", - "\n", - "\n", - "print (json.dumps(harvest_logs , indent=4))\n", - "\n", - "\n", - "#print (json.dumps(harvest_logs [\"jsonapi\"] [\"meta\"] , indent=4))\n", - "\n", - "#print (json.dumps(harvest_logs [\"type\"] , indent=4))\n", - "\n", - "#print (json.dumps(harvest_logs [\"links\"] [\"self\"] [\"href\"], indent=4))\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -}