示例#1
0
 def formfield_for_foreignkey(self, db_field, request, **kwargs):
     if db_field.name == 'member':
         if self.parent_obj is None:
             kwargs['queryset'] = MemberDao.members_for_create_subscription()
         elif self.parent_obj.state == 'waiting':
             kwargs['queryset'] = MemberDao.members_for_future_subscription(self.parent_obj)
         elif self.parent_obj.state == 'inactive':
             kwargs['queryset'] = MemberDao.all_members()
         else:
             kwargs['queryset'] = MemberDao.members_for_subscription(self.parent_obj)
     return super().formfield_for_foreignkey(db_field, request, **kwargs)
 def __init__(self, *a, **k):
     forms.ModelForm.__init__(self, *a, **k)
     self.fields['primary_member'].queryset = self.instance.recipients
     if self.instance.pk is None:
         self.fields['subscription_members'].queryset = MemberDao.members_for_create_subscription()
     elif self.instance.state == 'waiting':
         self.fields['subscription_members'].queryset = MemberDao.members_for_future_subscription(
             self.instance)
     elif self.instance.state == 'inactive':
         self.fields['subscription_members'].queryset = MemberDao.all_members()
     else:
         self.fields['subscription_members'].queryset = MemberDao.members_for_subscription(
             self.instance)
     self.fields['subscription_members'].initial = self.instance.recipients_all
示例#3
0
 def get_queryset(self, request):
     queryset = super().get_queryset(request)
     request.GET = request.GET.copy()
     name = request.GET.pop('qs_name', ['all'])[0]
     subscription_id = request.GET.pop('sub_id', ['0'])[0]
     if name == 'cs':
         return MemberDao.members_for_create_subscription()
     elif name == 'fs':
         subscription = Subscription.objects.get(id=int(subscription_id))
         return MemberDao.members_for_future_subscription(subscription)
     elif name == 's':
         subscription = Subscription.objects.get(id=int(subscription_id))
         return MemberDao.members_for_subscription(subscription)
     return queryset