SciPost Code Repository

Skip to content
Snippets Groups Projects
forms.py 2.43 KiB
Newer Older
from django import forms
from django.utils import timezone
from .models import ProductionEvent
from .models import UnregisteredAuthor, Issue, Publication
from submissions.models import Submission
class ProductionEventForm(forms.ModelForm):
    class Meta:
        model = ProductionEvent
        exclude = ['stream', 'noted_on', 'noted_by']


class InitiatePublicationForm(forms.Form):
    accepted_submission = forms.ModelChoiceField(
        queryset=Submission.objects.filter(status='accepted'))
    original_submission_date = forms.DateField()
    acceptance_date = forms.DateField()
    to_be_issued_in = forms.ModelChoiceField(
        queryset=Issue.objects.filter(until_date__gt=timezone.now()))
    def __init__(self, *args, **kwargs):
        super(InitiatePublicationForm, self).__init__(*args, **kwargs)
        self.fields['original_submission_date'].widget.attrs.update(
            {'placeholder': 'YYYY-MM-DD'})
        self.fields['acceptance_date'].widget.attrs.update(
            {'placeholder': 'YYYY-MM-DD'})


class ValidatePublicationForm(forms.ModelForm):
    class Meta:
        model = Publication
        exclude = ['authors', 'authors_claims', 'authors_false_claims',
                   'metadata', 'metadata_xml',
                   'latest_activity', ]
class UnregisteredAuthorForm(forms.ModelForm):
    class Meta:
        model = UnregisteredAuthor
        fields = ['first_name', 'last_name']


class CitationListBibitemsForm(forms.Form):
    latex_bibitems = forms.CharField(widget=forms.Textarea())

    def __init__(self, *args, **kwargs):
        super(CitationListBibitemsForm, self).__init__(*args, **kwargs)
        self.fields['latex_bibitems'].widget.attrs.update(
            {'rows': 30, 'cols': 50, 'placeholder': 'Paste the .tex bibitems here'})


class FundingInfoForm(forms.Form):
    funding_statement = forms.CharField(widget=forms.Textarea())

    def __init__(self, *args, **kwargs):
        super(FundingInfoForm, self).__init__(*args, **kwargs)
        self.fields['funding_statement'].widget.attrs.update(
            {'rows': 10, 'cols': 50,
             'placeholder': 'Paste the funding info statement here'})


class CreateMetadataXMLForm(forms.Form):
    metadata_xml = forms.CharField(widget=forms.Textarea())

    def __init__(self, *args, **kwargs):
        super(CreateMetadataXMLForm, self).__init__(*args, **kwargs)
        self.fields['metadata_xml'].widget.attrs.update(
            {'rows': 50, 'cols': 50, })