Skip to content

Commit 223ff23

Browse files
authored
Format VideoAsset Duration to HH:MM:SS and File Size to MB in Django Admin (#56)
1 parent 2411d83 commit 223ff23

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

events/admin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
class VideoAssetAdmin(admin.ModelAdmin):
1111
""" Custom Admin for VideoAsset model """
1212
form = VideoAssetForm
13-
list_display = ('title', 'event', 'status', 'duration', 'file_size', 'created')
13+
list_display = ('title', 'event', 'status', 'duration_hh_mm_ss', 'file_size_mb', 'created')
1414
search_fields = ('title',)
1515
autocomplete_fields = ('event',)
1616
formfield_overrides = {

events/models.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,32 @@ def save(self, *args, **kwargs):
137137

138138
super().save(*args, **kwargs)
139139

140+
def file_size_mb(self):
141+
"""
142+
Returns the file size in MB, formatted to two decimal places.
143+
"""
144+
if self.file_size is None:
145+
return ""
146+
return f"{self.file_size / (1024 * 1024):.2f}"
147+
148+
file_size_mb.short_description = "File Size (MB)"
149+
150+
def duration_hh_mm_ss(self):
151+
"""
152+
Converts duration in seconds to hh:mm:ss format.
153+
"""
154+
if self.duration is None:
155+
return ""
156+
157+
seconds = int(self.duration)
158+
hours = seconds // 3600
159+
minutes = (seconds % 3600) // 60
160+
remaining_seconds = seconds % 60
161+
162+
return f"{hours:02d}:{minutes:02d}:{remaining_seconds:02d}"
163+
164+
duration_hh_mm_ss.short_description = "Duration"
165+
140166
def __str__(self):
141167
return self.title
142168

0 commit comments

Comments
 (0)