X-Git-Url: https://git.mdrn.pl/edumed.git/blobdiff_plain/d0f0e1412cc42d366b234e798dfb68feed05d751..d555d988764995ea1f9f5ece46f453a66f09b334:/forum/forms.py?ds=sidebyside diff --git a/forum/forms.py b/forum/forms.py deleted file mode 100644 index 37c9b35..0000000 --- a/forum/forms.py +++ /dev/null @@ -1,41 +0,0 @@ -# -*- coding: utf-8 -*- -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)