Exemple #1
0
 def test_priority_delete(self):
     prio = Priority(self.env, 'major')
     self.assertEqual('3', prio.value)
     prio.delete()
     self.assertFalse(prio.exists)
     self.assertRaises(TracError, Priority, self.env, 'major')
     prio = Priority(self.env, 'minor')
     self.assertEqual('3', prio.value)
Exemple #2
0
 def get_ticket_changes(self, req, ticket, action):
     id = 'vote_%s_result' % (action, )
     selected = req.args.get(id, 'for')
     priorities = list(Priority.select(self.env))
     orig_ticket = Ticket(self.env, ticket.id)
     current_priority = int(Priority(self.env, name=
                                     orig_ticket['priority']).value)
     if selected == 'for':
         # priorities are 1-based, not 0-based
         new_value = max(1, current_priority - 1)
     else:
         maxval = max([int(p.value) for p in priorities])
         new_value = min(maxval, current_priority + 1)
     return {'priority': [p.name for p in priorities
                          if int(p.value) == new_value][0]}
def main():
    if len(sys.argv) < 2:
        print >> sys.stderr, 'usage: %s /path/to/projenv' \
                             % os.path.basename(sys.argv[0])
        sys.exit(2)

    env = open_environment(sys.argv[1])
    with env.db_transaction:
        for oldprio, newprio in priority_mapping.items():
            priority = Priority(env, oldprio)
            priority.name = newprio
            priority.update()

        for severity in list(Severity.select(env)):
            severity.delete()
Exemple #4
0
    def render_poll(self, req, title, votes):
        from trac.ticket.model import Ticket, Priority
        from trac.ticket.query import Query
        add_stylesheet(req, 'poll/css/poll.css')
        if not req.perm.has_permission('POLL_VIEW') or \
                not req.perm.has_permission('TICKET_VIEW'):
            return ''

        all_votes = []
        ticket_count = 0
        for vote in votes:
            tickets = []
            if vote.startswith('#'):
                try:
                    tickets.append(int(vote.strip('#')))
                except ValueError:
                    raise TracError('Invalid ticket number %s' % vote)
            elif vote.startswith('query:'):
                query = vote[6:]
                tickets = [q['id'] for q in
                           Query.from_string(self.env, query).execute(req)]
            else:
                all_votes.append(('%08x' % abs(hash(vote)), None,
                                 wiki_to_oneliner(vote, self.env)))

            # Make tickets look pretty
            for idx, id in enumerate(tickets):
                try:
                    ticket = Ticket(self.env, id)
                except Exception:
                    continue
                summary = ticket['summary'] + ' (#%i)' % id
                priority = Priority(self.env, ticket['priority']).value
                summary = wiki_to_oneliner(summary, self.env)

                all_votes.append((str(id), "ticket prio%s%s%s" %
                                  (priority, ticket_count % 2 and ' even' or '',
                                  ticket['status'] == 'closed' and ' closed' or ''),
                                  summary))
                ticket_count += 1

        if not all_votes:
            raise TracError('No votes provided')

        poll = Poll(self.base_dir, title, all_votes)
        if req.perm.has_permission('POLL_VOTE'):
            poll.populate(req)
        return poll.render(self.env, req)
def main():
    if len(sys.argv) < 2:
        print >> sys.stderr, 'usage: %s /path/to/projenv' \
                             % os.path.basename(sys.argv[0])
        sys.exit(2)

    env = open_environment(sys.argv[1])
    db = env.get_db_cnx()

    for oldprio, newprio in priority_mapping.items():
        priority = Priority(env, oldprio, db)
        priority.name = newprio
        priority.update(db)

    for severity in list(Severity.select(env, db)):
        severity.delete(db)

    db.commit()
Exemple #6
0
    def render_poll(self, req, title, votes):
        add_stylesheet(req, 'poll/css/poll.css')
        if not req.perm.has_permission('POLL_VIEW'):
            return ''

        all_votes = []
        ticket_count = 0
        for vote in votes:
            tickets = []
            if vote.startswith('#'):
                try:
                    tickets.append(int(vote.strip('#')))
                except ValueError:
                    raise TracError('Invalid ticket number %s' % vote)
            elif vote.startswith('query:'):
                query = vote[6:]
                tickets = [q['id'] for q in
                           Query.from_string(self.env, query).execute(req)]
            else:
                all_votes.append(('%08x' % abs(hash(vote)), None,
                                 wiki_to_oneliner(vote, self.env, req=req)))

            # Make tickets look pretty
            for idx, id in enumerate(tickets):
                try:
                    ticket = Ticket(self.env, id)
                except Exception:
                    continue
                summary = ticket['summary'] + ' (#%i)' % id
                try:
                    priority = Priority(self.env, ticket['priority']).value
                except ResourceNotFound, e: #this priority name has been removed from model
                    priority = 0
                summary = wiki_to_oneliner(summary, self.env, req=req)

                all_votes.append((str(id), "ticket prio%s%s%s" %
                                  (priority, ticket_count % 2 and ' even' or '',
                                  ticket['status'] == 'closed' and ' closed' or ''),
                                  summary))
                ticket_count += 1
Exemple #7
0
 def test_abstractenum(self):
     """
     Verify basic AbstractEnum functionality.
     """
     p = Priority(self.env, 'major')
     self.assertEqual(p.name, 'major')
     self.assertEqual(p.value, '3')
     p = Priority(self.env)
     p.name = 'foo'
     p.insert()
     p = Priority(self.env)
     p.name = 'bar'
     p.value = 100
     p.insert()
     p = Priority(self.env, 'foo')
     p.name = 'foo2'
     p.update()
     p = Priority(self.env, 'foo2')
     p.delete()
     p = Priority(self.env, 'bar')
     p.delete()
Exemple #8
0
 def test_priority_delete(self):
     prio = Priority(self.env, 'major')
     prio.delete()
     self.assertEqual(False, prio.exists)
     self.assertRaises(TracError, Priority, self.env, 'major')
Exemple #9
0
 def test_priority_update(self):
     prio = Priority(self.env, 'major')
     prio.name = 'foo'
     prio.update()
     Priority(self.env, 'foo')
     self.assertRaises(TracError, Priority, self.env, 'major')
Exemple #10
0
 def test_priority_insert_with_value(self):
     prio = Priority(self.env)
     prio.name = 'bar'
     prio.value = 100
     prio.insert()
     self.assertEqual(True, prio.exists)
Exemple #11
0
 def test_priority_insert(self):
     prio = Priority(self.env)
     prio.name = 'foo'
     prio.insert()
     self.assertEqual(True, prio.exists)
Exemple #12
0
 def test_priority_fetch(self):
     prio = Priority(self.env, 'major')
     self.assertEqual(prio.name, 'major')
     self.assertEqual(prio.value, '3')