__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)" __license__ = "AGPL v3" from django import forms from .models import Funder, Grant from ajax_select.fields import AutoCompleteSelectField from dal import autocomplete from scipost.forms import HttpRefererFormMixin from scipost.models import Contributor from organizations.models import Organization class FunderRegistrySearchForm(forms.Form): name = forms.CharField(max_length=128) class FunderForm(forms.ModelForm): class Meta: model = Funder fields = ['name', 'acronym', 'identifier'] class FunderSelectForm(forms.Form): funder = AutoCompleteSelectField('funder_lookup') class FunderOrganizationSelectForm(forms.ModelForm): organization = forms.ModelChoiceField( queryset=Organization.objects.all(), widget=autocomplete.ModelSelect2(url='/organizations/organization-autocomplete') ) class Meta: model = Funder fields = [] class GrantForm(HttpRefererFormMixin, forms.ModelForm): class Meta: model = Grant fields = ['funder', 'number', 'recipient_name', 'recipient', 'further_details'] def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['recipient'] = forms.ModelChoiceField( queryset=Contributor.objects.select_related('user').order_by('user__last_name'), required=False) class GrantSelectForm(forms.Form): grant = AutoCompleteSelectField('grant_lookup')