Leihausrüstung, also im Prinzip eine Inventarverwaltung mit ein- und auschecken.
Da gibt es natürlich einiges, aber bisher habe ich nur kommerziellen Kram gefunden, ab dreistellig/Monat aufwärts in der Cloud (semioptimal, schon allein, weil dann nochmal die Kosten für einen Internetzugang im Vereinsheim dazukämen. Beides nicht die Welt, andererseits aber in Summe im Jahr dann zusammen 10 % der Mitgliedsbeiträge...).
Im Bereich Bibliotheksverwaltung gibt es ein bisschen was open source, aber das ist sehr stark auf Bücher zugeschnitten und daher relativ aufwändig umzumodeln (zumal man da mehr oder weniger programmieren können muss).
Aktuell läuft das mit Listen, aber das ist fehleranfällig.
Pflichtfelder werden vergessen. Bei der Rückgabe wird alles als zurückgenommen unterschrieben, obwohl nur ein Teil zurückkam (weil die Liste ein einfaches, einzelnes zurücknehmen nicht hergibt).
Wir hatten gerade Inventur, deswegen habe ich kürzlich mal angefangen das Handbuch von Libre Office Base zu lesen, also Datenbank und ein paar Berichte und Formulare.
Aber da starte ich halt auch von Null und ich kann nicht mal einschätzen wie aufwändig das wäre.
Die Lösung mit Sahnehäubchen und Kirsche wäre das ganze als Nextcloudapp zu haben, weil man dann auf die Infrastruktur, also Benutzer, Mails etc zugreifen könnte, ohne das man sich großartig mit der Sicherheit rumplagen muss.
Aber selbst wenn die bisherige Liste sinnvoll digitalisiert wird, wäre das schon ein Meilenstein.
Bzgl. Lizenzen hab ich keine Ahnung. Wäre natürlich schön, wenn es am Ende bei Github oder ähnlichem landen würde, sodass potentiell andere sowas nutzen können, es weiterentwickelt werden könnte, wenn man selber keine Lust mehr hat usw. Aber bei uns liefe das im Vereinsheim, das nicht mal Internet hat
Bin gerade im Urlaub, aber würde mich nächste Woche nochmal melden
Ich geh grad den PAE-Code auf versteckte Fehler durch. Hier meckert der Linter und ich denk zurecht. Kann sich einer hier diese Python 2.4 Konstruktion erklären?
PHP-Code:
def filterPlayerIds(list_of_ids, barb_id):
""" Identity function on player ids and remap of barbarian_id """
# some code
def filterPlayerIds2(list_of_ids, barb_id):
# Same as above but compare id with sub-entry.
def init_filter():
global filterPlayerIds
global filterPlayerIds2
filterPlayerIds = _filterPlayerIds
filterPlayerIds2 = _filterPlayerIds2
Hmm. Werden die gefilterten Listen irgendwie woanders verglichen bzw verwendet? Sind ja beide global.
Hast du den Code in CvWBDesc.py so gefunden oder wurde der Code automatisiert angepasst?!
Werden die Versionen mit dem Unterstrich im Namen irgendwo definiert?
Edit: Ah, ich habe es gefunden (pbmod). Hatte im PAE VII-Code geschaut.
In der mir vorliegenden Version sind filterPlayerIds und filterPlayerIds2 global definierte Funktionen und es gibt kein init_filter()
Der Code ist übrigens von mir und nicht den Civ4-Programmierern. Die Funktionen sind dazu da die Länge der ID-Listen in den Weltenbauersaves anzupassen, und die Barbid
an die in der DLL definierte maximale Spieleranzahl anzupassen.
Geändert von Ramkhamhaeng (26. Juni 2022 um 13:25 Uhr)
Habe den Code in der Version des 'pbmod'-Repos angeschaut. Die init_filter-Funktion ist anscheinend ein Rückstand und kann entfernt werden.
Der einzige Aufruf von ihr ist auskommentiert.
Ich glaube der Hintergrund war, dass ich zum Testen bei der Suche nach einem Fehler (oder um den Linter zufrieden zu stellen!) die Funktionen nicht global definiert hatte.
Die Version ist aus Pies aktuellem Download. Dann hattest du wohl die Unterstriche aus den defs entfernt und die nicht mehr gebrauchte Funktion vergessen zu löschen.
...also, hmmm, mit Template-Parametern wüsste ich, wie es geht. Aber geht das auch in Python? Ich habe hier ein paar Enum-Klassen, und die sollen über ihre Einträge iterieren, und das gemeinsame Verhalten will ich in eine Elternklasse packen. Also mal als abstraktes Beispiel, Weihnachtslieder in verschiedenen Sprachen. Entschuldigt das Deutsch-Englisch-Wirrwarr
Code:class Weihnachtslied(Enum): @staticmethod def getCount() -> int: count = 0 for song in XYZ: count += 1 return count class Deutsch(Weihnachtslied): oDuFroehliche = auto() oTannenbaum = auto() class Spanisch(Weihnachtslied): felizNavidad = auto()
Jetzt sollte ich doch mit Deutsch.getCount() die 2 kriegen und mit Spanisch.getCount() die 1. Aber was kommt in der Elternklasse für XYZ hin? Über Weihnachtslied iterieren geht nicht, das iteriert dann nur über leere Liste, also nicht. Muss man die doch wieder in jeder Kindklasse definieren?
Mit Naturgesetzen kann man nicht verhandeln. --Harald Lesch
Ein Atomkrieg würde die Menschheit auslöschen. Hätte aber auch Nachteile.
...also, mittelhübsche Lösung gefunden. Erst eine Weile herumprobiert, ob man über __class__ iterieren kann, aber das ist immer nur ein Weihnachtslied und kein Deutsch. Auch wenn ich die Methode irgendwie in der Kinderklasse eintrage.
Am Ende hab ich einfach einen Parameter dazugepackt, über welche Klasse zu iterieren ist. Könnte schlimmer sein.
Mit Naturgesetzen kann man nicht verhandeln. --Harald Lesch
Ein Atomkrieg würde die Menschheit auslöschen. Hätte aber auch Nachteile.
Funktioniert @classmethod anstatt @staticmethod?
Alternativ ein Klassendekorator anstatt Vererbung?