7 Commits

Author SHA1 Message Date
8b55f74cd5 version increment 2026-01-18 11:27:51 +01:00
c0aa8bc732 added total coffee 2026-01-18 11:27:04 +01:00
6c7113849f typo and update of deb package description 2025-10-25 13:51:54 +02:00
321cbc7f89 increment version for new release 0.2.2b 2025-10-25 13:41:25 +02:00
aa5d5e6698 changed sender and receiver order in csv output 2025-10-25 13:39:56 +02:00
2b55aa62f0 refactored variables 2025-10-25 13:26:51 +02:00
cda807a467 updated compilation script, including requirements.txt 2025-10-06 12:32:18 +02:00
5 changed files with 48 additions and 19 deletions

View File

@@ -4,8 +4,19 @@ set -e
if [ "$VIRTUAL_ENV" == "" ]
then
if [ ! -d "./venv/bin" ]; then
echo "venv not found, trying to create one"
python3 -m venv venv
fi
source venv/bin/activate
fi
if [[ ! $(pip3 freeze | grep pyinstaller) ]];
then
echo "pyinstaller not found"
pip3 install -r requirements.txt
fi
version=$(cat version.txt)
echo "current version set to: $version"
new_version=""

View File

@@ -1,5 +1,5 @@
Package: brovski-adressetiketten
Version: 0.2.1b
Version: 0.2.3b
Maintainer: Ovski
Architecture: all
Description: manage csv files for glables address labels
Description: Manage and export addresses to csv. Can be used with glabels (example included in the source).

5
requirements.txt Normal file
View File

@@ -0,0 +1,5 @@
altgraph==0.17.4
packaging==25.0
pyinstaller==6.16.0
pyinstaller-hooks-contrib==2025.9
setuptools==80.9.0

View File

@@ -1,3 +1,4 @@
import _csv
import csv
import os
import sys
@@ -20,7 +21,7 @@ class Application:
y_offset = 200
width = 1050
height = 700
VERSION = '0.2.1b'
VERSION = '0.2.3b'
title = f"Brovski Adress-Etiketten Verwaltung {VERSION}"
self.root = tk.Tk(className="BrovskiAdressEtiketten")
@@ -51,6 +52,7 @@ class Application:
self.statusbar = tk.StringVar()
self.length_address_list = None
self.length_address_list_active = None
self.count_coffee = None
# leave application if settings are bad
if not self.config_good:
@@ -142,7 +144,7 @@ class Application:
"name": "Name",
"strasse": "Strasse",
"plzort": "Plz/Ort",
"anzahl": "Anzahl"
"anzahl": "1"
}
self.model.create_new(values)
self.populate_table()
@@ -254,24 +256,29 @@ class Application:
if address["aktiv"] != "x":
continue
for index in range(int(address["anzahl"])):
line = []
if address["firma"] != "":
line.append(address["firma"])
line.append(address["name"])
line.append(address["strasse"])
line.append(address["plzort"])
writer.writerow(line)
# todo: add "absender" to config parameters
line = []
for idx in range(4):
line.append(self.config.get("absender", f"{idx}"))
writer.writerow(line)
self.write_sender_to_csv(address, writer)
self.write_receiver_to_csv(address, writer)
except FileNotFoundError:
show_error(message_title="Unexpected error",
message=f"Could not write file {self.csv_file}",
parent=self.root
)
def write_receiver_to_csv(self, address: dict, csv_writer: _csv.writer):
receiver_line = []
if address["firma"] != "":
receiver_line.append(address["firma"])
receiver_line.append(address["name"])
receiver_line.append(address["strasse"])
receiver_line.append(address["plzort"])
csv_writer.writerow(receiver_line)
def write_sender_to_csv(self, address: dict, csv_writer: _csv.writer):
sender_line = []
for idx in range(4):
sender_line.append(self.config.get("absender", f"{idx}"))
csv_writer.writerow(sender_line)
def populate_table(self, reload=True):
if reload:
self.address_list = self.model.get_all()
@@ -316,15 +323,21 @@ class Application:
def update_status_bar(self):
self._count_address_records()
self.statusbar.set(f"Adressen: {self.length_address_list} | Aktive Adressen: {self.length_address_list_active}")
self.statusbar.set(
f"Adressen: {self.length_address_list} | "
f"Aktive Adressen: {self.length_address_list_active} | "
f"Total Kaffee: {self.count_coffee}")
def _count_address_records(self):
self.length_address_list = len(self.address_list)
count = 0
count_coffee = 0
for address in self.address_list:
if address["aktiv"] == "x":
count += 1
count_coffee += count_coffee + int(address["anzahl"])
self.length_address_list_active = count
self.count_coffee = count_coffee
def first_sort_after_start(self):
self.address_list.sort(key=lambda x: (x["firma"], x["name"]))

View File

@@ -1 +1 @@
0.2.1b
0.2.3b