Ejemplo n.º 1
0
 def _available_badges(self):
     '''
     Return the badges that are editable by a user.
     '''
     c.groups = [{'permission': 'global.admin',
                  'label': _('In all instances'),
                  'show_label': True}]
     if c.instance:
         c.groups.append(
             {'permission': 'instance.admin',
              'label': _('In instance "%s"') % c.instance.label,
              'show_label': h.has_permission('global.admin')})
     badges = {}
     if has('global.admin'):
         badges['global.admin'] = {
             'instance': InstanceBadge.all(instance=None),
             'user': UserBadge.all(instance=None),
             'delegateable': DelegateableBadge.all(instance=None),
             'category': CategoryBadge.all(instance=None),
             'thumbnail': ThumbnailBadge.all(instance=None)}
     if has('instance.admin') and c.instance is not None:
         badges['instance.admin'] = {
             'instance': InstanceBadge.all(instance=c.instance),
             'user': UserBadge.all(instance=c.instance),
             'delegateable': DelegateableBadge.all(instance=c.instance),
             'category': CategoryBadge.all(instance=c.instance),
             'thumbnail': ThumbnailBadge.all(instance=c.instance)}
     return badges
Ejemplo n.º 2
0
 def test_remove_delegateable_from_badge(self):
     #setup
     from adhocracy.model import DelegateableBadge, meta
     creator, delegateable, badge = self._make_content()
     DelegateableBadge.create(delegateable, badge, creator)
     #remove delegateable from badge
     badge.delegateables.remove(delegateable)
     self.assert_(badge.delegateables == [])
     self.assert_(delegateable.badges == [])
     self.assert_(meta.Session.query(DelegateableBadge).count() == 0)
Ejemplo n.º 3
0
    def test_remove_delegateable_from_badge(self):
        # setup
        from adhocracy.model import DelegateableBadge, meta

        creator, delegateable, badge = self._make_content()
        DelegateableBadge.create(delegateable, badge, creator)
        # remove delegateable from badge
        badge.delegateables.remove(delegateable)
        self.assert_(badge.delegateables == [])
        self.assert_(delegateable.badges == [])
        self.assert_(meta.Session.query(DelegateableBadge).count() == 0)
Ejemplo n.º 4
0
 def create_delegateable_badge(self):
     try:
         self.form_result = BadgeForm().to_python(request.params)
     except Invalid as i:
         return self.add('delegateable', i.unpack_errors())
     title, color, visible, description, impact, instance =\
         self._get_common_fields(self.form_result)
     DelegateableBadge.create(title, color, visible, description, impact,
                              instance)
     # commit cause redirect() raises an exception
     meta.Session.commit()
     redirect(self.base_url)
Ejemplo n.º 5
0
    def _make_content(self):
        """Returns creator, delegateable and badge"""

        from adhocracy.model import DelegateableBadge, Proposal, Instance
        instance = Instance.find('test')
        creator = tt_make_user('creator')
        delegateable = Proposal.create(instance, u"labeld", creator)
        badge = DelegateableBadge.create(u'testbadge', u'#ccc', 'description')

        return creator, delegateable, badge
Ejemplo n.º 6
0
    def _make_content(self):
        """Returns creator, delegateable and badge"""

        from adhocracy.model import DelegateableBadge, Proposal, Instance
        instance = Instance.find('test')
        creator = tt_make_user('creator')
        delegateable = Proposal.create(instance, u"labeld", creator)
        badge = DelegateableBadge.create(u'testbadge', u'#ccc', 'description')

        return creator, delegateable, badge
Ejemplo n.º 7
0
 def _to_python(self, value, state):
     from adhocracy.model import DelegateableBadge
     try:
         value = int(value)
     except:
         pass
     badge = DelegateableBadge.by_id(value, instance_filter=False)
     if badge is None or badge.instance not in [None, c.instance]:
         raise formencode.Invalid(
             _("No Badge ID '%s' exists") % value, value, state)
     return badge
