From a44293220652f833ac06eb3832c800cfbe8c3d2a Mon Sep 17 00:00:00 2001 From: Todd Dembrey <todd.dembrey@torchbox.com> Date: Fri, 3 Aug 2018 09:36:54 +0100 Subject: [PATCH] Update the admin for the new form structure --- opentech/apply/funds/admin.py | 18 ++++++++++-------- opentech/apply/funds/admin_helpers.py | 6 +++--- opentech/apply/funds/models/forms.py | 8 ++++---- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/opentech/apply/funds/admin.py b/opentech/apply/funds/admin.py index d49ce33d6..591bfcefe 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 f0a0002ea..75ce474fb 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 1c126ff67..41f6fb32b 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') -- GitLab