SciPost Code Repository

Skip to content
Snippets Groups Projects
forms.py 1.48 KiB
Newer Older
__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
from django import forms

from .models import Funder, Grant

from ajax_select.fields import AutoCompleteSelectField
from dal import autocomplete
Jorran de Wit's avatar
Jorran de Wit committed
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
Jorran de Wit's avatar
Jorran de Wit committed
        fields = ['name', 'acronym', 'identifier']
class FunderSelectForm(forms.Form):
    funder = AutoCompleteSelectField('funder_lookup')
class FunderOrganizationSelectForm(forms.ModelForm):
Jean-Sébastien Caux's avatar
Jean-Sébastien Caux committed
    organization = forms.ModelChoiceField(
        queryset=Organization.objects.all(),
        widget=autocomplete.ModelSelect2(url='/organizations/organization-autocomplete')
    )

    class Meta:
        model = Funder
        fields = []


Jorran de Wit's avatar
Jorran de Wit committed
class GrantForm(HttpRefererFormMixin, forms.ModelForm):
        fields = ['funder', 'number', 'recipient_name', 'recipient', 'further_details']
    def __init__(self, *args, **kwargs):
Jorran de Wit's avatar
Jorran de Wit committed
        super().__init__(*args, **kwargs)
        self.fields['recipient'] = forms.ModelChoiceField(
Jorran de Wit's avatar
Jorran de Wit committed
            queryset=Contributor.objects.select_related('user').order_by('user__last_name'),
            required=False)

class GrantSelectForm(forms.Form):
    grant = AutoCompleteSelectField('grant_lookup')