Ejemplo n.º 8
0
 def _to_python(self, value, state):
     from adhocracy.model import DelegateableBadge
     try:
         value = int(value)
     except:
         pass
     badge = DelegateableBadge.by_id(value, instance_filter=False)
     if badge is None or badge.instance not in [None, c.instance]:
         raise formencode.Invalid(
             _("No Badge ID '%s' exists") % value,
             value, state)
     return badge
Ejemplo n.º 9
0
    def test_get_all_badgets(self):
        #setup
        from adhocracy.model import Badge, CategoryBadge, DelegateableBadge, \
            InstanceBadge
        from adhocracy.model import UserBadge, Instance
        instance = Instance.find(u'test')
        # create for each type a global scope and an instance scope badge
        InstanceBadge.create(u'badge ü', u'#ccc', u'description ü')
        InstanceBadge.create(u'badge ü', u'#ccc', u'description ü',
                                 instance=instance)
        UserBadge.create(u'badge ü', u'#ccc', u'description ü')
        UserBadge.create(u'ü', u'#ccc', u'ü', instance=instance)
        DelegateableBadge.create(u'badge ü', u'#ccc', u'description ü')
        DelegateableBadge.create(u'badge ü', u'#ccc', u'description ü',
                                 instance=instance)
        CategoryBadge.create(u'badge ü', u'#ccc', u"desc")
        CategoryBadge.create(u'badge ü', u'#ccc', u"desc", instance=instance)

        # all instance badges
        self.assert_(len(InstanceBadge.all()) == 1)
        self.assert_(len(InstanceBadge.all(instance=instance)) == 1)
        # all delegateable badges
        self.assert_(len(DelegateableBadge.all()) == 1)
        self.assert_(len(DelegateableBadge.all(instance=instance)) == 1)
        # all delegateable category badges
        self.assert_(len(CategoryBadge.all()) == 1)
        self.assert_(len(CategoryBadge.all(instance=instance)) == 1)
        # all user badgets
        self.assert_(len(UserBadge.all()) == 1)
        self.assert_(len(UserBadge.all(instance=instance)) == 1)
        # We can get all Badges by using `Badge`
        self.assert_(len(Badge.all()) == 4)
        self.assert_(len(Badge.all(instance=instance)) == 4)

        self.assert_(len(Badge.all_q().all()) == 8)
Ejemplo n.º 10
0
    def test_delegateablebadges_created(self):
        # setup
        from adhocracy.model import DelegateableBadge

        creator, delegateable, badge = self._make_content()
        # create the delegateable badge
        delegateablebadge = DelegateableBadge.create(delegateable, badge, creator)
        self.assert_(delegateablebadge.creator is creator)
        self.assert_(delegateablebadge.delegateable is delegateable)
        self.assert_(delegateablebadge.badge is badge)
        # test the references on the badged delegateable
        self.assert_(delegateable.badges == [badge])
        # test the references on the badge
        self.assert_(delegateable.badges[0].delegateables == badge.delegateables == [delegateable])
Ejemplo n.º 11
0
 def test_delegateablebadges_created(self):
     #setup
     from adhocracy.model import DelegateableBadge
     creator, delegateable, badge = self._make_content()
     # create the delegateable badge
     delegateablebadge = DelegateableBadge.create(delegateable, badge,
                                                  creator)
     self.assert_(delegateablebadge.creator is creator)
     self.assert_(delegateablebadge.delegateable is delegateable)
     self.assert_(delegateablebadge.badge is badge)
     # test the references on the badged delegateable
     self.assert_(delegateable.badges == [badge])
     # test the references on the badge
     self.assert_(delegateable.badges[0].delegateables \
                     == badge.delegateables \
                     == [delegateable])
