def test_can_delete_prefs(self):
        user = UserFactory.create()

        pref1 = UsersViolationsPrefsFactory.create(user=user)
        pref2 = UsersViolationsPrefsFactory.create(user=user)

        prefs = self.db.query(UsersViolationsPrefs).all()
        expect(prefs).to_length(2)

        items = [pref1.key.name]

        UsersViolationsPrefs.delete_prefs(self.db, user, items)

        prefs = self.db.query(UsersViolationsPrefs).all()

        expect(prefs).to_length(1)
        expect(prefs[0].key.name).to_equal(pref2.key.name)
        expect(prefs[0].user).to_equal(pref2.user)
        expect(prefs[0].is_active).to_equal(True)
    def test_can_delete_prefs(self):
        user = UserFactory.create()

        pref1 = UsersViolationsPrefsFactory.create(user=user)
        pref2 = UsersViolationsPrefsFactory.create(user=user)

        prefs = self.db.query(UsersViolationsPrefs).all()
        expect(prefs).to_length(2)

        items = [pref1.key.name]

        UsersViolationsPrefs.delete_prefs(self.db, user, items)

        prefs = self.db.query(UsersViolationsPrefs).all()

        expect(prefs).to_length(1)
        expect(prefs[0].key.name).to_equal(pref2.key.name)
        expect(prefs[0].user).to_equal(pref2.user)
        expect(prefs[0].is_active).to_equal(True)
Ejemplo n.º 3
0
    def get(self):
        user = self.get_authenticated_user()

        if not user:
            return

        user_prefs = UsersViolationsPrefs.get_prefs(self.db, user)

        violation_defs = self.application.violation_definitions

        user_prefs_keys = set(user_prefs.keys())
        violation_defs_keys = set(violation_defs.keys())

        insert_items = list(violation_defs_keys - user_prefs_keys)
        if insert_items:
            UsersViolationsPrefs.insert_prefs(self.db, user, insert_items)

        remove_items = list(user_prefs_keys - violation_defs_keys)
        if remove_items:
            UsersViolationsPrefs.delete_prefs(self.db, user, remove_items)

        result = []
        for key_name in violation_defs:
            category = violation_defs[key_name]['category']
            name = violation_defs[key_name]['title']
            description = violation_defs[key_name]['generic_description']
            is_active = user_prefs.get(key_name, True)

            result.append({
                'key': key_name,
                'name': self._(name),
                'description': self._(description),
                'category': self._(category),
                'is_active': is_active
            })

        self.write_json(result)