Пример #1
0
 def test_user_preferences(self):
     # User preferences must be same as NotificationType's
     preferences = notification_preferences(
         self.u1.id, 'user_liked_my_answer')
     default_preferences = NotificationType.objects\
         .get(slug='user_liked_my_answer').default_preferences
     self.assertEqual(preferences, default_preferences)
Пример #2
0
 def test_user_preferences(self):
     # User preferences must be same as NotificationType's
     preferences = notification_preferences(self.u1.id,
                                            'user_liked_my_answer')
     default_preferences = NotificationType.objects\
         .get(slug='user_liked_my_answer').default_preferences
     self.assertEqual(preferences, default_preferences)
Пример #3
0
 def save(self):
     """
     TODO: Optimise to not save unchanged preferences.
     """
     form_preferences = self.parse_preferences()
     for ntype in NotificationType.objects.filter(is_active=True):
         user_preferences = notification_preferences(self.user, ntype.slug)
         user_preferences.update(form_preferences.get(ntype.slug, {}))
         NotificationPreference.objects.filter(
             user=self.user, ntype=ntype).update(
                 preferences=user_preferences)
Пример #4
0
 def save(self):
     """
     TODO: Optimise to not save unchanged preferences.
     """
     form_preferences = self.parse_preferences()
     for ntype in NotificationType.objects.filter(is_active=True):
         user_preferences = notification_preferences(self.user, ntype.slug)
         user_preferences.update(form_preferences.get(ntype.slug, {}))
         NotificationPreference.objects.filter(
             user=self.user, ntype=ntype).update(
                 preferences=user_preferences)
Пример #5
0
 def __init__(self, *args, **kwargs):
     self.user = kwargs.pop('user')
     super(NotificationPreferencesForm, self).__init__(*args, **kwargs)
     self.stacks = []
     for ntype in NotificationType.objects.filter(is_active=True):
         fields = []
         user_preferences = notification_preferences(
             self.user.id, ntype.slug)
         for slug, name in self.FIELD_LABEL_MAP.iteritems():
             key = '%s_when_%s' % (slug, ntype.slug)
             self.fields[key] = forms.BooleanField(
                 label=name,
                 initial=user_preferences.get(slug, False),
                 required=False)
             fields.append(self[key])
         self.stacks.append({
             'name': ntype.name,
             'fields': fields})
Пример #6
0
 def __init__(self, *args, **kwargs):
     self.user = kwargs.pop('user')
     super(NotificationPreferencesForm, self).__init__(*args, **kwargs)
     self.stacks = []
     for ntype in NotificationType.objects.filter(is_active=True):
         fields = []
         user_preferences = notification_preferences(
             self.user.id, ntype.slug)
         for slug, name in self.FIELD_LABEL_MAP.iteritems():
             key = '%s_when_%s' % (slug, ntype.slug)
             self.fields[key] = forms.BooleanField(
                 label=name,
                 initial=user_preferences.get(slug, False),
                 required=False)
             fields.append(self[key])
         self.stacks.append({
             'name': ntype.name,
             'fields': fields})