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)
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]))
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)
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)
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()
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))
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])
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)
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()
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)
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)
def action(self): project = issues.get_project() self.prompt_all_args() issue = project.get_issue(self.argument_values.name) project.remove_issue(issue)
def action(self): project = issues.get_project() project.set_issue_master_names()
def action(self): project = issues.get_project() self.prompt_all_args() issue = project.get_issue(self.argument_values.name) sys.stdout.write(issue._guid)
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)
def action(self): project = issues.get_project() self.cond_prompt_arg("name") issue = project.get_issue(self.argument_values.name) print(issue.detailed_summary())