Skip to content
Snippets Groups Projects
Commit a4429322 authored by Todd Dembrey's avatar Todd Dembrey
Browse files

Update the admin for the new form structure

parent 82d7583d
No related branches found
No related tags found
No related merge requests found
......@@ -64,22 +64,24 @@ class ApplicationFormAdmin(ModelAdmin):
list_filter = (FormsFundRoundListFilter,)
permission_helper_class = NoDeletePermission
related_models = ['fund', 'lab', 'round']
related_models = [
('applicationbaseform', 'application'),
('roundbaseform', 'round'),
('labbaseform', 'lab'),
]
def get_queryset(self, request):
qs = super().get_queryset(request)
related = [f'{field}form_set__{field}' for field in self.related_models]
related = [f'{form}_set__{field}' for form, field in self.related_models]
return qs.prefetch_related(*related)
def _list_related(self, obj, field):
return ', '.join(getattr(obj, f'{field}form_set').values_list(f'{field}__title', flat=True))
def _list_related(self, obj, form, field):
return ', '.join(getattr(obj, f'{form}_set').values_list(f'{field}__title', flat=True))
def used_by(self, obj):
rows = list()
for model in self.related_models:
related = self._list_related(obj, model)
if related:
rows.append(model.title() + ': ' + related)
for form, field in self.related_models:
related = self._list_related(obj, form, field)
return mark_safe('<br>'.join(rows))
......
......@@ -58,9 +58,9 @@ class FormsFundRoundListFilter(admin.SimpleListFilter):
def lookups(self, request, model_admin):
return (
('fund', _('Funds')),
('round', _('Rounds')),
('lab', _('Labs')),
('applicationbase', _('Funds & RFP')),
('roundbase', _('Rounds and Sealed Rounds')),
('labbase', _('Labs')),
)
def queryset(self, request, queryset):
......
......@@ -58,6 +58,10 @@ class RoundBaseForm(AbstractRelatedForm):
round = ParentalKey('RoundBase', related_name='forms')
class LabBaseForm(AbstractRelatedForm):
lab = ParentalKey('LabBase', related_name='forms')
class AbstractRelatedReviewForm(Orderable):
form = models.ForeignKey('review.ReviewForm', on_delete=models.PROTECT)
......@@ -86,9 +90,5 @@ class ApplicationBaseReviewForm(AbstractRelatedReviewForm):
application = ParentalKey('ApplicationBase', related_name='review_forms')
class LabBaseForm(AbstractRelatedForm):
lab = ParentalKey('LabBase', related_name='forms')
class LabBaseReviewForm(AbstractRelatedReviewForm):
lab = ParentalKey('LabBase', related_name='review_forms')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment