From d5d3e15bb45187f8dcbf07af8ec8124b621a1afd Mon Sep 17 00:00:00 2001 From: Zoltan Karsa <karsazoltan@gmail.com> Date: Sat, 31 Dec 2022 15:49:41 +0100 Subject: [PATCH] style datastore page --- circle/dashboard/templates/dashboard/storage/detail.html | 24 +++++++++++++++++++++++- circle/dashboard/views/storage.py | 5 +++-- circle/storage/models.py | 2 +- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/circle/dashboard/templates/dashboard/storage/detail.html b/circle/dashboard/templates/dashboard/storage/detail.html index aaa9fb1..b6880da 100644 --- a/circle/dashboard/templates/dashboard/storage/detail.html +++ b/circle/dashboard/templates/dashboard/storage/detail.html @@ -9,11 +9,33 @@ {% block content %} + +<div class="row"> + <div class="col-md-12"> + <div class="panel panel-default"> + <div class="panel-body"> + {% for ds in stores %} + {% if ds.name == name %} + <a href="#" class="badge badge-success"> + <i class="fa fa-database"></i> {{ ds.hostname }}/{{ ds.name }} + </a> + {% else %} + <a href="#" class="badge badge-primary"> + {{ ds.hostname }}/{{ ds.name }} + </a> + {% endif %} + {% empty %} + {% trans "None" %} + {% endfor %} + </div> + </div> + </div> +</div> <div class="row"> <div class="col-md-5"> <div class="panel panel-default"> <div class="panel-heading"> - <h3 class="no-margin"><i class="fa fa-database"></i> {% trans "Datastore" %}</h3> + <h3 class="no-margin"><i class="fa fa-database"></i> {{ name }} {% trans "Datastore" %}</h3> </div> <div class="panel-body"> {% crispy form %} diff --git a/circle/dashboard/views/storage.py b/circle/dashboard/views/storage.py index 1126067..a6b2ba6 100644 --- a/circle/dashboard/views/storage.py +++ b/circle/dashboard/views/storage.py @@ -50,11 +50,12 @@ class StorageDetail(SuperuserRequiredMixin, UpdateView): def get_context_data(self, **kwargs): context = super(StorageDetail, self).get_context_data(**kwargs) - + context["stores"] = DataStore.objects.all() ds = self.get_object() try: + context['name'] = ds.name context['stats'] = self._get_stats() - context['missing_disks'] = ds.get_missing_disks() + context['g'] = ds.get_missing_disks() context['orphan_disks'] = ds.get_orphan_disks() except WorkerNotFound: messages.error(self.request, _("The DataStore is offline.")) diff --git a/circle/storage/models.py b/circle/storage/models.py index 5a5b471..4a5822d 100644 --- a/circle/storage/models.py +++ b/circle/storage/models.py @@ -110,7 +110,7 @@ class DataStore(Model): queue_name = self.get_remote_queue_name('storage', "slow") files = set(storage_tasks.list_files.apply_async( args=[self.path], queue=queue_name).get(timeout=timeout)) - disks = Disk.objects.filter(destroyed__isnull=True, is_ready=True) + disks = Disk.objects.filter(destroyed__isnull=True, is_ready=True, datastore=self) return disks.exclude(filename__in=files) @method_cache(120) -- libgit2 0.26.0