Skip to content

Commit 92608f9

Browse files
authored
Assign names to repos. By @diivi (#1665)
1 parent f76195e commit 92608f9

File tree

13 files changed

+332
-278
lines changed

13 files changed

+332
-278
lines changed

src/vorta/assets/UI/repoadd.ui

Lines changed: 289 additions & 268 deletions
Large diffs are not rendered by default.

src/vorta/assets/icons/eye-slash.svg

Lines changed: 1 addition & 1 deletion
Loading

src/vorta/assets/icons/eye.svg

Lines changed: 1 addition & 1 deletion
Loading

src/vorta/borg/borg_job.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
db_lock = Lock()
2828
logger = logging.getLogger(__name__)
2929

30-
FakeRepo = namedtuple('Repo', ['url', 'id', 'extra_borg_arguments', 'encryption'])
30+
FakeRepo = namedtuple('Repo', ['url', 'name', 'id', 'extra_borg_arguments', 'encryption'])
3131
FakeProfile = namedtuple('FakeProfile', ['id', 'repo', 'name', 'ssh_key'])
3232

3333
"""
@@ -190,6 +190,7 @@ def prepare(cls, profile):
190190
ret['ssh_key'] = profile.ssh_key
191191
ret['repo_id'] = profile.repo.id
192192
ret['repo_url'] = profile.repo.url
193+
ret['repo_name'] = profile.repo.name
193194
ret['extra_borg_arguments'] = profile.repo.extra_borg_arguments
194195
ret['profile_name'] = profile.name
195196
ret['profile_id'] = profile.id

src/vorta/borg/info_repo.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def prepare(cls, params):
1818
# Build fake profile because we don't have it in the DB yet. Assume unencrypted.
1919
profile = FakeProfile(
2020
999,
21-
FakeRepo(params['repo_url'], 999, params['extra_borg_arguments'], 'none'),
21+
FakeRepo(params['repo_url'], params['repo_name'], 999, params['extra_borg_arguments'], 'none'),
2222
'New Repo',
2323
params['ssh_key'],
2424
)
@@ -47,14 +47,17 @@ def prepare(cls, params):
4747
ret['message'] = trans_late('messages', 'Please unlock your password manager.')
4848
return ret
4949

50+
ret['repo_name'] = params['repo_name']
5051
ret['ok'] = True
5152
ret['cmd'] = cmd
5253

5354
return ret
5455

5556
def process_result(self, result):
5657
if result['returncode'] == 0:
57-
new_repo, _ = RepoModel.get_or_create(url=result['cmd'][-1])
58+
new_repo, _ = RepoModel.get_or_create(
59+
url=result['cmd'][-1], defaults={'name': result['params']['repo_name']}
60+
)
5861
if 'cache' in result['data']:
5962
stats = result['data']['cache']['stats']
6063
new_repo.total_size = stats['total_size']
@@ -64,7 +67,6 @@ def process_result(self, result):
6467
new_repo.encryption = result['data']['encryption']['mode']
6568
if new_repo.encryption != 'none':
6669
self.keyring.set_password("vorta-repo", new_repo.url, result['params']['password'])
67-
6870
new_repo.extra_borg_arguments = result['params']['extra_borg_arguments']
6971

7072
new_repo.save()

src/vorta/borg/init.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ def prepare(cls, params):
1616
999,
1717
FakeRepo(
1818
params['repo_url'],
19+
params['repo_name'],
1920
999,
2021
params['extra_borg_arguments'],
2122
params['encryption'],
@@ -61,6 +62,7 @@ def process_result(self, result):
6162
defaults={
6263
'encryption': result['params']['encryption'],
6364
'extra_borg_arguments': result['params']['extra_borg_arguments'],
65+
'name': result['params']['repo_name'],
6466
},
6567
)
6668
if new_repo.encryption != 'none':

src/vorta/store/connection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
)
2222
from .settings import get_misc_settings
2323

24-
SCHEMA_VERSION = 21
24+
SCHEMA_VERSION = 22
2525

2626

2727
@signals.post_save(sender=SettingsModel)

src/vorta/store/migrations.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,17 @@ def run_migrations(current_schema, db_connection):
239239
),
240240
)
241241

242+
if current_schema.version < 22:
243+
_apply_schema_update(
244+
current_schema,
245+
22,
246+
migrator.add_column(
247+
RepoModel._meta.table_name,
248+
'name',
249+
pw.CharField(default=''),
250+
),
251+
)
252+
242253

243254
def _apply_schema_update(current_schema, version_after, *operations):
244255
with DB.atomic():

src/vorta/store/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ class RepoModel(BaseModel):
3939
"""A single remote repo with unique URL."""
4040

4141
url = pw.CharField(unique=True)
42+
name = pw.CharField(default='')
4243
added_at = pw.DateTimeField(default=datetime.now)
4344
encryption = pw.CharField(null=True)
4445
unique_size = pw.IntegerField(null=True)

src/vorta/views/archive_tab.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,12 @@ def populate_from_profile(self):
265265
if repo_mount_points:
266266
self.repo_mount_point = repo_mount_points[0]
267267

268-
self.toolBox.setItemText(0, self.tr('Archives for %s') % profile.repo.url)
268+
if profile.repo.name:
269+
repo_name = f"{profile.repo.name} ({profile.repo.url})"
270+
else:
271+
repo_name = profile.repo.url
272+
self.toolBox.setItemText(0, self.tr('Archives for {}').format(repo_name))
273+
269274
archives = [s for s in profile.repo.archives.select().order_by(ArchiveModel.time.desc())]
270275

271276
# if no archive's name can be found in self.mount_points, then hide the mount point column

0 commit comments

Comments
 (0)