Working with the Django Admin

One of the great features of Django is the Admin application it provides for developers and administrators.

By default, you can access the Django admin by visiting the /admin/ url of your application.

Opal will automatically register Patients, Episodes, Lookup lists, and all Subrecords with the Django Admin for you.

Customising the Admin

If you need to customise the admin for a particular subrecord you will need to 'unregister' the admin class that Opal has registered it with.

# myapp/admin.py
from django.contrib import admin
from opal.admin import EpisodeSubrecordAdmin
from myapp import models

admin.site.unregister(models.Diagnosis)

class DiagnosisAdmin(EpisodeSubrecordAdmin):
  list_display = ['__unicode__', 'condition']

admin.site.register(models.Diagnosis, DiagnosisAdmin)

It is strongly suggested that any custom Admin implementation inherits from the Django Reversion ReversionAdmin base class. It is through this registering step that our automatic audit trail is enabled for a particular model.

The base subrecord admin classes opal.admin.EpisodeSubrecordAdmin and opal.admin.PatientSubrecordAdmin allow searching by basic patient demographics (name, identifier), and also inherits from ReversionAdmin.