102 lines
3 KiB
Python
102 lines
3 KiB
Python
from flask_appbuilder import Model
|
|
from sqlalchemy import Column, Integer, String, ForeignKey, Boolean
|
|
from sqlalchemy.orm import relationship
|
|
|
|
from .abrechnung import spielwert
|
|
|
|
"""
|
|
|
|
You can use the extra Flask-AppBuilder fields and Mixin's
|
|
|
|
AuditMixin will add automatic timestamp of created and modified by who
|
|
|
|
|
|
"""
|
|
|
|
def addExtras(result, nExtras, extrasTarif):
|
|
"""takes result array and adds/subtracts the extras and return modified results"""
|
|
newResult = []
|
|
for res in result:
|
|
if res > 0:
|
|
newResult.append(res+nExtras*extrasTarif)
|
|
else:
|
|
newResult.append(res-nExtras*extrasTarif)
|
|
return newResult
|
|
|
|
class Spieler(Model):
|
|
id = Column(Integer, primary_key=True)
|
|
name = Column(String())
|
|
|
|
def __repr__(self):
|
|
return self.name
|
|
|
|
class Spiel(Model):
|
|
id = Column(Integer, primary_key=True)
|
|
|
|
spieler0_id = Column(Integer, ForeignKey('spieler.id'))
|
|
spieler0 = relationship('Spieler', foreign_keys=[spieler0_id])
|
|
spieler1_id = Column(Integer, ForeignKey('spieler.id'))
|
|
spieler1 = relationship('Spieler', foreign_keys=[spieler1_id])
|
|
spieler2_id = Column(Integer, ForeignKey('spieler.id'))
|
|
spieler2 = relationship('Spieler', foreign_keys=[spieler2_id])
|
|
spieler3_id = Column(Integer, ForeignKey('spieler.id'))
|
|
spieler3 = relationship('Spieler', foreign_keys=[spieler3_id])
|
|
|
|
geber_id = Column(Integer, ForeignKey('spieler.id'))
|
|
geber = relationship('Spieler', foreign_keys=[geber_id])
|
|
|
|
spieltyp = Column(String())
|
|
|
|
leger0 = Column(Boolean)
|
|
leger1 = Column(Boolean)
|
|
leger2 = Column(Boolean)
|
|
leger3 = Column(Boolean)
|
|
|
|
spieler = Column(Integer(), nullable=True)
|
|
mitspieler = Column(Integer(), nullable=True)
|
|
|
|
kontra0 = Column(Integer(), default=0)
|
|
kontra1 = Column(Integer(), default=0)
|
|
kontra2 = Column(Integer(), default=0)
|
|
kontra3 = Column(Integer(), default=0)
|
|
tout = Column(Boolean, default=False)
|
|
sie = Column(Boolean, default=False)
|
|
|
|
schneider = Column(Integer(), default=0)
|
|
laufende = Column(Integer(), default=0)
|
|
mit = Column(Boolean)
|
|
|
|
# Hat der Spieler gewonnen?
|
|
gewonnen = Column(Boolean, nullable=True)
|
|
# Wenn Ramsch gespielt wird
|
|
durchmarsch_gewinner = Column(Integer(), nullable=True)
|
|
verlierer = Column(Integer(), nullable=True)
|
|
|
|
jungfrau0 = Column(Boolean())
|
|
jungfrau1 = Column(Boolean())
|
|
jungfrau2 = Column(Boolean())
|
|
jungfrau3 = Column(Boolean())
|
|
|
|
# sonstiges
|
|
vergeben = Column(Boolean())
|
|
verspielt = Column(Integer(), nullable=True)
|
|
|
|
# Bonus info
|
|
farbe = Column(String())
|
|
startzeit = Column(Integer(), nullable=True)
|
|
endzeit = Column(Integer(), nullable=True)
|
|
kommentar = Column(String())
|
|
|
|
# Meta
|
|
device_ID = Column(String())
|
|
version = Column(String())
|
|
|
|
def spielwert(self):
|
|
return spielwert(**self.__dict__)
|
|
|
|
def check(self):
|
|
if sum(self.spielwert().values())==0:
|
|
return u"\U0001F44D"
|
|
else:
|
|
return u"\U0001F44E"
|
|
return u"\U0001F44E"
|