Compare commits
33 Commits
37e53ddb2b
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e3cc967a71 | ||
|
|
fca3def892 | ||
| 32c9bf4e66 | |||
|
|
f73edd7692 | ||
| 0bb91c25b7 | |||
|
|
6c1e9f63f2 | ||
| a2fbb6bf20 | |||
| f350685e00 | |||
| ff27f922b8 | |||
| 5c45389af3 | |||
| 7d1ac383ea | |||
|
|
67785960d6 | ||
|
|
f20b7e171f | ||
|
|
ffa81946fc | ||
|
|
742daa1cd8 | ||
| 018a5842d0 | |||
| 275bc49ffd | |||
|
|
0b2ea9650c | ||
| 2d3b93ec61 | |||
| 289062da8d | |||
|
|
17b64357a0 | ||
|
|
775135e6b3 | ||
|
|
0472eb4cfb | ||
|
|
8aa2d1d383 | ||
| 829e4cb608 | |||
| ba5afc852b | |||
|
|
a91a2750c9 | ||
|
|
4358384169 | ||
|
|
79b12d15f0 | ||
| 772acff4e8 | |||
| ae1156bd6c | |||
| 4bfebf2f61 | |||
| 0e212f22a1 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -177,5 +177,4 @@ profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# Remove previous ipynb_checkpoints
|
||||
# git rm -r .ipynb_checkpoints/
|
||||
|
||||
# git rm -r .ipynb_checkpoints/
|
||||
BIN
Datenmodell5.xlsx
Normal file
BIN
Datenmodell5.xlsx
Normal file
Binary file not shown.
923
neofarm/klassendiagramm/classes_neofarm.svg
Normal file
923
neofarm/klassendiagramm/classes_neofarm.svg
Normal file
@@ -0,0 +1,923 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 12.1.2 (0)
|
||||
-->
|
||||
<!-- Title: classes_neofarm Pages: 1 -->
|
||||
<svg width="6468pt" height="405pt"
|
||||
viewBox="0.00 0.00 6467.88 404.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 400.5)">
|
||||
<title>classes_neofarm</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-400.5 6463.88,-400.5 6463.88,4 -4,4"/>
|
||||
<!-- log.Activity -->
|
||||
<g id="node1" class="node">
|
||||
<title>log.Activity</title>
|
||||
<polygon fill="none" stroke="black" points="0,-39 0,-89.5 82,-89.5 82,-39 0,-39"/>
|
||||
<text text-anchor="start" x="8" y="-72.2" font-family="Times,serif" font-size="14.00">Activity</text>
|
||||
<polyline fill="none" stroke="black" points="0,-64.25 82,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="0,-64.25 82,-64.25"/>
|
||||
<text text-anchor="start" x="36.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Log -->
|
||||
<g id="node8" class="node">
|
||||
<title>log.Log</title>
|
||||
<polygon fill="none" stroke="black" points="255.62,-165 255.62,-396 494.38,-396 494.38,-165 255.62,-165"/>
|
||||
<text text-anchor="start" x="362.62" y="-378.7" font-family="Times,serif" font-size="14.00">Log</text>
|
||||
<polyline fill="none" stroke="black" points="255.62,-370.75 494.38,-370.75"/>
|
||||
<text text-anchor="start" x="263.62" y="-353.45" font-family="Times,serif" font-size="14.00">assets : RelationField</text>
|
||||
<text text-anchor="start" x="263.62" y="-336.2" font-family="Times,serif" font-size="14.00">equipment : RelationField</text>
|
||||
<text text-anchor="start" x="263.62" y="-318.95" font-family="Times,serif" font-size="14.00">isMovement : AttributeField</text>
|
||||
<text text-anchor="start" x="263.62" y="-301.7" font-family="Times,serif" font-size="14.00">json_notes : AttributeField</text>
|
||||
<text text-anchor="start" x="263.62" y="-284.45" font-family="Times,serif" font-size="14.00">location : RelationField</text>
|
||||
<text text-anchor="start" x="263.62" y="-267.2" font-family="Times,serif" font-size="14.00">name : AttributeField</text>
|
||||
<text text-anchor="start" x="263.62" y="-249.95" font-family="Times,serif" font-size="14.00">notes</text>
|
||||
<text text-anchor="start" x="263.62" y="-232.7" font-family="Times,serif" font-size="14.00">plant</text>
|
||||
<text text-anchor="start" x="263.62" y="-215.45" font-family="Times,serif" font-size="14.00">quantities : RelationField</text>
|
||||
<text text-anchor="start" x="263.62" y="-198.2" font-family="Times,serif" font-size="14.00">timestamp : AttributeField</text>
|
||||
<polyline fill="none" stroke="black" points="255.62,-190.25 494.38,-190.25"/>
|
||||
<text text-anchor="start" x="370.88" y="-172.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Activity->log.Log -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>log.Activity->log.Log</title>
|
||||
<path fill="none" stroke="black" d="M56.76,-89.8C65.72,-102.44 77.78,-117.47 91,-128.5 136.93,-166.81 194.14,-199.5 245.15,-224.56"/>
|
||||
<polygon fill="none" stroke="black" points="243.38,-227.59 253.91,-228.81 246.44,-221.3 243.38,-227.59"/>
|
||||
</g>
|
||||
<!-- asset.Asset -->
|
||||
<g id="node2" class="node">
|
||||
<title>asset.Asset</title>
|
||||
<polygon fill="none" stroke="black" points="1217.75,-225.38 1217.75,-335.62 1448.25,-335.62 1448.25,-225.38 1217.75,-225.38"/>
|
||||
<text text-anchor="start" x="1312.38" y="-318.32" font-family="Times,serif" font-size="14.00">Asset</text>
|
||||
<polyline fill="none" stroke="black" points="1217.75,-310.38 1448.25,-310.38"/>
|
||||
<text text-anchor="start" x="1225.75" y="-293.07" font-family="Times,serif" font-size="14.00">location : RelationField</text>
|
||||
<text text-anchor="start" x="1225.75" y="-275.82" font-family="Times,serif" font-size="14.00">name : AttributeField</text>
|
||||
<text text-anchor="start" x="1225.75" y="-258.57" font-family="Times,serif" font-size="14.00">timestamp : AttributeField</text>
|
||||
<polyline fill="none" stroke="black" points="1217.75,-250.62 1448.25,-250.62"/>
|
||||
<text text-anchor="start" x="1242.25" y="-233.32" font-family="Times,serif" font-size="14.00">get_logs_of_type(type)</text>
|
||||
</g>
|
||||
<!-- taxonomy.Crop -->
|
||||
<g id="node3" class="node">
|
||||
<title>taxonomy.Crop</title>
|
||||
<polygon fill="none" stroke="black" points="2040,-39 2040,-89.5 2094,-89.5 2094,-39 2040,-39"/>
|
||||
<text text-anchor="start" x="2050.5" y="-72.2" font-family="Times,serif" font-size="14.00">Crop</text>
|
||||
<polyline fill="none" stroke="black" points="2040,-64.25 2094,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="2040,-64.25 2094,-64.25"/>
|
||||
<text text-anchor="start" x="2062.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.Taxonomy -->
|
||||
<g id="node56" class="node">
|
||||
<title>taxonomy.Taxonomy</title>
|
||||
<polygon fill="none" stroke="black" points="2320.38,-242.62 2320.38,-318.38 2509.62,-318.38 2509.62,-242.62 2320.38,-242.62"/>
|
||||
<text text-anchor="start" x="2382" y="-301.07" font-family="Times,serif" font-size="14.00">Taxonomy</text>
|
||||
<polyline fill="none" stroke="black" points="2320.38,-293.12 2509.62,-293.12"/>
|
||||
<text text-anchor="start" x="2328.38" y="-275.82" font-family="Times,serif" font-size="14.00">name : AttributeField</text>
|
||||
<polyline fill="none" stroke="black" points="2320.38,-267.88 2509.62,-267.88"/>
|
||||
<text text-anchor="start" x="2410.88" y="-250.57" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.Crop->taxonomy.Taxonomy -->
|
||||
<g id="edge35" class="edge">
|
||||
<title>taxonomy.Crop->taxonomy.Taxonomy</title>
|
||||
<path fill="none" stroke="black" d="M2076.72,-89.82C2082.75,-102.62 2091.56,-117.8 2103,-128.5 2161.7,-183.41 2244.07,-222.12 2309.44,-246.6"/>
|
||||
<polygon fill="none" stroke="black" points="2308.18,-249.86 2318.78,-250.03 2310.6,-243.29 2308.18,-249.86"/>
|
||||
</g>
|
||||
<!-- asset.Equipment -->
|
||||
<g id="node4" class="node">
|
||||
<title>asset.Equipment</title>
|
||||
<polygon fill="none" stroke="black" points="747.88,-39 747.88,-89.5 838.12,-89.5 838.12,-39 747.88,-39"/>
|
||||
<text text-anchor="start" x="755.88" y="-72.2" font-family="Times,serif" font-size="14.00">Equipment</text>
|
||||
<polyline fill="none" stroke="black" points="747.88,-64.25 838.12,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="747.88,-64.25 838.12,-64.25"/>
|
||||
<text text-anchor="start" x="788.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- asset.Equipment->asset.Asset -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>asset.Equipment->asset.Asset</title>
|
||||
<path fill="none" stroke="black" d="M808.88,-89.87C818.49,-103.01 831.81,-118.49 847,-128.5 956.71,-200.8 1102.95,-240.05 1206.26,-260.26"/>
|
||||
<polygon fill="none" stroke="black" points="1205.42,-263.66 1215.9,-262.11 1206.73,-256.79 1205.42,-263.66"/>
|
||||
</g>
|
||||
<!-- log.Harvest -->
|
||||
<g id="node5" class="node">
|
||||
<title>log.Harvest</title>
|
||||
<polygon fill="none" stroke="black" points="100.12,-39 100.12,-89.5 173.88,-89.5 173.88,-39 100.12,-39"/>
|
||||
<text text-anchor="start" x="108.12" y="-72.2" font-family="Times,serif" font-size="14.00">Harvest</text>
|
||||
<polyline fill="none" stroke="black" points="100.12,-64.25 173.88,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="100.12,-64.25 173.88,-64.25"/>
|
||||
<text text-anchor="start" x="132.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Harvest->log.Log -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>log.Harvest->log.Log</title>
|
||||
<path fill="none" stroke="black" d="M152.58,-89.9C160.88,-102.13 171.7,-116.76 183,-128.5 202.35,-148.59 224.43,-168.32 246.56,-186.56"/>
|
||||
<polygon fill="none" stroke="black" points="244.23,-189.18 254.19,-192.78 248.65,-183.75 244.23,-189.18"/>
|
||||
</g>
|
||||
<!-- log.Input -->
|
||||
<g id="node6" class="node">
|
||||
<title>log.Input</title>
|
||||
<polygon fill="none" stroke="black" points="192.38,-39 192.38,-89.5 249.62,-89.5 249.62,-39 192.38,-39"/>
|
||||
<text text-anchor="start" x="200.38" y="-72.2" font-family="Times,serif" font-size="14.00">Input</text>
|
||||
<polyline fill="none" stroke="black" points="192.38,-64.25 249.62,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="192.38,-64.25 249.62,-64.25"/>
|
||||
<text text-anchor="start" x="216.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Input->log.Log -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>log.Input->log.Log</title>
|
||||
<path fill="none" stroke="black" d="M234.98,-89.99C241.9,-101.84 250.56,-116.11 259,-128.5 265.07,-137.41 271.48,-146.51 278.04,-155.59"/>
|
||||
<polygon fill="none" stroke="black" points="275.04,-157.42 283.75,-163.44 280.7,-153.3 275.04,-157.42"/>
|
||||
</g>
|
||||
<!-- asset.Land -->
|
||||
<g id="node7" class="node">
|
||||
<title>asset.Land</title>
|
||||
<polygon fill="none" stroke="black" points="856.25,-26.38 856.25,-102.12 1119.75,-102.12 1119.75,-26.38 856.25,-26.38"/>
|
||||
<text text-anchor="start" x="971.5" y="-84.83" font-family="Times,serif" font-size="14.00">Land</text>
|
||||
<polyline fill="none" stroke="black" points="856.25,-76.88 1119.75,-76.88"/>
|
||||
<text text-anchor="start" x="864.25" y="-59.58" font-family="Times,serif" font-size="14.00">json_geometry : AttributeField</text>
|
||||
<polyline fill="none" stroke="black" points="856.25,-51.62 1119.75,-51.62"/>
|
||||
<text text-anchor="start" x="983.88" y="-34.33" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- asset.Land->asset.Asset -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>asset.Land->asset.Asset</title>
|
||||
<path fill="none" stroke="black" d="M1048.09,-102.57C1099.77,-134.66 1175.29,-181.56 1235.59,-219.01"/>
|
||||
<polygon fill="none" stroke="black" points="1233.51,-221.83 1243.85,-224.13 1237.2,-215.89 1233.51,-221.83"/>
|
||||
</g>
|
||||
<!-- taxonomy.LogCategory -->
|
||||
<g id="node9" class="node">
|
||||
<title>taxonomy.LogCategory</title>
|
||||
<polygon fill="none" stroke="black" points="2111.62,-39 2111.62,-89.5 2218.38,-89.5 2218.38,-39 2111.62,-39"/>
|
||||
<text text-anchor="start" x="2119.62" y="-72.2" font-family="Times,serif" font-size="14.00">LogCategory</text>
|
||||
<polyline fill="none" stroke="black" points="2111.62,-64.25 2218.38,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="2111.62,-64.25 2218.38,-64.25"/>
|
||||
<text text-anchor="start" x="2160.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.LogCategory->taxonomy.Taxonomy -->
|
||||
<g id="edge37" class="edge">
|
||||
<title>taxonomy.LogCategory->taxonomy.Taxonomy</title>
|
||||
<path fill="none" stroke="black" d="M2187.9,-89.95C2199.33,-101.93 2213.55,-116.32 2227,-128.5 2268.79,-166.36 2318.66,-206.18 2356.52,-235.42"/>
|
||||
<polygon fill="none" stroke="black" points="2354.13,-238 2364.19,-241.32 2358.4,-232.45 2354.13,-238"/>
|
||||
</g>
|
||||
<!-- log.Maintenance -->
|
||||
<g id="node10" class="node">
|
||||
<title>log.Maintenance</title>
|
||||
<polygon fill="none" stroke="black" points="267.62,-39 267.62,-89.5 374.38,-89.5 374.38,-39 267.62,-39"/>
|
||||
<text text-anchor="start" x="275.62" y="-72.2" font-family="Times,serif" font-size="14.00">Maintenance</text>
|
||||
<polyline fill="none" stroke="black" points="267.62,-64.25 374.38,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="267.62,-64.25 374.38,-64.25"/>
|
||||
<text text-anchor="start" x="316.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Maintenance->log.Log -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>log.Maintenance->log.Log</title>
|
||||
<path fill="none" stroke="black" d="M327.19,-89.83C331.35,-106.3 337.16,-129.37 343.31,-153.77"/>
|
||||
<polygon fill="none" stroke="black" points="339.85,-154.36 345.69,-163.2 346.64,-152.65 339.85,-154.36"/>
|
||||
</g>
|
||||
<!-- asset.Material -->
|
||||
<g id="node11" class="node">
|
||||
<title>asset.Material</title>
|
||||
<polygon fill="none" stroke="black" points="1137.5,-26.38 1137.5,-102.12 1318.5,-102.12 1318.5,-26.38 1137.5,-26.38"/>
|
||||
<text text-anchor="start" x="1195" y="-84.83" font-family="Times,serif" font-size="14.00">Material</text>
|
||||
<polyline fill="none" stroke="black" points="1137.5,-76.88 1318.5,-76.88"/>
|
||||
<text text-anchor="start" x="1145.5" y="-59.58" font-family="Times,serif" font-size="14.00">crop : RelationField</text>
|
||||
<polyline fill="none" stroke="black" points="1137.5,-51.62 1318.5,-51.62"/>
|
||||
<text text-anchor="start" x="1223.88" y="-34.33" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- asset.Material->asset.Asset -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>asset.Material->asset.Asset</title>
|
||||
<path fill="none" stroke="black" d="M1246.29,-102.57C1261.43,-133.47 1283.31,-178.1 1301.3,-214.81"/>
|
||||
<polygon fill="none" stroke="black" points="1298.05,-216.13 1305.59,-223.57 1304.33,-213.05 1298.05,-216.13"/>
|
||||
</g>
|
||||
<!-- quantity.Material -->
|
||||
<g id="node12" class="node">
|
||||
<title>quantity.Material</title>
|
||||
<polygon fill="none" stroke="black" points="2759.25,-26.38 2759.25,-102.12 3022.75,-102.12 3022.75,-26.38 2759.25,-26.38"/>
|
||||
<text text-anchor="start" x="2858" y="-84.83" font-family="Times,serif" font-size="14.00">Material</text>
|
||||
<polyline fill="none" stroke="black" points="2759.25,-76.88 3022.75,-76.88"/>
|
||||
<text text-anchor="start" x="2767.25" y="-59.58" font-family="Times,serif" font-size="14.00">material_types : RelationField</text>
|
||||
<polyline fill="none" stroke="black" points="2759.25,-51.62 3022.75,-51.62"/>
|
||||
<text text-anchor="start" x="2886.88" y="-34.33" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- quantity.Quantity -->
|
||||
<g id="node50" class="node">
|
||||
<title>quantity.Quantity</title>
|
||||
<polygon fill="none" stroke="black" points="3024.38,-199.5 3024.38,-361.5 3345.62,-361.5 3345.62,-199.5 3024.38,-199.5"/>
|
||||
<text text-anchor="start" x="3152" y="-344.2" font-family="Times,serif" font-size="14.00">Quantity</text>
|
||||
<polyline fill="none" stroke="black" points="3024.38,-336.25 3345.62,-336.25"/>
|
||||
<text text-anchor="start" x="3032.38" y="-318.95" font-family="Times,serif" font-size="14.00">inventory_adjustment : AttributeField</text>
|
||||
<text text-anchor="start" x="3032.38" y="-301.7" font-family="Times,serif" font-size="14.00">inventory_asset : RelationField</text>
|
||||
<text text-anchor="start" x="3032.38" y="-284.45" font-family="Times,serif" font-size="14.00">json_value : AttributeField</text>
|
||||
<text text-anchor="start" x="3032.38" y="-267.2" font-family="Times,serif" font-size="14.00">measure : AttributeField</text>
|
||||
<text text-anchor="start" x="3032.38" y="-249.95" font-family="Times,serif" font-size="14.00">units : RelationField</text>
|
||||
<text text-anchor="start" x="3032.38" y="-232.7" font-family="Times,serif" font-size="14.00">value</text>
|
||||
<polyline fill="none" stroke="black" points="3024.38,-224.75 3345.62,-224.75"/>
|
||||
<text text-anchor="start" x="3180.88" y="-207.45" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- quantity.Material->quantity.Quantity -->
|
||||
<g id="edge29" class="edge">
|
||||
<title>quantity.Material->quantity.Quantity</title>
|
||||
<path fill="none" stroke="black" d="M2942.21,-102.57C2976.31,-127.42 3022.58,-161.14 3065.59,-192.48"/>
|
||||
<polygon fill="none" stroke="black" points="3063.35,-195.18 3073.49,-198.24 3067.47,-189.52 3063.35,-195.18"/>
|
||||
</g>
|
||||
<!-- taxonomy.MaterialType -->
|
||||
<g id="node13" class="node">
|
||||
<title>taxonomy.MaterialType</title>
|
||||
<polygon fill="none" stroke="black" points="2236.5,-39 2236.5,-89.5 2351.5,-89.5 2351.5,-39 2236.5,-39"/>
|
||||
<text text-anchor="start" x="2244.5" y="-72.2" font-family="Times,serif" font-size="14.00">MaterialType</text>
|
||||
<polyline fill="none" stroke="black" points="2236.5,-64.25 2351.5,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="2236.5,-64.25 2351.5,-64.25"/>
|
||||
<text text-anchor="start" x="2289.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.MaterialType->taxonomy.Taxonomy -->
|
||||
<g id="edge39" class="edge">
|
||||
<title>taxonomy.MaterialType->taxonomy.Taxonomy</title>
|
||||
<path fill="none" stroke="black" d="M2307.88,-89.83C2327.46,-124.5 2363.57,-188.44 2388.41,-232.43"/>
|
||||
<polygon fill="none" stroke="black" points="2385.29,-234.01 2393.26,-241 2391.39,-230.57 2385.29,-234.01"/>
|
||||
</g>
|
||||
<!-- log.Medical -->
|
||||
<g id="node14" class="node">
|
||||
<title>log.Medical</title>
|
||||
<polygon fill="none" stroke="black" points="392.12,-39 392.12,-89.5 465.88,-89.5 465.88,-39 392.12,-39"/>
|
||||
<text text-anchor="start" x="400.12" y="-72.2" font-family="Times,serif" font-size="14.00">Medical</text>
|
||||
<polyline fill="none" stroke="black" points="392.12,-64.25 465.88,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="392.12,-64.25 465.88,-64.25"/>
|
||||
<text text-anchor="start" x="424.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Medical->log.Log -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>log.Medical->log.Log</title>
|
||||
<path fill="none" stroke="black" d="M422.81,-89.83C418.65,-106.3 412.84,-129.37 406.69,-153.77"/>
|
||||
<polygon fill="none" stroke="black" points="403.36,-152.65 404.31,-163.2 410.15,-154.36 403.36,-152.65"/>
|
||||
</g>
|
||||
<!-- asset.Asset.Meta -->
|
||||
<g id="node15" class="node">
|
||||
<title>asset.Asset.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="3738.75,-242.62 3738.75,-318.38 3837.25,-318.38 3837.25,-242.62 3738.75,-242.62"/>
|
||||
<text text-anchor="start" x="3771.5" y="-301.07" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="3738.75,-293.12 3837.25,-293.12"/>
|
||||
<text text-anchor="start" x="3746.75" y="-275.82" font-family="Times,serif" font-size="14.00">type : str</text>
|
||||
<polyline fill="none" stroke="black" points="3738.75,-267.88 3837.25,-267.88"/>
|
||||
<text text-anchor="start" x="3783.88" y="-250.57" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- asset.Land.Meta -->
|
||||
<g id="node16" class="node">
|
||||
<title>asset.Land.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="3446.75,-9.12 3446.75,-119.38 3545.25,-119.38 3545.25,-9.12 3446.75,-9.12"/>
|
||||
<text text-anchor="start" x="3479.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="3446.75,-94.12 3545.25,-94.12"/>
|
||||
<text text-anchor="start" x="3454.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="3454.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="3454.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="3446.75,-34.38 3545.25,-34.38"/>
|
||||
<text text-anchor="start" x="3491.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- asset.Land.Meta->asset.Asset.Meta -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>asset.Land.Meta->asset.Asset.Meta</title>
|
||||
<path fill="none" stroke="black" d="M3545.03,-119.65C3548.32,-122.73 3551.66,-125.7 3555,-128.5 3609.95,-174.56 3679.71,-218.08 3728.52,-246.45"/>
|
||||
<polygon fill="none" stroke="black" points="3726.57,-249.37 3736.98,-251.34 3730.07,-243.31 3726.57,-249.37"/>
|
||||
</g>
|
||||
<!-- asset.Plant.Meta -->
|
||||
<g id="node17" class="node">
|
||||
<title>asset.Plant.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="3563.75,-9.12 3563.75,-119.38 3662.25,-119.38 3662.25,-9.12 3563.75,-9.12"/>
|
||||
<text text-anchor="start" x="3596.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="3563.75,-94.12 3662.25,-94.12"/>
|
||||
<text text-anchor="start" x="3571.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="3571.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="3571.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="3563.75,-34.38 3662.25,-34.38"/>
|
||||
<text text-anchor="start" x="3608.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- asset.Plant.Meta->asset.Asset.Meta -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>asset.Plant.Meta->asset.Asset.Meta</title>
|
||||
<path fill="none" stroke="black" d="M3657.61,-119.87C3686.34,-155.04 3723.25,-200.23 3750.47,-233.55"/>
|
||||
<polygon fill="none" stroke="black" points="3747.53,-235.48 3756.56,-241.01 3752.95,-231.05 3747.53,-235.48"/>
|
||||
</g>
|
||||
<!-- asset.Equipment.Meta -->
|
||||
<g id="node18" class="node">
|
||||
<title>asset.Equipment.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="3680.75,-9.12 3680.75,-119.38 3779.25,-119.38 3779.25,-9.12 3680.75,-9.12"/>
|
||||
<text text-anchor="start" x="3713.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="3680.75,-94.12 3779.25,-94.12"/>
|
||||
<text text-anchor="start" x="3688.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="3688.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="3688.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="3680.75,-34.38 3779.25,-34.38"/>
|
||||
<text text-anchor="start" x="3725.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- asset.Equipment.Meta->asset.Asset.Meta -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>asset.Equipment.Meta->asset.Asset.Meta</title>
|
||||
<path fill="none" stroke="black" d="M3744.79,-119.87C3754.1,-154.29 3766.02,-198.31 3774.98,-231.41"/>
|
||||
<polygon fill="none" stroke="black" points="3771.51,-231.98 3777.5,-240.72 3778.27,-230.16 3771.51,-231.98"/>
|
||||
</g>
|
||||
<!-- asset.Material.Meta -->
|
||||
<g id="node19" class="node">
|
||||
<title>asset.Material.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="3797.75,-9.12 3797.75,-119.38 3896.25,-119.38 3896.25,-9.12 3797.75,-9.12"/>
|
||||
<text text-anchor="start" x="3830.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="3797.75,-94.12 3896.25,-94.12"/>
|
||||
<text text-anchor="start" x="3805.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="3805.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="3805.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="3797.75,-34.38 3896.25,-34.38"/>
|
||||
<text text-anchor="start" x="3842.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- asset.Material.Meta->asset.Asset.Meta -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>asset.Material.Meta->asset.Asset.Meta</title>
|
||||
<path fill="none" stroke="black" d="M3831.96,-119.87C3822.48,-154.29 3810.36,-198.31 3801.24,-231.41"/>
|
||||
<polygon fill="none" stroke="black" points="3797.96,-230.15 3798.68,-240.72 3804.71,-232.01 3797.96,-230.15"/>
|
||||
</g>
|
||||
<!-- asset.Seed.Meta -->
|
||||
<g id="node20" class="node">
|
||||
<title>asset.Seed.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="3914.75,-9.12 3914.75,-119.38 4013.25,-119.38 4013.25,-9.12 3914.75,-9.12"/>
|
||||
<text text-anchor="start" x="3947.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="3914.75,-94.12 4013.25,-94.12"/>
|
||||
<text text-anchor="start" x="3922.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="3922.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="3922.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="3914.75,-34.38 4013.25,-34.38"/>
|
||||
<text text-anchor="start" x="3959.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- asset.Seed.Meta->asset.Asset.Meta -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>asset.Seed.Meta->asset.Asset.Meta</title>
|
||||
<path fill="none" stroke="black" d="M3919.13,-119.87C3890.24,-155.04 3853.12,-200.23 3825.75,-233.55"/>
|
||||
<polygon fill="none" stroke="black" points="3823.26,-231.07 3819.62,-241.01 3828.67,-235.51 3823.26,-231.07"/>
|
||||
</g>
|
||||
<!-- asset.Product.Meta -->
|
||||
<g id="node21" class="node">
|
||||
<title>asset.Product.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="4031.75,-9.12 4031.75,-119.38 4130.25,-119.38 4130.25,-9.12 4031.75,-9.12"/>
|
||||
<text text-anchor="start" x="4064.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="4031.75,-94.12 4130.25,-94.12"/>
|
||||
<text text-anchor="start" x="4039.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="4039.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="4039.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="4031.75,-34.38 4130.25,-34.38"/>
|
||||
<text text-anchor="start" x="4076.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- asset.Product.Meta->asset.Asset.Meta -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>asset.Product.Meta->asset.Asset.Meta</title>
|
||||
<path fill="none" stroke="black" d="M4031.98,-119.66C4028.68,-122.73 4025.34,-125.71 4022,-128.5 3966.66,-174.79 3896.33,-218.42 3847.29,-246.76"/>
|
||||
<polygon fill="none" stroke="black" points="3845.71,-243.63 3838.78,-251.65 3849.2,-249.7 3845.71,-243.63"/>
|
||||
</g>
|
||||
<!-- log.Log.Meta -->
|
||||
<g id="node22" class="node">
|
||||
<title>log.Log.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="4557.75,-242.62 4557.75,-318.38 4656.25,-318.38 4656.25,-242.62 4557.75,-242.62"/>
|
||||
<text text-anchor="start" x="4590.5" y="-301.07" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="4557.75,-293.12 4656.25,-293.12"/>
|
||||
<text text-anchor="start" x="4565.75" y="-275.82" font-family="Times,serif" font-size="14.00">type : str</text>
|
||||
<polyline fill="none" stroke="black" points="4557.75,-267.88 4656.25,-267.88"/>
|
||||
<text text-anchor="start" x="4602.88" y="-250.57" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Activity.Meta -->
|
||||
<g id="node23" class="node">
|
||||
<title>log.Activity.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="4148.75,-9.12 4148.75,-119.38 4247.25,-119.38 4247.25,-9.12 4148.75,-9.12"/>
|
||||
<text text-anchor="start" x="4181.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="4148.75,-94.12 4247.25,-94.12"/>
|
||||
<text text-anchor="start" x="4156.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="4156.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="4156.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="4148.75,-34.38 4247.25,-34.38"/>
|
||||
<text text-anchor="start" x="4193.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Activity.Meta->log.Log.Meta -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>log.Activity.Meta->log.Log.Meta</title>
|
||||
<path fill="none" stroke="black" d="M4245.79,-119.73C4249.45,-122.86 4253.19,-125.82 4257,-128.5 4349.11,-193.39 4473.52,-238.76 4546.51,-261.87"/>
|
||||
<polygon fill="none" stroke="black" points="4545.31,-265.16 4555.89,-264.8 4547.39,-258.48 4545.31,-265.16"/>
|
||||
</g>
|
||||
<!-- log.Maintenance.Meta -->
|
||||
<g id="node24" class="node">
|
||||
<title>log.Maintenance.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="4265.75,-9.12 4265.75,-119.38 4364.25,-119.38 4364.25,-9.12 4265.75,-9.12"/>
|
||||
<text text-anchor="start" x="4298.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="4265.75,-94.12 4364.25,-94.12"/>
|
||||
<text text-anchor="start" x="4273.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="4273.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="4273.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="4265.75,-34.38 4364.25,-34.38"/>
|
||||
<text text-anchor="start" x="4310.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Maintenance.Meta->log.Log.Meta -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>log.Maintenance.Meta->log.Log.Meta</title>
|
||||
<path fill="none" stroke="black" d="M4364.03,-119.65C4367.32,-122.73 4370.66,-125.7 4374,-128.5 4428.95,-174.56 4498.71,-218.08 4547.52,-246.45"/>
|
||||
<polygon fill="none" stroke="black" points="4545.57,-249.37 4555.98,-251.34 4549.07,-243.31 4545.57,-249.37"/>
|
||||
</g>
|
||||
<!-- log.Purchase.Meta -->
|
||||
<g id="node25" class="node">
|
||||
<title>log.Purchase.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="4382.75,-9.12 4382.75,-119.38 4481.25,-119.38 4481.25,-9.12 4382.75,-9.12"/>
|
||||
<text text-anchor="start" x="4415.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="4382.75,-94.12 4481.25,-94.12"/>
|
||||
<text text-anchor="start" x="4390.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="4390.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="4390.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="4382.75,-34.38 4481.25,-34.38"/>
|
||||
<text text-anchor="start" x="4427.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Purchase.Meta->log.Log.Meta -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>log.Purchase.Meta->log.Log.Meta</title>
|
||||
<path fill="none" stroke="black" d="M4476.61,-119.87C4505.34,-155.04 4542.25,-200.23 4569.47,-233.55"/>
|
||||
<polygon fill="none" stroke="black" points="4566.53,-235.48 4575.56,-241.01 4571.95,-231.05 4566.53,-235.48"/>
|
||||
</g>
|
||||
<!-- log.Seeding.Meta -->
|
||||
<g id="node26" class="node">
|
||||
<title>log.Seeding.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="4499.75,-9.12 4499.75,-119.38 4598.25,-119.38 4598.25,-9.12 4499.75,-9.12"/>
|
||||
<text text-anchor="start" x="4532.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="4499.75,-94.12 4598.25,-94.12"/>
|
||||
<text text-anchor="start" x="4507.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="4507.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="4507.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="4499.75,-34.38 4598.25,-34.38"/>
|
||||
<text text-anchor="start" x="4544.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Seeding.Meta->log.Log.Meta -->
|
||||
<g id="edge28" class="edge">
|
||||
<title>log.Seeding.Meta->log.Log.Meta</title>
|
||||
<path fill="none" stroke="black" d="M4563.79,-119.87C4573.1,-154.29 4585.02,-198.31 4593.98,-231.41"/>
|
||||
<polygon fill="none" stroke="black" points="4590.51,-231.98 4596.5,-240.72 4597.27,-230.16 4590.51,-231.98"/>
|
||||
</g>
|
||||
<!-- log.Input.Meta -->
|
||||
<g id="node27" class="node">
|
||||
<title>log.Input.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="4616.75,-9.12 4616.75,-119.38 4715.25,-119.38 4715.25,-9.12 4616.75,-9.12"/>
|
||||
<text text-anchor="start" x="4649.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="4616.75,-94.12 4715.25,-94.12"/>
|
||||
<text text-anchor="start" x="4624.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="4624.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="4624.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="4616.75,-34.38 4715.25,-34.38"/>
|
||||
<text text-anchor="start" x="4661.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Input.Meta->log.Log.Meta -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>log.Input.Meta->log.Log.Meta</title>
|
||||
<path fill="none" stroke="black" d="M4650.96,-119.87C4641.48,-154.29 4629.36,-198.31 4620.24,-231.41"/>
|
||||
<polygon fill="none" stroke="black" points="4616.96,-230.15 4617.68,-240.72 4623.71,-232.01 4616.96,-230.15"/>
|
||||
</g>
|
||||
<!-- log.Medical.Meta -->
|
||||
<g id="node28" class="node">
|
||||
<title>log.Medical.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="4733.75,-9.12 4733.75,-119.38 4832.25,-119.38 4832.25,-9.12 4733.75,-9.12"/>
|
||||
<text text-anchor="start" x="4766.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="4733.75,-94.12 4832.25,-94.12"/>
|
||||
<text text-anchor="start" x="4741.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="4741.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="4741.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="4733.75,-34.38 4832.25,-34.38"/>
|
||||
<text text-anchor="start" x="4778.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Medical.Meta->log.Log.Meta -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>log.Medical.Meta->log.Log.Meta</title>
|
||||
<path fill="none" stroke="black" d="M4738.13,-119.87C4709.24,-155.04 4672.12,-200.23 4644.75,-233.55"/>
|
||||
<polygon fill="none" stroke="black" points="4642.26,-231.07 4638.62,-241.01 4647.67,-235.51 4642.26,-231.07"/>
|
||||
</g>
|
||||
<!-- log.Harvest.Meta -->
|
||||
<g id="node29" class="node">
|
||||
<title>log.Harvest.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="4850.75,-9.12 4850.75,-119.38 4949.25,-119.38 4949.25,-9.12 4850.75,-9.12"/>
|
||||
<text text-anchor="start" x="4883.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="4850.75,-94.12 4949.25,-94.12"/>
|
||||
<text text-anchor="start" x="4858.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="4858.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="4858.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="4850.75,-34.38 4949.25,-34.38"/>
|
||||
<text text-anchor="start" x="4895.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Harvest.Meta->log.Log.Meta -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>log.Harvest.Meta->log.Log.Meta</title>
|
||||
<path fill="none" stroke="black" d="M4850.98,-119.66C4847.68,-122.73 4844.34,-125.71 4841,-128.5 4785.66,-174.79 4715.33,-218.42 4666.29,-246.76"/>
|
||||
<polygon fill="none" stroke="black" points="4664.71,-243.63 4657.78,-251.65 4668.2,-249.7 4664.71,-243.63"/>
|
||||
</g>
|
||||
<!-- log.Sale.Meta -->
|
||||
<g id="node30" class="node">
|
||||
<title>log.Sale.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="4967.75,-9.12 4967.75,-119.38 5066.25,-119.38 5066.25,-9.12 4967.75,-9.12"/>
|
||||
<text text-anchor="start" x="5000.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="4967.75,-94.12 5066.25,-94.12"/>
|
||||
<text text-anchor="start" x="4975.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="4975.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="4975.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="4967.75,-34.38 5066.25,-34.38"/>
|
||||
<text text-anchor="start" x="5012.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Sale.Meta->log.Log.Meta -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>log.Sale.Meta->log.Log.Meta</title>
|
||||
<path fill="none" stroke="black" d="M4969.21,-119.73C4965.56,-122.86 4961.81,-125.82 4958,-128.5 4865.5,-193.59 4740.52,-238.96 4667.35,-262"/>
|
||||
<polygon fill="none" stroke="black" points="4666.46,-258.61 4657.95,-264.92 4668.54,-265.3 4666.46,-258.61"/>
|
||||
</g>
|
||||
<!-- quantity.Quantity.Meta -->
|
||||
<g id="node31" class="node">
|
||||
<title>quantity.Quantity.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="5201.75,-242.62 5201.75,-318.38 5300.25,-318.38 5300.25,-242.62 5201.75,-242.62"/>
|
||||
<text text-anchor="start" x="5234.5" y="-301.07" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="5201.75,-293.12 5300.25,-293.12"/>
|
||||
<text text-anchor="start" x="5209.75" y="-275.82" font-family="Times,serif" font-size="14.00">type : str</text>
|
||||
<polyline fill="none" stroke="black" points="5201.75,-267.88 5300.25,-267.88"/>
|
||||
<text text-anchor="start" x="5246.88" y="-250.57" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- quantity.Standard.Meta -->
|
||||
<g id="node32" class="node">
|
||||
<title>quantity.Standard.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="5084.75,-9.12 5084.75,-119.38 5183.25,-119.38 5183.25,-9.12 5084.75,-9.12"/>
|
||||
<text text-anchor="start" x="5117.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="5084.75,-94.12 5183.25,-94.12"/>
|
||||
<text text-anchor="start" x="5092.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="5092.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="5092.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="5084.75,-34.38 5183.25,-34.38"/>
|
||||
<text text-anchor="start" x="5129.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- quantity.Standard.Meta->quantity.Quantity.Meta -->
|
||||
<g id="edge34" class="edge">
|
||||
<title>quantity.Standard.Meta->quantity.Quantity.Meta</title>
|
||||
<path fill="none" stroke="black" d="M5163.83,-119.87C5182.79,-154.59 5207.08,-199.08 5225.21,-232.27"/>
|
||||
<polygon fill="none" stroke="black" points="5222.03,-233.76 5229.9,-240.85 5228.18,-230.4 5222.03,-233.76"/>
|
||||
</g>
|
||||
<!-- quantity.Price.Meta -->
|
||||
<g id="node33" class="node">
|
||||
<title>quantity.Price.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="5201.75,-9.12 5201.75,-119.38 5300.25,-119.38 5300.25,-9.12 5201.75,-9.12"/>
|
||||
<text text-anchor="start" x="5234.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="5201.75,-94.12 5300.25,-94.12"/>
|
||||
<text text-anchor="start" x="5209.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="5209.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="5209.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="5201.75,-34.38 5300.25,-34.38"/>
|
||||
<text text-anchor="start" x="5246.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- quantity.Price.Meta->quantity.Quantity.Meta -->
|
||||
<g id="edge32" class="edge">
|
||||
<title>quantity.Price.Meta->quantity.Quantity.Meta</title>
|
||||
<path fill="none" stroke="black" d="M5251,-119.87C5251,-154.14 5251,-197.93 5251,-230.98"/>
|
||||
<polygon fill="none" stroke="black" points="5247.5,-230.67 5251,-240.67 5254.5,-230.67 5247.5,-230.67"/>
|
||||
</g>
|
||||
<!-- quantity.Material.Meta -->
|
||||
<g id="node34" class="node">
|
||||
<title>quantity.Material.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="5318.75,-9.12 5318.75,-119.38 5417.25,-119.38 5417.25,-9.12 5318.75,-9.12"/>
|
||||
<text text-anchor="start" x="5351.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="5318.75,-94.12 5417.25,-94.12"/>
|
||||
<text text-anchor="start" x="5326.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="5326.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="5326.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="5318.75,-34.38 5417.25,-34.38"/>
|
||||
<text text-anchor="start" x="5363.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- quantity.Material.Meta->quantity.Quantity.Meta -->
|
||||
<g id="edge30" class="edge">
|
||||
<title>quantity.Material.Meta->quantity.Quantity.Meta</title>
|
||||
<path fill="none" stroke="black" d="M5338.17,-119.87C5319.21,-154.59 5294.92,-199.08 5276.79,-232.27"/>
|
||||
<polygon fill="none" stroke="black" points="5273.82,-230.4 5272.1,-240.85 5279.97,-233.76 5273.82,-230.4"/>
|
||||
</g>
|
||||
<!-- taxonomy.Taxonomy.Meta -->
|
||||
<g id="node35" class="node">
|
||||
<title>taxonomy.Taxonomy.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="5786.75,-242.62 5786.75,-318.38 5885.25,-318.38 5885.25,-242.62 5786.75,-242.62"/>
|
||||
<text text-anchor="start" x="5819.5" y="-301.07" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="5786.75,-293.12 5885.25,-293.12"/>
|
||||
<text text-anchor="start" x="5794.75" y="-275.82" font-family="Times,serif" font-size="14.00">type : str</text>
|
||||
<polyline fill="none" stroke="black" points="5786.75,-267.88 5885.25,-267.88"/>
|
||||
<text text-anchor="start" x="5831.88" y="-250.57" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.Crop.Meta -->
|
||||
<g id="node36" class="node">
|
||||
<title>taxonomy.Crop.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="5435.75,-9.12 5435.75,-119.38 5534.25,-119.38 5534.25,-9.12 5435.75,-9.12"/>
|
||||
<text text-anchor="start" x="5468.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="5435.75,-94.12 5534.25,-94.12"/>
|
||||
<text text-anchor="start" x="5443.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="5443.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="5443.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="5435.75,-34.38 5534.25,-34.38"/>
|
||||
<text text-anchor="start" x="5480.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.Crop.Meta->taxonomy.Taxonomy.Meta -->
|
||||
<g id="edge36" class="edge">
|
||||
<title>taxonomy.Crop.Meta->taxonomy.Taxonomy.Meta</title>
|
||||
<path fill="none" stroke="black" d="M5533.37,-119.73C5536.85,-122.83 5540.41,-125.78 5544,-128.5 5617.41,-184.15 5714.33,-229.66 5775.93,-255.68"/>
|
||||
<polygon fill="none" stroke="black" points="5774.29,-258.79 5784.86,-259.42 5776.99,-252.33 5774.29,-258.79"/>
|
||||
</g>
|
||||
<!-- taxonomy.LogCategory.Meta -->
|
||||
<g id="node37" class="node">
|
||||
<title>taxonomy.LogCategory.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="5552.75,-9.12 5552.75,-119.38 5651.25,-119.38 5651.25,-9.12 5552.75,-9.12"/>
|
||||
<text text-anchor="start" x="5585.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="5552.75,-94.12 5651.25,-94.12"/>
|
||||
<text text-anchor="start" x="5560.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="5560.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="5560.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="5552.75,-34.38 5651.25,-34.38"/>
|
||||
<text text-anchor="start" x="5597.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.LogCategory.Meta->taxonomy.Taxonomy.Meta -->
|
||||
<g id="edge38" class="edge">
|
||||
<title>taxonomy.LogCategory.Meta->taxonomy.Taxonomy.Meta</title>
|
||||
<path fill="none" stroke="black" d="M5651.5,-119.13C5654.68,-122.33 5657.86,-125.48 5661,-128.5 5699.92,-165.94 5746.29,-205.75 5781.52,-235.09"/>
|
||||
<polygon fill="none" stroke="black" points="5779.13,-237.66 5789.06,-241.35 5783.6,-232.27 5779.13,-237.66"/>
|
||||
</g>
|
||||
<!-- taxonomy.MaterialType.Meta -->
|
||||
<g id="node38" class="node">
|
||||
<title>taxonomy.MaterialType.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="5669.75,-9.12 5669.75,-119.38 5768.25,-119.38 5768.25,-9.12 5669.75,-9.12"/>
|
||||
<text text-anchor="start" x="5702.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="5669.75,-94.12 5768.25,-94.12"/>
|
||||
<text text-anchor="start" x="5677.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="5677.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="5677.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="5669.75,-34.38 5768.25,-34.38"/>
|
||||
<text text-anchor="start" x="5714.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.MaterialType.Meta->taxonomy.Taxonomy.Meta -->
|
||||
<g id="edge40" class="edge">
|
||||
<title>taxonomy.MaterialType.Meta->taxonomy.Taxonomy.Meta</title>
|
||||
<path fill="none" stroke="black" d="M5748.83,-119.87C5767.79,-154.59 5792.08,-199.08 5810.21,-232.27"/>
|
||||
<polygon fill="none" stroke="black" points="5807.03,-233.76 5814.9,-240.85 5813.18,-230.4 5807.03,-233.76"/>
|
||||
</g>
|
||||
<!-- taxonomy.PlantType.Meta -->
|
||||
<g id="node39" class="node">
|
||||
<title>taxonomy.PlantType.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="5786.75,-9.12 5786.75,-119.38 5885.25,-119.38 5885.25,-9.12 5786.75,-9.12"/>
|
||||
<text text-anchor="start" x="5819.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="5786.75,-94.12 5885.25,-94.12"/>
|
||||
<text text-anchor="start" x="5794.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="5794.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="5794.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="5786.75,-34.38 5885.25,-34.38"/>
|
||||
<text text-anchor="start" x="5831.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.PlantType.Meta->taxonomy.Taxonomy.Meta -->
|
||||
<g id="edge42" class="edge">
|
||||
<title>taxonomy.PlantType.Meta->taxonomy.Taxonomy.Meta</title>
|
||||
<path fill="none" stroke="black" d="M5836,-119.87C5836,-154.14 5836,-197.93 5836,-230.98"/>
|
||||
<polygon fill="none" stroke="black" points="5832.5,-230.67 5836,-240.67 5839.5,-230.67 5832.5,-230.67"/>
|
||||
</g>
|
||||
<!-- taxonomy.ProductType.Meta -->
|
||||
<g id="node40" class="node">
|
||||
<title>taxonomy.ProductType.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="5903.75,-9.12 5903.75,-119.38 6002.25,-119.38 6002.25,-9.12 5903.75,-9.12"/>
|
||||
<text text-anchor="start" x="5936.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="5903.75,-94.12 6002.25,-94.12"/>
|
||||
<text text-anchor="start" x="5911.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="5911.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="5911.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="5903.75,-34.38 6002.25,-34.38"/>
|
||||
<text text-anchor="start" x="5948.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.ProductType.Meta->taxonomy.Taxonomy.Meta -->
|
||||
<g id="edge44" class="edge">
|
||||
<title>taxonomy.ProductType.Meta->taxonomy.Taxonomy.Meta</title>
|
||||
<path fill="none" stroke="black" d="M5923.17,-119.87C5904.21,-154.59 5879.92,-199.08 5861.79,-232.27"/>
|
||||
<polygon fill="none" stroke="black" points="5858.82,-230.4 5857.1,-240.85 5864.97,-233.76 5858.82,-230.4"/>
|
||||
</g>
|
||||
<!-- taxonomy.Season.Meta -->
|
||||
<g id="node41" class="node">
|
||||
<title>taxonomy.Season.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="6020.75,-9.12 6020.75,-119.38 6119.25,-119.38 6119.25,-9.12 6020.75,-9.12"/>
|
||||
<text text-anchor="start" x="6053.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="6020.75,-94.12 6119.25,-94.12"/>
|
||||
<text text-anchor="start" x="6028.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="6028.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="6028.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="6020.75,-34.38 6119.25,-34.38"/>
|
||||
<text text-anchor="start" x="6065.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.Season.Meta->taxonomy.Taxonomy.Meta -->
|
||||
<g id="edge46" class="edge">
|
||||
<title>taxonomy.Season.Meta->taxonomy.Taxonomy.Meta</title>
|
||||
<path fill="none" stroke="black" d="M6020.5,-119.13C6017.32,-122.33 6014.14,-125.48 6011,-128.5 5972.08,-165.94 5925.71,-205.75 5890.48,-235.09"/>
|
||||
<polygon fill="none" stroke="black" points="5888.4,-232.27 5882.94,-241.35 5892.87,-237.66 5888.4,-232.27"/>
|
||||
</g>
|
||||
<!-- taxonomy.Unit.Meta -->
|
||||
<g id="node42" class="node">
|
||||
<title>taxonomy.Unit.Meta</title>
|
||||
<polygon fill="none" stroke="black" points="6137.75,-9.12 6137.75,-119.38 6236.25,-119.38 6236.25,-9.12 6137.75,-9.12"/>
|
||||
<text text-anchor="start" x="6170.5" y="-102.08" font-family="Times,serif" font-size="14.00">Meta</text>
|
||||
<polyline fill="none" stroke="black" points="6137.75,-94.12 6236.25,-94.12"/>
|
||||
<text text-anchor="start" x="6145.75" y="-76.83" font-family="Times,serif" font-size="14.00">name : str</text>
|
||||
<text text-anchor="start" x="6145.75" y="-59.58" font-family="Times,serif" font-size="14.00">path</text>
|
||||
<text text-anchor="start" x="6145.75" y="-42.33" font-family="Times,serif" font-size="14.00">type</text>
|
||||
<polyline fill="none" stroke="black" points="6137.75,-34.38 6236.25,-34.38"/>
|
||||
<text text-anchor="start" x="6182.88" y="-17.07" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.Unit.Meta->taxonomy.Taxonomy.Meta -->
|
||||
<g id="edge48" class="edge">
|
||||
<title>taxonomy.Unit.Meta->taxonomy.Taxonomy.Meta</title>
|
||||
<path fill="none" stroke="black" d="M6138.63,-119.73C6135.15,-122.83 6131.59,-125.78 6128,-128.5 6054.59,-184.15 5957.67,-229.66 5896.07,-255.68"/>
|
||||
<polygon fill="none" stroke="black" points="5895.01,-252.33 5887.14,-259.42 5897.71,-258.79 5895.01,-252.33"/>
|
||||
</g>
|
||||
<!-- my_meta.MyMeta -->
|
||||
<g id="node43" class="node">
|
||||
<title>my_meta.MyMeta</title>
|
||||
<polygon fill="none" stroke="black" points="6254.12,-30.38 6254.12,-98.12 6459.88,-98.12 6459.88,-30.38 6254.12,-30.38"/>
|
||||
<text text-anchor="start" x="6332.25" y="-80.83" font-family="Times,serif" font-size="14.00">MyMeta</text>
|
||||
<polyline fill="none" stroke="black" points="6254.12,-72.88 6459.88,-72.88"/>
|
||||
<polyline fill="none" stroke="black" points="6254.12,-72.88 6459.88,-72.88"/>
|
||||
<text text-anchor="start" x="6262.12" y="-55.58" font-family="Times,serif" font-size="14.00">get_type_and_path(name)</text>
|
||||
<text text-anchor="start" x="6262.12" y="-38.33" font-family="Times,serif" font-size="14.00">set_api(api)</text>
|
||||
</g>
|
||||
<!-- asset.Plant -->
|
||||
<g id="node44" class="node">
|
||||
<title>asset.Plant</title>
|
||||
<polygon fill="none" stroke="black" points="1336.12,-17.75 1336.12,-110.75 1541.88,-110.75 1541.88,-17.75 1336.12,-17.75"/>
|
||||
<text text-anchor="start" x="1418.38" y="-93.45" font-family="Times,serif" font-size="14.00">Plant</text>
|
||||
<polyline fill="none" stroke="black" points="1336.12,-85.5 1541.88,-85.5"/>
|
||||
<text text-anchor="start" x="1344.12" y="-68.2" font-family="Times,serif" font-size="14.00">crops : RelationField</text>
|
||||
<text text-anchor="start" x="1344.12" y="-50.95" font-family="Times,serif" font-size="14.00">seasons : RelationField</text>
|
||||
<polyline fill="none" stroke="black" points="1336.12,-43 1541.88,-43"/>
|
||||
<text text-anchor="start" x="1434.88" y="-25.7" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- asset.Plant->asset.Asset -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>asset.Plant->asset.Asset</title>
|
||||
<path fill="none" stroke="black" d="M1416.26,-111.21C1401.32,-141.41 1381.56,-181.36 1365.03,-214.75"/>
|
||||
<polygon fill="none" stroke="black" points="1361.99,-213.02 1360.69,-223.53 1368.26,-216.12 1361.99,-213.02"/>
|
||||
</g>
|
||||
<!-- taxonomy.PlantType -->
|
||||
<g id="node45" class="node">
|
||||
<title>taxonomy.PlantType</title>
|
||||
<polygon fill="none" stroke="black" points="2369.88,-39 2369.88,-89.5 2460.12,-89.5 2460.12,-39 2369.88,-39"/>
|
||||
<text text-anchor="start" x="2377.88" y="-72.2" font-family="Times,serif" font-size="14.00">PlantType</text>
|
||||
<polyline fill="none" stroke="black" points="2369.88,-64.25 2460.12,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="2369.88,-64.25 2460.12,-64.25"/>
|
||||
<text text-anchor="start" x="2410.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.PlantType->taxonomy.Taxonomy -->
|
||||
<g id="edge41" class="edge">
|
||||
<title>taxonomy.PlantType->taxonomy.Taxonomy</title>
|
||||
<path fill="none" stroke="black" d="M2415,-89.83C2415,-124.13 2415,-187.1 2415,-231.03"/>
|
||||
<polygon fill="none" stroke="black" points="2411.5,-230.8 2415,-240.8 2418.5,-230.8 2411.5,-230.8"/>
|
||||
</g>
|
||||
<!-- quantity.Price -->
|
||||
<g id="node46" class="node">
|
||||
<title>quantity.Price</title>
|
||||
<polygon fill="none" stroke="black" points="3040.88,-0.5 3040.88,-128 3329.12,-128 3329.12,-0.5 3040.88,-0.5"/>
|
||||
<text text-anchor="start" x="3164.38" y="-110.7" font-family="Times,serif" font-size="14.00">Price</text>
|
||||
<polyline fill="none" stroke="black" points="3040.88,-102.75 3329.12,-102.75"/>
|
||||
<text text-anchor="start" x="3048.88" y="-85.45" font-family="Times,serif" font-size="14.00">json_total_price : AttributeField</text>
|
||||
<text text-anchor="start" x="3048.88" y="-68.2" font-family="Times,serif" font-size="14.00">json_unit_price : AttributeField</text>
|
||||
<text text-anchor="start" x="3048.88" y="-50.95" font-family="Times,serif" font-size="14.00">total_price</text>
|
||||
<text text-anchor="start" x="3048.88" y="-33.7" font-family="Times,serif" font-size="14.00">unit_price</text>
|
||||
<polyline fill="none" stroke="black" points="3040.88,-25.75 3329.12,-25.75"/>
|
||||
<text text-anchor="start" x="3180.88" y="-8.45" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- quantity.Price->quantity.Quantity -->
|
||||
<g id="edge31" class="edge">
|
||||
<title>quantity.Price->quantity.Quantity</title>
|
||||
<path fill="none" stroke="black" d="M3185,-128.37C3185,-147.03 3185,-167.85 3185,-187.92"/>
|
||||
<polygon fill="none" stroke="black" points="3181.5,-187.79 3185,-197.79 3188.5,-187.79 3181.5,-187.79"/>
|
||||
</g>
|
||||
<!-- asset.Product -->
|
||||
<g id="node47" class="node">
|
||||
<title>asset.Product</title>
|
||||
<polygon fill="none" stroke="black" points="1559.5,-26.38 1559.5,-102.12 1806.5,-102.12 1806.5,-26.38 1559.5,-26.38"/>
|
||||
<text text-anchor="start" x="1654.12" y="-84.83" font-family="Times,serif" font-size="14.00">Product</text>
|
||||
<polyline fill="none" stroke="black" points="1559.5,-76.88 1806.5,-76.88"/>
|
||||
<text text-anchor="start" x="1567.5" y="-59.58" font-family="Times,serif" font-size="14.00">product_type : RelationField</text>
|
||||
<polyline fill="none" stroke="black" points="1559.5,-51.62 1806.5,-51.62"/>
|
||||
<text text-anchor="start" x="1678.88" y="-34.33" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- asset.Product->asset.Asset -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>asset.Product->asset.Asset</title>
|
||||
<path fill="none" stroke="black" d="M1622.03,-102.57C1569.61,-134.66 1493,-181.56 1431.82,-219.01"/>
|
||||
<polygon fill="none" stroke="black" points="1430.13,-215.94 1423.43,-224.14 1433.79,-221.91 1430.13,-215.94"/>
|
||||
</g>
|
||||
<!-- taxonomy.ProductType -->
|
||||
<g id="node48" class="node">
|
||||
<title>taxonomy.ProductType</title>
|
||||
<polygon fill="none" stroke="black" points="2478.62,-39 2478.62,-89.5 2585.38,-89.5 2585.38,-39 2478.62,-39"/>
|
||||
<text text-anchor="start" x="2486.62" y="-72.2" font-family="Times,serif" font-size="14.00">ProductType</text>
|
||||
<polyline fill="none" stroke="black" points="2478.62,-64.25 2585.38,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="2478.62,-64.25 2585.38,-64.25"/>
|
||||
<text text-anchor="start" x="2527.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.ProductType->taxonomy.Taxonomy -->
|
||||
<g id="edge43" class="edge">
|
||||
<title>taxonomy.ProductType->taxonomy.Taxonomy</title>
|
||||
<path fill="none" stroke="black" d="M2518.58,-89.83C2499.65,-124.5 2464.73,-188.44 2440.71,-232.43"/>
|
||||
<polygon fill="none" stroke="black" points="2437.75,-230.54 2436.03,-240.99 2443.89,-233.89 2437.75,-230.54"/>
|
||||
</g>
|
||||
<!-- log.Purchase -->
|
||||
<g id="node49" class="node">
|
||||
<title>log.Purchase</title>
|
||||
<polygon fill="none" stroke="black" points="484,-39 484,-89.5 566,-89.5 566,-39 484,-39"/>
|
||||
<text text-anchor="start" x="492" y="-72.2" font-family="Times,serif" font-size="14.00">Purchase</text>
|
||||
<polyline fill="none" stroke="black" points="484,-64.25 566,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="484,-64.25 566,-64.25"/>
|
||||
<text text-anchor="start" x="520.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Purchase->log.Log -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>log.Purchase->log.Log</title>
|
||||
<path fill="none" stroke="black" d="M507.79,-89.83C496,-106.66 479.38,-130.41 461.88,-155.41"/>
|
||||
<polygon fill="none" stroke="black" points="459.13,-153.23 456.26,-163.43 464.86,-157.25 459.13,-153.23"/>
|
||||
</g>
|
||||
<!-- log.Sale -->
|
||||
<g id="node51" class="node">
|
||||
<title>log.Sale</title>
|
||||
<polygon fill="none" stroke="black" points="584,-39 584,-89.5 638,-89.5 638,-39 584,-39"/>
|
||||
<text text-anchor="start" x="594.5" y="-72.2" font-family="Times,serif" font-size="14.00">Sale</text>
|
||||
<polyline fill="none" stroke="black" points="584,-64.25 638,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="584,-64.25 638,-64.25"/>
|
||||
<text text-anchor="start" x="606.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Sale->log.Log -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>log.Sale->log.Log</title>
|
||||
<path fill="none" stroke="black" d="M599.94,-89.88C593.68,-102.26 585.09,-117.01 575,-128.5 554.13,-152.26 528.99,-174.7 503.69,-194.65"/>
|
||||
<polygon fill="none" stroke="black" points="501.68,-191.77 495.93,-200.67 505.98,-197.3 501.68,-191.77"/>
|
||||
</g>
|
||||
<!-- taxonomy.Season -->
|
||||
<g id="node52" class="node">
|
||||
<title>taxonomy.Season</title>
|
||||
<polygon fill="none" stroke="black" points="2603.25,-39 2603.25,-89.5 2668.75,-89.5 2668.75,-39 2603.25,-39"/>
|
||||
<text text-anchor="start" x="2611.25" y="-72.2" font-family="Times,serif" font-size="14.00">Season</text>
|
||||
<polyline fill="none" stroke="black" points="2603.25,-64.25 2668.75,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="2603.25,-64.25 2668.75,-64.25"/>
|
||||
<text text-anchor="start" x="2631.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.Season->taxonomy.Taxonomy -->
|
||||
<g id="edge45" class="edge">
|
||||
<title>taxonomy.Season->taxonomy.Taxonomy</title>
|
||||
<path fill="none" stroke="black" d="M2621.95,-89.84C2614.41,-102.06 2604.53,-116.69 2594,-128.5 2558.46,-168.37 2512.26,-207.08 2475.7,-235.33"/>
|
||||
<polygon fill="none" stroke="black" points="2473.63,-232.5 2467.82,-241.36 2477.89,-238.05 2473.63,-232.5"/>
|
||||
</g>
|
||||
<!-- asset.Seed -->
|
||||
<g id="node53" class="node">
|
||||
<title>asset.Seed</title>
|
||||
<polygon fill="none" stroke="black" points="1824.25,-17.75 1824.25,-110.75 2021.75,-110.75 2021.75,-17.75 1824.25,-17.75"/>
|
||||
<text text-anchor="start" x="1906.5" y="-93.45" font-family="Times,serif" font-size="14.00">Seed</text>
|
||||
<polyline fill="none" stroke="black" points="1824.25,-85.5 2021.75,-85.5"/>
|
||||
<text text-anchor="start" x="1832.25" y="-68.2" font-family="Times,serif" font-size="14.00">crop : RelationField</text>
|
||||
<text text-anchor="start" x="1832.25" y="-50.95" font-family="Times,serif" font-size="14.00">season : RelationField</text>
|
||||
<polyline fill="none" stroke="black" points="1824.25,-43 2021.75,-43"/>
|
||||
<text text-anchor="start" x="1918.88" y="-25.7" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- asset.Seed->asset.Asset -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>asset.Seed->asset.Asset</title>
|
||||
<path fill="none" stroke="black" d="M1849.51,-111.24C1838.17,-117.47 1826.42,-123.44 1815,-128.5 1698.29,-180.16 1558.49,-221.88 1459.58,-248.28"/>
|
||||
<polygon fill="none" stroke="black" points="1458.87,-244.84 1450.1,-250.79 1460.66,-251.61 1458.87,-244.84"/>
|
||||
</g>
|
||||
<!-- log.Seeding -->
|
||||
<g id="node54" class="node">
|
||||
<title>log.Seeding</title>
|
||||
<polygon fill="none" stroke="black" points="656.12,-39 656.12,-89.5 729.88,-89.5 729.88,-39 656.12,-39"/>
|
||||
<text text-anchor="start" x="664.12" y="-72.2" font-family="Times,serif" font-size="14.00">Seeding</text>
|
||||
<polyline fill="none" stroke="black" points="656.12,-64.25 729.88,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="656.12,-64.25 729.88,-64.25"/>
|
||||
<text text-anchor="start" x="688.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- log.Seeding->log.Log -->
|
||||
<g id="edge27" class="edge">
|
||||
<title>log.Seeding->log.Log</title>
|
||||
<path fill="none" stroke="black" d="M678.78,-89.77C670.61,-102.4 659.51,-117.43 647,-128.5 605.08,-165.59 552.53,-197.4 504.82,-222.12"/>
|
||||
<polygon fill="none" stroke="black" points="503.38,-218.93 496.07,-226.6 506.57,-225.16 503.38,-218.93"/>
|
||||
</g>
|
||||
<!-- quantity.Standard -->
|
||||
<g id="node55" class="node">
|
||||
<title>quantity.Standard</title>
|
||||
<polygon fill="none" stroke="black" points="3347,-39 3347,-89.5 3429,-89.5 3429,-39 3347,-39"/>
|
||||
<text text-anchor="start" x="3355" y="-72.2" font-family="Times,serif" font-size="14.00">Standard</text>
|
||||
<polyline fill="none" stroke="black" points="3347,-64.25 3429,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="3347,-64.25 3429,-64.25"/>
|
||||
<text text-anchor="start" x="3383.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- quantity.Standard->quantity.Quantity -->
|
||||
<g id="edge33" class="edge">
|
||||
<title>quantity.Standard->quantity.Quantity</title>
|
||||
<path fill="none" stroke="black" d="M3369.68,-89.85C3360.5,-101.8 3349.02,-116.2 3338,-128.5 3319.31,-149.36 3298.44,-170.96 3278.26,-191.09"/>
|
||||
<polygon fill="none" stroke="black" points="3275.98,-188.42 3271.34,-197.95 3280.91,-193.39 3275.98,-188.42"/>
|
||||
</g>
|
||||
<!-- taxonomy.Unit -->
|
||||
<g id="node57" class="node">
|
||||
<title>taxonomy.Unit</title>
|
||||
<polygon fill="none" stroke="black" points="2687,-39 2687,-89.5 2741,-89.5 2741,-39 2687,-39"/>
|
||||
<text text-anchor="start" x="2697.5" y="-72.2" font-family="Times,serif" font-size="14.00">Unit</text>
|
||||
<polyline fill="none" stroke="black" points="2687,-64.25 2741,-64.25"/>
|
||||
<polyline fill="none" stroke="black" points="2687,-64.25 2741,-64.25"/>
|
||||
<text text-anchor="start" x="2709.88" y="-46.95" font-family="Times,serif" font-size="14.00"> </text>
|
||||
</g>
|
||||
<!-- taxonomy.Unit->taxonomy.Taxonomy -->
|
||||
<g id="edge47" class="edge">
|
||||
<title>taxonomy.Unit->taxonomy.Taxonomy</title>
|
||||
<path fill="none" stroke="black" d="M2703.83,-89.81C2697.71,-102.46 2688.97,-117.49 2678,-128.5 2631.92,-174.75 2568.77,-211.63 2515.9,-237.36"/>
|
||||
<polygon fill="none" stroke="black" points="2514.68,-234.06 2507.18,-241.54 2517.71,-240.37 2514.68,-234.06"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 62 KiB |
2
neofarm/klassendiagramm/generate.sh
Executable file
2
neofarm/klassendiagramm/generate.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
#/bin/sh
|
||||
pyreverse -o svg -p neofarm ../orm/*.py
|
||||
67
neofarm/klassendiagramm/packages_neofarm.svg
Normal file
67
neofarm/klassendiagramm/packages_neofarm.svg
Normal file
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 12.1.2 (0)
|
||||
-->
|
||||
<!-- Title: packages_neofarm Pages: 1 -->
|
||||
<svg width="338pt" height="116pt"
|
||||
viewBox="0.00 0.00 337.62 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
|
||||
<title>packages_neofarm</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-112 333.62,-112 333.62,4 -4,4"/>
|
||||
<!-- asset -->
|
||||
<g id="node1" class="node">
|
||||
<title>asset</title>
|
||||
<polygon fill="none" stroke="black" points="57.25,-36 0,-36 0,0 57.25,0 57.25,-36"/>
|
||||
<text text-anchor="middle" x="28.62" y="-13.32" font-family="Times,serif" font-size="14.00">asset</text>
|
||||
</g>
|
||||
<!-- my_meta -->
|
||||
<g id="node3" class="node">
|
||||
<title>my_meta</title>
|
||||
<polygon fill="none" stroke="black" points="182.5,-108 108.75,-108 108.75,-72 182.5,-72 182.5,-108"/>
|
||||
<text text-anchor="middle" x="145.62" y="-85.33" font-family="Times,serif" font-size="14.00">my_meta</text>
|
||||
</g>
|
||||
<!-- asset->my_meta -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>asset->my_meta</title>
|
||||
<path fill="none" stroke="black" d="M57.55,-36.3C72.59,-45.31 91.18,-56.43 107.4,-66.13"/>
|
||||
<polygon fill="black" stroke="black" points="115.59,-71.03 104.69,-69.75 112.34,-69.09 107,-65.89 107,-65.89 107,-65.89 112.34,-69.09 109.31,-62.03 115.59,-71.03"/>
|
||||
</g>
|
||||
<!-- log -->
|
||||
<g id="node2" class="node">
|
||||
<title>log</title>
|
||||
<polygon fill="none" stroke="black" points="129.62,-36 75.62,-36 75.62,0 129.62,0 129.62,-36"/>
|
||||
<text text-anchor="middle" x="102.62" y="-13.32" font-family="Times,serif" font-size="14.00">log</text>
|
||||
</g>
|
||||
<!-- log->my_meta -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>log->my_meta</title>
|
||||
<path fill="none" stroke="black" d="M113.25,-36.3C118.1,-44.19 123.94,-53.7 129.32,-62.45"/>
|
||||
<polygon fill="black" stroke="black" points="134.48,-70.86 125.41,-64.69 132.5,-67.64 129.25,-62.34 129.25,-62.34 129.25,-62.34 132.5,-67.64 133.08,-59.98 134.48,-70.86"/>
|
||||
</g>
|
||||
<!-- quantity -->
|
||||
<g id="node4" class="node">
|
||||
<title>quantity</title>
|
||||
<polygon fill="none" stroke="black" points="229.62,-36 147.62,-36 147.62,0 229.62,0 229.62,-36"/>
|
||||
<text text-anchor="middle" x="188.62" y="-13.32" font-family="Times,serif" font-size="14.00">quantity</text>
|
||||
</g>
|
||||
<!-- quantity->my_meta -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>quantity->my_meta</title>
|
||||
<path fill="none" stroke="black" d="M178,-36.3C173.15,-44.19 167.31,-53.7 161.93,-62.45"/>
|
||||
<polygon fill="black" stroke="black" points="156.77,-70.86 158.17,-59.98 158.75,-67.64 162,-62.34 162,-62.34 162,-62.34 158.75,-67.64 165.84,-64.69 156.77,-70.86"/>
|
||||
</g>
|
||||
<!-- taxonomy -->
|
||||
<g id="node5" class="node">
|
||||
<title>taxonomy</title>
|
||||
<polygon fill="none" stroke="black" points="329.62,-36 247.62,-36 247.62,0 329.62,0 329.62,-36"/>
|
||||
<text text-anchor="middle" x="288.62" y="-13.32" font-family="Times,serif" font-size="14.00">taxonomy</text>
|
||||
</g>
|
||||
<!-- taxonomy->my_meta -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>taxonomy->my_meta</title>
|
||||
<path fill="none" stroke="black" d="M252.91,-36.48C234.08,-45.7 210.8,-57.1 190.74,-66.92"/>
|
||||
<polygon fill="black" stroke="black" points="181.98,-71.2 188.98,-62.77 185.38,-69.54 190.96,-66.81 190.96,-66.81 190.96,-66.81 185.38,-69.54 192.94,-70.85 181.98,-71.2"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
45
neofarm/lib.py
Normal file
45
neofarm/lib.py
Normal file
@@ -0,0 +1,45 @@
|
||||
import requests
|
||||
from oauthlib.oauth2 import BackendApplicationClient
|
||||
from requests_oauthlib import OAuth2Session, OAuth2
|
||||
import jsonapi_requests
|
||||
from . orm.my_meta import MyMeta
|
||||
|
||||
# constants:
|
||||
root_url = 'https://farmos.wagframe.duckdns.org/'
|
||||
api_root = root_url + 'api/'
|
||||
token_url = root_url + 'oauth/token/'
|
||||
client_id = 'neofarm'
|
||||
client_secret = 'Wk&%g#d8lYFUDrU7k7k%5ZS$V@hHauBq'
|
||||
fetch_retries = 10;
|
||||
|
||||
def init_api():
|
||||
client = BackendApplicationClient(client_id=client_id)
|
||||
oauth_session = OAuth2Session(client=client)
|
||||
for i in range(fetch_retries):
|
||||
try:
|
||||
token = oauth_session.fetch_token(
|
||||
token_url = token_url,
|
||||
client_id = client_id,
|
||||
client_secret = client_secret
|
||||
)
|
||||
break
|
||||
except:
|
||||
print("Fehler bei Verbindung mit Server (wahrscheinlich DuckDns) probiere erneut...")
|
||||
|
||||
oauth = OAuth2(client_id=client_id, client=client, token=token)
|
||||
|
||||
api = jsonapi_requests.orm.OrmApi.config({
|
||||
'API_ROOT': api_root,
|
||||
'AUTH': oauth,
|
||||
'TIMEOUT': 1,
|
||||
})
|
||||
jsonapi_requests.configuration.default = api
|
||||
return api
|
||||
|
||||
api = init_api()
|
||||
MyMeta.set_api(api)
|
||||
# orm stuff classes imported here to allow inheritance from MyMeta
|
||||
import neofarm.orm.log as Log
|
||||
import neofarm.orm.asset as Asset
|
||||
import neofarm.orm.quantity as Quantity
|
||||
import neofarm.orm.taxonomy as Taxonomy
|
||||
72
neofarm/orm/asset.py
Normal file
72
neofarm/orm/asset.py
Normal file
@@ -0,0 +1,72 @@
|
||||
import jsonapi_requests
|
||||
import neofarm.orm.log as Log
|
||||
from . my_meta import MyMeta
|
||||
|
||||
|
||||
class Asset(jsonapi_requests.orm.ApiModel):
|
||||
class Meta(MyMeta):
|
||||
type = 'asset'
|
||||
|
||||
name = jsonapi_requests.orm.AttributeField('name')
|
||||
timestamp = jsonapi_requests.orm.AttributeField('timestamp')
|
||||
location = jsonapi_requests.orm.RelationField('location')
|
||||
|
||||
def get_logs_of_type(self, type):
|
||||
if not issubclass(type, Log.Log):
|
||||
raise ValueError("type specified is not a type of log use for example: get_logs_of_type(Log.Harvest)")
|
||||
logs = type.get_list()
|
||||
related = []
|
||||
for log in logs:
|
||||
for asset in log.assets:
|
||||
if asset.id == self.id:
|
||||
related.append(log)
|
||||
break;
|
||||
return related
|
||||
|
||||
def get_inventory_logs_of_type(self, type):
|
||||
if not issubclass(type, Log.Log):
|
||||
raise ValueError("type specified is not a type of log use for example: get_logs_of_type(Log.Harvest)")
|
||||
logs = type.get_list()
|
||||
related = []
|
||||
for log in logs:
|
||||
for quantity in log.quantities:
|
||||
if quantity.inventory_asset:
|
||||
if quantity.inventory_asset.id == self.id:
|
||||
related.append(log)
|
||||
break;
|
||||
return related
|
||||
|
||||
class Land(Asset):
|
||||
class Meta(Asset.Meta):
|
||||
name = 'land'
|
||||
type, path = Asset.Meta.get_type_and_path(name)
|
||||
json_geometry = jsonapi_requests.orm.AttributeField('intrinsic_geometry')
|
||||
|
||||
class Plant(Asset):
|
||||
class Meta(Asset.Meta):
|
||||
name = 'plant'
|
||||
type, path = Asset.Meta.get_type_and_path(name)
|
||||
crops = jsonapi_requests.orm.RelationField('plant_type')
|
||||
seasons = jsonapi_requests.orm.RelationField('season')
|
||||
class Equipment(Asset):
|
||||
class Meta(Asset.Meta):
|
||||
name = 'equipment'
|
||||
type, path = Asset.Meta.get_type_and_path(name)
|
||||
class Material(Asset):
|
||||
class Meta(Asset.Meta):
|
||||
name = 'material'
|
||||
type, path = Asset.Meta.get_type_and_path(name)
|
||||
crop = jsonapi_requests.orm.RelationField('material_type')
|
||||
class Seed(Asset):
|
||||
class Meta(Asset.Meta):
|
||||
name = 'seed'
|
||||
type, path = Asset.Meta.get_type_and_path(name)
|
||||
crop = jsonapi_requests.orm.RelationField('plant_type')
|
||||
season = jsonapi_requests.orm.RelationField('season')
|
||||
class Product(Asset):
|
||||
class Meta(Asset.Meta):
|
||||
name = 'product'
|
||||
type, path = Asset.Meta.get_type_and_path(name)
|
||||
# do not rename to type as that will end in infinite recursion
|
||||
product_type = jsonapi_requests.orm.RelationField('product_type')
|
||||
|
||||
59
neofarm/orm/log.py
Normal file
59
neofarm/orm/log.py
Normal file
@@ -0,0 +1,59 @@
|
||||
import jsonapi_requests
|
||||
from . my_meta import MyMeta
|
||||
|
||||
class Log(jsonapi_requests.orm.ApiModel):
|
||||
class Meta(MyMeta):
|
||||
type = 'log'
|
||||
|
||||
name = jsonapi_requests.orm.AttributeField('name')
|
||||
timestamp = jsonapi_requests.orm.AttributeField('timestamp')
|
||||
isMovement = jsonapi_requests.orm.AttributeField('is_movement')
|
||||
assets = jsonapi_requests.orm.RelationField('asset')
|
||||
location = jsonapi_requests.orm.RelationField('location')
|
||||
equipment = jsonapi_requests.orm.RelationField('equipment')
|
||||
quantities = jsonapi_requests.orm.RelationField('quantity')
|
||||
json_notes = jsonapi_requests.orm.AttributeField('notes')
|
||||
|
||||
@property
|
||||
def notes(self):
|
||||
return self.json_notes['value']
|
||||
|
||||
@property
|
||||
def plant(self):
|
||||
for asset in self.assets:
|
||||
if asset.type == 'asset--plant':
|
||||
return asset
|
||||
|
||||
class Activity(Log):
|
||||
class Meta(Log.Meta):
|
||||
name = 'activity'
|
||||
type, path = Log.Meta.get_type_and_path(name)
|
||||
class Maintenance(Log):
|
||||
class Meta(Log.Meta):
|
||||
name = 'maintenance'
|
||||
type, path = Log.Meta.get_type_and_path(name)
|
||||
class Purchase(Log):
|
||||
class Meta(Log.Meta):
|
||||
name = 'purchase'
|
||||
type, path = Log.Meta.get_type_and_path(name)
|
||||
class Seeding(Log):
|
||||
class Meta(Log.Meta):
|
||||
name = 'seeding'
|
||||
type, path = Log.Meta.get_type_and_path(name)
|
||||
class Input(Log):
|
||||
class Meta(Log.Meta):
|
||||
name = 'input'
|
||||
type, path = Log.Meta.get_type_and_path(name)
|
||||
class Medical(Log):
|
||||
class Meta(Log.Meta):
|
||||
name = 'medical'
|
||||
type, path = Log.Meta.get_type_and_path(name)
|
||||
class Harvest(Log):
|
||||
class Meta(Log.Meta):
|
||||
name = 'harvest'
|
||||
type, path = Log.Meta.get_type_and_path(name)
|
||||
class Sale(Log):
|
||||
class Meta(Log.Meta):
|
||||
name = 'sale'
|
||||
type, path = Log.Meta.get_type_and_path(name)
|
||||
|
||||
10
neofarm/orm/my_meta.py
Normal file
10
neofarm/orm/my_meta.py
Normal file
@@ -0,0 +1,10 @@
|
||||
api_path_separator = '/'
|
||||
api_type_separator = '--'
|
||||
|
||||
class MyMeta:
|
||||
@classmethod
|
||||
def get_type_and_path(cls, name):
|
||||
return (f"{cls.type}{api_type_separator}{name}", f"{cls.type}{api_path_separator}{name}")
|
||||
@classmethod
|
||||
def set_api(cls, api):
|
||||
cls.api = api
|
||||
41
neofarm/orm/quantity.py
Normal file
41
neofarm/orm/quantity.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import jsonapi_requests
|
||||
from . my_meta import MyMeta
|
||||
|
||||
|
||||
class Quantity(jsonapi_requests.orm.ApiModel):
|
||||
class Meta(MyMeta):
|
||||
type = 'quantity'
|
||||
|
||||
measure = jsonapi_requests.orm.AttributeField('measure')
|
||||
json_value = jsonapi_requests.orm.AttributeField('value')
|
||||
units = jsonapi_requests.orm.RelationField('units')
|
||||
inventory_adjustment = jsonapi_requests.orm.AttributeField('inventory_adjustment')
|
||||
inventory_asset = jsonapi_requests.orm.RelationField('inventory_asset')
|
||||
|
||||
@property
|
||||
def value(self):
|
||||
return float(self.json_value['decimal'])
|
||||
|
||||
class Standard(Quantity):
|
||||
class Meta(Quantity.Meta):
|
||||
name = 'standard'
|
||||
type, path = Quantity.Meta.get_type_and_path(name)
|
||||
class Price(Quantity):
|
||||
class Meta(Quantity.Meta):
|
||||
name = 'price'
|
||||
type, path = Quantity.Meta.get_type_and_path(name)
|
||||
json_unit_price = jsonapi_requests.orm.AttributeField('unit_price')
|
||||
json_total_price = jsonapi_requests.orm.AttributeField('total_price')
|
||||
|
||||
@property
|
||||
def unit_price(self):
|
||||
return float(self.json_unit_price['decimal'])
|
||||
@property
|
||||
def total_price(self):
|
||||
return float(self.json_total_price['decimal'])
|
||||
|
||||
class Material(Quantity):
|
||||
class Meta(Quantity.Meta):
|
||||
name = 'material'
|
||||
type, path = Quantity.Meta.get_type_and_path(name)
|
||||
material_types = jsonapi_requests.orm.RelationField('material_type')
|
||||
38
neofarm/orm/taxonomy.py
Normal file
38
neofarm/orm/taxonomy.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import jsonapi_requests
|
||||
from . my_meta import MyMeta
|
||||
|
||||
|
||||
class Taxonomy(jsonapi_requests.orm.ApiModel):
|
||||
class Meta(MyMeta):
|
||||
type = 'taxonomy_term'
|
||||
|
||||
name = jsonapi_requests.orm.AttributeField('name')
|
||||
|
||||
class Crop(Taxonomy):
|
||||
class Meta(Taxonomy.Meta):
|
||||
name = 'crop_family'
|
||||
type, path = Taxonomy.Meta.get_type_and_path(name)
|
||||
class LogCategory(Taxonomy):
|
||||
class Meta(Taxonomy.Meta):
|
||||
name = 'log_category'
|
||||
type, path = Taxonomy.Meta.get_type_and_path(name)
|
||||
class MaterialType(Taxonomy):
|
||||
class Meta(Taxonomy.Meta):
|
||||
name = 'material_type'
|
||||
type, path = Taxonomy.Meta.get_type_and_path(name)
|
||||
class PlantType(Taxonomy):
|
||||
class Meta(Taxonomy.Meta):
|
||||
name = 'plant_type'
|
||||
type, path = Taxonomy.Meta.get_type_and_path(name)
|
||||
class ProductType(Taxonomy):
|
||||
class Meta(Taxonomy.Meta):
|
||||
name = 'product_type'
|
||||
type, path = Taxonomy.Meta.get_type_and_path(name)
|
||||
class Season(Taxonomy):
|
||||
class Meta(Taxonomy.Meta):
|
||||
name = 'season'
|
||||
type, path = Taxonomy.Meta.get_type_and_path(name)
|
||||
class Unit(Taxonomy):
|
||||
class Meta(Taxonomy.Meta):
|
||||
name = 'unit'
|
||||
type, path = Taxonomy.Meta.get_type_and_path(name)
|
||||
3333
reporting.ipynb
Normal file
3333
reporting.ipynb
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user