mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-18 10:29:23 +02:00
Added Senior Official foreign key in Portfolio, along with model field updates (for required fields), and admin.py updates
This commit is contained in:
parent
a7273c8d49
commit
625d0e6f1f
4 changed files with 41 additions and 6 deletions
|
@ -1016,6 +1016,29 @@ class ContactAdmin(ListHeaderAdmin, ImportExportModelAdmin):
|
|||
# Get the filtered values
|
||||
return super().changelist_view(request, extra_context=extra_context)
|
||||
|
||||
class SeniorOfficialAdmin(ListHeaderAdmin, ImportExportModelAdmin):
|
||||
"""Custom Senior Official Admin class."""
|
||||
|
||||
# NOTE: these are just placeholders. Not part of ACs (haven't been defined yet). Update in future tickets.
|
||||
search_fields = ["first_name", "last_name"]
|
||||
search_help_text = "Search by first name or last name."
|
||||
list_display = [
|
||||
"last_name",
|
||||
]
|
||||
|
||||
# this ordering effects the ordering of results
|
||||
# in autocomplete_fields for user
|
||||
ordering = ["first_name", "last_name"]
|
||||
|
||||
fieldsets = [
|
||||
(
|
||||
None,
|
||||
{"fields": ["first_name", "last_name", "title", "phone"]},
|
||||
)
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
||||
class WebsiteResource(resources.ModelResource):
|
||||
"""defines how each field in the referenced model should be mapped to the corresponding fields in the
|
||||
|
@ -1025,6 +1048,7 @@ class WebsiteResource(resources.ModelResource):
|
|||
model = models.Website
|
||||
|
||||
|
||||
|
||||
class WebsiteAdmin(ListHeaderAdmin, ImportExportModelAdmin):
|
||||
"""Custom website admin class."""
|
||||
|
||||
|
@ -2679,6 +2703,7 @@ admin.site.register(models.DomainRequest, DomainRequestAdmin)
|
|||
admin.site.register(models.TransitionDomain, TransitionDomainAdmin)
|
||||
admin.site.register(models.VerifiedByStaff, VerifiedByStaffAdmin)
|
||||
admin.site.register(models.Portfolio, PortfolioAdmin)
|
||||
admin.site.register(models.SeniorOfficial, SeniorOfficialAdmin)
|
||||
|
||||
# Register our custom waffle implementations
|
||||
admin.site.register(models.WaffleFlag, WaffleFlagAdmin)
|
||||
|
|
|
@ -17,6 +17,7 @@ from .transition_domain import TransitionDomain
|
|||
from .verified_by_staff import VerifiedByStaff
|
||||
from .waffle_flag import WaffleFlag
|
||||
from .portfolio import Portfolio
|
||||
from .senior_official import SeniorOfficial
|
||||
|
||||
|
||||
__all__ = [
|
||||
|
@ -38,6 +39,7 @@ __all__ = [
|
|||
"VerifiedByStaff",
|
||||
"WaffleFlag",
|
||||
"Portfolio",
|
||||
"SeniorOfficial",
|
||||
]
|
||||
|
||||
auditlog.register(Contact)
|
||||
|
|
|
@ -38,6 +38,14 @@ class Portfolio(TimeStampedModel):
|
|||
default=FederalAgency.get_non_federal_agency,
|
||||
)
|
||||
|
||||
senior_official = models.ForeignKey(
|
||||
"registrar.SeniorOfficial",
|
||||
on_delete=models.PROTECT,
|
||||
help_text="Associated senior official",
|
||||
unique=False,
|
||||
default=FederalAgency.get_non_federal_agency,
|
||||
)
|
||||
|
||||
organization_type = models.CharField(
|
||||
max_length=255,
|
||||
choices=OrganizationChoices.choices,
|
||||
|
|
|
@ -22,18 +22,18 @@ class SeniorOfficial(TimeStampedModel):
|
|||
|
||||
|
||||
first_name = models.CharField(
|
||||
null=True,
|
||||
blank=True,
|
||||
null=False,
|
||||
blank=False,
|
||||
verbose_name="first name",
|
||||
)
|
||||
last_name = models.CharField(
|
||||
null=True,
|
||||
blank=True,
|
||||
null=False,
|
||||
blank=False,
|
||||
verbose_name="last name",
|
||||
)
|
||||
title = models.CharField(
|
||||
null=True,
|
||||
blank=True,
|
||||
null=False,
|
||||
blank=False,
|
||||
verbose_name="title / role",
|
||||
)
|
||||
phone = PhoneNumberField(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue