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,
widget=RadioSelect,
coerce=int)
tour_type = TypedChoiceField(MemberList.tour_type_choices,
widget=RadioSelect,
coerce=int)
class Meta:
model = MemberList
@ -99,11 +102,17 @@ class MemberListAdmin(admin.ModelAdmin):
# open temporary file for table
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():
# 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.town, memberonlist.member.phone_number, memberonlist.member.email)
memberonlist.member.town, memberonlist.member.phone_number,
memberonlist.member.email)
f.write(line)
# copy and adapt latex memberlist template
@ -121,7 +130,7 @@ class MemberListAdmin(admin.ModelAdmin):
template_content = template_content.replace('DESTINATION', memberlist.destination)
template_content = template_content.replace('PLACE', memberlist.place)
template_content = template_content.replace('MEMBERLIST-DATE',
datetime.today().strftime('%d.%m.%Y'))
datetime.today().strftime('%d.%m.%Y'))
time_period = memberlist.date.strftime('%d.%m.%Y')
if memberlist.end != memberlist.date:
time_period += " - " + memberlist.end.strftime('%d.%m.%Y')
@ -133,7 +142,7 @@ class MemberListAdmin(admin.ModelAdmin):
tour_type = ''
for tt in ['Gemeinschaftstour', 'Führungstour', 'Ausbildung']:
print(memberlist.tour_type)
if tt in memberlist.tour_type:
if tt == memberlist.get_tour_type():
tour_type += '\\tickedbox ' + tt
else:
tour_type += '\\checkbox'
@ -206,11 +215,17 @@ class MemberListAdmin(admin.ModelAdmin):
table_qualities = ""
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(
activity,
sum(skills[activity]) / len(skills[activity]),
min(skills[activity]),
max(skills[activity])
skill_avg,
skill_min,
skill_max
)
table_qualities += line

@ -1,11 +1,12 @@
from datetime import datetime
import uuid
from django import forms
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils import timezone
from multiselectfield import MultiSelectField
GEMEINSCHAFTS_TOUR = 0
FUEHRUNGS_TOUR = 1
AUSBILDUNGS_TOUR = 2
class ActivityCategory(models.Model):
@ -118,21 +119,23 @@ class MemberList(models.Model):
name = models.CharField(verbose_name='Activity', 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)
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)
jugendleiter = models.ManyToManyField(Member)
tour_type_choices = (('Gemeinschaftstour','Gemeinschaftstour'), ('Führungstour', 'Führungstour'),
('Ausbildung', 'Ausbildung'))
tour_type = MultiSelectField(choices=tour_type_choices, default='', max_choices=1)
tour_type_choices = ((GEMEINSCHAFTS_TOUR, 'Gemeinschaftstour'),
(FUEHRUNGS_TOUR, 'Führungstour'),
(AUSBILDUNGS_TOUR, 'Ausbildung'))
tour_type = models.IntegerField(verbose_name=_('Art der Tour'),
choices=tour_type_choices)
activity = models.ManyToManyField(ActivityCategory, default=None)
difficulty_choices = [(1, _('easy')), (2, _('medium')), (3, _('hard'))]
difficulty = models.IntegerField(verbose_name=_('Difficulty'),
choices=difficulty_choices)
def __str__(self):
"""String represenation"""
return self.name
@ -141,6 +144,14 @@ class MemberList(models.Model):
verbose_name = _('Memberlist')
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):
"""

Loading…
Cancel
Save