source: peerreviewplugin/tags/0.12/3.1/codereview/upgrades/db_peerreview_3.py

Last change on this file was 16451, checked in by Ryan J Ollos, 6 years ago

Fix indentation

File size: 2.9 KB
Line 
1from trac.db import Table, Column
2
3def do_upgrade(env, ver, db_backend, db):
4    """
5
6    """
7    cursor = db.cursor()
8
9    realm = 'peerreview'
10
11    status_update = [["new", "Open for review"],
12                     ["reviewed", "Reviewed"],
13                     ["closed", "Closed"],
14                     ["forinclusion", "Ready for inclusion"]]
15
16    for status in status_update:
17        cursor.execute("UPDATE peer_review SET status=%s WHERE status=%s", status)
18
19    cursor.execute("CREATE TEMPORARY TABLE peerreview_old AS SELECT * FROM peer_review")
20    cursor.execute("DROP TABLE peer_review")
21
22    table_metadata = Table('peerreview', key='review_id')[
23                              Column('review_id', auto_increment=True, type='int'),
24                              Column('owner'),
25                              Column('status'),
26                              Column('created', type='int'),
27                              Column('name'),
28                              Column('notes'),
29                              Column('parent_id', type='int'),
30                              Column('project'),
31                              Column('keywords')
32                              ]
33
34    env.log.info("Updating table for class %s" % realm)
35    for stmt in db_backend.to_sql(table_metadata):
36        env.log.debug(stmt)
37        cursor.execute(stmt)
38
39    cursor = db.cursor()
40
41    cursor.execute("INSERT INTO peerreview (review_id,owner,status,created,name,notes,parent_id,keywords) "
42                   "SELECT review_id,owner,status,created,name,notes,parent_id,keywords FROM peerreview_old")
43
44    cursor.execute("DROP TABLE peerreview_old")
45
46    # Add default workflow
47
48    wf_data = [['approve', 'reviewed -> approved'],
49               ['approve.name', 'Approve the review'],
50               ['close', 'new, reviewed, in-review -> closed'],
51               ['close.name', 'Close review'],
52               ['disapprove', 'reviewed -> disapproved'],
53               ['disapprove.name', 'Deny this review'],
54               ['reopen', 'closed, reviewed, approved, disapproved -> new'],
55               ['reopen.permissions', 'CODE_REVIEW_MGR'],
56               ['review-done', 'in-review -> reviewed'],
57               ['review-done.name', 'Mark as reviewed'],
58               ['reviewing', 'new -> in-review'],
59               ['reviewing.default', '5'],
60               ['reviewing.name', 'Start review'],
61               ['change_owner','* -> *'],
62               ['change_owner.name','Change Owner to'],
63               ['change_owner.operations','set_review_owner'],
64               ['change_owner.permissions','CODE_REVIEW_MGR'],
65               ['change_owner.default','-1'],
66               ]
67    wf_section = 'peerreview-resource_workflow'
68
69    if wf_section not in env.config.sections():
70        print "Adding default workflow for 'peerreview' to config."
71        for item in wf_data:
72            env.config.set(wf_section, item[0], item[1])
73        env.config.save()
Note: See TracBrowser for help on using the repository browser.