Code cleanup using panda-bears

This commit is contained in:
2020-01-16 20:24:29 +01:00
committed by Xeniac
parent 95f5e0b920
commit 0d3c47d8b3
31 changed files with 59 additions and 1117 deletions

View File

@@ -5,4 +5,4 @@ language = python
bears = PEP8Bear,PyLintBear,PyUnusedCodeBear bears = PEP8Bear,PyLintBear,PyUnusedCodeBear
use_spaces = True use_spaces = True
pylint_cli_options = --load-plugins pylint_django pylint_cli_options = --load-plugins pylint_django
pylint_disable = E1101,R0201,R0901,R0903 #pylint_disable = E1101,R0201,R0901,R0903

View File

@@ -16,7 +16,7 @@ all: cleanup migrate testserver
venv: $(VENV_PATH)/bin/activate venv: $(VENV_PATH)/bin/activate
$(VENV_PATH)/bin/activate: $(VENV_PATH)/bin/activate:
@test -d $(VENV_PATH) || python3.5 -m venv --clear $(VENV_PATH) @test -d $(VENV_PATH) || python3 -m venv --clear $(VENV_PATH)
dev-requirements: venv ${DEV_REQUIREMENTS} dev-requirements: venv ${DEV_REQUIREMENTS}
${PYTHON} -m pip install -qU pip ${PYTHON} -m pip install -qU pip

1072
TODO

File diff suppressed because it is too large Load Diff

View File

@@ -5,6 +5,7 @@ from django.core.cache import cache
from . import models from . import models
from utils import STATUS_PUBLISHED from utils import STATUS_PUBLISHED
def content_menus(request): def content_menus(request):
""" Generate the menu tree and add these info to the template context. """ Generate the menu tree and add these info to the template context.

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: kasu.content\n" "Project-Id-Version: kasu.content\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-12 16:27+0100\n" "POT-Creation-Date: 2019-12-13 23:38+0100\n"
"PO-Revision-Date: 2018-01-12 15:25+0105\n" "PO-Revision-Date: 2018-01-12 15:25+0105\n"
"Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n" "Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n"
"Language-Team: Deutsch <>\n" "Language-Team: Deutsch <>\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: kasu.events\n" "Project-Id-Version: kasu.events\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-12 16:27+0100\n" "POT-Creation-Date: 2019-12-13 23:38+0100\n"
"PO-Revision-Date: 2018-01-12 15:25+0105\n" "PO-Revision-Date: 2018-01-12 15:25+0105\n"
"Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n" "Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n"
"Language-Team: Kasu <verein@kasu.at>\n" "Language-Team: Kasu <verein@kasu.at>\n"

View File

@@ -5,7 +5,8 @@ from django.contrib.auth import get_user_model
from django.contrib.auth.mixins import PermissionRequiredMixin from django.contrib.auth.mixins import PermissionRequiredMixin
from django.urls import reverse from django.urls import reverse
from django.db.models import Q from django.db.models import Q
from django.http import HttpResponse, Http404 from django.http import Http404
from django.http import HttpResponse
from django.shortcuts import redirect from django.shortcuts import redirect
from django.utils import timezone from django.utils import timezone
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: kasu.utils\n" "Project-Id-Version: kasu.utils\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-12 16:27+0100\n" "POT-Creation-Date: 2019-12-13 23:38+0100\n"
"PO-Revision-Date: 2018-12-30 11:14+0105\n" "PO-Revision-Date: 2018-12-30 11:14+0105\n"
"Last-Translator: b' <kasu@xendynastie.at>'\n" "Last-Translator: b' <kasu@xendynastie.at>'\n"
"Language-Team: Kasu <verein@kasu.at>\n" "Language-Team: Kasu <verein@kasu.at>\n"

View File

