annotate sat_frontends/jp/cmd_list.py @ 3942:a92eef737703

plugin XEP-0373: download public keys if they are not found in local storage: public keys were only obtained from PEP notifications, however this wasn't working if the entity was not in our roster. Now if no public key is retrieved from local storage, the public key node is requested, and an error is raised if nothing is found. This allows the use of OX with entities which are not in roster. rel 380
author Goffi <goffi@goffi.org>
date Sat, 15 Oct 2022 20:38:33 +0200
parents 04283582966f
children 524856bd7b19
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
1 #!/usr/bin/env python3
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
2
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
3
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
4 # jp: a SàT command line tool
3479
be6d91572633 date update
Goffi <goffi@goffi.org>
parents: 3459
diff changeset
5 # Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org)
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
6
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
7 # This program is free software: you can redistribute it and/or modify
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
8 # it under the terms of the GNU Affero General Public License as published by
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
9 # the Free Software Foundation, either version 3 of the License, or
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
10 # (at your option) any later version.
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
11
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
12 # This program is distributed in the hope that it will be useful,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
15 # GNU Affero General Public License for more details.
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
16
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
17 # You should have received a copy of the GNU Affero General Public License
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
19
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
20
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
21 import json
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
22 import os
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
23 from sat.core.i18n import _
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
24 from sat.tools.common import data_format
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
25 from sat_frontends.jp import common
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
26 from sat_frontends.jp.constants import Const as C
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
27 from . import base
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
28
3459
8dc26e5edcd3 plugin tickets, merge_requests: renamed "tickets" feature to "lists":
Goffi <goffi@goffi.org>
parents: 3458
diff changeset
29 __commands__ = ["List"]
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
30
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
31 FIELDS_MAP = "mapping"
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
32
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
33
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
34 class Get(base.CommandBase):
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
35 def __init__(self, host):
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
36 base.CommandBase.__init__(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
37 self,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
38 host,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
39 "get",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
40 use_verbose=True,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
41 use_pubsub=True,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
42 pubsub_flags={C.MULTI_ITEMS},
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
43 pubsub_defaults={"service": _("auto"), "node": _("auto")},
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
44 use_output=C.OUTPUT_LIST_XMLUI,
3459
8dc26e5edcd3 plugin tickets, merge_requests: renamed "tickets" feature to "lists":
Goffi <goffi@goffi.org>
parents: 3458
diff changeset
45 help=_("get lists"),
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
46 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
47
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
48 def add_parser_options(self):
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
49 pass
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
50
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
51 async def start(self):
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
52 await common.fill_well_known_uri(self, os.getcwd(), "tickets", meta_map={})
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
53 try:
3459
8dc26e5edcd3 plugin tickets, merge_requests: renamed "tickets" feature to "lists":
Goffi <goffi@goffi.org>
parents: 3458
diff changeset
54 lists_data = data_format.deserialise(
8dc26e5edcd3 plugin tickets, merge_requests: renamed "tickets" feature to "lists":
Goffi <goffi@goffi.org>
parents: 3458
diff changeset
55 await self.host.bridge.listGet(
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
56 self.args.service,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
57 self.args.node,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
58 self.args.max,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
59 self.args.items,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
60 "",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
61 self.getPubsubExtra(),
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
62 self.profile,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
63 ),
3568
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
64 type_check=list,
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
65 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
66 except Exception as e:
3459
8dc26e5edcd3 plugin tickets, merge_requests: renamed "tickets" feature to "lists":
Goffi <goffi@goffi.org>
parents: 3458
diff changeset
67 self.disp(f"can't get lists: {e}", error=True)
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
68 self.host.quit(C.EXIT_BRIDGE_ERRBACK)
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
69 else:
3459
8dc26e5edcd3 plugin tickets, merge_requests: renamed "tickets" feature to "lists":
Goffi <goffi@goffi.org>
parents: 3458
diff changeset
70 await self.output(lists_data[0])
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
71 self.host.quit(C.EXIT_OK)
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
72
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
73
3510
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
74 class Set(base.CommandBase):
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
75 def __init__(self, host):
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
76 base.CommandBase.__init__(
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
77 self,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
78 host,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
79 "set",
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
80 use_pubsub=True,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
81 pubsub_defaults={"service": _("auto"), "node": _("auto")},
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
82 help=_("set a list item"),
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
83 )
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
84
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
85 def add_parser_options(self):
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
86 self.parser.add_argument(
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
87 "-f",
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
88 "--field",
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
89 action="append",
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
90 nargs="+",
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
91 dest="fields",
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
92 required=True,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
93 metavar=("NAME", "VALUES"),
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
94 help=_("field(s) to set (required)"),
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
95 )
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
96 self.parser.add_argument(
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
97 "-U",
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
98 "--update",
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
99 choices=("auto", "true", "false"),
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
100 default="auto",
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
101 help=_("update existing item instead of replacing it (DEFAULT: auto)"),
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
102 )
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
103 self.parser.add_argument(
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
104 "item",
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
105 nargs="?",
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
106 default="",
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
107 help=_("id, URL of the item to update, or nothing for new item"),
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
108 )
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
109
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
110 async def start(self):
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
111 await common.fill_well_known_uri(self, os.getcwd(), "tickets", meta_map={})
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
112 if self.args.update == "auto":
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
113 # we update if we have a item id specified
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
114 update = bool(self.args.item)
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
115 else:
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
116 update = C.bool(self.args.update)
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
117
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
118 values = {}
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
119
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
120 for field_data in self.args.fields:
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
121 values.setdefault(field_data[0], []).extend(field_data[1:])
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
122
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
123 extra = {"update": update}
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
124
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
125 try:
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
126 item_id = await self.host.bridge.listSet(
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
127 self.args.service,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
128 self.args.node,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
129 values,
3568
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
130 "",
3510
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
131 self.args.item,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
132 data_format.serialise(extra),
3568
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
133 self.profile,
3510
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
134 )
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
135 except Exception as e:
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
136 self.disp(f"can't set list item: {e}", error=True)
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
137 self.host.quit(C.EXIT_BRIDGE_ERRBACK)
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
138 else:
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
139 self.disp(f"item {str(item_id or self.args.item)!r} set successfully")
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
140 self.host.quit(C.EXIT_OK)
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
141
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
142
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
143 class Delete(base.CommandBase):
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
144 def __init__(self, host):
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
145 base.CommandBase.__init__(
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
146 self,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
147 host,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
148 "delete",
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
149 use_pubsub=True,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
150 pubsub_defaults={"service": _("auto"), "node": _("auto")},
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
151 help=_("delete a list item"),
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
152 )
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
153
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
154 def add_parser_options(self):
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
155 self.parser.add_argument(
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
156 "-f", "--force", action="store_true", help=_("delete without confirmation")
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
157 )
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
158 self.parser.add_argument(
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
159 "-N", "--notify", action="store_true", help=_("notify deletion")
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
160 )
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
161 self.parser.add_argument(
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
162 "item",
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
163 help=_("id of the item to delete"),
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
164 )
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
165
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
166 async def start(self):
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
167 await common.fill_well_known_uri(self, os.getcwd(), "tickets", meta_map={})
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
168 if not self.args.item:
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
169 self.parser.error(_("You need to specify a list item to delete"))
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
170 if not self.args.force:
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
171 message = _("Are you sure to delete list item {item_id} ?").format(
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
172 item_id=self.args.item
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
173 )
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
174 await self.host.confirmOrQuit(message, _("item deletion cancelled"))
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
175 try:
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
176 await self.host.bridge.listDeleteItem(
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
177 self.args.service,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
178 self.args.node,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
179 self.args.item,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
180 self.args.notify,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
181 self.profile,
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
182 )
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
183 except Exception as e:
3568
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
184 self.disp(_("can't delete item: {e}").format(e=e), error=True)
3510
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
185 self.host.quit(C.EXIT_BRIDGE_ERRBACK)
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
186 else:
3568
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
187 self.disp(_("item {item} has been deleted").format(item=self.args.item))
3510
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
188 self.host.quit(C.EXIT_OK)
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
189
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
190
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
191 class Import(base.CommandBase):
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
192 # TODO: factorize with blog/import
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
193
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
194 def __init__(self, host):
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
195 super(Import, self).__init__(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
196 host,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
197 "import",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
198 use_progress=True,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
199 use_verbose=True,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
200 help=_("import tickets from external software/dataset"),
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
201 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
202
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
203 def add_parser_options(self):
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
204 self.parser.add_argument(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
205 "importer",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
206 nargs="?",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
207 help=_("importer name, nothing to display importers list"),
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
208 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
209 self.parser.add_argument(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
210 "-o",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
211 "--option",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
212 action="append",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
213 nargs=2,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
214 default=[],
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
215 metavar=("NAME", "VALUE"),
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
216 help=_("importer specific options (see importer description)"),
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
217 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
218 self.parser.add_argument(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
219 "-m",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
220 "--map",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
221 action="append",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
222 nargs=2,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
223 default=[],
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
224 metavar=("IMPORTED_FIELD", "DEST_FIELD"),
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
225 help=_(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
226 "specified field in import data will be put in dest field (default: use "
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
227 "same field name, or ignore if it doesn't exist)"
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
228 ),
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
229 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
230 self.parser.add_argument(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
231 "-s",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
232 "--service",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
233 default="",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
234 metavar="PUBSUB_SERVICE",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
235 help=_("PubSub service where the items must be uploaded (default: server)"),
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
236 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
237 self.parser.add_argument(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
238 "-n",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
239 "--node",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
240 default="",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
241 metavar="PUBSUB_NODE",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
242 help=_(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
243 "PubSub node where the items must be uploaded (default: tickets' "
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
244 "defaults)"
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
245 ),
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
246 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
247 self.parser.add_argument(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
248 "location",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
249 nargs="?",
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
250 help=_(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
251 "importer data location (see importer description), nothing to show "
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
252 "importer description"
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
253 ),
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
254 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
255
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
256 async def onProgressStarted(self, metadata):
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
257 self.disp(_("Tickets upload started"), 2)
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
258
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
259 async def onProgressFinished(self, metadata):
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
260 self.disp(_("Tickets uploaded successfully"), 2)
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
261
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
262 async def onProgressError(self, error_msg):
3568
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
263 self.disp(
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
264 _("Error while uploading tickets: {error_msg}").format(error_msg=error_msg),
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
265 error=True,
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
266 )
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
267
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
268 async def start(self):
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
269 if self.args.location is None:
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
270 # no location, the list of importer or description is requested
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
271 for name in ("option", "service", "node"):
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
272 if getattr(self.args, name):
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
273 self.parser.error(
3568
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
274 _(
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
275 "{name} argument can't be used without location argument"
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
276 ).format(name=name)
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
277 )
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
278 if self.args.importer is None:
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
279 self.disp(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
280 "\n".join(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
281 [
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
282 f"{name}: {desc}"
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
283 for name, desc in await self.host.bridge.ticketsImportList()
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
284 ]
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
285 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
286 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
287 else:
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
288 try:
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
289 short_desc, long_desc = await self.host.bridge.ticketsImportDesc(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
290 self.args.importer
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
291 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
292 except Exception as e:
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
293 self.disp(f"can't get importer description: {e}", error=True)
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
294 self.host.quit(C.EXIT_BRIDGE_ERRBACK)
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
295 else:
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
296 self.disp(f"{name}: {short_desc}\n\n{long_desc}")
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
297 self.host.quit()
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
298 else:
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
299 # we have a location, an import is requested
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
300
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
301 if self.args.progress:
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
302 # we use a custom progress bar template as we want a counter
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
303 self.pbar_template = [
3568
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
304 _("Progress: "),
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
305 ["Percentage"],
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
306 " ",
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
307 ["Bar"],
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
308 " ",
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
309 ["Counter"],
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
310 " ",
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
311 ["ETA"],
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
312 ]
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
313
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
314 options = {key: value for key, value in self.args.option}
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
315 fields_map = dict(self.args.map)
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
316 if fields_map:
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
317 if FIELDS_MAP in options:
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
318 self.parser.error(
3568
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
319 _(
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
320 "fields_map must be specified either preencoded in --option or "
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
321 "using --map, but not both at the same time"
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
322 )
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
323 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
324 options[FIELDS_MAP] = json.dumps(fields_map)
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
325
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
326 try:
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
327 progress_id = await self.host.bridge.ticketsImport(
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
328 self.args.importer,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
329 self.args.location,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
330 options,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
331 self.args.service,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
332 self.args.node,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
333 self.profile,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
334 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
335 except Exception as e:
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
336 self.disp(
3568
04283582966f core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents: 3510
diff changeset
337 _("Error while trying to import tickets: {e}").format(e=e),
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
338 error=True,
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
339 )
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
340 self.host.quit(C.EXIT_BRIDGE_ERRBACK)
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
341 else:
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
342 await self.set_progress_id(progress_id)
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
343
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
344
3459
8dc26e5edcd3 plugin tickets, merge_requests: renamed "tickets" feature to "lists":
Goffi <goffi@goffi.org>
parents: 3458
diff changeset
345 class List(base.CommandBase):
3510
059742e925f2 jp (list): implement `set` and `delete` subcommands.
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
346 subcommands = (Get, Set, Delete, Import)
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
347
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
348 def __init__(self, host):
3459
8dc26e5edcd3 plugin tickets, merge_requests: renamed "tickets" feature to "lists":
Goffi <goffi@goffi.org>
parents: 3458
diff changeset
349 super(List, self).__init__(
8dc26e5edcd3 plugin tickets, merge_requests: renamed "tickets" feature to "lists":
Goffi <goffi@goffi.org>
parents: 3458
diff changeset
350 host, "list", use_profile=False, help=_("pubsub lists handling")
3458
b68346a52920 Backed out changeset 6deea0d8d0e7
Goffi <goffi@goffi.org>
parents:
diff changeset
351 )