Merge pull request #66 from Schlabonski/radio-selects

replace multiselectfield with radio buttons
v1-0-stable
Schlabonski 9 years ago committed by GitHub
commit 7cd9b151f1

@ -53,6 +53,9 @@ class MemberListAdminForm(forms.ModelForm):
difficulty = TypedChoiceField(MemberList.difficulty_choices, difficulty = TypedChoiceField(MemberList.difficulty_choices,
widget=RadioSelect, widget=RadioSelect,
coerce=int) coerce=int)
tour_type = TypedChoiceField(MemberList.tour_type_choices,
widget=RadioSelect,
coerce=int)
class Meta: class Meta:
model = MemberList model = MemberList
@ -99,11 +102,17 @@ class MemberListAdmin(admin.ModelAdmin):
# open temporary file for table # open temporary file for table
with open(media_path(filename_table), 'w+', encoding='utf-8') as f: with open(media_path(filename_table), 'w+', encoding='utf-8') as f:
if memberlist.memberonlist_set.count() == 0:
f.write('{0} & {1} & {2} & {3} \\\\ \n'.format(
'keine Teilnehmer', '-', '-', '-'
))
for memberonlist in memberlist.memberonlist_set.all(): for memberonlist in memberlist.memberonlist_set.all():
# write table of members in latex compatible format # write table of members in latex compatible format
line = '{0} {1} & {2}, {3} & {4} & {5} \\\\ \n'.format(memberonlist.member.prename, line = '{0} {1} & {2}, {3} & {4} & {5} \\\\ \n'.format(
memberonlist.member.prename,
memberonlist.member.lastname, memberonlist.member.street, memberonlist.member.lastname, memberonlist.member.street,
memberonlist.member.town, memberonlist.member.phone_number, memberonlist.member.email) memberonlist.member.town, memberonlist.member.phone_number,
memberonlist.member.email)
f.write(line) f.write(line)
# copy and adapt latex memberlist template # copy and adapt latex memberlist template
@ -133,7 +142,7 @@ class MemberListAdmin(admin.ModelAdmin):
tour_type = '' tour_type = ''
for tt in ['Gemeinschaftstour', 'Führungstour', 'Ausbildung']: for tt in ['Gemeinschaftstour', 'Führungstour', 'Ausbildung']:
print(memberlist.tour_type) print(memberlist.tour_type)
if tt in memberlist.tour_type: if tt == memberlist.get_tour_type():
tour_type += '\\tickedbox ' + tt tour_type += '\\tickedbox ' + tt
else: else:
tour_type += '\\checkbox' tour_type += '\\checkbox'
@ -206,11 +215,17 @@ class MemberListAdmin(admin.ModelAdmin):
table_qualities = "" table_qualities = ""
for activity in activities: for activity in activities:
skill_avg = 0 if len(skills[activity]) == 0 else\
sum(skills[activity]) / len(skills[activity])
skill_min = 0 if len(skills[activity]) == 0 else\
min(skills[activity])
skill_max = 0 if len(skills[activity]) == 0 else\
max(skills[activity])
line = '{0} & {1} & {2} & {3} \\\\ \n'.format( line = '{0} & {1} & {2} & {3} \\\\ \n'.format(
activity, activity,
sum(skills[activity]) / len(skills[activity]), skill_avg,
min(skills[activity]), skill_min,
max(skills[activity]) skill_max
) )
table_qualities += line table_qualities += line

@ -1,11 +1,12 @@
from datetime import datetime from datetime import datetime
import uuid import uuid
from django import forms
from django.db import models from django.db import models
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.utils import timezone from django.utils import timezone
from multiselectfield import MultiSelectField GEMEINSCHAFTS_TOUR = 0
FUEHRUNGS_TOUR = 1
AUSBILDUNGS_TOUR = 2
class ActivityCategory(models.Model): class ActivityCategory(models.Model):
@ -118,21 +119,23 @@ class MemberList(models.Model):
name = models.CharField(verbose_name='Activity', default='', name = models.CharField(verbose_name='Activity', default='',
max_length=50) max_length=50)
place = models.CharField(verbose_name=_('Place'), default='', max_length=50) place = models.CharField(verbose_name=_('Place'), default='', max_length=50)
destination = models.CharField(verbose_name=_('Destination (optional)'), default='', max_length=50, blank=True) destination = models.CharField(verbose_name=_('Destination (optional)'),
default='', max_length=50, blank=True)
date = models.DateField(default=datetime.today) date = models.DateField(default=datetime.today)
end = models.DateField(verbose_name=_('End (optional)'), blank=True, default=datetime.today) end = models.DateField(verbose_name=_('End (optional)'), blank=True, default=datetime.today)
# comment = models.TextField(_('Comments'), default='', blank=True) # comment = models.TextField(_('Comments'), default='', blank=True)
groups = models.ManyToManyField(Group) groups = models.ManyToManyField(Group)
jugendleiter = models.ManyToManyField(Member) jugendleiter = models.ManyToManyField(Member)
tour_type_choices = (('Gemeinschaftstour','Gemeinschaftstour'), ('Führungstour', 'Führungstour'), tour_type_choices = ((GEMEINSCHAFTS_TOUR, 'Gemeinschaftstour'),
('Ausbildung', 'Ausbildung')) (FUEHRUNGS_TOUR, 'Führungstour'),
tour_type = MultiSelectField(choices=tour_type_choices, default='', max_choices=1) (AUSBILDUNGS_TOUR, 'Ausbildung'))
tour_type = models.IntegerField(verbose_name=_('Art der Tour'),
choices=tour_type_choices)
activity = models.ManyToManyField(ActivityCategory, default=None) activity = models.ManyToManyField(ActivityCategory, default=None)
difficulty_choices = [(1, _('easy')), (2, _('medium')), (3, _('hard'))] difficulty_choices = [(1, _('easy')), (2, _('medium')), (3, _('hard'))]
difficulty = models.IntegerField(verbose_name=_('Difficulty'), difficulty = models.IntegerField(verbose_name=_('Difficulty'),
choices=difficulty_choices) choices=difficulty_choices)
def __str__(self): def __str__(self):
"""String represenation""" """String represenation"""
return self.name return self.name
@ -141,6 +144,14 @@ class MemberList(models.Model):
verbose_name = _('Memberlist') verbose_name = _('Memberlist')
verbose_name_plural = _('Memberlists') verbose_name_plural = _('Memberlists')
def get_tour_type(self):
if self.tour_type == FUEHRUNGS_TOUR:
return "Führungstour"
elif self.tour_type == AUSBILDUNGS_TOUR:
return "Ausbildung"
else:
return "Gemeinschaftstour"
class MemberOnList(models.Model): class MemberOnList(models.Model):
""" """

Loading…
Cancel
Save