def __init__(self, *args, **kwargs): nodelicense_choices = get_nodelicense_choices() defaultlicense_choices = get_defaultlicense_choices() brand_choices = get_brand_choices() super(RegistrationProviderForm, self).__init__(*args, **kwargs) self.fields['licenses_acceptable'].choices = nodelicense_choices self.fields['default_license'].choices = defaultlicense_choices self.fields['brand'].choices = brand_choices
def __init__(self, *args, **kwargs): toplevel_choices = get_toplevel_subjects() nodelicense_choices = get_nodelicense_choices() defaultlicense_choices = get_defaultlicense_choices() super(PreprintProviderForm, self).__init__(*args, **kwargs) self.fields['toplevel_subjects'].choices = toplevel_choices self.fields['licenses_acceptable'].choices = nodelicense_choices self.fields['default_license'].choices = defaultlicense_choices
def __init__(self, *args, **kwargs): nodelicense_choices = get_nodelicense_choices() defaultlicense_choices = get_defaultlicense_choices() brand_choices = get_brand_choices() super(RegistrationProviderForm, self).__init__(*args, **kwargs) self.fields['licenses_acceptable'].choices = nodelicense_choices self.fields['default_license'].choices = defaultlicense_choices self.fields['brand'].choices = brand_choices if kwargs.get('initial', None) and kwargs.get('initial').get('_id', None): provider = RegistrationProvider.load(kwargs.get('initial').get('_id')) self.fields['default_schema'].choices = provider.schemas.filter(visible=True, active=True).values_list('id', 'name') else: self.fields['default_schema'].choices = RegistrationSchema.objects.filter(active=True).values_list('id', 'name')
def __init__(self, *args, **kwargs): nodelicense_choices = get_nodelicense_choices() defaultlicense_choices = get_defaultlicense_choices() super(CollectionProviderForm, self).__init__(*args, **kwargs) self.fields['licenses_acceptable'].choices = nodelicense_choices self.fields['default_license'].choices = defaultlicense_choices
class CollectionProviderForm(forms.ModelForm): licenses_acceptable = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, required=False, choices=get_nodelicense_choices()) collected_type_choices = forms.CharField(widget=forms.HiddenInput, required=False) status_choices = forms.CharField(widget=forms.HiddenInput, required=False) class Meta: model = CollectionProvider exclude = ['primary_identifier_name', 'primary_collection', 'type', 'allow_commenting', 'advisory_board', 'example', 'domain', 'domain_redirect_enabled', 'reviews_comments_anonymous', 'reviews_comments_private', 'reviews_workflow'] def clean_description(self, *args, **kwargs): if not self.data.get('description'): return u'' return bleach.clean( self.data.get('description'), tags=['a', 'br', 'em', 'p', 'span', 'strong'], attributes=['class', 'style', 'href', 'title', 'target'], styles=['text-align', 'vertical-align'], strip=True ) def clean_footer_links(self, *args, **kwargs): if not self.data.get('footer_links'): return u'' return bleach.clean( self.data.get('footer_links'), tags=['a', 'br', 'div', 'em', 'p', 'span', 'strong'], attributes=['class', 'style', 'href', 'title', 'target'], styles=['text-align', 'vertical-align'], strip=True ) def clean_collected_type_choices(self): collection_provider = self.instance # if this is to modify an existing CollectionProvider if collection_provider.primary_collection: type_choices_old = set(collection_provider.primary_collection.collected_type_choices) type_choices_new = set(json.loads(self.data.get('collected_type_choices'))) type_choices_added = type_choices_new - type_choices_old type_choices_removed = type_choices_old - type_choices_new for item in type_choices_removed: if CollectedGuidMetadata.objects.filter(collection=collection_provider.primary_collection, collected_type=item).exists(): raise forms.ValidationError( 'Cannot delete "{}" because it is used as metadata on objects.'.format(item) ) else: # if this is creating a CollectionProvider type_choices_added = json.loads(self.data.get('collected_type_choices')) type_choices_removed = [] return { 'added': type_choices_added, 'removed': type_choices_removed, } def clean_status_choices(self): collection_provider = self.instance # if this is to modify an existing CollectionProvider if collection_provider.primary_collection: status_choices_old = set(collection_provider.primary_collection.status_choices) status_choices_new = set(json.loads(self.data.get('status_choices'))) status_choices_added = status_choices_new - status_choices_old status_choices_removed = status_choices_old - status_choices_new for item in status_choices_removed: if CollectedGuidMetadata.objects.filter(collection=collection_provider.primary_collection, status=item).exists(): raise forms.ValidationError( 'Cannot delete "{}" because it is used as metadata on objects.'.format(item) ) else: # if this is creating a CollectionProvider status_choices_added = json.loads(self.data.get('status_choices')) status_choices_removed = [] return { 'added': status_choices_added, 'removed': status_choices_removed, }