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:
@@ -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
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user