literature.forms module#

class literature.forms.BibFileUploadForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]#

Bases: CitationJSFormMixin, ModelForm

A form that accepts a bibliography file, parses and previews it using citation.js, then submits CSL-JSON data to the server for validation and saving via a hidden text field.

class Meta[source]#

Bases: object

fields = ['file', 'CSL', 'preview']#
model#

alias of Literature

base_fields = {'CSL': <django.forms.fields.JSONField object>, 'file': <django.forms.fields.FileField object>, 'preview': <django.forms.fields.CharField object>}#
declared_fields = {'CSL': <django.forms.fields.JSONField object>, 'file': <django.forms.fields.FileField object>, 'preview': <django.forms.fields.CharField object>}#
property media#

Return all media required to render the widgets on this form.

class literature.forms.CitationJSFormMixin(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None)[source]#

Bases: Form

A mixin that adds a hidden text field for the CSL JSON data and a preview field that renders the formatted content.

class Media[source]#

Bases: object

js = ('vendor/js/citation.js', 'literature/js/main.js')#
base_fields = {'CSL': <django.forms.fields.JSONField object>, 'preview': <django.forms.fields.CharField object>}#
declared_fields = {'CSL': <django.forms.fields.JSONField object>, 'preview': <django.forms.fields.CharField object>}#
property media#

Return all media required to render the widgets on this form.

class literature.forms.LiteratureExtra(**kwargs)[source]#

Bases: FieldsetMixin, ModelForm

class Meta[source]#

Bases: object

fields = ['pdf']#
model#

alias of Literature

widgets = {'abstract': <formset.richtext.widgets.RichTextarea object>, 'authors': <class 'formset.widgets.DualSortableSelector'>, 'pdf': <literature.forms.PDFFileInput object>, 'published': <class 'formset.widgets.DateInput'>}#
base_fields = {'pdf': <django.forms.fields.FileField object>}#
declared_fields = {}#
help_text = 'These fields are not required but are highly recommended.'#
legend = 'Extra Content'#
property media#

Return all media required to render the widgets on this form.

class literature.forms.LiteratureForm(data=None, initial=None, renderer=None, prefix=None, min_siblings=None, max_siblings=None, extra_siblings=None, is_sortable=None, legend=None, help_text=None)[source]#

Bases: FormCollection

declared_holders = {'extra': <LiteratureExtra bound=False, valid=Unknown, fields=(pdf)>, 'required': <LiteratureRequired bound=False, valid=Unknown, fields=(title;published;container_title)>}#
default_renderer = <formset.renderers.bootstrap.FormRenderer object>#
property media#
class literature.forms.LiteratureFormWithSupps(data=None, initial=None, renderer=None, prefix=None, min_siblings=None, max_siblings=None, extra_siblings=None, is_sortable=None, legend=None, help_text=None)[source]#

Bases: FormCollection

declared_holders = {'extra': <LiteratureExtra bound=False, valid=Unknown, fields=(pdf)>, 'required': <LiteratureRequired bound=False, valid=Unknown, fields=(title;published;container_title)>, 'supps': <literature.forms.SuppMatCollection object>}#
default_renderer = <formset.renderers.bootstrap.FormRenderer object>#
help_text = "I'm a form designed to edit a literature object"#
legend = "I'm the literature form"#
property media#
class literature.forms.LiteratureRequired(**kwargs)[source]#

Bases: FieldsetMixin, ModelForm

class Meta[source]#

Bases: object

fields = ['title', 'published', 'container_title']#
model#

alias of Literature

widgets = {'abstract': <formset.richtext.widgets.RichTextarea object>, 'authors': <class 'formset.widgets.DualSortableSelector'>, 'published': <class 'formset.widgets.DateInput'>}#
base_fields = {'container_title': <django.forms.fields.CharField object>, 'published': <django.forms.fields.DateField object>, 'title': <django.forms.fields.CharField object>}#
declared_fields = {}#
legend = 'Required Content'#
property media#

Return all media required to render the widgets on this form.

class literature.forms.OnlineSearchForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]#

Bases: CitationJSFormMixin, ModelForm

A form that renders a search bar for DOI, PMCID, PMID, Wikidata and previews the formatted content below. Data is appended to a hidden text field when submitting.

class Meta[source]#

Bases: object

fields = ['identifier', 'CSL', 'preview']#
model#

alias of Literature

base_fields = {'CSL': <django.forms.fields.JSONField object>, 'identifier': <django.forms.fields.CharField object>, 'preview': <django.forms.fields.CharField object>}#
declared_fields = {'CSL': <django.forms.fields.JSONField object>, 'identifier': <django.forms.fields.CharField object>, 'preview': <django.forms.fields.CharField object>}#
property media#

Return all media required to render the widgets on this form.

class literature.forms.PDFFileInput(attrs=None)[source]#

Bases: UploadedFileInput

property media#
template_name = 'literature/widgets/pdf_viewer.html'#
class literature.forms.SuppMatCollection(data=None, initial=None, renderer=None, prefix=None, min_siblings=None, max_siblings=None, extra_siblings=None, is_sortable=None, legend=None, help_text=None)[source]#

Bases: FormCollection

construct_instance(literature, data)[source]#

Construct the main object and its related objects from the nested dictionary of cleaned data. Forms which do not correspond to the model given by the main object, are responsible themselves to store the corresponding data inside their related models.

declared_holders = {'supplementary_material': <SuppMatForm bound=False, valid=Unknown, fields=(file)>}#
default_renderer = <formset.renderers.bootstrap.FormRenderer object>#
extra_siblings = 1#
legend = 'Supplementary Material'#
property media#
min_siblings = 0#
model_to_dict(literature)[source]#

Create initial data from a main object. This then is used to fill the initial data from all its child collections and forms. Forms which do not correspond to the model given by the main object, are themselves responsible to access the proper referenced models.

class literature.forms.SuppMatForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]#

Bases: ModelForm

class Meta[source]#

Bases: object

fields = ['file']#
model#

alias of SupplementaryMaterial

widgets = {'file': <formset.widgets.UploadedFileInput object>}#
base_fields = {'file': <django.forms.fields.FileField object>}#
declared_fields = {}#
property media#

Return all media required to render the widgets on this form.