diff --git a/gms/memberdb/forms.py b/gms/memberdb/forms.py index 4aa5ee0fc85885e49bbb9eabacf9d1db0f93a4bf..5f6657a42d5e55a05e43335673198313d537f80f 100644 --- a/gms/memberdb/forms.py +++ b/gms/memberdb/forms.py @@ -1,5 +1,7 @@ from django import forms +from .models import Member, Membership + """ Custom ModelForm class with some extra features """ @@ -11,5 +13,7 @@ class MyModelForm(forms.ModelForm): self.request = kwargs.pop("request") super().__init__(*args, **kwargs) - - +class MemberHomeForm(MyModelForm): + class Meta: + model = Member + fields = ['display_name', 'email_address', 'phone_number'] diff --git a/gms/memberdb/templates/home.html b/gms/memberdb/templates/home.html new file mode 100644 index 0000000000000000000000000000000000000000..2336bfee4fe193dd3ae1f3cc45a37d63ef5352ba --- /dev/null +++ b/gms/memberdb/templates/home.html @@ -0,0 +1,25 @@ +{% extends "register.html" %} +{% block title %}UCC Member Home{% endblock %} +{% block content_title %} + <h1>Member home</h1> +{% endblock %} + +{% block tips %} +{% if not object %} +<b>Your account exists already but no membership information has yet been recorded in this system.</b> +<br>Please update/correct the details below as necessary. +{% else %} +Please confirm that the details below have not changed since your last registration or membership renewal. +{% endif %} +{% endblock %} + +{% block extra_preform %} +<div class="form-row readonly"> + <label for="id_username">Username:</label> + <span class="text" id="id_username">{{ request.user.username }}</span> +</div> +{% endblock %} + +{% block action_url %}{% url 'memberdb:renew' %}{% endblock %} + +{% block action_text %}Renew{% endblock %} \ No newline at end of file diff --git a/gms/memberdb/views.py b/gms/memberdb/views.py index ddecabd07c5399f393965ec9840cfb3227e6573a..f704ae3724f1e39ba788723eb85980c2e2f03c02 100644 --- a/gms/memberdb/views.py +++ b/gms/memberdb/views.py @@ -4,9 +4,10 @@ from django.shortcuts import render from django.urls import reverse from django.forms import ModelForm from django.views.generic.edit import UpdateView -from django import forms +from django.contrib.auth.mixins import LoginRequiredMixin from .models import Member, IncAssocMember, Membership +from .forms import MemberHomeForm def index(request): member_list = Member.objects.all() @@ -32,9 +33,32 @@ class MyUpdateView(UpdateView): object = None def get_object(self): - return self.object + if (not self.object is None): + return self.object + try: + sobj = super().get_object() + if (not sobj is None): + return sobj + finally: + return None def get_form_kwargs(self, **kwargs): kwargs.update(super().get_form_kwargs()) kwargs.update({'request': self.request}) - return kwargs \ No newline at end of file + return kwargs + +class MemberHomeView(LoginRequiredMixin, MyUpdateView): + model = Member + template_name = 'home.html' + form_class = MemberHomeForm + + def get_object(self): + return Member.objects.filter(username__exact=self.request.user.username).first() + + def get_context_data(self): + d = super().get_context_data() + m = self.get_object() + d.update({ + 'memberships': m.memberships.all() if m is not None else None, + }) + return d