Skip to content

Commit 0fd2b0f

Browse files
committed
Restore the approval form, it was supposed to be removed in another branch...
1 parent f6f25e1 commit 0fd2b0f

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

project/members/admin.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,17 @@ def queryset(self, request, queryset):
148148
return queryset.filter(tags=v)
149149

150150

151+
def mtypes_choices():
152+
return itertools.chain((('', '----'), ), ((x.pk, x.label) for x in MemberType.objects.all()))
153+
154+
155+
class MembershipApplicationsForm(admin.helpers.ActionForm):
156+
mtypes = forms.MultipleChoiceField(
157+
label=_("Membership types"), # TODO: Read from the member model meta ?
158+
choices=lazy(mtypes_choices, tuple)
159+
)
160+
161+
151162
class MembershipApplicationAdmin(VersionAdmin):
152163
list_display = (
153164
'rname',
@@ -156,12 +167,23 @@ class MembershipApplicationAdmin(VersionAdmin):
156167
'tags_formatted',
157168
)
158169
list_filter = (TagListFilter,)
170+
actions = ['approve_selected']
171+
action_form = MembershipApplicationsForm
159172
search_fields = ['lname', 'fname', 'email', 'nick']
160173

161174
def tags_formatted(self, obj):
162175
return ', '.join((x.label for x in obj.tags.all()))
163176
tags_formatted.short_description = _("Tags")
164177

178+
def approve_selected(modeladmin, request, queryset):
179+
add_types = []
180+
for x in request.POST.getlist('mtypes'):
181+
if x:
182+
add_types.append(int(x))
183+
for a in queryset.all():
184+
a.approve(add_types)
185+
approve_selected.short_description = _("Approve selected applications")
186+
165187

166188
class MembershipApplicationTagAdmin(VersionAdmin):
167189
pass

0 commit comments

Comments
 (0)