Example #1
0
 def action(self):
     project = issues.get_project()
     self.prompt_all_args()
     issue = project.get_issue(self.argument_values.name)
     issue.set_value("state","closed")
     issue.set_value("actual",self.normalize_time(self.argument_values.time))
     project.save_issue(issue)
Example #2
0
    def console_output(self):
        project = issues.get_project()
        if self.argument_values.release!="":
            release = project.get_release(self.argument_values.release)
            release_name = release.name()
            
            print("Release: {0}".format(release.name()))
        else:
            release_name = ""
            print("{0}".format("Unassigned Issues:"))

        for issue in project._issues:
            if release_name == issue.release:
                print(issue.summary())

        if self.argument_values.release!="":
            release = project.get_release(self.argument_values.release)
            stats = release.statistics()
            print("\nOverall:")
            print("  * Total Estimated Work: {0}h".format(stats[0]+stats[1]))
            print("  * Estimated Work Completed: {0}h".format(stats[0]))
            print("  * Actual Work Time: {0}h".format(stats[2]))
            print("  * Estimated Remaining Work: {0}h".format(stats[1]))
            print("  * Probable Remaining Time: {0}h".format(stats[3]))
        
            for owner in release.owners():
                stats = release.statistics(owner)
                print("\n{0}:".format(owner))
                print("  * Total Estimated Work: {0}h".format(stats[0]+stats[1]))
                print("  * Estimated Work Completed: {0}h".format(stats[0]))
                print("  * Actual Work Time: {0}h".format(stats[2]))
                print("  * Estimated Remaining Work: {0}h".format(stats[1]))
                print("  * Probable Remaining Time: {0}h".format(stats[3]))
Example #3
0
 def action(self):
     project = issues.get_project()
     self.prompt_all_args()
     release = project.add_release()
     release.set_value("name",self.argument_values.name)
     release.set_value("description",self.argument_values.description)
     project.save_release(release)
Example #4
0
    def action(self):
        project = issues.get_project()
        self.prompt_all_args()

        issue = project.get_issue(self.argument_values.name)
        issue.set_value("estimate",self.argument_values.time)
        project.save_issue(issue)
Example #5
0
 def action(self):
     project = issues.get_project()
     releases = [r for r in project.releases]
     def get_name(r):
         return natsort_key(r.name())
     releases.sort(key=get_name)
     for release in releases:
         print release.name()
Example #6
0
    def dokuwiki_output(self):
        project = issues.get_project()
        if self.argument_values.release!="":
            release = project.get_release(self.argument_values.release)
            release_name = release.name()
            print("====== {0} ======".format(release.name()))

            stats = release.statistics()
            print("\n**Totals:**")
            print("  * Total Estimated Work: {0}h".format(stats[0]+stats[1]))
            print("  * Estimated Work Completed: {0}h".format(stats[0]))
            print("  * Actual Work Time: {0}h".format(stats[2]))
            print("  * Estimated Remaining Work: {0}h".format(stats[1]))
            print("  * Probable Remaining Time: {0}h".format(stats[3]))

            for owner in release.owners():
                stats = release.statistics(owner)
                print("\n**{0}:**".format(owner))
                print("  * Total Estimated Work: {0}h".format(stats[0]+stats[1]))
                print("  * Estimated Work Completed: {0}h".format(stats[0]))
                print("  * Actual Work Time: {0}h".format(stats[2]))
                print("  * Estimated Remaining Work: {0}h".format(stats[1]))
                print("  * Probable Remaining Time: {0}h".format(stats[3]))
                
            print("===== Description =====")
            print(release.description)
        else:
            release_name = ""
            print("====== {0} ======".format("Unassigned Issues"))

        print("===== Issues =====")
        print("==== Summary ====")
        print "^ID ^Title ^ Owner ^ Status ^ Estimated Time(h) ^Actual Time(h) ^ "
        for issue in project._issues:
            if release_name == issue.release:
                print("|[[#{id}|{id}]] |{title} |{owner} |{status} | {estimate} | {actual} |".format(id=issue.name,
                    title=issue.title,
                    status = issue.state,
                    estimate = issue.estimate,
                    owner = issue.owner,
                    actual = issue.actual if issue.state == "closed" else " "))
        
        print("==== Descriptions ====")
        for issue in project._issues:
            if release_name == issue.release:
                print("==={id}===".format(id=issue.name))
                print("**{title}**".format(title = issue.title))
                if issue.description!="":
                    print("")
                    print(issue.description)
                print("")
                if issue.owner !="":
                    print("  * Owner:{0}".format(issue.owner))
                print("  * Status:{0}".format(issue.state))
                print("  * Estimate:{0}".format(issue.estimate))
                if issue.state == "closed":
                    print("  * Actual(h):{0}".format(issue.actual))
