* Kommentare wenn Dan/Kyu Punktabzüge verringert werden um nicht unter
0 zu fallen. * Neue Middleware die REMOTE_IP aus dem X-Forward-For Header setzt. Damit funktioniert das Kommentarsystem nun auch hinter nginx.
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
SSH_LOGIN="kasu@s21.wservices.ch"
|
SSH_LOGIN="kasu@s21.wservices.ch"
|
||||||
SYNC_ASSESTS="requirements"
|
SYNC_ASSESTS="requirements static"
|
||||||
SYNC_SOURCECODE="src"
|
SYNC_SOURCECODE="src"
|
||||||
EXCLUDE_FILES="*.pyc"
|
EXCLUDE_FILES="*.pyc"
|
||||||
|
|
||||||
@@ -19,5 +19,5 @@ rsync -r --copy-links --delete ${SYNC_SOURCECODE} ${SSH_LOGIN}:~/ --exclude 'src
|
|||||||
|
|
||||||
echo "Rebuild and reload django..."
|
echo "Rebuild and reload django..."
|
||||||
ssh ${SSH_LOGIN} "rm src/kasu/settings/development.*"
|
ssh ${SSH_LOGIN} "rm src/kasu/settings/development.*"
|
||||||
ssh ${SSH_LOGIN} "virtualenv/bin/python ~/src/manage.py collectstatic -l --noinput -v1"
|
ssh ${SSH_LOGIN} "~/virtualenv/bin/python ~/src/manage.py collectstatic -l --noinput -v1"
|
||||||
ssh ${SSH_LOGIN} "~/init/kasu restart"
|
ssh ${SSH_LOGIN} "~/init/kasu restart"
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ MIDDLEWARE_CLASSES = [
|
|||||||
'django.middleware.locale.LocaleMiddleware',
|
'django.middleware.locale.LocaleMiddleware',
|
||||||
'django.contrib.messages.middleware.MessageMiddleware',
|
'django.contrib.messages.middleware.MessageMiddleware',
|
||||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||||
|
'utils.middleware.SetRemoteAddrFromForwardedFor',
|
||||||
'mahjong_ranking.middleware.DenormalizationUpdateMiddleware',
|
'mahjong_ranking.middleware.DenormalizationUpdateMiddleware',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -21,8 +21,6 @@ def recalculate(modeladmin, request, queryset): # Ignore PyLintBear (W0613)
|
|||||||
for ladder_ranking in queryset:
|
for ladder_ranking in queryset:
|
||||||
set_dirty(user=ladder_ranking.user_id,
|
set_dirty(user=ladder_ranking.user_id,
|
||||||
season=ladder_ranking.season)
|
season=ladder_ranking.season)
|
||||||
|
|
||||||
|
|
||||||
recalculate.short_description = _("Recalculate")
|
recalculate.short_description = _("Recalculate")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ def export_season_rankings(workbook, until):
|
|||||||
|
|
||||||
|
|
||||||
def export_kyu_dan_rankings(workbook, until):
|
def export_kyu_dan_rankings(workbook, until):
|
||||||
KyuDanRanking.objects.update(until=until)
|
KyuDanRanking.objects.update(until=until, force_recalc=True)
|
||||||
object_list = KyuDanRanking.objects.all()
|
object_list = KyuDanRanking.objects.all()
|
||||||
title = "Kyū & Dan Rankings"
|
title = "Kyū & Dan Rankings"
|
||||||
columns_settings = (
|
columns_settings = (
|
||||||
|
|||||||
@@ -566,11 +566,15 @@ class KyuDanRanking(models.Model):
|
|||||||
if self.dan:
|
if self.dan:
|
||||||
# Only substract so much points that player has 0 Points:
|
# Only substract so much points that player has 0 Points:
|
||||||
if self.dan_points + hanchan.dan_points < 0:
|
if self.dan_points + hanchan.dan_points < 0:
|
||||||
|
hanchan.player_comment = 'Spieler unterschreitet 0 Punkte.' \
|
||||||
|
'(Original {} Punkte)'.format(hanchan.dan_points)
|
||||||
hanchan.dan_points -= (self.dan_points + hanchan.dan_points)
|
hanchan.dan_points -= (self.dan_points + hanchan.dan_points)
|
||||||
self.dan_points += hanchan.dan_points
|
self.dan_points += hanchan.dan_points
|
||||||
else:
|
else:
|
||||||
# Only substract so much points that player has 0 Points:
|
# Only substract so much points that player has 0 Points:
|
||||||
if self.kyu_points + hanchan.kyu_points < 0:
|
if self.kyu_points + hanchan.kyu_points < 0:
|
||||||
|
hanchan.player_comment = 'Spieler unterschreitet 0 Punkte.' \
|
||||||
|
'(Original {} Punkte)'.format(hanchan.kyu_points)
|
||||||
hanchan.kyu_points -= (self.kyu_points + hanchan.kyu_points)
|
hanchan.kyu_points -= (self.kyu_points + hanchan.kyu_points)
|
||||||
self.kyu_points += hanchan.kyu_points
|
self.kyu_points += hanchan.kyu_points
|
||||||
|
|
||||||
|
|||||||
@@ -240,7 +240,7 @@ class PlayerDanScore(PlayerScore):
|
|||||||
{'col': 'L', 'title': 'Dan Punkte', 'attr': 'dan_points',
|
{'col': 'L', 'title': 'Dan Punkte', 'attr': 'dan_points',
|
||||||
'style': 'Integer', 'width': 12,
|
'style': 'Integer', 'width': 12,
|
||||||
'footer': self.kyu_dan_ranking.legacy_dan_points},
|
'footer': self.kyu_dan_ranking.legacy_dan_points},
|
||||||
{'col': 'M', 'title': 'Anmerkung', 'attr': 'comment',
|
{'col': 'M', 'title': 'Anmerkung', 'attr': 'player_comment',
|
||||||
'style': 'Content', 'width': 20, 'footer': 'Legacy Dan Punkte'},
|
'style': 'Content', 'width': 20, 'footer': 'Legacy Dan Punkte'},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -31,3 +31,15 @@ class CompressHtmlMiddleware(object):
|
|||||||
response.content = strip_spaces_between_tags(
|
response.content = strip_spaces_between_tags(
|
||||||
response.content).strip()
|
response.content).strip()
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
class SetRemoteAddrFromForwardedFor(object):
|
||||||
|
def process_request(self, request):
|
||||||
|
try:
|
||||||
|
real_ip = request.META['HTTP_X_FORWARDED_FOR']
|
||||||
|
real_ip = real_ip.split(",")[0]
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
# HTTP_X_FORWARDED_FOR can be a comma-separated list of IPs.
|
||||||
|
# Take just the first one.
|
||||||
|
request.META['REMOTE_ADDR'] = real_ip
|
||||||
|
|||||||
Reference in New Issue
Block a user