-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #743 from cisagov/730-adr-django-admin
ADR decision to use Django Admin
- Loading branch information
Showing
1 changed file
with
41 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# 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. | ||
|
||
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. |