Compare commits
No commits in common. "73bebf0aec0b4c32f8bc102cf02c2d3e5bd63723" and "9211d1f9b4badf0ac99383a4ae571b3d8810af19" have entirely different histories.
73bebf0aec
...
9211d1f9b4
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,4 +5,3 @@ elm-stuff
|
||||
static/jon.js
|
||||
__pycache__
|
||||
*.swp
|
||||
py/jon/config.json
|
||||
|
@ -1,5 +1,4 @@
|
||||
import inspect
|
||||
import json
|
||||
|
||||
from flask import Flask, render_template
|
||||
|
||||
@ -14,10 +13,9 @@ from . import (
|
||||
|
||||
def create_app():
|
||||
app = Flask(__name__)
|
||||
app.config.from_file("default-config.json", load=json.load)
|
||||
# You don't need a config.json. If you don't provide one, default-config.json
|
||||
# is used.
|
||||
app.config.from_file("config.json", load=json.load, silent=True)
|
||||
app.config.from_mapping(
|
||||
SECRET_KEY="dev"
|
||||
)
|
||||
|
||||
db.init_app(app)
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import psycopg2
|
||||
|
||||
from flask import current_app, g
|
||||
from flask import g
|
||||
from pathlib import Path
|
||||
from psycopg2.extras import RealDictCursor
|
||||
|
||||
@ -9,7 +9,7 @@ def get_db():
|
||||
if "db" not in g:
|
||||
# TODO: Make this configurable and use a default that works
|
||||
# on the pool computers.
|
||||
g.db = psycopg2.connect(current_app.config["DB_CONNECTION_STRING"])
|
||||
g.db = psycopg2.connect("host=localhost dbname=garfield")
|
||||
run_query_on(g.db, "add_views.sql", None)
|
||||
|
||||
return g.db
|
||||
|
@ -1,5 +0,0 @@
|
||||
INSERT INTO garfield.inventory_correction (item_id, delta, correction_comment)
|
||||
VALUES (%(from_item_id)s, -%(amount)s, CONCAT('Umbuchung auf ', %(to_item_id)s));
|
||||
|
||||
INSERT INTO garfield.inventory_correction (item_id, delta, correction_comment)
|
||||
VALUES (%(to_item_id)s, %(amount)s, CONCAT('Umbuchung von ', %(from_item_id)s));
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"SECRET_KEY": "dev",
|
||||
"DB_CONNECTION_STRING": "host=fsmi-db dbname=garfield"
|
||||
}
|
@ -80,28 +80,3 @@ def create_correction():
|
||||
db.get_db().commit()
|
||||
|
||||
return redirect(request.referrer)
|
||||
|
||||
|
||||
@bp.post("/transfer")
|
||||
def transfer_items():
|
||||
try:
|
||||
from_item_id = int(request.form.get("from_item_id"))
|
||||
to_item_id = int(request.form.get("to_item_id"))
|
||||
amount = int(request.form.get("amount"))
|
||||
except:
|
||||
return "Incomplete or mistyped form", 400
|
||||
|
||||
if amount == 0:
|
||||
return "Amount may not be 0", 400
|
||||
|
||||
if from_item_id == to_item_id:
|
||||
return "Transfers must be between different items", 400
|
||||
|
||||
db.run_query("transfer_items.sql", {
|
||||
"from_item_id": from_item_id,
|
||||
"to_item_id": to_item_id,
|
||||
"amount": amount
|
||||
})
|
||||
db.get_db().commit()
|
||||
|
||||
return redirect(request.referrer)
|
||||
|
@ -91,13 +91,6 @@
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
{% if config.DEBUG %}
|
||||
<details>
|
||||
<summary><code>config</code></summary>
|
||||
<pre>{% for key, value in config.items() %}{{ key }} = {{ value }}
|
||||
{% endfor %}</pre>
|
||||
</details>
|
||||
{% endif %}
|
||||
</header>
|
||||
|
||||
<main>
|
||||
|
@ -22,7 +22,8 @@
|
||||
<th class="--align-left">Einkaufspreis (Netto)</th>
|
||||
<td>{{ format_currency(item.unit_price) }}</td>
|
||||
</tr>
|
||||
<tr> <th class="--align-left">Kaufdatum</th>
|
||||
<tr>
|
||||
<th class="--align-left">Kaufdatum</th>
|
||||
<td>{{ format_date(item.bought) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -120,33 +121,25 @@
|
||||
<th title="Aktive Snackeinträge">AS</th>
|
||||
<th>Aktiv?</th>
|
||||
</tr>
|
||||
{% for other_item in same_barcode_items %}
|
||||
{% for item in same_barcode_items %}
|
||||
<tr>
|
||||
<td><a href="/inventory/item/{{ other_item.item_id }}">{{ other_item.item_id }}</a></td>
|
||||
<td><code>{{ other_item.item_barcode }}</code></td>
|
||||
<td>{{ other_item.name }}</td>
|
||||
<td><a href="/inventory/item/{{ item.item_id }}">{{ item.item_id }}</a></td>
|
||||
<td><code>{{ item.item_barcode }}</code></td>
|
||||
<td>{{ item.name }}</td>
|
||||
<td class="--align-right">{{ format_currency(item.unit_price) }}</td>
|
||||
<td>{{ format_date(item.bought) }}</td>
|
||||
<td>{{ other_item.group_name }} ({{ other_item.item_group }})</td>
|
||||
<td class="--align-right">{{ other_item.sales_units }}</td>
|
||||
<td class="--align-right">{% if other_item.correction_delta > 0 %}+{% endif %}{{ other_item.correction_delta }}</td>
|
||||
<td class="--align-right">{{ other_item.units_left }}</td>
|
||||
<td>{{ item.group_name }} ({{ item.item_group }})</td>
|
||||
<td class="--align-right">{{ item.sales_units }}</td>
|
||||
<td class="--align-right">{% if item.correction_delta > 0 %}+{% endif %}{{ item.correction_delta }}</td>
|
||||
<td class="--align-right">{{ item.units_left }}</td>
|
||||
<td class="--centered">
|
||||
{% if other_item.active_mappings != 0 %}
|
||||
{{ other_item.active_mappings_array | join(", ") }}
|
||||
{% if item.active_mappings != 0 %}
|
||||
{{ item.active_mappings_array | join(", ") }}
|
||||
{% else %}
|
||||
-
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="--centered">{{ format_bool(other_item.available) }}</td>
|
||||
<td>
|
||||
<form method="POST" action="/inventory/transfer">
|
||||
<input type="hidden" name="from_item_id" value="{{ item.item_id }}">
|
||||
<input type="hidden" name="to_item_id" value="{{ other_item.item_id }}">
|
||||
<input type="hidden" name="amount" value="{{ item.units_left }}">
|
||||
<button{% if not other_item.available or other_item.item_id == item.item_id %} disabled{% endif %}>{{ item.units_left }} Artikel umbuchen</button>
|
||||
</form>
|
||||
</td>
|
||||
<td class="--centered">{{ format_bool(item.available) }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
Loading…
x
Reference in New Issue
Block a user