Example #7
0
    def action(self):
        project = issues.get_project()
        self.cond_prompt_arg("name")
        issue = project.get_issue(self.argument_values.name)
        file_name = issue._filename
        try:
            editor = os.environ['EDITOR']
        except KeyError:
            editor = 'nano'

        subprocess.call([editor, file_name])
Example #8
0
    def action(self):
        project = issues.get_project()
        self.prompt_all_args()

        issue = project.add_issue()
        issue.set_value("title",self.argument_values.title)
        issue.set_value("description",self.argument_values.description)        
        issue.set_value("estimate",self.argument_values.estimate)
        issue.set_value("release",self.argument_values.release)
        issue.set_value("owner",self.argument_values.owner)
        issue.set_value("state","open")
        project.save_issue(issue)
Example #9
0
 def action(self):
     display = self.argument_values.display
     if display == None:
         display = 'o'
     owner = self.argument_values.owner
     
     project = issues.get_project()
     for issue in project._issues:
         if self.argument_values.release == None or self.argument_values.release == issue.release:
             if display =="a" or (issue.state.lower()[0] == display.lower()[0]):
                 if owner == None or owner.lower() == issue.owner.lower():
                     print issue.summary()
Example #10
0
    def prompt_all_args(self):
        """prompt for the values of all outstanding arguments"""

        #A little hacky. ok, very hacky. because we need the project
        #before we even get this far, the command line argument for
        #specifying issues_config_dir is already resolved or can be
        #figured out, but we need to trick the command line argument
        #prompter that's it was specified.
        project = issues.get_project()
        self.argument_values.issues_config_dir = project.get_root_folder()

        for arg in self.arguments + self.global_arguments:
            self.cond_prompt_arg(arg.name)
Example #11
0
 def action(self):
     project = issues.get_project()
     self.cond_prompt_arg("release")
     release = project.get_release(self.argument_values.release)
     t = tempfile.NamedTemporaryFile(delete=False)
     t.write(release.get_value('description'))
     t.close()
     try:
         editor = os.environ['EDITOR']
     except KeyError:
         editor = 'nano'
     subprocess.call([editor, t.name])
     t = open(t.name)
     raw_val = t.read()
     release.set_value('description',raw_val)
     project.save_release(release)
Example #12
0
 def action(self):
     project = issues.get_project()
     self.prompt_all_args()
     issue = project.get_issue(self.argument_values.name)
     project.remove_issue(issue)
Example #13
0
 def action(self):
     project = issues.get_project()
     project.set_issue_master_names()
Example #14
0
 def action(self):
     project = issues.get_project()
     self.prompt_all_args()
     issue = project.get_issue(self.argument_values.name)
     sys.stdout.write(issue._guid)
Example #15
0
 def action(self):
     project = issues.get_project()
     self.prompt_all_args()
     issue = project.get_issue(self.argument_values.issue)
     issue.set_value("owner",self.argument_values.owner)
     project.save_issue(issue)
Example #16
0
 def action(self):
     project = issues.get_project()
     self.cond_prompt_arg("name")
     issue = project.get_issue(self.argument_values.name)
     print(issue.detailed_summary())