Mercurial > libervia-backend
diff frontends/src/jp/cmd_merge_request.py @ 2551:b27165bf160c
jp (merge-request/set): if service and node are not specified, URIFinder is now used + ask confirmation before publishing
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 31 Mar 2018 18:23:06 +0200 |
parents | 2df1ca79cb30 |
children | 39b10475f56b |
line wrap: on
line diff
--- a/frontends/src/jp/cmd_merge_request.py Sat Mar 31 18:21:56 2018 +0200 +++ b/frontends/src/jp/cmd_merge_request.py Sat Mar 31 18:23:06 2018 +0200 @@ -22,6 +22,7 @@ from sat.core.i18n import _ from sat_frontends.jp.constants import Const as C from sat_frontends.jp import xmlui_manager +from sat_frontends.jp import common from functools import partial import os.path @@ -31,12 +32,15 @@ class Set(base.CommandBase): def __init__(self, host): - base.CommandBase.__init__(self, host, 'set', use_pubsub=True, help=_(u'publish or update a merge request')) + base.CommandBase.__init__(self, host, 'set', use_pubsub=True, + pubsub_defaults = {u'service': _(u'auto'), u'node': _(u'auto')}, + help=_(u'publish or update a merge request')) self.need_loop=True def add_parser_options(self): self.parser.add_argument("-i", "--item", type=base.unicode_decoder, default=u'', help=_(u"id or URL of the request to update, or nothing for a new one")) self.parser.add_argument("-r", "--repository", metavar="PATH", type=base.unicode_decoder, default=u'.', help=_(u"path of the repository (DEFAULT: current directory)")) + self.parser.add_argument("-f", "--force", action="store_true", help=_(u"publish merge request without confirmation")) def mergeRequestSetCb(self, published_id): if published_id: @@ -45,13 +49,12 @@ self.disp(u"Merge request published") self.host.quit(C.EXIT_OK) - def start(self): - repository = os.path.expanduser(os.path.abspath(self.args.repository)) + def sendRequest(self): extra = {'update': 'true'} if self.args.item else {} self.host.bridge.mergeRequestSet( self.args.service, self.args.node, - repository, + self.repository, u'auto', {}, u'', @@ -63,6 +66,17 @@ msg=_(u"can't create merge request: {}"), exit_code=C.EXIT_BRIDGE_ERRBACK)) + def askConfirmation(self): + if not self.args.force: + message = _(u"You are going to publish your changes to service [{service}], are you sure ?").format( + service=self.args.service) + self.host.confirmOrQuit(message, _(u"merge request publication cancelled")) + self.sendRequest() + + def start(self): + self.repository = os.path.expanduser(os.path.abspath(self.args.repository)) + common.URIFinder(self, self.repository, 'merge requests', self.askConfirmation) + class Get(base.CommandBase):