@@ -14,8 +14,8 @@ if VENV_PATH not in sys.path:
if SOURCE_PATH not in sys.path: if SOURCE_PATH not in sys.path:
sys.path.append(SOURCE_PATH) sys.path.append(SOURCE_PATH)
from django.core.wsgi import get_wsgi_application # Ignore PyLintBear (C0413) # Ignore PyLintBear (C0413) from django.core.wsgi import get_wsgi_application
os.environ['DJANGO_SETTINGS_MODULE'] = 'kasu.settings' os.environ['DJANGO_SETTINGS_MODULE'] = 'kasu.settings'
application = get_wsgi_application() # Ignore PyLintBear (C0103) # Ignore PyLintBear (C0103) application = get_wsgi_application()

View File

@@ -80,7 +80,8 @@ class Workbook(object):
:rtype: object :rtype: object
""" """
self.workbook = openpyxl.Workbook() self.workbook = openpyxl.Workbook()
[self.workbook.add_named_style(style) for style in XLSX_STYLES.values()] [self.workbook.add_named_style(style)
for style in XLSX_STYLES.values()]
[self.workbook.remove(sheet) for sheet in self.workbook.worksheets] [self.workbook.remove(sheet) for sheet in self.workbook.worksheets]
def generate_sheet(self, title, columns_settings, object_list, def generate_sheet(self, title, columns_settings, object_list,
@@ -135,7 +136,8 @@ class Workbook(object):
# write table footer # write table footer
for column, settings in enumerate(columns_settings, 1): for column, settings in enumerate(columns_settings, 1):
cell = ws.cell(column=column, row=row, value=settings.get('footer')) cell = ws.cell(column=column, row=row,
value=settings.get('footer'))
cell.style = settings['style'] cell.style = settings['style']
row += 1 row += 1

View File

@@ -21,6 +21,8 @@ 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")

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: kasu.mahjong_ranking\n" "Project-Id-Version: kasu.mahjong_ranking\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-12 16:27+0100\n" "POT-Creation-Date: 2019-12-13 23:38+0100\n"
"PO-Revision-Date: 2018-05-08 00:20+0105\n" "PO-Revision-Date: 2018-05-08 00:20+0105\n"
"Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n" "Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n"
"Language-Team: Kasu <verein@kasu.at>\n" "Language-Team: Kasu <verein@kasu.at>\n"

View File

@@ -3,11 +3,13 @@ Rest all dan points to 0 at a given date.
""" """
from django.core.management.base import BaseCommand from django.core.management.base import BaseCommand
from datetime import date, datetime, time from datetime import datetime
from datetime import time
from mahjong_ranking import models from mahjong_ranking import models
from django.utils.dateparse import parse_date from django.utils.dateparse import parse_date
from django.utils import timezone from django.utils import timezone
class Command(BaseCommand): class Command(BaseCommand):
""" Recalculate all Kyu/Dan Rankings """ """ Recalculate all Kyu/Dan Rankings """
@@ -22,7 +24,8 @@ class Command(BaseCommand):
legacy_attrs.remove('legacy_date') legacy_attrs.remove('legacy_date')
reset_date = timezone.make_aware(datetime.combine( reset_date = timezone.make_aware(datetime.combine(
options.get('reset_date'), time(23, 59, 59))) options.get('reset_date'), time(23, 59, 59)))
models.KyuDanRanking.objects.update(until=reset_date, force_recalc=True) models.KyuDanRanking.objects.update(
until=reset_date, force_recalc=True)
for ranking in models.KyuDanRanking.objects.filter(dan__gt=0): for ranking in models.KyuDanRanking.objects.filter(dan__gt=0):
print(ranking) print(ranking)
ranking.dan = 1 ranking.dan = 1

View File

@@ -5,6 +5,7 @@ from mahjong_ranking import models
from . import LOGGER from . import LOGGER
from . import LOGGER from . import LOGGER
class DenormalizationUpdateMiddleware: class DenormalizationUpdateMiddleware:
"""To recalculate everything in the queues at the end of a POST request.""" """To recalculate everything in the queues at the end of a POST request."""

View File

@@ -29,7 +29,8 @@ class EventRanking(models.Model):
Sie beschränken sich aber auf einen Event und werden nur dann angestossen, Sie beschränken sich aber auf einen Event und werden nur dann angestossen,
wenn der Event als Turnier markiert wurde. wenn der Event als Turnier markiert wurde.
""" """
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT) user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.PROTECT)
event = models.ForeignKey(Event, on_delete=models.CASCADE) event = models.ForeignKey(Event, on_delete=models.CASCADE)
placement = models.PositiveIntegerField(blank=True, null=True) placement = models.PositiveIntegerField(blank=True, null=True)
avg_placement = models.FloatField(default=4) avg_placement = models.FloatField(default=4)
@@ -428,7 +429,8 @@ class KyuDanRanking(models.Model):
).order_by('-start') ).order_by('-start')
last_hanchan_this_event = hanchans_this_event[0] last_hanchan_this_event = hanchans_this_event[0]
# Das braucht nur am Ende eines Turnieres gemacht werden. # Das braucht nur am Ende eines Turnieres gemacht werden.
if hanchan != last_hanchan_this_event: return False if hanchan != last_hanchan_this_event:
return False
event_ranking = EventRanking.objects.get( event_ranking = EventRanking.objects.get(
user=self.user, user=self.user,
event=hanchan.event event=hanchan.event
@@ -603,7 +605,8 @@ class KyuDanRanking(models.Model):
class SeasonRanking(models.Model): class SeasonRanking(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT) user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.PROTECT)
season = models.PositiveSmallIntegerField(_('Season')) season = models.PositiveSmallIntegerField(_('Season'))
placement = models.PositiveIntegerField(blank=True, null=True) placement = models.PositiveIntegerField(blank=True, null=True)
avg_placement = models.FloatField(blank=True, null=True) avg_placement = models.FloatField(blank=True, null=True)

View File

@@ -36,4 +36,3 @@ urlpatterns = [ # Ignore PyLintBear (C0103)
url(r'^mahjong/(?P<order_by>[\+\-][a-z_]+)/$', url(r'^mahjong/(?P<order_by>[\+\-][a-z_]+)/$',
views.KyuDanRankingList.as_view(), name="kyudanranking-list"), views.KyuDanRankingList.as_view(), name="kyudanranking-list"),
] ]

