class Meta: model = Project fields = [ 'title', 'looking_for_members', 'aws_resources', 'description', 'bounty', 'technologies', 'team', 'image', 'inspiration', 'what_it_does', 'how_it_was_built', 'challenges', 'accomplishments', 'learned', 'whats_next' ] team = AutoCompleteSelectMultipleField( lookup_class=UserLookup, widget=AutoCompleteSelectMultipleWidget(lookup_class=UserLookup, limit=10), label="Select a team member") bounty = AutoCompleteSelectField(lookup_class=BountyLookup, widget=AutoCompleteSelectWidget( lookup_class=BountyLookup, limit=10), label="Select a team member") widgets = { 'team': AutoCompleteSelectMultipleWidget(lookup_class=UserLookup, limit=10), 'bounty': AutoCompleteSelectWidget(lookup_class=BountyLookup, limit=10) }
class SuggestionCreateForm(forms.ModelForm): county = AutoCompleteSelectField( lookup_class=CountyLookup, required=False, widget=AutoCompleteSelectWidget( lookup_class=CountyLookup, attrs={"class": "suggestions-hidden suggestions-county"}, ) ) city = AutoCompleteSelectField( lookup_class=CityLookup, required=False, widget=AutoCompleteSelectWidget( lookup_class=CityLookup, attrs={"class": "suggestions-hidden suggestions-city"}, ) ) class Meta: model = Suggestion class Media: js = ( "suggestions/js/form.js", )
class RequestForm(forms.ModelForm): county = AutoCompleteSelectField( lookup_class=CountyLookup, required=False, widget=AutoCompleteSelectWidget( lookup_class=CountyLookup, attrs={"class": "suggestions-hidden suggestions-county"}, )) city = AutoCompleteSelectField( lookup_class=CityLookup, required=False, widget=AutoCompleteSelectWidget( lookup_class=CityLookup, attrs={"class": "suggestions-hidden suggestions-city"}, )) class Meta: model = Request exclude = ( 'suggested_by', 'resources', 'rating', 'status', ) class Media: js = ("suggestions/js/form.js", )
class MapSubjectForm(forms.Form): subject = AutoCompleteSelectField( SubjectLookup, widget=AutoCompleteSelectWidget(SubjectLookup, allow_new=False), label='Source Subject', ) onto_subject = AutoCompleteSelectField( SubjectLookup, widget=AutoCompleteSelectWidget(SubjectLookup, allow_new=False), label='Target Subject', )
class ClaimAdminForm(forms.ModelForm): work = AutoCompleteSelectField( lookup_class=WorkLookup, widget=AutoCompleteSelectWidget(lookup_class=WorkLookup), required=True, ) user = AutoCompleteSelectField( lookup_class=OwnerLookup, widget=AutoCompleteSelectWidget(lookup_class=OwnerLookup), required=True, ) class Meta(object): model = models.Claim exclude = ()
class MARCRecordAdminForm(ModelForm): edition = AutoCompleteSelectField( EditionLookup, widget=AutoCompleteSelectWidget(EditionLookup), required=True, ) user = AutoCompleteSelectField( OwnerLookup, widget=AutoCompleteSelectWidget(OwnerLookup), required=True, ) class Meta(object): model = MARCRecord exclude = ()
class LibraryAdminForm(forms.ModelForm): user = AutoCompleteSelectField( UserLookup, widget=AutoCompleteSelectWidget(UserLookup), required=True, ) owner = AutoCompleteSelectField( UserLookup, widget=AutoCompleteSelectWidget(UserLookup), required=True, ) class Meta(object): model = models.Library widgets= {'group':forms.HiddenInput} exclude = ('group', )
class EbookFileAdminForm(forms.ModelForm): edition = AutoCompleteSelectField( lookup_class=EditionLookup, label='Edition', widget=AutoCompleteSelectWidget(lookup_class=EditionLookup, attrs={'size':60}), required=True, ) ebook = AutoCompleteSelectField( lookup_class=EbookLookup, label='Ebook', widget=AutoCompleteSelectWidget(lookup_class=EbookLookup, attrs={'size':60}), required=False, ) class Meta(object): model = models.EbookFile fields = ('file', 'format', 'edition', 'ebook', 'source')
class WorkRelationAdminForm(forms.ModelForm): to_work = AutoCompleteSelectField( lookup_class=WorkLookup, label='To Work', widget=AutoCompleteSelectWidget(lookup_class=WorkLookup), required=True, ) from_work = AutoCompleteSelectField( lookup_class=WorkLookup, label='From Work', widget=AutoCompleteSelectWidget(lookup_class=WorkLookup), required=True, ) class Meta(object): model = models.WorkRelation exclude = ()
class EditionAdminForm(forms.ModelForm): work = AutoCompleteSelectField( lookup_class=WorkLookup, label='Work', widget=AutoCompleteSelectWidget(lookup_class=WorkLookup), required=True, ) publisher_name = AutoCompleteSelectField( lookup_class=PublisherNameLookup, label='Publisher Name', widget=AutoCompleteSelectWidget(lookup_class=PublisherNameLookup), required=False, ) class Meta(object): model = models.Edition exclude = ()
class KeywordForm(forms.Form): keyword = forms.CharField( widget=AutoCompleteSelectWidget(lookup_class=KeywordLookup, attrs={ 'class': 'form-control col-xs-12', 'placeholder': 'Buscar' }))
class IdentifierAdminForm(forms.ModelForm): work = AutoCompleteSelectField( lookup_class=WorkLookup, label='Work', widget=AutoCompleteSelectWidget(lookup_class=WorkLookup, attrs={'size':60}), required=False, ) edition = AutoCompleteSelectField( lookup_class=EditionLookup, label='Edition', widget=AutoCompleteSelectWidget(lookup_class=EditionLookup, attrs={'size':60}), required=False, ) class Meta(object): model = models.Identifier exclude = ()
class Meta(object): model = OtherThing fields = ( 'name', 'thing', ) widgets = {'thing': AutoCompleteSelectWidget(lookup_class=ThingLookup)}
class Meta: fields = ['user', 'subscription_type'] model = Subscription widgets = { 'user': AutoCompleteSelectWidget( lookup_class=StaffUserLookup ) }
class RightsHolderAdminForm(forms.ModelForm): owner = AutoCompleteSelectField( lookup_class=OwnerLookup, widget=AutoCompleteSelectWidget(lookup_class=OwnerLookup), required=True, ) class Meta(object): model = models.RightsHolder exclude = ()
class EbookAdminForm(forms.ModelForm): edition = AutoCompleteSelectField( lookup_class=EditionLookup, label='Edition', widget=AutoCompleteSelectWidget(lookup_class=EditionLookup, attrs={'size':60}), required=True, ) class Meta(object): model = models.Ebook exclude = ('user', 'filesize', 'download_count')
class PublisherAdminForm(forms.ModelForm): name = AutoCompleteSelectField( lookup_class=PublisherNameLookup, label='Name', widget=AutoCompleteSelectWidget(lookup_class=PublisherNameLookup), required=True, ) class Meta(object): model = models.Publisher exclude = ()
class OtherWorkForm(WorkForm): other_work = AutoCompleteSelectField( WorkLookup, label='Other Work (title)', widget=AutoCompleteSelectWidget(WorkLookup), required=True, error_messages={'required': 'Missing work to merge with.'}, ) def __init__(self, *args, **kwargs): super(OtherWorkForm, self).__init__(*args, **kwargs) self.fields['other_work'].widget.update_query_parameters({'language':self.work.language})
class MARCUploadForm(forms.Form): edition = AutoCompleteSelectField( EditionLookup, label='Edition', widget=AutoCompleteSelectWidget(EditionLookup), required=True, error_messages={'required': 'Please specify an edition.'}, ) file = forms.FileField(label='Select a MARCXML file.') source = forms.ChoiceField(label='This file is ...', choices=[ ('loc', 'from Library of Congress (print)'), ('raw', 'prepared for Unglue.it'), ])
class TransferCreditForm(forms.Form): recipient = AutoCompleteSelectField( OwnerLookup, label='Recipient', widget=AutoCompleteSelectWidget(OwnerLookup), required=True, error_messages={'required': 'Please ensure the recipient is a valid Unglue.it account.'}, ) amount = forms.IntegerField( required=True, min_value=1, max_value=maximum, label="Transfer Amount", error_messages={ 'min_value': 'Transfer amount must be positive', 'max_value': 'You only have %(limit_value)s available for transfer' }, )
class RightsHolderForm(forms.ModelForm): owner = AutoCompleteSelectField( OwnerLookup, label='Owner', widget=AutoCompleteSelectWidget(OwnerLookup), required=True, error_messages={'required': 'Please ensure the owner is a valid Unglue.it account.'}, ) email = forms.EmailField( label=_("notification email address for rights holder"), max_length=100, error_messages={'required': 'Please enter an email address for the rights holder.'}, ) class Meta: model = RightsHolder exclude = () def clean_rights_holder_name(self): rights_holder_name = self.data["rights_holder_name"] try: RightsHolder.objects.get(rights_holder_name__iexact=rights_holder_name) except RightsHolder.DoesNotExist: return rights_holder_name raise forms.ValidationError(_("Another rights holder with that name already exists."))
class EditionForm(forms.ModelForm): ''' form for bibliographic data (both editions and works ''' add_author = forms.CharField(max_length=500, required=False) add_author_relation = forms.ChoiceField(choices=CREATOR_RELATIONS, initial=('aut', 'Author')) add_subject = AutoCompleteSelectField( SubjectLookup, widget=AutoCompleteSelectWidget(SubjectLookup, allow_new=True), label='Keyword', required=False, ) add_related_work = AutoCompleteSelectField( WorkLookup, widget=AutoCompleteSelectWidget(WorkLookup, allow_new=False, attrs={'size': 40}), label='Related Work', required=False, ) add_work_relation = forms.ChoiceField( choices=TEXT_RELATION_CHOICES, initial=('translation', 'translation'), required=False, ) bisac = forms.ModelChoiceField(bisac_headings, required=False) publisher_name = AutoCompleteSelectField( PublisherNameLookup, label='Publisher Name', widget=AutoCompleteSelectWidget(PublisherNameLookup, allow_new=True), required=False, allow_new=True, ) id_type = forms.ChoiceField(label='Identifier Type', choices=ID_CHOICES) id_value = forms.CharField( label='Identifier Value', widget=forms.TextInput(attrs={'size': 60}), required=False, ) language = forms.ChoiceField(choices=LANGUAGES) age_level = forms.ChoiceField(choices=AGE_LEVEL_CHOICES, required=False) description = forms.CharField(required=False, widget=CKEditorWidget()) coverfile = forms.ImageField(required=False) note = AutoCompleteSelectField( EditionNoteLookup, widget=AutoCompleteSelectWidget(EditionNoteLookup, allow_new=True), label='Edition Note', required=False, allow_new=True, ) def __init__(self, *args, **kwargs): super(EditionForm, self).__init__(*args, **kwargs) self.relators = [] if self.instance: for relator in self.instance.relators.all(): select = forms.Select(choices=CREATOR_RELATIONS).render( 'change_relator_%s' % relator.id, relator.relation.code) self.relators.append({'relator': relator, 'select': select}) def clean_doi(self): doi = self.cleaned_data["doi"] if doi and doi.startswith("http"): return doi.split('/', 3)[3] return doi def clean_title(self): return sanitize_line(self.cleaned_data["title"]) def clean_add_author(self): return sanitize_line(self.cleaned_data["add_author"]) def clean_description(self): return remove_badxml(self.cleaned_data["description"]) def clean(self): id_type = self.cleaned_data['id_type'] id_value = self.cleaned_data.get('id_value', '').strip() if id_value: identifier = Identifier.objects.filter(type=id_type, value=id_value) if identifier: err_msg = "{} is a duplicate for work #{}.".format( identifier[0], identifier[0].work.id) self.add_error('id_value', forms.ValidationError(err_msg)) try: self.cleaned_data['value'] = identifier_cleaner(id_type)( id_value) except forms.ValidationError, ve: self.add_error( 'id_value', forms.ValidationError('{}: {}'.format( ve.message, id_value))) return self.cleaned_data
class Meta(object): model = OtherThing widgets = {'thing': AutoCompleteSelectWidget(lookup_class=ThingLookup)}
class SubjectSelectForm(forms.Form): add_kw = AutoCompleteSelectField( SubjectLookup, widget=AutoCompleteSelectWidget(SubjectLookup, allow_new=False), label='Keyword', )