From 320b02e78784f8cb488f7b630e0f96025ad8eb95 Mon Sep 17 00:00:00 2001 From: erichhasl Date: Mon, 22 May 2017 16:22:02 +0200 Subject: [PATCH] replace multiselectfield with radio buttons --- jdav_web/members/admin.py | 5 ++++- jdav_web/members/models.py | 27 +++++++++++++++++++-------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/jdav_web/members/admin.py b/jdav_web/members/admin.py index 1c0f95b..e9f83f7 100644 --- a/jdav_web/members/admin.py +++ b/jdav_web/members/admin.py @@ -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 @@ -133,7 +136,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' diff --git a/jdav_web/members/models.py b/jdav_web/members/models.py index 19eee21..44e6be3 100644 --- a/jdav_web/members/models.py +++ b/jdav_web/members/models.py @@ -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): """