diff --git a/opentech/apply/funds/admin.py b/opentech/apply/funds/admin.py index d49ce33d61a047f030ce77dbf26e4fcbba52496c..591bfcefe5a942bbb72c9ba8d1deec06808aa315 100644 --- a/opentech/apply/funds/admin.py +++ b/opentech/apply/funds/admin.py @@ -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)) diff --git a/opentech/apply/funds/admin_helpers.py b/opentech/apply/funds/admin_helpers.py index f0a0002eaa17595bae42bf189b791b6d57dfc760..75ce474fbf28c8f37df7de768e2654e78619aee8 100644 --- a/opentech/apply/funds/admin_helpers.py +++ b/opentech/apply/funds/admin_helpers.py @@ -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): diff --git a/opentech/apply/funds/models/forms.py b/opentech/apply/funds/models/forms.py index 1c126ff67e91ce74979c951b884b92ad4923e5a9..41f6fb32b7b3b6fda87ff360e036401ace77eebd 100644 --- a/opentech/apply/funds/models/forms.py +++ b/opentech/apply/funds/models/forms.py @@ -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')