mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-15 00:57:02 +02:00
48 lines
2.6 KiB
Markdown
48 lines
2.6 KiB
Markdown
# 21. Use Django Admin for Application Management
|
|
|
|
Date: 2023-06-22
|
|
|
|
## Status
|
|
|
|
Accepted
|
|
|
|
## Context
|
|
|
|
CISA needs a way to perform administrative actions to manage the new get.gov application as well as the .gov domain
|
|
application requests submitted. Analysts need to be able to view, review, and approve domain applications. Other
|
|
dashboard views, reports, searches (with filters and sorting) are also highly desired.
|
|
|
|
## Decision
|
|
|
|
Use Django's [Admin](https://docs.djangoproject.com/en/4.2/ref/contrib/admin/) site for administrative actions. Django
|
|
Admin gives administrators all the powers we anticipate needing (and more), with relatively little overhead on the
|
|
development team.
|
|
|
|
## Consequences
|
|
|
|
Django admin provides the team with a _huge_ head start on the creation of an administrator portal.
|
|
|
|
While Django Admin is highly customizable, design and development will be constrained by what is possible within Django
|
|
Admin.
|
|
|
|
We anticipate that this will, overall, speed up the time to MVP compared to building a completely custom solution.
|
|
|
|
Django Admin offers omnipotence for administrators out of the box, with direct access to database objects. This includes
|
|
the ability to put the application and its data in an erroneous state, based on otherwise normal business rules/logic.
|
|
|
|
In contrast to building an admin interface from scratch where development activities would predominantly
|
|
involve _building up_, leveraging Django Admin will require carefully _pairing back_ the functionalities available to
|
|
users such as analysts.
|
|
|
|
On accessibility: Django admin is almost fully accessible out-of-the-box, the exceptions being tables, checkboxes, and
|
|
color contrast. We have remedied the first 2 with template overrides and the 3rd with theming (see below).
|
|
|
|
On USWDS and theming: Django admin brings its own high level design framework. We have determined that theming on top of Django (scss)
|
|
is easy and worthwhile, while overwriting Django's templates with USWDS is hard and provides little return on investment
|
|
([research PR](https://github.com/cisagov/getgov/pull/831)).
|
|
|
|
While we anticipate that Django Admin will meet (or even exceed) the user needs that we are aware of today, it is still
|
|
an open question whether Django Admin will be the long-term administrator tool of choice. A pivot away from Django Admin
|
|
in the future would of course mean starting from scratch at a later date, and potentially juggling two separate admin
|
|
portals for a period of time while a custom solution is incrementally developed. This would result in an overall
|
|
_increase_ to the total amount of time invested in building an administrator portal.
|