From 0284c2e95637e15a0ea1f59b479de99b41b58eec Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Wed, 14 Jan 2026 10:42:24 -0300 Subject: [PATCH] add display_name property to Worker model for customizable display options --- cluster/models.py | 36 +++++++++++++++++++++++++++++ templates/cluster/workers_list.html | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/cluster/models.py b/cluster/models.py index bdfbc80..2150901 100644 --- a/cluster/models.py +++ b/cluster/models.py @@ -54,6 +54,42 @@ class Worker(models.Model): created = models.DateTimeField(auto_now_add=True) uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True) + def __str__(self): + return self.name + + @property + def display_name(self): + cluster_settings = ClusterSettings.objects.first() + if not cluster_settings: + return self.name + + mode = cluster_settings.worker_display + + hostname = self.hostname or '' + ip_address = self.ip_address or '' + city = self.city or '' + country = self.country or '' + + location_parts = [part for part in (city, country) if part] + location = ', '.join(location_parts) + + if mode == 'name': + return self.name + + if mode == 'server_address': + return hostname or ip_address or self.name + + if mode == 'location': + return location or self.name + + if mode == 'address_location': + address = hostname or ip_address + if address and location: + return f"{address} ({location})" + return address or location or self.name + + return self.name + @property def is_online(self): try: diff --git a/templates/cluster/workers_list.html b/templates/cluster/workers_list.html index b4622c9..7659cfb 100644 --- a/templates/cluster/workers_list.html +++ b/templates/cluster/workers_list.html @@ -18,7 +18,7 @@ {% for worker in workers %} - {{ worker.name }} + {{ worker }} {% if worker.error_status %}