====== C3Cashdesk aka. Postix ====== Zu finden unter: https://github.com/c3cashdesk/postix Erfolgreich genutzt für BBQ2018 Was braucht eine Kasse und was sind die Voraussetzungen der Serverseite? Kassensystem: * PC oder Raspberry mit $LinuxDistro * Touchdisplay das unter $LinuxDistro funktioniert (Ubuntu scheint da ganz gut mit Touch zu können! -> Way to go) * Chromium Webbrowser kann am besten mit Touch umgehen und ist desshalb zu empfehlen * QR-Code Reader (gute Erfahrungen mit **WBS2001**, ließt schnell auch von Displays und kostet relativ wenig) * Thermodrucker für Kassenzettel der Einfachheit halber eigenen sich Geräte die "Standard" sind z.B. Epson TM-T20 oder TM-T88 **optimal mit LAN Anschluss sonst mehr frickel**! * Kassenlade mit elektrischer öffnung, wird vom Drucker getriggert, die Dinger sind alle standardisiert z.B. **Metapace K-2** ist günstig, stabil und default bei vielen Kassensystem Anbietern. * Optional USB Num Pad oder ganze Tastatur um den Rückgeldrechner zu nutzen Server: * Linux Server mit Ubuntu16.04 oder neuer * Python 3.5 ist voraussetzung für das Postix * **cups**, **cups-bsd** und **lpr** muss installiert sein * Drucker Treiber bei Epson laden und Installieren nicht nur die PPD! * Drucker unter CUPS einrichten und PPD manuell hinzufügen Howto Setup the Server - Ubuntu Server installieren (in dem fall 16.04 LTS Support bis 2021) - bei der Installation von Ubuntu direkt **OpenSSH Server** mitinstallieren das macht alles einfacher! - sudo apt update (Paketlisten updaten) - sudo apt upgrade (Software Updates herunterladen und installieren) - sudo locale-gen en_US.UTF-8 - sudo update-locale LANG=en_US.UTF-8 - sudo reboot - sudo apt install python3.5 python3-pip - sudo apt install git - sudo apt install lpr - sudo apt install cups-bsd - sudo apt install screen - git clone https://github.com/c3cashdesk/postix.git - cd postix - python3.5 -m pip install --upgrade setuptools pip - sudo python3.5 -m pip install -r requirements.txt - sudo python3.5 manage.py migrate - sudo python3.5 manage.py createsuperuser - screen sudo POSTIX_STATIC_ROOT=_static python3.5 manage.py runserver 10.100.0.11:8000 die IP muss der IP des servers entsprechen ->ifconfig Ab jetzt sollte der Postix Server unter der IP auf dem Port 8000 erreichbar sein: Es gibt 4 Interfaces unter * ip:8000 ->Kasseninterface * ip:8000/admin ->django Admin Interface * ip:8000/backoffice -> Admin Interface Postix * ip:8000/troubleshooter -> Interface für Troubleshooter Angel python manage.py export_redemptions gibt eine .json mit einlösungen aus die in Pretix importiert werden kann python manage.py shell gibt ne interaktive shell für Pretix Import dann über * from pretix.base.models import Checkin, Event, OrderPosition * import dateutil.parser * import json * event = Event.objects.get(slug__iexact='euer_event_slug') * with open('/path/to/file.json', 'r') as f: * data = json.load(f) * for d in data: * op = OrderPosition.objects.get(secret=d['secret'], order__event=event) * Checkin.objects.get_or_create(position=op, datetime=dateutil.parser.parse(d['datetime']))