Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
thalia
concrexit
Commits
abf8d3ce
Commit
abf8d3ce
authored
Mar 14, 2018
by
Tom van Bussel
Browse files
Rename ActiveMemberManager to CurrentMemberManager
and add a new manager for active members.
parent
c7030ca1
Changes
8
Hide whitespace changes
Inline
Side-by-side
website/events/admin.py
View file @
abf8d3ce
...
...
@@ -191,5 +191,5 @@ class RegistrationAdmin(DoNextModelAdmin):
kwargs
[
'queryset'
]
=
models
.
Event
.
objects
.
filter
(
pk
=
int
(
request
.
GET
[
'event_pk'
]))
elif
db_field
.
name
==
'member'
:
kwargs
[
'queryset'
]
=
Member
.
active
_members
.
all
()
kwargs
[
'queryset'
]
=
Member
.
current
_members
.
all
()
return
super
().
formfield_for_foreignkey
(
db_field
,
request
,
**
kwargs
)
website/mailinglists/services.py
View file @
abf8d3ce
...
...
@@ -48,7 +48,7 @@ def get_automatic_lists():
[
'commissievoorzitters'
,
'committeechairs'
],
'[THALIA] [CHAIRS]'
,
committee_chairs
,
moderated
=
False
)
lists
+=
_create_automatic_list
(
[
'optin'
],
'[THALIA] [OPTIN]'
,
Member
.
active
_members
.
filter
(
[
'optin'
],
'[THALIA] [OPTIN]'
,
Member
.
current
_members
.
filter
(
profile__receive_optin
=
True
),
multilingual
=
True
)
...
...
website/members/api/viewsets.py
View file @
abf8d3ce
...
...
@@ -31,7 +31,7 @@ class MemberViewset(viewsets.ReadOnlyModelViewSet):
def
get_queryset
(
self
):
if
self
.
action
==
'list'
:
return
Member
.
active
_members
.
get_queryset
()
return
Member
.
current
_members
.
get_queryset
()
return
Member
.
objects
.
all
()
def
_get_birthdays
(
self
,
member
,
start
,
end
):
...
...
@@ -68,7 +68,7 @@ class MemberViewset(viewsets.ReadOnlyModelViewSet):
detail
=
'start or end query parameters invalid'
)
from
e
queryset
=
(
Member
.
active
_members
Member
.
current
_members
.
with_birthdays_in_range
(
start
,
end
)
.
filter
(
profile__show_birthday
=
True
)
)
...
...
website/members/emails.py
View file @
abf8d3ce
...
...
@@ -11,7 +11,7 @@ from thaliawebsite.settings import settings
def
send_membership_announcement
(
dry_run
=
False
):
members
=
(
Member
.
active
_members
members
=
(
Member
.
current
_members
.
filter
(
membership__until__isnull
=
True
)
.
distinct
())
...
...
@@ -44,7 +44,7 @@ def send_membership_announcement(dry_run=False):
def
send_information_request
(
dry_run
=
False
):
members
=
Member
.
active
_members
.
all
()
members
=
Member
.
current
_members
.
all
()
with
mail
.
get_connection
()
as
connection
:
for
member
in
members
:
...
...
@@ -77,7 +77,7 @@ def send_information_request(dry_run=False):
def
send_expiration_announcement
(
dry_run
=
False
):
expiry_date
=
datetime
.
now
()
+
timedelta
(
days
=
31
)
members
=
(
Member
.
active
_members
members
=
(
Member
.
current
_members
.
filter
(
membership__until__lte
=
expiry_date
)
.
distinct
())
...
...
website/members/models.py
View file @
abf8d3ce
...
...
@@ -16,7 +16,7 @@ from django.utils.translation import ugettext_lazy as _
from
localflavor.generic.countries.sepa
import
IBAN_SEPA_COUNTRIES
from
localflavor.generic.models
import
IBANField
from
activemembers.models
import
Committee
from
activemembers.models
import
Committee
,
CommitteeMembership
class
MemberManager
(
UserManager
):
...
...
@@ -29,6 +29,19 @@ class MemberManager(UserManager):
class
ActiveMemberManager
(
MemberManager
):
"""Get all active members"""
def
get_queryset
(
self
):
active_memberships
=
(
CommitteeMembership
.
active_memberships
.
exclude
(
committee__board__is_board
=
True
))
return
(
super
().
get_queryset
()
.
filter
(
committeemembership__in
=
active_memberships
)
.
distinct
())
class
CurrentMemberManager
(
MemberManager
):
"""Get all members with an active membership"""
def
get_queryset
(
self
):
return
(
super
().
get_queryset
()
.
exclude
(
membership
=
None
)
...
...
@@ -64,6 +77,7 @@ class Member(User):
ordering
=
(
'first_name'
,
'last_name'
)
objects
=
MemberManager
()
current_members
=
CurrentMemberManager
()
active_members
=
ActiveMemberManager
()
def
__str__
(
self
):
...
...
website/members/tests/test_models.py
View file @
abf8d3ce
...
...
@@ -16,7 +16,7 @@ class MemberBirthdayTest(TestCase):
def
_get_members
(
self
,
start
,
end
):
start_date
=
self
.
_make_date
(
start
)
end_date
=
self
.
_make_date
(
end
)
return
Member
.
active
_members
.
with_birthdays_in_range
(
return
Member
.
current
_members
.
with_birthdays_in_range
(
start_date
,
end_date
)
...
...
website/members/views.py
View file @
abf8d3ce
...
...
@@ -182,7 +182,7 @@ def iban_export(request):
header_fields
=
[
'name'
,
'username'
,
'iban'
]
rows
=
[]
members
=
models
.
Member
.
active
_members
.
filter
(
members
=
models
.
Member
.
current
_members
.
filter
(
profile__direct_debit_authorized
=
True
)
for
member
in
members
:
...
...
@@ -210,7 +210,7 @@ def statistics(request):
member_types
=
(
"member"
,
"supporter"
,
"honorary"
)
# The numbers
total
=
models
.
Member
.
active
_members
.
count
()
total
=
models
.
Member
.
current
_members
.
count
()
context
=
{
"total_members"
:
total
,
...
...
website/newsletters/views.py
View file @
abf8d3ce
...
...
@@ -69,7 +69,7 @@ def admin_send(request, pk):
translation
.
activate
(
language
[
0
])
recipients
=
[
member
.
email
for
member
in
Member
.
active
_members
.
all
().
filter
(
Member
.
current
_members
.
all
().
filter
(
profile__receive_newsletter
=
True
,
profile__language
=
language
[
0
])
if
member
.
email
]
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment