def __init__(self, **kwargs): defaults = dict( icon='barcode', validators=[isbn_syntax_validation], filters=[ strip_string, strip_prefixes("isbn:", "ISBN:"), ], description="e.g. 1413304540 or 1-4133-0454-0 or 978-1413304541", widget_classes="form-control" ) defaults.update(kwargs) super(ISBNField, self).__init__(**defaults)
def __init__(self, **kwargs): defaults = dict( icon='barcode', validators=[arxiv_syntax_validation], # Should have the same logic as stripSourceTags() # in literature_submission_form.js filters=[ strip_string, strip_prefixes("arxiv:", "arXiv:"), ], description="e.g. hep-th/9711200 or 1207.7235 or arXiv:1001.4538", widget_classes="form-control" ) defaults.update(kwargs) super(ArXivField, self).__init__(**defaults)
class ArticleForm(WebDepositForm): """Article form.""" # # Fields # doi = fields.TextField( label=_("Digital Object Identifier"), placeholder=_("e.g. 10.1234/foo.bar..."), widget_classes="form-control", icon='fa fa-barcode fa-fw', validators=[ doi_syntax_validator, ], filters=[ strip_string, strip_prefixes("doi:", "http://dx.doi.org/"), ], processors=[ missing_doi_warning, ], ) publication_date = fields.Date( label=_('Publication date'), icon='fa fa-calendar fa-fw', description=_('Required. Format: YYYY-MM-DD.'), default=date.today(), validators=[validators.DataRequired()], widget=date_widget, widget_classes='input-sm', export_key='imprint.date', ) title = fields.TextField( label=_('Title'), export_key='title.title', icon='fa fa-book fa-fw', widget_classes="form-control", validators=[validators.DataRequired()], ) authors = fields.DynamicFieldList( fields.FormField( AuthorInlineForm, widget=ExtendedListWidget( item_widget=ItemWidget(), html_tag='div', ), ), label=_('Authors'), add_label=_('Add another author'), icon='fa fa-user fa-fw', min_entries=1, widget_classes='', export_key='authors', validators=[ validators.DataRequired(), list_length( min_num=1, element_filter=filter_empty_helper(), ) ], ) abstract = fields.TextAreaField( label=_("Description"), description=_('Required.'), default='', icon='fa fa-pencil fa-fw', validators=[ validators.DataRequired(), ], widget=CKEditorWidget( toolbar=[ ['PasteText', 'PasteFromWord'], [ 'Bold', 'Italic', 'Strike', '-', 'Subscript', 'Superscript', ], ['NumberedList', 'BulletedList'], ['Undo', 'Redo', '-', 'Find', 'Replace', '-', 'RemoveFormat'], ['SpecialChar', 'ScientificChar'], ['Source'], ['Maximize'], ], disableNativeSpellChecker=False, extraPlugins='scientificchar', removePlugins='elementspath', ), filters=[ sanitize_html(), strip_string, ], export_key='abstract.summary', ) journal_title = fields.TextField( label=_("Journal title"), description=_("Optional."), validators=[ required_if( 'journal_volume', [ lambda x: bool(x.strip()), ], # non-empty message=_("Journal title is required if you specify either " "volume, issue or pages.")), required_if( 'journal_issue', [ lambda x: bool(x.strip()), ], # non-empty message=_("Journal title is required if you specify either " "volume, issue or pages.")), required_if( 'journal_pages', [ lambda x: bool(x.strip()), ], # non-empty message=_("Journal title is required if you specify either " "volume, issue or pages.")), ], export_key='journal_info.title', widget_classes='form-control', ) journal_volume = fields.TextField( label=_("Volume"), description=_("Optional."), export_key='journal_info.volume', widget_classes='form-control', ) journal_issue = fields.TextField( label=_("Issue"), description=_("Optional."), export_key='journal_info.issue', widget_classes='form-control', ) journal_pages = fields.TextField( label=_("Pages"), description=_("Optional."), export_key='journal_info.pagination', widget_classes='form-control', ) language = fields.SelectField( choices=LocalProxy( lambda: language_list_long(enabled_langs_only=False)), default='english', icon='fa fa-globe fa-fw', widget_classes='form-control', ) keywords = fields.DynamicFieldList( fields.TextField( widget_classes='form-control', autocomplete=keywords_autocomplete, widget=ColumnInput(class_="col-xs-10"), ), label=_('Keywords'), add_label=_('Add another keyword'), icon='fa fa-tags fa-fw', widget_classes='', min_entries=1, ) notes = fields.TextAreaField( label=_("Notes"), description=_('Optional.'), default='', validators=[validators.optional()], filters=[ strip_string, ], widget_classes='form-control', icon='fa fa-pencil fa-fw', export_key='comment', ) plupload_file = fields.FileUploadField(label="", widget=plupload_widget, export_key=False) # # Form configuration # _title = _('New article') _subtitle = _('Instructions: (i) Press "Save" to save your upload for ' 'editing later, as many times you like. (ii) Upload or ' 'remove extra files in the bottom of the form. (iii) When ' 'ready, press "Submit" to finalize your upload.') groups = [ ('Basic Information', [ 'doi', 'publication_date', 'title', 'authors', 'abstract', ], { 'indication': 'required', }), ('Journal', ['journal_title', 'journal_volume', 'journal_issue', 'journal_pages'], { 'indication': 'required' }), ('Additional information', ['language', 'keywords', 'notes'], { 'indication': 'optional', }) ] field_sizes = { 'plupload_file': 'col-md-12', }