Skip to content

Commit

Permalink
Merge pull request #2337 from szok/location-in-list-display
Browse files Browse the repository at this point in the history
Add location column to data center asset list
  • Loading branch information
szok committed Apr 4, 2016
2 parents cea9eae + 82dad29 commit 8b928ad
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 4 deletions.
33 changes: 30 additions & 3 deletions src/ralph/data_center/admin.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-

from django.conf import settings
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _

from ralph.admin import RalphAdmin, RalphTabularInline, register
Expand Down Expand Up @@ -147,7 +148,7 @@ class DataCenterAssetAdmin(
resource_class = resources.DataCenterAssetResource
list_display = [
'status', 'barcode', 'model', 'sn', 'hostname', 'invoice_date',
'invoice_no',
'localization',
]
multiadd_summary_fields = list_display + ['rack']
one_of_mulitvalue_required = ['sn', 'barcode']
Expand All @@ -160,14 +161,17 @@ class DataCenterAssetAdmin(
list_filter = [
'status', 'barcode', 'sn', 'hostname', 'invoice_no', 'invoice_date',
'order_no', 'model__name', 'service_env', 'depreciation_end_date',
'force_depreciation', 'remarks', 'budget_info', 'rack__name',
'force_depreciation', 'remarks', 'budget_info', 'rack',
'rack__server_room', 'rack__server_room__data_center',
'property_of', LiquidatedStatusFilter,
('management_ip', TextListFilter),
'management_hostname', ('tags', TagsListFilter)
]
date_hierarchy = 'created'
list_select_related = ['model', 'model__manufacturer', 'model__category']
list_select_related = [
'model', 'model__manufacturer', 'model__category', 'rack',
'rack__server_room', 'rack__server_room__data_center'
]
raw_id_fields = ['model', 'rack', 'service_env', 'parent', 'budget_info']
raw_id_override_parent = {'parent': DataCenterAsset}
_invoice_report_name = 'invoice-data-center-asset'
Expand Down Expand Up @@ -214,6 +218,29 @@ def get_multiadd_fields(self, obj=None):
settings, 'MULTIADD_DATA_CENTER_ASSET_FIELDS', None
) or multiadd_fields

def localization(self, obj):
base_url = reverse('admin:data_center_datacenterasset_changelist')
return (
'<a href="{}">{}</a>/<a href="{}">{}</a>/<a href="{}">{}</a>'
'/<strong>{}</strong>'
).format(
'{}?rack__server_room__data_center={}'.format(
base_url, obj.rack.server_room.data_center_id
),
obj.rack.server_room.data_center.name,
'{}?rack__server_room={}'.format(
base_url, obj.rack.server_room_id
),
obj.rack.server_room.name,
'{}?rack={}'.format(
base_url, obj.rack_id
),
obj.rack.name,
obj.position or ''
) if obj.rack else '&mdash;'
localization.short_description = _('Localization')
localization.allow_tags = True


@register(ServerRoom)
class ServerRoomAdmin(RalphAdmin):
Expand Down
2 changes: 1 addition & 1 deletion src/ralph/data_center/models/physical.py
Expand Up @@ -89,7 +89,7 @@ def handle_missing(slot_no):
return items


class DataCenter(NamedMixin, models.Model):
class DataCenter(AdminAbsoluteUrlMixin, NamedMixin, models.Model):
_allow_in_dashboard = True

visualization_cols_num = models.PositiveIntegerField(
Expand Down

0 comments on commit 8b928ad

Please sign in to comment.