Ejemplo n.º 12
0
    def test_get_all_badges(self):
        # setup
        from adhocracy.model import Badge, CategoryBadge, DelegateableBadge, \
            InstanceBadge, ThumbnailBadge
        from adhocracy.model import UserBadge, Instance
        instance = Instance.find(u'test')
        # create for each type a global scope and an instance scope badge
        InstanceBadge.create(u'badge ü', u'#ccc', True, u'description ü')
        InstanceBadge.create(u'badge ü', u'#ccc', True, u'description ü',
                             instance=instance)
        UserBadge.create(u'badge ü', u'#ccc', True, u'description ü')
        UserBadge.create(u'ü', u'#ccc', True, u'ü', instance=instance)
        DelegateableBadge.create(u'badge ü', u'#ccc', True, u'description ü')
        DelegateableBadge.create(u'badge ü', u'#ccc', True, u'description ü',
                                 instance=instance)
        CategoryBadge.create(u'badge ü', u'#ccc', True, u"desc")
        CategoryBadge.create(u'badge ü', u'#ccc', True, u"desc",
                             instance=instance)

        ThumbnailBadge.create(u'badge ü', u'#ccc', True, u"desc",
                              thumbnail=b'binary')
        ThumbnailBadge.create(u'badge ü', u'#ccc', True, u"desc",
                              thumbnail=b'binary', instance=instance)

        # all instance badges
        self.assertEqual(len(InstanceBadge.all()), 1)
        self.assertEqual(len(InstanceBadge.all(instance=instance)), 1)
        # all delegateable badges
        self.assertEqual(len(DelegateableBadge.all()), 1)
        self.assertEqual(len(DelegateableBadge.all(instance=instance)), 1)
        # all delegateable category badges
        self.assertEqual(len(CategoryBadge.all()), 1)
        self.assertEqual(len(CategoryBadge.all(instance=instance)), 1)
        # all delegateable thumbnail badges
        self.assertEqual(len(ThumbnailBadge.all()), 1)
        self.assertEqual(len(ThumbnailBadge.all(instance=instance)), 1)
        # all user badges
        self.assertEqual(len(UserBadge.all()), 3)
        self.assertEqual(len(UserBadge.all(instance=instance)), 1)
        # We can get all Badges by using `Badge`
        self.assertEqual(len(Badge.all()), 7)
        self.assertEqual(len(Badge.all(instance=instance)), 5)

        self.assertEqual(len(Badge.all_q().all()), 12)
Ejemplo n.º 13
0
    def test_get_all_badgets(self):
        #setup
        from adhocracy.model import Badge, CategoryBadge, DelegateableBadge, \
            InstanceBadge
        from adhocracy.model import UserBadge, Instance
        instance = Instance.find(u'test')
        # create for each type a global scope and an instance scope badge
        InstanceBadge.create(u'badge ü', u'#ccc', u'description ü')
        InstanceBadge.create(u'badge ü',
                             u'#ccc',
                             u'description ü',
                             instance=instance)
        UserBadge.create(u'badge ü', u'#ccc', u'description ü')
        UserBadge.create(u'ü', u'#ccc', u'ü', instance=instance)
        DelegateableBadge.create(u'badge ü', u'#ccc', u'description ü')
        DelegateableBadge.create(u'badge ü',
                                 u'#ccc',
                                 u'description ü',
                                 instance=instance)
        CategoryBadge.create(u'badge ü', u'#ccc', u"desc")
        CategoryBadge.create(u'badge ü', u'#ccc', u"desc", instance=instance)

        # all instance badges
        self.assert_(len(InstanceBadge.all()) == 1)
        self.assert_(len(InstanceBadge.all(instance=instance)) == 1)
        # all delegateable badges
        self.assert_(len(DelegateableBadge.all()) == 1)
        self.assert_(len(DelegateableBadge.all(instance=instance)) == 1)
        # all delegateable category badges
        self.assert_(len(CategoryBadge.all()) == 1)
        self.assert_(len(CategoryBadge.all(instance=instance)) == 1)
        # all user badgets
        self.assert_(len(UserBadge.all()) == 1)
        self.assert_(len(UserBadge.all(instance=instance)) == 1)
        # We can get all Badges by using `Badge`
        self.assert_(len(Badge.all()) == 4)
        self.assert_(len(Badge.all(instance=instance)) == 4)

        self.assert_(len(Badge.all_q().all()) == 8)