Membership renewal when promotions module is disabled

This commit is contained in:
Yingtong Li 2022-03-01 19:10:17 +11:00
parent 98a163f63a
commit 5059c5f793
Signed by: RunasSudo
GPG Key ID: 7234E476BF21C61A
3 changed files with 73 additions and 67 deletions

View File

@ -2,7 +2,7 @@
{# {#
Society Self-Service Society Self-Service
Copyright © 2018-2020 Yingtong Li (RunasSudo) Copyright © 2018-2022 Yingtong Li (RunasSudo)
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by it under the terms of the GNU Affero General Public License as published by
@ -79,32 +79,34 @@
<option value="1">Yes, I am an MSA member</option> <option value="1">Yes, I am an MSA member</option>
</select> </select>
</div> </div>
<div class="ui divider"></div> {% if 'sspromotions' in settings.INSTALLED_APPS %}
<h2>MUMUS Mail</h2> <div class="ui divider"></div>
<h2>MUMUS Mail</h2>
<div class="ui required inline grid field">
<label class="three wide column">Opt-in/out</label> <div class="ui required inline grid field">
<select id="drop_bulletin_subscribe" class="ui dropdown eleven wide column" name="bulletin_subscribe"> <label class="three wide column">Opt-in/out</label>
<option value="0">Do not send me MUMUS Mail (not recommended)</option> <select id="drop_bulletin_subscribe" class="ui dropdown eleven wide column" name="bulletin_subscribe">
<option value="1" selected>Keep me updated with MUMUS Mail</option> <option value="0">Do not send me MUMUS Mail (not recommended)</option>
</select> <option value="1" selected>Keep me updated with MUMUS Mail</option>
</div> </select>
<div class="ui inline grid field">
<label class="three wide column">Subscriptions</label>
<div class="eleven wide column">
{% for group in import('sspromotions.models').Group.objects.all() %}
{% if group.subscribable %}
<div class="field" style="display: inline; margin-right: 1em;">
<div class="ui checkbox">
<input type="checkbox" name="bulletin_group_{{ group.id }}" id="bulletin_group_{{ group.id }}"{% if group.contains_member(member) %} checked{% endif %}>
<label for="bulletin_group_{{ group.id }}">{{ group.name }}</label>
</div>
</div>
{% endif %}
{% endfor %}
<p style="margin-top: 0.5em;">MUMUS Mail is personalised for you. Choose the groups that you would like to see first in each edition of MUMUS Mail.</p>
</div> </div>
</div> <div class="ui inline grid field">
<label class="three wide column">Subscriptions</label>
<div class="eleven wide column">
{% for group in import('sspromotions.models').Group.objects.all() %}
{% if group.subscribable %}
<div class="field" style="display: inline; margin-right: 1em;">
<div class="ui checkbox">
<input type="checkbox" name="bulletin_group_{{ group.id }}" id="bulletin_group_{{ group.id }}" checked>
<label for="bulletin_group_{{ group.id }}">{{ group.name }}</label>
</div>
</div>
{% endif %}
{% endfor %}
<p style="margin-top: 0.5em;">MUMUS Mail is personalised for you. Choose the groups that you would like to see first in each edition of MUMUS Mail.</p>
</div>
</div>
{% endif %}
<div class="ui divider"></div> <div class="ui divider"></div>
<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}"> <input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
<input type="hidden" name="email_orig" value="{{ email_orig }}"> <input type="hidden" name="email_orig" value="{{ email_orig }}">

View File

