1234567891011121314151617181920212223242526 |
- # -*- coding: utf-8 -*-
- from django.forms import ModelForm
- from django.db.models import Q
- from coin.offers.models import OfferSubscription
- from coin.configuration.models import Configuration
- class ConfigurationForm(ModelForm):
- class Meta:
- model = Configuration
- def __init__(self, *args, **kwargs):
- """
- This filter the offersubscription select field in configurations forms
- to only display subscription that are the sames type of actual configuration
- and that haven't already a configuration associated with
- """
- super(ConfigurationForm, self).__init__(*args, **kwargs)
- if self.instance:
- queryset = OfferSubscription.objects.filter(
- Q(offer__configuration_type=self.instance.model_name) & (
- Q(configuration=None) | Q(configuration=self.instance.pk)))
- self.fields['offersubscription'].queryset = queryset
|