Fehler bei Vergabe von Bonuspunkte korrigiert.

Kommentare für Bonuspunkte werden jetzt als Kommentar beim Spieler hinterlassen, nicht als Kommentar in der Hanchan.
FIXED: 3_in_a_row counter wurde nicht zurückgesetzt wenn Bonuspunkte vergeben wurden.
FIXED: Durchschnittliche Platzierung während eines Events wurde nur als Ganzzahl berechnet. Wird nun als Fießkomma berechnet und gesichert.
This commit is contained in:
Christian Berg
2016-01-09 22:55:26 +01:00
parent ff330d5aeb
commit 7e55faa05c
157 changed files with 2571 additions and 2835 deletions

View File

@@ -13,6 +13,7 @@ except ImportError:
class LookupBase(object):
@classmethod
def name(cls):
app_name = cls.__module__.split('.')[-2].lower()
@@ -72,6 +73,7 @@ class LookupInvalid(Exception):
class LookupRegistry(object):
def __init__(self):
self._registry = {}
@@ -84,7 +86,7 @@ class LookupRegistry(object):
self.validate(lookup)
name = force_unicode(lookup.name())
if name in self._registry:
raise LookupAlreadyRegistered(u'The name %s is already registered' \
raise LookupAlreadyRegistered(u'The name %s is already registered'
% name)
self._registry[name] = lookup

View File

@@ -16,6 +16,7 @@ from . import widgets
class Html5Mixin(object):
def widget_attrs(self, widget):
"""
Overwrites the standard Widget Attributes to add some HTML5 Stuff
@@ -193,6 +194,7 @@ class PhoneField(Html5Mixin, django.forms.CharField):
class ReCaptchaField(django.forms.fields.CharField):
def __init__(self, *args, **kwargs):
self.widget = widgets.ReCaptchaInput
self.required = True

View File

@@ -11,6 +11,7 @@ from . import forms, widgets
class BooleanField(models.BooleanField):
def formfield(self, **kwargs):
defaults = {'form_class': forms.BooleanField}
defaults.update(kwargs)
@@ -18,6 +19,7 @@ class BooleanField(models.BooleanField):
class CharField(models.CharField):
def formfield(self, **kwargs):
defaults = {'form_class': forms.CharField}
defaults.update(kwargs)
@@ -25,6 +27,7 @@ class CharField(models.CharField):
class DateField(models.DateField):
def formfield(self, **kwargs):
defaults = {
'form_class': forms.DateField}
@@ -33,6 +36,7 @@ class DateField(models.DateField):
class DateTimeField(models.DateTimeField):
def formfield(self, **kwargs):
defaults = {'form_class': forms.DateTimeField}
defaults.update(kwargs)
@@ -40,6 +44,7 @@ class DateTimeField(models.DateTimeField):
class EmailField(models.EmailField):
def formfield(self, **kwargs):
defaults = {'form_class': forms.EmailField}
defaults.update(kwargs)
@@ -47,6 +52,7 @@ class EmailField(models.EmailField):
class FileField(models.FileField):
def formfield(self, **kwargs):
defaults = {'form_class': forms.FileField}
defaults.update(kwargs)
@@ -54,6 +60,7 @@ class FileField(models.FileField):
class ForeignKey(models.ForeignKey):
def formfield(self, **kwargs):
db = kwargs.pop('using', None)
if isinstance(self.rel.to, six.string_types):
@@ -76,6 +83,7 @@ class ImageField(models.ImageField):
class IntegerField(models.IntegerField):
def formfield(self, **kwargs):
defaults = {'form_class': forms.IntegerField}
defaults.update(kwargs)
@@ -83,6 +91,7 @@ class IntegerField(models.IntegerField):
class NullBooleanField(models.NullBooleanField):
def formfield(self, **kwargs):
defaults = {'form_class': forms.BooleanField}
defaults.update(kwargs)
@@ -90,6 +99,7 @@ class NullBooleanField(models.NullBooleanField):
class PositiveSmallIntegerField(models.PositiveSmallIntegerField):
def formfield(self, **kwargs):
defaults = {
'form_class': forms.IntegerField,
@@ -101,6 +111,7 @@ class PositiveSmallIntegerField(models.PositiveSmallIntegerField):
class PositiveIntegerField(models.IntegerField):
def formfield(self, **kwargs):
defaults = {
'form_class': forms.IntegerField,
@@ -111,6 +122,7 @@ class PositiveIntegerField(models.IntegerField):
class SlugField(models.SlugField):
def formfield(self, **kwargs):
defaults = {'form_class': forms.SlugField}
defaults.update(kwargs)
@@ -118,6 +130,7 @@ class SlugField(models.SlugField):
class TextField(models.TextField):
def formfield(self, **kwargs):
defaults = {
'form_class': forms.CharField,
@@ -128,6 +141,7 @@ class TextField(models.TextField):
class URLField(models.URLField):
def formfield(self, **kwargs):
defaults = {'form_class': forms.URLField}
defaults.update(kwargs)

View File

@@ -14,6 +14,7 @@ from django.utils.safestring import mark_safe
class AutoCompleteWidget(widgets.TextInput):
def __init__(self, lookup_class, attrs=None, *args, **kwargs):
self.lookup_class = lookup_class
self.allow_new = kwargs.pop('allow_new', False)
@@ -40,6 +41,7 @@ class AutoCompleteWidget(widgets.TextInput):
class AutoComboboxWidget(AutoCompleteWidget):
def build_attrs(self, extra_attrs=None, **kwargs):
attrs = super(AutoComboboxWidget, self).build_attrs(extra_attrs,
**kwargs) # @IgnorePep8
@@ -94,7 +96,7 @@ class CheckboxInput(widgets.CheckboxInput):
if result:
final_attrs['checked'] = 'checked'
if not (
value is True or value is False or value is None or value == ''): # @IgnorePep8
value is True or value is False or value is None or value == ''): # @IgnorePep8
# Only add the 'value' attribute if a value is non-empty.
final_attrs['value'] = force_unicode(value)
@@ -139,7 +141,7 @@ class ReCaptchaInput(widgets.Widget):
type="hidden" name="recaptcha_response_field" value="manual_challenge">
</noscript>"""
return mark_safe(javascript % {'public_key':
settings.RECAPTCHA_PUBLIC_KEY,
settings.RECAPTCHA_PUBLIC_KEY,
'theme': 'red'})
def value_from_datadict(self, data, files, name):
@@ -148,11 +150,13 @@ class ReCaptchaInput(widgets.Widget):
class SelectableMultiWidget(widgets.MultiWidget):
def update_query_parameters(self, qs_dict):
self.widgets[0].update_query_parameters(qs_dict)
class Textarea(widgets.Widget):
def __init__(self, attrs=None):
# The 'rows' and 'cols' attributes are required for HTML correctness.
default_attrs = {'cols': '40', 'rows': '10'}
@@ -195,6 +199,7 @@ class URLInput(widgets.Input):
class LookupMultipleHiddenInput(widgets.MultipleHiddenInput):
def __init__(self, lookup_class, *args, **kwargs):
self.lookup_class = lookup_class
super(LookupMultipleHiddenInput, self).__init__(*args, **kwargs)
@@ -230,6 +235,7 @@ class LookupMultipleHiddenInput(widgets.MultipleHiddenInput):
class AutoCompleteSelectMultipleWidget(SelectableMultiWidget):
def __init__(self, lookup_class, *args, **kwargs):
self.lookup_class = lookup_class
widgets = [
@@ -252,6 +258,7 @@ class AutoCompleteSelectMultipleWidget(SelectableMultiWidget):
class AutoComboboxSelectMultipleWidget(SelectableMultiWidget):
def __init__(self, lookup_class, *args, **kwargs):
self.lookup_class = lookup_class
widgets = [
@@ -274,6 +281,7 @@ class AutoComboboxSelectMultipleWidget(SelectableMultiWidget):
class AutoCompleteSelectWidget(SelectableMultiWidget):
def __init__(self, lookup_class, *args, **kwargs):
self.lookup_class = lookup_class
self.allow_new = kwargs.pop('allow_new', False)
@@ -299,6 +307,7 @@ class AutoCompleteSelectWidget(SelectableMultiWidget):
class AutoComboboxSelectWidget(SelectableMultiWidget):
def __init__(self, lookup_class, *args, **kwargs):
self.lookup_class = lookup_class
self.allow_new = kwargs.pop('allow_new', False)