intermediate commit
This commit is contained in:
parent
d91b120bd0
commit
74a22c2721
4 changed files with 24 additions and 83 deletions
|
|
@ -2,6 +2,8 @@ from flask_appbuilder import Model
|
||||||
from sqlalchemy import Column, Integer, String, ForeignKey, Boolean
|
from sqlalchemy import Column, Integer, String, ForeignKey, Boolean
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
|
|
||||||
|
from .abrechnung import spielwert
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
You can use the extra Flask-AppBuilder fields and Mixin's
|
You can use the extra Flask-AppBuilder fields and Mixin's
|
||||||
|
|
@ -62,6 +64,7 @@ class Spiel(Model):
|
||||||
|
|
||||||
schneider = Column(Integer(), default=0)
|
schneider = Column(Integer(), default=0)
|
||||||
laufende = Column(Integer(), default=0)
|
laufende = Column(Integer(), default=0)
|
||||||
|
mit = Column(Boolean)
|
||||||
|
|
||||||
# Hat der Spieler gewonnen?
|
# Hat der Spieler gewonnen?
|
||||||
gewonnen = Column(Boolean, nullable=True)
|
gewonnen = Column(Boolean, nullable=True)
|
||||||
|
|
@ -84,88 +87,16 @@ class Spiel(Model):
|
||||||
endzeit = Column(Integer(), nullable=True)
|
endzeit = Column(Integer(), nullable=True)
|
||||||
kommentar = Column(String())
|
kommentar = Column(String())
|
||||||
|
|
||||||
|
# Meta
|
||||||
|
device_ID = Column(String())
|
||||||
|
version = Column(String())
|
||||||
|
|
||||||
def spielwert(self):
|
def spielwert(self):
|
||||||
grundtarif = 20
|
return spielwert(**self.__dict__)
|
||||||
extras = 10
|
|
||||||
solo = 50
|
|
||||||
|
|
||||||
result = [0,0,0,0]
|
|
||||||
|
|
||||||
if self.spieltyp == "Sauspiel":
|
|
||||||
spieler = set([self.spieler-1,self.mitspieler-1])
|
|
||||||
nichtspieler = list(set([0,1,2,3])-spieler)
|
|
||||||
sauspiel_total = grundtarif + self.schneider*extras+ self.laufende*extras
|
|
||||||
|
|
||||||
if self.gewonnen:
|
|
||||||
result[self.spieler-1] = sauspiel_total
|
|
||||||
result[self.mitspieler-1] = sauspiel_total
|
|
||||||
result[nichtspieler[0]] = -sauspiel_total
|
|
||||||
result[nichtspieler[1]] = -sauspiel_total
|
|
||||||
else:
|
|
||||||
result[self.spieler-1] = -sauspiel_total
|
|
||||||
result[self.mitspieler-1] = -sauspiel_total
|
|
||||||
result[nichtspieler[0]] = sauspiel_total
|
|
||||||
result[nichtspieler[1]] = sauspiel_total
|
|
||||||
|
|
||||||
addExtras(result, self.schneider, extras)
|
|
||||||
addExtras(result, self.laufende, extras)
|
|
||||||
|
|
||||||
elif self.spieltyp == "Wenz" or self.spieltyp == "Solo":
|
|
||||||
spieler = set([self.spieler-1])
|
|
||||||
nichtspieler = list(set([0,1,2,3])-spieler)
|
|
||||||
solo_total = solo + self.schneider*extras+ self.laufende*extras
|
|
||||||
if self.gewonnen:
|
|
||||||
result[self.spieler-1] = 3*solo_total
|
|
||||||
result[nichtspieler[0]] = -solo_total
|
|
||||||
result[nichtspieler[1]] = -solo_total
|
|
||||||
result[nichtspieler[2]] = -solo_total
|
|
||||||
else:
|
|
||||||
result[self.spieler-1] = -3*solo_total
|
|
||||||
result[nichtspieler[0]] = solo_total
|
|
||||||
result[nichtspieler[1]] = solo_total
|
|
||||||
result[nichtspieler[2]] = solo_total
|
|
||||||
|
|
||||||
elif self.spieltyp == "Ramsch":
|
|
||||||
|
|
||||||
if self.durchmarsch_gewinner:
|
|
||||||
gewinner = set([self.durchmarsch_gewinner-1])
|
|
||||||
nichtGewinner= list(set([0,1,2,3])-gewinner)
|
|
||||||
|
|
||||||
result[self.durchmarsch_gewinner-1] = 3*solo
|
|
||||||
result[nichtGewinner[0]] = -solo
|
|
||||||
result[nichtGewinner[1]] = -solo
|
|
||||||
result[nichtGewinner[2]] = -solo
|
|
||||||
|
|
||||||
else:
|
|
||||||
verlierer = set([self.verlierer-1])
|
|
||||||
nichtVerlierer = list(set([0,1,2,3])-verlierer)
|
|
||||||
|
|
||||||
sum_verloren = 0
|
|
||||||
result[nichtVerlierer[0]] = grundtarif + grundtarif* getattr(self, "jungfrau{}".format(nichtVerlierer[0]+1))
|
|
||||||
result[nichtVerlierer[1]] = grundtarif + grundtarif* getattr(self, "jungfrau{}".format(nichtVerlierer[1]+1))
|
|
||||||
result[nichtVerlierer[2]] = grundtarif + grundtarif* getattr(self, "jungfrau{}".format(nichtVerlierer[2]+1))
|
|
||||||
|
|
||||||
result[self.verlierer-1] = - result[nichtVerlierer[0]] - result[nichtVerlierer[1]] -result[nichtVerlierer[2]]
|
|
||||||
|
|
||||||
|
|
||||||
if self.leger1 or self.leger2 or self.leger3 or self.leger4:
|
|
||||||
result = [2*i for i in result]
|
|
||||||
|
|
||||||
result = [2**self.kontra*i for i in result]
|
|
||||||
if self.tout:
|
|
||||||
result = [2*i for i in result]
|
|
||||||
if self.sie:
|
|
||||||
result = [4*i for i in result]
|
|
||||||
|
|
||||||
return {
|
|
||||||
self.spieler1: result[0],
|
|
||||||
self.spieler2: result[1],
|
|
||||||
self.spieler3: result[2],
|
|
||||||
self.spieler4: result[3],
|
|
||||||
}
|
|
||||||
|
|
||||||
def check(self):
|
def check(self):
|
||||||
if sum(self.spielwert().values())==0:
|
if sum(self.spielwert().values())==0:
|
||||||
return u"\U0001F44D"
|
return u"\U0001F44D"
|
||||||
else:
|
else:
|
||||||
return u"\U0001F44E"
|
return u"\U0001F44E"
|
||||||
|
return u"\U0001F44E"
|
||||||
|
|
|
||||||
16
app/views.py
16
app/views.py
|
|
@ -38,7 +38,15 @@ from . import appbuilder, db
|
||||||
"""
|
"""
|
||||||
Application wide 404 error handler
|
Application wide 404 error handler
|
||||||
"""
|
"""
|
||||||
|
class SpielModelApi(ModelRestApi):
|
||||||
|
resource_name = 'spiel'
|
||||||
|
datamodel = SQLAInterface(Spiel)
|
||||||
|
appbuilder.add_api(SpielModelApi)
|
||||||
|
|
||||||
|
class SpielerModelApi(ModelRestApi):
|
||||||
|
resource_name = 'spieler'
|
||||||
|
datamodel = SQLAInterface(Spieler)
|
||||||
|
appbuilder.add_api(SpielerModelApi)
|
||||||
|
|
||||||
@appbuilder.app.errorhandler(404)
|
@appbuilder.app.errorhandler(404)
|
||||||
def page_not_found(e):
|
def page_not_found(e):
|
||||||
|
|
@ -72,17 +80,17 @@ class MySpielView(ModelView):
|
||||||
# }
|
# }
|
||||||
# add_columns = ['spieler1','spieler2','spieler3','spieler4']
|
# add_columns = ['spieler1','spieler2','spieler3','spieler4']
|
||||||
|
|
||||||
list_columns = ('spieler1','spieler2','spieler3','spieler4', "spielwert", "check")
|
list_columns = ('spieler0','spieler1','spieler2','spieler3', "spielwert", "check")
|
||||||
# column_list = (Spiel.spieler1, Spiel.spieler2, Spiel.spieler3, Spiel.spieler4)
|
# column_list = (Spiel.spieler1, Spiel.spieler2, Spiel.spieler3, Spiel.spieler4)
|
||||||
|
|
||||||
show_fieldsets = [
|
show_fieldsets = [
|
||||||
(
|
(
|
||||||
'Spieler',
|
'Spieler',
|
||||||
{'fields':['spieler1','spieler2','spieler3','spieler4']}
|
{'fields':['spieler0','spieler1','spieler2','spieler3']}
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
'Leger',
|
'Leger',
|
||||||
{'fields':['leger1','leger2','leger3','leger4'],
|
{'fields':['leger0','leger1','leger2','leger3'],
|
||||||
'expanded':False}
|
'expanded':False}
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
|
|
@ -114,3 +122,5 @@ appbuilder.add_view(
|
||||||
category="Schafkopf",
|
category="Schafkopf",
|
||||||
category_icon='fa-envelope'
|
category_icon='fa-envelope'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2750,7 +2750,7 @@
|
||||||
"source": [
|
"source": [
|
||||||
"def minutes(x):\n",
|
"def minutes(x):\n",
|
||||||
" return \"{:02d}:{:02d}\".format(int(x//60), int(x%60))\n",
|
" return \"{:02d}:{:02d}\".format(int(x//60), int(x%60))\n",
|
||||||
"df_results[\"spieldauer\"] = (df_results.endzeit-df_results.startzeit).apply(minutes)"
|
"#df_results[\"spieldauer\"] = (df_results.endzeit-df_results.startzeit).apply(minutes)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -3068,7 +3068,7 @@
|
||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.6.7"
|
"version": "3.8.1"
|
||||||
},
|
},
|
||||||
"toc": {
|
"toc": {
|
||||||
"colors": {
|
"colors": {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue