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",
- " Name | \n",
- " Status | \n",
- " Created | \n",
- " Area (ha) | \n",
- " Asset type | \n",
- " Is fixed | \n",
- " land_type | \n",
- " Is location | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 0 | \n",
- " Helmacker | \n",
- " active | \n",
- " 06.05.2024 | \n",
- " 3.0321 | \n",
- " asset--land | \n",
- " True | \n",
- " field | \n",
- " True | \n",
- "
\n",
- " \n",
- " | 1 | \n",
- " Neureut | \n",
- " active | \n",
- " 06.05.2024 | \n",
- " 4.1875 | \n",
- " asset--land | \n",
- " True | \n",
- " field | \n",
- " True | \n",
- "
\n",
- " \n",
- " | 2 | \n",
- " Schusterinsel | \n",
- " active | \n",
- " 06.05.2024 | \n",
- " 4.9563 | \n",
- " asset--land | \n",
- " True | \n",
- " field | \n",
- " True | \n",
- "
\n",
- " \n",
- " | 3 | \n",
- " Kesselacker | \n",
- " active | \n",
- " 06.05.2024 | \n",
- " 2.1625 | \n",
- " asset--land | \n",
- " True | \n",
- " field | \n",
- " True | \n",
- "
\n",
- " \n",
- " | 4 | \n",
- " Kapelle | \n",
- " active | \n",
- " 06.05.2024 | \n",
- " 5.6771 | \n",
- " asset--land | \n",
- " True | \n",
- " field | \n",
- " True | \n",
- "
\n",
- " \n",
- " | 5 | \n",
- " Loehle | \n",
- " active | \n",
- " 06.05.2024 | \n",
- " 2.0614 | \n",
- " asset--land | \n",
- " True | \n",
- " field | \n",
- " True | \n",
- "
\n",
- " \n",
- " | 6 | \n",
- " Kirchenberg | \n",
- " active | \n",
- " 06.05.2024 | \n",
- " 2.4701 | \n",
- " asset--land | \n",
- " True | \n",
- " field | \n",
- " True | \n",
- "
\n",
- " \n",
- " | 7 | \n",
- " Nachtweide | \n",
- " active | \n",
- " 06.05.2024 | \n",
- " 3.0704 | \n",
- " asset--land | \n",
- " True | \n",
- " field | \n",
- " True | \n",
- "
\n",
- " \n",
- " | 8 | \n",
- " Steinacker | \n",
- " active | \n",
- " 06.05.2024 | \n",
- " 2.6109 | \n",
- " asset--land | \n",
- " True | \n",
- " field | \n",
- " True | \n",
- "
\n",
- " \n",
- " | 9 | \n",
- " Siegelwoerth | \n",
- " active | \n",
- " 06.05.2024 | \n",
- " 0.7707 | \n",
- " asset--land | \n",
- " True | \n",
- " field | \n",
- " True | \n",
- "
\n",
- " \n",
- " | 10 | \n",
- " Waethle | \n",
- " active | \n",
- " 06.05.2024 | \n",
- " 1.4308 | \n",
- " asset--land | \n",
- " True | \n",
- " field | \n",
- " True | \n",
- "
\n",
- " \n",
- " | 11 | \n",
- " Wolfsfeld | \n",
- " active | \n",
- " 06.05.2024 | \n",
- " 3.5169 | \n",
- " asset--land | \n",
- " True | \n",
- " field | \n",
- " True | \n",
- "
\n",
- " \n",
- " | 12 | \n",
- " Grosser Acker | \n",
- " active | \n",
- " 06.05.2024 | \n",
- " 12.5316 | \n",
- " asset--land | \n",
- " True | \n",
- " field | \n",
- " True | \n",
- "
\n",
- " \n",
- "
\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",
- " Name | \n",
- " Status | \n",
- " Created | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 0 | \n",
- " Innovert Raps Input 24/25 | \n",
- " done | \n",
- " 14.10.2024 | \n",
- "
\n",
- " \n",
- "
\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",
- " Name | \n",
- " Timestamp | \n",
- " Plant | \n",
- " Status | \n",
- " Revision Created | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 0 | \n",
- " W-Raps Helmacker Harvest 24/25 | \n",
- " 2024-10-20T10:11:15+00:00 | \n",
- " W-Raps Helmacker Plant 24/25 | \n",
- " done | \n",
- " 2024-10-21T10:56:27+00:00 | \n",
- "
\n",
- " \n",
- "
\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",
+ " PlantStatus | \n",
+ " SeedingLog AreaMeasure Quant1 | \n",
+ " SeedingLog Area Quant1 | \n",
+ " SeedingLog AreaMeasure Quant0 | \n",
+ " SeedingLog AreaDecimal Quant0 | \n",
+ " Timestamp HarvestLog | \n",
+ " LogName HarvestLog | \n",
+ " LogStatus HarvestLog | \n",
+ " IsMovement HarvestLog | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " active | \n",
+ " area | \n",
+ " 3.020000 | \n",
+ " weight | \n",
+ " 50.000000 | \n",
+ " 20.10.2024 | \n",
+ " W-Raps Helmacker Harvest 24/25 | \n",
+ " done | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " PlantStatus | \n",
+ " SeedingLog AreaMeasure Quant1 | \n",
+ " SeedingLog Area Quant1 | \n",
+ " SeedingLog AreaMeasure Quant0 | \n",
+ " SeedingLog AreaDecimal Quant0 | \n",
+ " Timestamp HarvestLog | \n",
+ " LogName HarvestLog | \n",
+ " LogStatus HarvestLog | \n",
+ " IsMovement HarvestLog | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " active | \n",
+ " area | \n",
+ " 4.500000 | \n",
+ " weight | \n",
+ " 66.000000 | \n",
+ " 28.10.2024 | \n",
+ " W-Raps Nachtweide Harvest 24/25 | \n",
+ " done | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " PlantStatus | \n",
+ " SeedingLog AreaMeasure Quant1 | \n",
+ " SeedingLog Area Quant1 | \n",
+ " SeedingLog WeightMeasure Quant0 | \n",
+ " SeedingLog WeightDecimal Quant0 | \n",
+ " Timestamp HarvestLog | \n",
+ " LogName HarvestLog | \n",
+ " LogStatus HarvestLog | \n",
+ " IsMovement HarvestLog | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " active | \n",
+ " area | \n",
+ " 3.020000 | \n",
+ " weight | \n",
+ " 50.000000 | \n",
+ " 20.10.2024 | \n",
+ " W-Raps Helmacker Harvest 24/25 | \n",
+ " done | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " PlantStatus | \n",
+ " SeedingLog AreaMeasure Quant1 | \n",
+ " SeedingLog Area Quant1 | \n",
+ " SeedingLog WeightMeasure Quant0 | \n",
+ " SeedingLog WeightDecimal Quant0 | \n",
+ " Timestamp HarvestLog | \n",
+ " LogName HarvestLog | \n",
+ " LogStatus HarvestLog | \n",
+ " IsMovement HarvestLog | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " active | \n",
+ " area | \n",
+ " 4.500000 | \n",
+ " weight | \n",
+ " 66.000000 | \n",
+ " 28.10.2024 | \n",
+ " W-Raps Nachtweide Harvest 24/25 | \n",
+ " done | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ "
\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
-}