# Society Self-Service # Copyright © 2018-2019 Yingtong Li (RunasSudo) # # 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 # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . from django.contrib.auth.decorators import login_required from django.conf import settings from django.db import transaction from django.http import HttpResponse from django.shortcuts import render, redirect from django.urls import reverse from . import models @login_required def index(request): try: member = models.Member.objects.get(email=request.user.email) except models.Member.DoesNotExist: member = None return render(request, 'ssmembership/index.html', {'member': member, 'years': models.Member.YEARS}) if request.method != 'POST': return render(request, 'ssmembership/index.html', {'member': member, 'years': models.Member.YEARS}) # Update membership member.student_id = request.POST['student_id'] member.first_name = request.POST['first_name'] member.last_name = request.POST['last_name'] member.phone = request.POST['phone'] member.year = int(request.POST['year']) member.is_msa = True if request.POST['is_msa'] == '1' else '0' errors = member.validation_problems() if not member or len(errors) > 0: return render(request, 'ssmembership/index.html', { 'member': member, 'years': models.Member.YEARS, 'errors': errors }) member.save() # Update bulletin if 'sspromotions' in settings.INSTALLED_APPS: import sspromotions.models sspromotions.models.BulletinSubscription.set_member_subscribed(member, True if request.POST['bulletin_subscribe'] == '1' else False) for group in sspromotions.models.Group.objects.filter(subscribable=True).all(): if ('bulletin_group_' + str(group.id)) in request.POST and request.POST['bulletin_group_' + str(group.id)]: group.subscribe_member(member, True) else: group.subscribe_member(member, False) return render(request, 'ssmembership/index.html', {'member': member, 'years': models.Member.YEARS})