def filters(request): members = MemberDao.all_members() renderdict = get_menu_dict(request) renderdict.update({ 'members': members, 'title': _('Alle {}').format(Config.vocabulary('member_pl')) }) return render(request, 'members.html', renderdict)
def members_with_assignments_no_filter(start_date, end_date, activty_area=None, members=None): members = members or MemberDao.all_members().filter(inactive=False) return members.annotate(assignments=Sum( 'assignment__amount', filter=Q(assignment__job__time__range=(start_date, end_date)) & Q(assignment__job__in=jobs_in_activity_area(activty_area))))
class SubscriptionAdminForm(forms.ModelForm): class Meta: model = Subscription fields = '__all__' subscription_members = forms.ModelMultipleChoiceField(queryset=MemberDao.all_members(), required=False, widget=admin.widgets.FilteredSelectMultiple('Member', False)) 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 def clean(self): # enforce integrity constraint on primary_member members = self.cleaned_data['subscription_members'] primary = self.cleaned_data['primary_member'] if primary not in members: self.cleaned_data['primary_member'] = members[0] if members else None return forms.ModelForm.clean(self) def save(self, commit=True): # HACK: set commit=True, ignoring what the admin tells us. # This causes save_m2m to be called. return forms.ModelForm.save(self, commit=True) def save_m2m(self): # update Subscription-Member many-to-one through foreign keys on Members old_members = set(self.instance.members.all()) new_members = set(self.cleaned_data['subscription_members']) for obj in old_members - new_members: if self.instance.state == 'waiting': obj.future_subscription = None elif self.instance.state == 'inactive': obj.old_subscriptions.remove(self.instance) else: obj.subscription = None obj.save() for obj in new_members - old_members: if self.instance.state == 'waiting': obj.future_subscription = self.instance elif self.instance.state == 'inactive': obj.old_subscriptions.add(self.instance) else: obj.subscription = self.instance obj.save()
def confirm(request, member_hash): """ Confirm from a user that has been added as a co_subscription member """ for member in MemberDao.all_members().filter(confirmed=False): if member_hash == member.get_hash(): member.confirmed = True member.save() return redirect('home')
def confirm(request, hash): ''' Confirm from a user that has been added as a co_subscription member ''' for member in MemberDao.all_members(): if hash == hashlib.sha1((member.email + str(member.id)).encode('utf8')).hexdigest(): member.confirmed = True member.save() return redirect('/my/home')
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
class SubscriptionAdminForm(forms.ModelForm): class Meta: model = Subscription fields = '__all__' subscription_members = forms.ModelMultipleChoiceField( queryset=MemberDao.all_members(), required=False, widget=admin.widgets.FilteredSelectMultiple("Member", False)) def __init__(self, *a, **k): forms.ModelForm.__init__(self, *a, **k) self.fields["primary_member"].queryset = self.instance.members.all() self.fields[ "subscription_members"].queryset = MemberDao.members_for_subscription( self.instance) self.fields[ "subscription_members"].initial = self.instance.members.all() def clean(self): # enforce integrity constraint on primary_member members = self.cleaned_data["subscription_members"] primary = self.cleaned_data["primary_member"] if primary not in members: self.cleaned_data[ "primary_member"] = members[0] if members else None return forms.ModelForm.clean(self) def save(self, commit=True): # HACK: set commit=True, ignoring what the admin tells us. # This causes save_m2m to be called. return forms.ModelForm.save(self, commit=True) def save_m2m(self): # update Subscription-Member many-to-one through foreign keys on Members old_members = set(self.instance.members.all()) new_members = set(self.cleaned_data["subscription_members"]) for obj in old_members - new_members: obj.subscription = None obj.save() for obj in new_members - old_members: obj.subscription = self.instance obj.save()