Project Release Auto-Task

Project Release Auto-Task
 1# Project Update Auto-task example
 2# This script should be assigned to either the "Update (After)" or "Update (Before)" auto-tasks.
 3# It will not work in the Script Toolbox as the impact.gui.active_database_release property is only valid
 4# during a database release operation.
 5
 6
 7# For the "Update (After)" auto-task the IReleaseAction object will have
 8# a Revision property to the IDatabaseRevision if a new revision was created
 9
10# All properties are read-only and cannot be modified
11
12db = impact.active_database
13
14ra = impact.gui.active_database_release
15
16
17def describe_action(action):
18    if action == ipReleaseAction.raUpdate:
19        impact.gui.output_toolbox.add("Action: Updating")
20    elif action == ipReleaseAction.raDiscard:
21        impact.gui.output_toolbox.add("Action: Discarding")
22    elif action == ipReleaseAction.raRelease:
23        impact.gui.output_toolbox.add("Action: Releasing")
24    elif action == ipReleaseAction.raKeepOut:
25        impact.gui.output_toolbox.add("Action: Keeping Out")
26
27def describe_release_action(ra):
28    impact.gui.output_toolbox.add("Project: " + str(ra.project.reference))
29    impact.gui.output_toolbox.add("User: " + str(ra.user.login_id))
30
31    describe_action(ra.action)
32    impact.gui.output_toolbox.add("Comment: " + str(ra.comment))
33
34    impact.gui.output_toolbox.add("Keep Working: " + str(ra.keep_working))
35    impact.gui.output_toolbox.add("Lock: " + str(ra.lock))
36    impact.gui.output_toolbox.add("Create Revision: " + str(ra.create_revision))
37
38    if not ra.reassign_to.isNone():
39        impact.gui.output_toolbox.add("Reassign To: " + str(ra.reassign_to.login_id))
40        impact.gui.output_toolbox.add("Reassign without update: " + str(ra.reassign_without_update))
41
42    impact.gui.output_toolbox.add("customer Changed: " + str(ra.customer_changed))
43    impact.gui.output_toolbox.add("Project Info Changed: " + str(ra.project_info_changed))
44
45    impact.gui.output_toolbox.add("Release Layer Count: " + str(ra.layers.count))
46
47    for layer in ra.layers:
48        impact.gui.output_toolbox.add("Layer Key: " + str(layer.key))
49        impact.gui.output_toolbox.add("Layer Name: " + str(layer.name))
50        impact.gui.output_toolbox.add("Type: " + str(layer.type))
51        impact.gui.output_toolbox.add("Type Key: " + str(layer.type_key))
52        impact.gui.output_toolbox.add("version: " + str(layer.layer.version))
53        impact.gui.output_toolbox.add("Modified: " + str(layer.modified))
54        describe_action(layer.action)
55        impact.gui.output_toolbox.add("Added: " + str(layer.added))
56        impact.gui.output_toolbox.add("Deleted: " + str(layer.deleted))
57
58    if not ra.revision.isNone():
59        impact.gui.output_toolbox.add("Revision Created: " + str(ra.revision.number))
60
61
62if not ra.isNone():
63    describe_release_action(ra)
64
65else:
66    impact.gui.output_toolbox.add("Error: ActiveDatabaseRelease is not valid")