Exemple #1
0
class PartyValidationForm(forms.Form):
    description = forms.URLField(required=False,
                                 validators=[validate_user_url])
    name = forms.CharField(required=False, max_length=100)
    organization = forms.CharField(max_length=200, required=False)
    email = forms.EmailField(required=False)
    address = forms.CharField(max_length=250, required=False)
    phone = forms.CharField(max_length=25, required=False)
    homepage = forms.URLField(required=False)

    def clean_description(self):
        user_absolute_url = self.cleaned_data['description']
        if user_absolute_url:
            url_parts = user_absolute_url.split('/')
            return '/user/{user_id}/'.format(user_id=url_parts[4])
        return user_absolute_url

    def clean(self):
        cleaned_data = super(PartyValidationForm, self).clean()
        name = cleaned_data.get('name', None)
        org = cleaned_data.get('organization', None)
        if not org:
            if not name or len(name.strip()) == 0:
                self._errors['name'] = [
                    "A value for name or organization is required but both "
                    "are missing"
                ]

        return self.cleaned_data
Exemple #2
0
class FundingAgencyValidationForm(forms.Form):
    """Validate FundingAgencyForm with agency_name, award_title, award_number and agency_url."""

    agency_name = forms.CharField(required=True)
    award_title = forms.CharField(required=False)
    award_number = forms.CharField(required=False)
    agency_url = forms.URLField(required=False)
Exemple #3
0
class RightsValidationForm(forms.Form):
    statement = forms.CharField(required=False)
    url = forms.URLField(required=False, max_length=500)

    def clean(self):
        cleaned_data = super(RightsValidationForm, self).clean()
        statement = cleaned_data.get('statement', None)
        url = cleaned_data.get('url', None)
        if not statement and not url:
            self._errors['statement'] = ["A value for statement is missing"]
            self._errors['url'] = ["A value for Url is missing"]

        return self.cleaned_data
Exemple #4
0
class RightsValidationForm(forms.Form):
    """Validate Rights form with statement and URL field."""

    statement = forms.CharField(required=False)
    url = forms.URLField(required=False, max_length=500)

    def clean(self):
        """Clean data and render proper error messages."""
        cleaned_data = super(RightsValidationForm, self).clean()
        statement = cleaned_data.get('statement', None)
        url = cleaned_data.get('url', None)
        if not statement and not url:
            self._errors['statement'] = ["A value for statement is missing"]
            self._errors['url'] = ["A value for Url is missing"]

        return self.cleaned_data
Exemple #5
0
class PartyValidationForm(forms.Form):
    """Validate form for Party models."""

    description = forms.CharField(required=False,
                                  validators=[validate_user_url])
    name = forms.CharField(required=False, max_length=100)
    organization = forms.CharField(max_length=200, required=False)
    email = forms.EmailField(required=False)
    address = forms.CharField(max_length=250, required=False)
    phone = forms.CharField(max_length=25, required=False)
    homepage = forms.URLField(required=False)
    identifiers = forms.CharField(required=False)

    def clean_description(self):
        """Create absolute URL for Party.description field."""
        user_absolute_url = self.cleaned_data['description']
        if user_absolute_url:
            url_parts = user_absolute_url.split('/')
            if len(url_parts) > 4:
                return '/user/{user_id}/'.format(user_id=url_parts[4])
        return user_absolute_url

    def clean_identifiers(self):
        data = self.cleaned_data['identifiers']
        return Party.validate_identifiers(data)

    def clean(self):
        """Validate that name and/or organization are present in form data."""
        cleaned_data = super(PartyValidationForm, self).clean()
        name = cleaned_data.get('name', None)
        org = cleaned_data.get('organization', None)
        if not org:
            if not name or len(name.strip()) == 0:
                self._errors['name'] = [
                    "A value for name or organization is required but both "
                    "are missing"
                ]

        return self.cleaned_data
Exemple #6
0
class FundingAgencyValidationForm(forms.Form):
    agency_name = forms.CharField(required=True)
    award_title = forms.CharField(required=False)
    award_number = forms.CharField(required=False)
    agency_url = forms.URLField(required=False)