first version
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from tracker.models import DoseLog, Medication, PulseReading, ScheduledDose
|
||||
|
||||
|
||||
class ScheduledDoseInline(admin.TabularInline):
|
||||
"""Edit a medication's daily doses right on the medication page."""
|
||||
|
||||
model = ScheduledDose
|
||||
extra = 1
|
||||
|
||||
|
||||
@admin.register(Medication)
|
||||
class MedicationAdmin(admin.ModelAdmin):
|
||||
list_display = ["name", "is_active", "schedule_summary"]
|
||||
list_filter = ["is_active"]
|
||||
search_fields = ["name"]
|
||||
inlines = [ScheduledDoseInline]
|
||||
|
||||
@admin.display(description="Schedule")
|
||||
def schedule_summary(self, obj: Medication) -> str:
|
||||
doses = obj.scheduled_doses.filter(is_active=True)
|
||||
if not doses:
|
||||
return "—"
|
||||
return ", ".join(
|
||||
f"{d.amount} {d.get_time_of_day_display().lower()}" for d in doses
|
||||
)
|
||||
|
||||
|
||||
@admin.register(ScheduledDose)
|
||||
class ScheduledDoseAdmin(admin.ModelAdmin):
|
||||
list_display = ["medication", "time_of_day", "amount", "is_active"]
|
||||
list_filter = ["is_active", "time_of_day", "medication"]
|
||||
|
||||
|
||||
@admin.register(DoseLog)
|
||||
class DoseLogAdmin(admin.ModelAdmin):
|
||||
"""The history. Day-to-day ticking off happens on the Today page."""
|
||||
|
||||
list_display = ["date", "scheduled_dose", "taken", "taken_at"]
|
||||
list_filter = ["taken", "date", "scheduled_dose__medication"]
|
||||
date_hierarchy = "date"
|
||||
|
||||
|
||||
@admin.register(PulseReading)
|
||||
class PulseReadingAdmin(admin.ModelAdmin):
|
||||
list_display = ["date", "bpm", "notes"]
|
||||
date_hierarchy = "date"
|
||||
Reference in New Issue
Block a user