Code cleanup using panda-bears
This commit is contained in:
2
.coafile
2
.coafile
@@ -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
|
||||||
|
|||||||
2
Makefile
2
Makefile
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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 _
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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 """
|
||||||
|
|
||||||
@@ -17,12 +19,13 @@ class Command(BaseCommand):
|
|||||||
parser.add_argument('reset_date', type=parse_date)
|
parser.add_argument('reset_date', type=parse_date)
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
legacy_attrs = [ key for key in models.KyuDanRanking.__dict__.keys()
|
legacy_attrs = [key for key in models.KyuDanRanking.__dict__.keys()
|
||||||
if key.startswith('legacy') ]
|
if key.startswith('legacy')]
|
||||||
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
|
||||||
|
|||||||
@@ -8,14 +8,14 @@ from django.conf import settings
|
|||||||
class HanchanManager(models.Manager):
|
class HanchanManager(models.Manager):
|
||||||
"""
|
"""
|
||||||
The ObjectManager for models.Hanchan QuerySets.
|
The ObjectManager for models.Hanchan QuerySets.
|
||||||
|
|
||||||
It adds many specific filters that makes many queries much easier.
|
It adds many specific filters that makes many queries much easier.
|
||||||
"""
|
"""
|
||||||
use_for_related_fields = True
|
use_for_related_fields = True
|
||||||
|
|
||||||
def confirmed(self, user=None, since=None, until=None, **filter_args):
|
def confirmed(self, user=None, since=None, until=None, **filter_args):
|
||||||
""" Return all valid and confirmed Hanchans.
|
""" Return all valid and confirmed Hanchans.
|
||||||
|
|
||||||
:param user: Only return Hanchans where this user participated.
|
:param user: Only return Hanchans where this user participated.
|
||||||
:param since: only return Hanchans played since the given datetime
|
:param since: only return Hanchans played since the given datetime
|
||||||
:param until: only return Hanchans played until the given datetime
|
:param until: only return Hanchans played until the given datetime
|
||||||
@@ -32,7 +32,7 @@ class HanchanManager(models.Manager):
|
|||||||
hanchans = hanchans.filter(start__lte=until)
|
hanchans = hanchans.filter(start__lte=until)
|
||||||
return hanchans
|
return hanchans
|
||||||
|
|
||||||
def dan_hanchans(self, user, since = None, **filter_args):
|
def dan_hanchans(self, user, since=None, **filter_args):
|
||||||
""" Return all Hanchans where a specific user has participated and had
|
""" Return all Hanchans where a specific user has participated and had
|
||||||
gain dan points and make his gamestats availabale.
|
gain dan points and make his gamestats availabale.
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ class HanchanManager(models.Manager):
|
|||||||
[hanchan.get_playerdata(user) for hanchan in queryset]
|
[hanchan.get_playerdata(user) for hanchan in queryset]
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
def kyu_hanchans(self, user, since = None, **filter_args):
|
def kyu_hanchans(self, user, since=None, **filter_args):
|
||||||
""" Return all Hanchans where a specific user has participated and had
|
""" Return all Hanchans where a specific user has participated and had
|
||||||
gain kyū points and make his gamestats availabale.
|
gain kyū points and make his gamestats availabale.
|
||||||
|
|
||||||
|
|||||||
@@ -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."""
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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"),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ class EventHanchanForm(EventDetailMixin, PermissionRequiredMixin,
|
|||||||
"""Display a Formset to add and Edit Hanchans of the specific Event."""
|
"""Display a Formset to add and Edit Hanchans of the specific Event."""
|
||||||
permission_required = 'mahjong_ranking.add_hanchan'
|
permission_required = 'mahjong_ranking.add_hanchan'
|
||||||
template_name = 'mahjong_ranking/eventhanchan_form.html'
|
template_name = 'mahjong_ranking/eventhanchan_form.html'
|
||||||
model=models.Hanchan
|
model = models.Hanchan
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
self.event = models.Event.objects.get(pk=self.kwargs['event'])
|
self.event = models.Event.objects.get(pk=self.kwargs['event'])
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
"""A simple ladder ranking system for the game mai-star."""
|
"""A simple ladder ranking system for the game mai-star."""
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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():
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -68,13 +68,13 @@ class RegistrationForm(MembershipForm):
|
|||||||
label=_('Privacy policy'),
|
label=_('Privacy policy'),
|
||||||
help_text=_(
|
help_text=_(
|
||||||
'I have read and understood the <a href="%s">privacy policy</a>') %
|
'I have read and understood the <a href="%s">privacy policy</a>') %
|
||||||
Page.objects.get(slug='privacypolicy').get_absolute_url())
|
Page.objects.get(slug='privacypolicy').get_absolute_url())
|
||||||
membership = forms.BooleanField(
|
membership = forms.BooleanField(
|
||||||
label=_('Membership'),
|
label=_('Membership'),
|
||||||
help_text=_(
|
help_text=_(
|
||||||
'Yes, I confirm that I am in agreement with the '
|
'Yes, I confirm that I am in agreement with the '
|
||||||
'<a href="%s">statutes</a> and would like to become a member.') %
|
'<a href="%s">statutes</a> and would like to become a member.') %
|
||||||
Page.objects.get(slug='statutes').get_absolute_url())
|
Page.objects.get(slug='statutes').get_absolute_url())
|
||||||
|
|
||||||
recaptcha = ReCaptchaField()
|
recaptcha = ReCaptchaField()
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -207,9 +207,9 @@ class Membership(AbstractUser):
|
|||||||
)
|
)
|
||||||
|
|
||||||
nullable_personal_data = (
|
nullable_personal_data = (
|
||||||
'gender', 'birthday', 'telephone', 'street_name', 'post_code', 'city')
|
'gender', 'birthday', 'telephone', 'street_name', 'post_code', 'city')
|
||||||
blankable_personal_data = (
|
blankable_personal_data = (
|
||||||
'email', 'password', 'first_name', 'last_name', 'website',)
|
'email', 'password', 'first_name', 'last_name', 'website',)
|
||||||
|
|
||||||
class Meta(object):
|
class Meta(object):
|
||||||
"""To manage object ordering and dispalynames on the admin interface."""
|
"""To manage object ordering and dispalynames on the admin interface."""
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from django.conf.urls import url
|
|||||||
from . import views
|
from . import views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'^$',views.MembershipDetail.as_view()),
|
url(r'^$', views.MembershipDetail.as_view()),
|
||||||
url(r'^activate/(?P<activation_key>[\d\w]+)/$',
|
url(r'^activate/(?P<activation_key>[\d\w]+)/$',
|
||||||
views.ActivateRegistration.as_view(),
|
views.ActivateRegistration.as_view(),
|
||||||
name='membership-activate-registration'),
|
name='membership-activate-registration'),
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ class MassMailer(object):
|
|||||||
|
|
||||||
def set_header(self, name, value):
|
def set_header(self, name, value):
|
||||||
"""Add or modify an E-Mail Header to the Messages
|
"""Add or modify an E-Mail Header to the Messages
|
||||||
|
|
||||||
:param name: The Header Name that should be added
|
:param name: The Header Name that should be added
|
||||||
:param value: THe Header Value that shoud be added or set
|
:param value: THe Header Value that shoud be added or set
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ class HtmlTestCase(unittest.TestCase):
|
|||||||
xxx-xxxx</FONT></DIV></BODY></HTML>
|
xxx-xxxx</FONT></DIV></BODY></HTML>
|
||||||
''',
|
''',
|
||||||
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'
|
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_html_cleaner(self):
|
def test_html_cleaner(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user