Skip to content

Commit

Permalink
few improvements of admin interface
Browse files Browse the repository at this point in the history
  • Loading branch information
PetrDlouhy committed Apr 5, 2020
1 parent c534dcb commit d5c4e91
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 10 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
Changelog
=========

0.18.2 (2020-03-05)
------------------
* improvements to the admin interface

0.18.1 (2020-03-04)
------------------
* fix problem with saw-like charts on longer time periods
Expand Down
44 changes: 34 additions & 10 deletions admin_tools_stats/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#

from django.contrib import admin
from django.utils.html import format_html
from django.utils.translation import ugettext_lazy as _

from admin_tools_stats.app_label_renamer import AppLabelRenamer
Expand All @@ -18,32 +19,58 @@
AppLabelRenamer(native_app_label=u'admin_tools_stats', app_label=_('Admin Tools Stats')).main()


@admin.register(DashboardStatsCriteria)
class DashboardStatsCriteriaAdmin(admin.ModelAdmin):
"""
Allows the administrator to view and modify certain attributes
of a DashboardStats.
"""
list_display = ('id', 'criteria_name', 'created_date')
list_display = (
'id',
'criteria_name',
'criteria_name',
'dynamic_criteria_field_name',
'criteria_dynamic_mapping_preview',
)
list_filter = ['created_date']
readonly_fields = (
'created_date',
'updated_date',
)
search_fields = ('criteria_name',)
ordering = ('id', )
save_as = True


admin.site.register(DashboardStatsCriteria, DashboardStatsCriteriaAdmin)


class DashboardStatsCriteriaInline(admin.TabularInline):
model = CriteriaToStatsM2M
readonly_fields = ('criteria__dynamic_criteria_field_name',)
fields = ('criteria', 'order', 'prefix', 'criteria__dynamic_criteria_field_name', 'use_as')
readonly_fields = (
'criteria__dynamic_criteria_field_name',
'criteria__criteria_dynamic_mapping_preview',
)
fields = (
'criteria',
'order',
'prefix',
'use_as',
'criteria__dynamic_criteria_field_name',
'criteria__criteria_dynamic_mapping_preview',
)
autocomplete_fields = ('criteria',)
extra = 0

def criteria__dynamic_criteria_field_name(self, obj):
return obj.criteria.dynamic_criteria_field_name
return format_html(
"<strong>{}</strong>{}",
str(obj.prefix or ""),
str(obj.criteria.dynamic_criteria_field_name or ""),
)

def criteria__criteria_dynamic_mapping_preview(self, obj):
return obj.criteria.criteria_dynamic_mapping_preview()


@admin.register(DashboardStats)
class DashboardStatsAdmin(admin.ModelAdmin):
"""
Allows the administrator to view and modify certain attributes
Expand All @@ -56,6 +83,3 @@ class DashboardStatsAdmin(admin.ModelAdmin):
inlines = [DashboardStatsCriteriaInline]
ordering = ('id', )
save_as = True


admin.site.register(DashboardStats, DashboardStatsAdmin)
5 changes: 5 additions & 0 deletions admin_tools_stats/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,11 @@ class DashboardStatsCriteria(models.Model):
created_date = models.DateTimeField(auto_now_add=True, verbose_name=_('date'))
updated_date = models.DateTimeField(auto_now=True)

def criteria_dynamic_mapping_preview(self):
if self.criteria_dynamic_mapping:
return str(self.criteria_dynamic_mapping)[0:100] + ("..." if len(str(self.criteria_dynamic_mapping)) > 100 else "")
return ""

class Meta:
app_label = "admin_tools_stats"
db_table = u'dash_stats_criteria'
Expand Down

0 comments on commit d5c4e91

Please sign in to comment.