Milestone 08-14

* Mahjong Ranking wurde stark vereinfacht um Fehler besser vorzubeugen.
* Online WYSIWYG Editor auf CKEditor umgeändert, damit online bearbeiten für unbedarfte besser funktioniert.
* Viele kleine Optimierungen am CSS für bessere Performance.
* CSS wird jetzt aus LESS Code generiert
* Für dise Arbeit wird jetzt grunt und node package management lokal verwendet.
This commit is contained in:
Christian Berg
2015-08-23 16:37:39 +02:00
parent 8981d4b261
commit a7bfd2157d
279 changed files with 14708 additions and 2429 deletions

View File

@@ -7,14 +7,12 @@ Created on 04.10.2011
"""
from django.contrib.auth import get_user_model
import django.forms
from django.forms.models import BaseInlineFormSet, inlineformset_factory
from django.utils import timezone
from django.utils.translation import ugettext as _
from utils.html5 import forms
from . import models
USER_MODEL = get_user_model()
@@ -25,12 +23,24 @@ class HanchanForm(forms.ModelForm):
class Meta(object):
model = models.Hanchan
fields = ('event', 'start', 'comment')
widgets = {
'event': forms.HiddenInput(),
'comment': forms.widgets.Textarea(attrs={'rows': 4, 'cols': 40})
}
fields = ( 'start',
'player1', 'player1_input_score',
'player2', 'player2_input_score',
'player3', 'player3_input_score',
'player4', 'player4_input_score',
'comment')
widgets = {'event': forms.HiddenInput(),
'comment': forms.widgets.Textarea(attrs={'rows': 4, 'cols': 40})
}
def __init__(self, *args, **kwargs):
super(HanchanForm, self).__init__(*args, **kwargs)
# self.fields['event'].widget.attrs['disabled'] = True
for i in xrange(1, 4):
self.fields['player%d_input_score' % i].widget.attrs['size'] = 6
self.fields['player%d_input_score' % i].widget.attrs['type'] = 'number'
'''
def clean_start(self):
u"""Das Datum darf nicht in der Zukunft liegen und es muss innerhalb
der Dauer des Events liegen."""
@@ -43,55 +53,14 @@ class HanchanForm(forms.ModelForm):
raise django.forms.ValidationError(
_("Only games running during this event are allowed."))
return start
'''
class HanchanAdminForm(HanchanForm):
class Meta(object):
model = models.Hanchan
fields = ('event', 'start', 'comment', 'confirmed')
widgets = {
'event': forms.HiddenInput(),
'comment': forms.widgets.Textarea(attrs={'rows': 4, 'cols': 40})
}
fields = HanchanForm.Meta.fields + ('confirmed',)
class PlayerForm(forms.ModelForm):
error_css_class = 'error'
required_css_class = 'required'
comment = forms.CharField(
widget=forms.widgets.TextInput(attrs={'maxlength': 255}),
required=False
)
def __init__(self, *args, **kwargs):
super(PlayerForm, self).__init__(*args, **kwargs)
self.fields['input_score'].widget.attrs['size'] = 6
self.fields['input_score'].widget.attrs['type'] = 'number'
self.fields['bonus_points'].widget.attrs['readonly'] = True
self.fields['bonus_points'].widget.attrs['size'] = 2
self.fields['comment'].widget.attrs['readonly'] = True
class Meta(object):
model = models.Player
fields = ('hanchan', 'user', 'input_score', 'bonus_points', 'comment')
class PlayerInlineFormSet(BaseInlineFormSet):
def clean(self):
if any(self.errors):
return
playerset = set()
for form in self.forms:
if form.is_valid() and not form.cleaned_data.get('user'):
raise forms.ValidationError(_("A valid Hanchan needs 4 players"))
player = form.cleaned_data['user']
if player in playerset:
message = _("Player %s cant attend the game multiple times.") % player
raise forms.ValidationError(message)
playerset.add(player)
self.validate_unique()
return False
class SeasonSelectForm(django.forms.Form):
season = django.forms.ChoiceField(label='', choices=('a', 'b', 'c'))
@@ -102,13 +71,3 @@ class SeasonSelectForm(django.forms.Form):
season_list = season_list.select_related('user')
season_list = season_list.values_list('season__id', 'season__name')
self.fields['season'] = django.forms.ChoiceField(choices=season_list)
PlayerFormSet = inlineformset_factory(
models.Hanchan,
models.Player,
max_num=4,
extra=4,
form=PlayerForm,
formset=PlayerInlineFormSet
)