SciPost Code Repository

Skip to content
Snippets Groups Projects
forms.py 4.58 KiB
Newer Older
from django import forms
from django.utils import timezone
from .models import SCIPOST_JOURNALS
from .models import Issue, Publication
from submissions.models import Submission
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Div, Field, HTML, Submit

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 InitiatePublicationForm(forms.ModelForm):
#     class Meta:
#         model = Publication
#         fields = ['accepted_submission', 
#                   #'in_journal', 'volume', 'issue', 
#                   'in_issue', 'paper_nr',
#                   'pdf_file', 
#                   'submission_date', 'acceptance_date',
#         ]
#     # accepted_submission = forms.ModelChoiceField(
#     #     queryset=Submission.objects.filter(status='accepted'))
#     # in_journal = forms.ChoiceField(choices=SCIPOST_JOURNALS,)
#     # volume = forms.IntegerField()
#     # issue = forms.IntegerField()

#     def __init__(self, *args, **kwargs):
#         super(InitiatePublicationForm, self).__init__(*args, **kwargs)
#         self.fields['accepted_submission'] = forms.ModelChoiceField(
#             queryset=Submission.objects.filter(status='accepted'))
#         self.fields['accepted_submission'].label=''
#         #self.fields['in_journal'].label=''
#         #self.fields['journal'].label=''
#         #self.fields['volume'].label=''
#         #self.fields['issue'].label=''
#         self.fields['in_issue'].label=''
#         self.fields['paper_nr'].label=''
#         self.fields['acceptance_date'].label=''
#         self.fields['submission_date'].label=''
#         self.helper = FormHelper()
#         self.helper.layout = Layout(
#             Div(HTML('<h3>Which Submission is ready for publishing?</h3>'),
#                 Field('accepted_submission')),
#             # Div(HTML('<h3>In which Journal?</h3>'),
#             #     #Field('in_journal')),
#             #     Field('journal')),
#             # Div(HTML('<h3>Which Volume?</h3>'),
#             #     Field('volume')),
#             # Div(HTML('<h3>Which issue?</h3>'),
#             #     Field('issue')),
#              Div(HTML('<h3>Which Journal/Volume/Issue?</h3>'),
#                  Field('in_issue')),
#             Div(HTML('<h3>Which paper number?</h3>'),
#                 Field('paper_nr')),
#             Div(HTML('<h3>pdf file (post-proof stage):</h3>'),
#                 Field('pdf_file')),
#             Div(HTML('<h3>When was the paper originally submitted?</h3>'),
#                 Field('submission_date')),
#             Div(HTML('<h3>When was the paper accepted?</h3>'),
#                 Field('acceptance_date')),
#             Submit('submit', 'Initiate publication'),
#         )


class ValidatePublicationForm(forms.ModelForm):
    class Meta:
        model = Publication
        exclude = ['authors', 'authors_claims', 'authors_false_claims',
                   'metadata', 'metadata_xml',
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, })