@ -2,7 +2,7 @@
{# {#
Society Self-Service Society Self-Service
Copyright © 2018-2019 Yingtong Li (RunasSudo) Copyright © 2018-2022 Yingtong Li (RunasSudo)
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by it under the terms of the GNU Affero General Public License as published by
@ -72,32 +72,34 @@
<option value="1">Yes, I am an MSA member</option> <option value="1">Yes, I am an MSA member</option>
</select> </select>
</div> </div>
<div class="ui divider"></div> {% if 'sspromotions' in settings.INSTALLED_APPS %}
<h2>MUMUS Mail</h2> <div class="ui divider"></div>
<h2>MUMUS Mail</h2>
<div class="ui required inline grid field">
<label class="three wide column">Opt-in/out</label> <div class="ui required inline grid field">
<select id="drop_bulletin_subscribe" class="ui dropdown eleven wide column" name="bulletin_subscribe"> <label class="three wide column">Opt-in/out</label>
<option value="0">Do not send me MUMUS Mail (not recommended)</option> <select id="drop_bulletin_subscribe" class="ui dropdown eleven wide column" name="bulletin_subscribe">
<option value="1" selected>Keep me updated with MUMUS Mail</option> <option value="0">Do not send me MUMUS Mail (not recommended)</option>
</select> <option value="1" selected>Keep me updated with MUMUS Mail</option>
</div> </select>
<div class="ui inline grid field">
<label class="three wide column">Subscriptions</label>
<div class="eleven wide column">
{% for group in import('sspromotions.models').Group.objects.all() %}
{% if group.subscribable %}
<div class="field" style="display: inline; margin-right: 1em;">
<div class="ui checkbox">
<input type="checkbox" name="bulletin_group_{{ group.id }}" id="bulletin_group_{{ group.id }}">
<label for="bulletin_group_{{ group.id }}">{{ group.name }}</label>
</div>
</div>
{% endif %}
{% endfor %}
<p style="margin-top: 0.5em;">MUMUS Mail is personalised for you. Choose the groups that you would like to see first in each edition of MUMUS Mail.</p>
</div> </div>
</div> <div class="ui inline grid field">
<label class="three wide column">Subscriptions</label>
<div class="eleven wide column">
{% for group in import('sspromotions.models').Group.objects.all() %}
{% if group.subscribable %}
<div class="field" style="display: inline; margin-right: 1em;">
<div class="ui checkbox">
<input type="checkbox" name="bulletin_group_{{ group.id }}" id="bulletin_group_{{ group.id }}">
<label for="bulletin_group_{{ group.id }}">{{ group.name }}</label>
</div>
</div>
{% endif %}
{% endfor %}
<p style="margin-top: 0.5em;">MUMUS Mail is personalised for you. Choose the groups that you would like to see first in each edition of MUMUS Mail.</p>
</div>
</div>
{% endif %}
<div class="ui divider"></div> <div class="ui divider"></div>
<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}"> <input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
<input class="ui primary button" type="submit" name='submit' value="Subscribe"> <input class="ui primary button" type="submit" name='submit' value="Subscribe">

View File

@ -1,5 +1,5 @@
# Society Self-Service # Society Self-Service
# Copyright © 2018-2020 Yingtong Li (RunasSudo) # Copyright © 2018-2022 Yingtong Li (RunasSudo)
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by # it under the terms of the GNU Affero General Public License as published by
@ -157,13 +157,14 @@ def renew_save(request):
member.save() member.save()
# Update bulletin # Update bulletin
import sspromotions.models if 'sspromotions' in settings.INSTALLED_APPS:
sspromotions.models.BulletinSubscription.set_member_subscribed(member, True if request.POST['bulletin_subscribe'] == '1' else False) import sspromotions.models
for group in sspromotions.models.Group.objects.filter(subscribable=True).all(): sspromotions.models.BulletinSubscription.set_member_subscribed(member, True if request.POST['bulletin_subscribe'] == '1' else False)
if ('bulletin_group_' + str(group.id)) in request.POST and request.POST['bulletin_group_' + str(group.id)]: for group in sspromotions.models.Group.objects.filter(subscribable=True).all():
group.subscribe_member(member, True) if ('bulletin_group_' + str(group.id)) in request.POST and request.POST['bulletin_group_' + str(group.id)]:
else: group.subscribe_member(member, True)
group.subscribe_member(member, False) else:
group.subscribe_member(member, False)
return render(request, 'ssmembership/renew/complete.html') return render(request, 'ssmembership/renew/complete.html')
@ -209,12 +210,13 @@ def signup_save(request):
member.save() member.save()
# Update bulletin # Update bulletin
import sspromotions.models if 'sspromotions' in settings.INSTALLED_APPS:
sspromotions.models.BulletinSubscription.set_member_subscribed(member, True if request.POST['bulletin_subscribe'] == '1' else False) import sspromotions.models
for group in sspromotions.models.Group.objects.filter(subscribable=True).all(): sspromotions.models.BulletinSubscription.set_member_subscribed(member, True if request.POST['bulletin_subscribe'] == '1' else False)
if ('bulletin_group_' + str(group.id)) in request.POST and request.POST['bulletin_group_' + str(group.id)]: for group in sspromotions.models.Group.objects.filter(subscribable=True).all():
group.subscribe_member(member, True) if ('bulletin_group_' + str(group.id)) in request.POST and request.POST['bulletin_group_' + str(group.id)]:
else: group.subscribe_member(member, True)
group.subscribe_member(member, False) else:
group.subscribe_member(member, False)
return render(request, 'ssmembership/signup/complete.html') return render(request, 'ssmembership/signup/complete.html')