View File

@@ -160,7 +160,6 @@ class EventHanchanForm(EventDetailMixin, PermissionRequiredMixin,
return self.render_to_response(context) return self.render_to_response(context)
class EventHanchanList(EventDetailMixin, generic.ListView): class EventHanchanList(EventDetailMixin, generic.ListView):
"List all hanchans played on a given event." "List all hanchans played on a given event."
model = models.Hanchan model = models.Hanchan

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: kasu.mahjong_ranking\n" "Project-Id-Version: kasu.mahjong_ranking\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-12 16:27+0100\n" "POT-Creation-Date: 2019-12-13 23:38+0100\n"
"PO-Revision-Date: 2016-09-28 00:24+0200\n" "PO-Revision-Date: 2016-09-28 00:24+0200\n"
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n" "Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
"Language-Team: Kasu <verein@kasu.at>\n" "Language-Team: Kasu <verein@kasu.at>\n"

View File

@@ -149,7 +149,8 @@ class Game(models.Model):
class Ranking(models.Model): class Ranking(models.Model):
"""the player scores in the ladder for one season. """ """the player scores in the ladder for one season. """
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT) user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.PROTECT)
season = models.PositiveSmallIntegerField(_("Season")) season = models.PositiveSmallIntegerField(_("Season"))
placement = models.PositiveIntegerField(blank=True, null=True) placement = models.PositiveIntegerField(blank=True, null=True)
avg_placement = models.PositiveSmallIntegerField(blank=True, null=True) avg_placement = models.PositiveSmallIntegerField(blank=True, null=True)

View File

@@ -5,7 +5,6 @@ from django.urls import reverse
from events.models import Event from events.models import Event
class MaistarGamesSitemap(GenericSitemap): class MaistarGamesSitemap(GenericSitemap):
@staticmethod @staticmethod
def items(): def items():

View File

@@ -51,17 +51,22 @@ def clear_personal_data(modeladmin, request, queryset):
raise PermissionDenied raise PermissionDenied
for membership in queryset: for membership in queryset:
if membership.membership == False: if membership.membership == False:
[ setattr(membership, fieldname, None) for fieldname in membership.nullable_personal_data ] [setattr(membership, fieldname, None)
[ setattr(membership, fieldname, "") for fieldname in membership.blankable_personal_data ] for fieldname in membership.nullable_personal_data]
[setattr(membership, fieldname, "")
for fieldname in membership.blankable_personal_data]
membership.is_active = False membership.is_active = False
membership.confirmed = False membership.confirmed = False
membership.membership = False membership.membership = False
membership.save() membership.save()
cleared_memberships += 1 cleared_memberships += 1
else: else:
modeladmin.message_user(request, _("Can't remove personal data from active member %s.") % membership.username, messages.ERROR) modeladmin.message_user(request, _(
"Can't remove personal data from active member %s.") % membership.username, messages.ERROR)
if cleared_memberships > 0: if cleared_memberships > 0:
modeladmin.message_user(request, _("Cleared %d personal data profiles.") % cleared_memberships, messages.INFO) modeladmin.message_user(request, _(
"Cleared %d personal data profiles.") % cleared_memberships, messages.INFO)
clear_personal_data.short_description = _("Clear personal Data") clear_personal_data.short_description = _("Clear personal Data")

View File

@@ -3,7 +3,7 @@ Created on 03.10.2011
@author: Christian @author: Christian
""" """
from datetime import date, timedelta from datetime import date
from captcha.fields import ReCaptchaField from captcha.fields import ReCaptchaField
from django import forms from django import forms
from django.conf import settings from django.conf import settings

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: kasu.membership\n" "Project-Id-Version: kasu.membership\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-12 16:27+0100\n" "POT-Creation-Date: 2019-12-13 23:38+0100\n"
"PO-Revision-Date: 2018-05-08 00:19+0105\n" "PO-Revision-Date: 2018-05-08 00:19+0105\n"
"Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n" "Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n"
"Language-Team: Kasu <verein@kasu.at>\n" "Language-Team: Kasu <verein@kasu.at>\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: kasu.utils\n" "Project-Id-Version: kasu.utils\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-12 16:27+0100\n" "POT-Creation-Date: 2019-12-13 23:38+0100\n"
"PO-Revision-Date: 2016-09-28 00:24+0200\n" "PO-Revision-Date: 2016-09-28 00:24+0200\n"
"Last-Translator: Christian Berg <xeniac@posteo.at>\n" "Last-Translator: Christian Berg <xeniac@posteo.at>\n"
"Language-Team: Kasu <verein@kasu.at>\n" "Language-Team: Kasu <verein@kasu.at>\n"

View File

@@ -13,7 +13,6 @@ class CompressHtmlMiddleware:
:param get_response: :param get_response:
""" """
self.get_response = get_response self.get_response = get_response
regex = ">[\s]*<"
def __call__(self, request): def __call__(self, request):
""" """
@@ -24,7 +23,6 @@ class CompressHtmlMiddleware:
# Code to be executed for each request before # Code to be executed for each request before
# the view (and later middleware) are called. # the view (and later middleware) are called.
response = self.get_response(request) response = self.get_response(request)
if 'text/html' in response['Content-Type']: if 'text/html' in response['Content-Type']:
response.content = strip_spaces_between_tags( response.content = strip_spaces_between_tags(