summaryrefslogtreecommitdiffstats
path: root/askbot/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'askbot/forms.py')
-rw-r--r--askbot/forms.py31
1 files changed, 25 insertions, 6 deletions
diff --git a/askbot/forms.py b/askbot/forms.py
index 520cc5d9..08b5a4d9 100644
--- a/askbot/forms.py
+++ b/askbot/forms.py
@@ -634,15 +634,27 @@ class EditUserEmailFeedsForm(forms.Form):
return self
def reset(self):
+ """equivalent to set_frequency('n')
+ but also returns self due to some legacy requirement
+ todo: clean up use of this function
+ """
if self.is_bound:
- self.cleaned_data['all_questions'] = 'n'
- self.cleaned_data['asked_by_me'] = 'n'
- self.cleaned_data['answered_by_me'] = 'n'
- self.cleaned_data['individually_selected'] = 'n'
- self.cleaned_data['mentions_and_comments'] = 'n'
+ self.cleaned_data = self.NO_EMAIL_INITIAL
self.initial = self.NO_EMAIL_INITIAL
return self
+ def set_frequency(self, frequency = 'n'):
+ data = {
+ 'all_questions': frequency,
+ 'asked_by_me': frequency,
+ 'answered_by_me': frequency,
+ 'individually_selected': frequency,
+ 'mentions_and_comments': frequency
+ }
+ if self.is_bound:
+ self.cleaned_data = data
+ self.initial = data
+
def save(self,user,save_unbound=False):
"""
with save_unbound==True will bypass form validation and save initial values
@@ -684,10 +696,17 @@ class SimpleEmailSubscribeForm(forms.Form):
choices=SIMPLE_SUBSCRIBE_CHOICES
)
+ def __init__(self, *args, **kwargs):
+ self.frequency = kwargs.pop('frequency', 'w')
+ super(SimpleEmailSubscribeForm, self).__init__(*args, **kwargs)
+
def save(self, user=None):
EFF = EditUserEmailFeedsForm
- if self.cleaned_data['subscribe'] == 'y':
+ #here we have kind of an anomaly - the value 'y' is redundant
+ #with the frequency variable - needs to be fixed
+ if self.is_bound and self.cleaned_data['subscribe'] == 'y':
email_settings_form = EFF()
+ email_settings_form.set_frequency(self.frequency)
logging.debug('%s wants to subscribe' % user.username)
else:
email_settings_form = EFF(initial=EFF.NO_EMAIL_INITIAL)