add new members for multiple terms

This commit is contained in:
Jeremy Roman 2010-09-24 21:11:36 -04:00
parent 046c0aa4f5
commit 6193168b2d
2 changed files with 29 additions and 3 deletions

View File

@ -34,6 +34,7 @@ def new_member(*args, **kwargs):
push_wizard("New Member", [ push_wizard("New Member", [
newmember.IntroPage, newmember.IntroPage,
newmember.InfoPage, newmember.InfoPage,
newmember.NumberOfTermsPage,
newmember.SignPage, newmember.SignPage,
newmember.PassPage, newmember.PassPage,
newmember.EndPage, newmember.EndPage,
@ -50,6 +51,7 @@ def new_club_user(*args, **kwargs):
push_wizard("New Club Rep Account", [ push_wizard("New Club Rep Account", [
newmember.ClubUserIntroPage, newmember.ClubUserIntroPage,
newmember.InfoPage, newmember.InfoPage,
newmember.NumberOfTermsPage,
newmember.SignPage, newmember.SignPage,
newmember.PassPage, newmember.PassPage,
(newmember.EndPage, "clubuser"), (newmember.EndPage, "clubuser"),

View File

@ -8,7 +8,7 @@ class IntroPage(WizardPanel):
self.widgets = [ self.widgets = [
urwid.Text( "Joining the Computer Science Club" ), urwid.Text( "Joining the Computer Science Club" ),
urwid.Divider(), urwid.Divider(),
urwid.Text( "CSC membership is $2.00 for one term. Please ensure " urwid.Text( "CSC membership is $2.00 per term. Please ensure "
"the fee is deposited into the safe before continuing." ), "the fee is deposited into the safe before continuing." ),
] ]
def focusable(self): def focusable(self):
@ -113,6 +113,30 @@ class ClubInfoPage(WizardPanel):
return True return True
clear_status() clear_status()
class NumberOfTermsPage(WizardPanel):
def init_widgets(self):
self.count = SingleIntEdit("Count: ")
self.widgets = [
urwid.Text("Number of Terms"),
urwid.Divider(),
urwid.Text("The member will be initially registered for this many "
"consecutive terms.\n"),
self.count
]
def activate(self):
self.count.set_edit_text("1")
self.focus_widget(self.count)
def check(self):
self.state['terms'] = terms.interval(terms.current(), self.count.value())
if len(self.state['terms']) == 0:
self.focus_widget(self.count)
set_status("Registering for zero terms?")
return True
clear_status()
class SignPage(WizardPanel): class SignPage(WizardPanel):
def init_widgets(self): def init_widgets(self):
self.widgets = [ self.widgets = [
@ -184,10 +208,10 @@ class EndPage(WizardPanel):
try: try:
if self.utype == 'member': if self.utype == 'member':
members.create_member( self.state['userid'], self.state['password'], self.state['name'], self.state['program'], self.state['email'] ) members.create_member( self.state['userid'], self.state['password'], self.state['name'], self.state['program'], self.state['email'] )
members.register( self.state['userid'], terms.current() ) members.register( self.state['userid'], self.state['terms'] )
elif self.utype == 'clubuser': elif self.utype == 'clubuser':
members.create_member( self.state['userid'], self.state['password'], self.state['name'], self.state['program'], self.state['email'] ) members.create_member( self.state['userid'], self.state['password'], self.state['name'], self.state['program'], self.state['email'] )
members.register_nonmember( self.state['userid'], terms.current() ) members.register_nonmember( self.state['userid'], self.state['terms'] )
elif self.utype == 'club': elif self.utype == 'club':
members.create_club( self.state['userid'], self.state['name'] ) members.create_club( self.state['userid'], self.state['name'] )
else: else: