X-Git-Url: https://git.mdrn.pl/edumed.git/blobdiff_plain/3ab554e979a707490d303aaa690fde92c9c643c3..d555d988764995ea1f9f5ece46f453a66f09b334:/forum/forms.py diff --git a/forum/forms.py b/forum/forms.py deleted file mode 100644 index 9e931db..0000000 --- a/forum/forms.py +++ /dev/null @@ -1,39 +0,0 @@ -from django import forms -from django.forms.models import ModelChoiceIterator -from django.utils.translation import ugettext as _ -import pybb.forms - -from catalogue.models import Lesson - - -class GroupedModelChoiceIterator(ModelChoiceIterator): - def __init__(self, field): - super(GroupedModelChoiceIterator, self).__init__(field) - self.queryset = self.field.grouping_model.objects - self.items_queryset = self.field.queryset - - def choice(self, obj): - items_query = self.items_queryset.filter(**{self.field.grouping_fk_field: obj}) - items = [super(GroupedModelChoiceIterator, self).choice(item) for item in items_query.all()] - return (unicode(obj), items) - - -class GroupedModelChoiceField(forms.ModelChoiceField): - - def __init__(self, queryset, grouping_fk_field, **kwargs): - self.grouping_fk_field = grouping_fk_field - self.grouping_model = queryset.model._meta.get_field(grouping_fk_field).rel.to - super(GroupedModelChoiceField, self).__init__(queryset, **kwargs) - - def _get_choices(self): - toret = super(GroupedModelChoiceField, self)._get_choices() - if isinstance(toret, ModelChoiceIterator): - toret = GroupedModelChoiceIterator(self) - return toret - - choices = property(_get_choices, forms.ModelChoiceField.choices.fset) - - -class PostForm(pybb.forms.PostForm): - lesson = GroupedModelChoiceField(label = _('Related lesson'), queryset = Lesson.objects.all(), - grouping_fk_field = 'section', required = False)