summaryrefslogtreecommitdiff
path: root/aggregator/forms.py
blob: 6ff81e4233f17dbed82f712a7ba7265ac40bcd1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from django import forms
from django.utils.translation import gettext_lazy as _

from .models import Feed


class FeedModelForm(forms.ModelForm):
    title = forms.CharField(
        max_length=250,
        widget=forms.TextInput(
            attrs={
                "class": "required",
                "placeholder": _("Title of the resource / blog"),
            }
        ),
    )
    feed_url = forms.URLField(
        label="Feed URL",
        widget=forms.TextInput(
            attrs={
                "class": "required",
                "placeholder": _(
                    "Link to the RSS/Atom feed. Please only use "
                    "Django-specific feeds."
                ),
            }
        ),
    )
    public_url = forms.URLField(
        label="Public URL",
        widget=forms.TextInput(
            attrs={
                "class": "required",
                "placeholder": _("Link to main page (i.e. blog homepage)"),
            }
        ),
    )

    class Meta:
        model = Feed
        exclude = ("feed_type", "owner", "approval_status")

    def clean_feed_url(self):
        feed_url = self.cleaned_data.get("feed_url")
        if feed_url and "//stackoverflow.com" in feed_url:
            raise forms.ValidationError(
                _(
                    "Stack Overflow questions tagged with 'django' will appear "
                    "here automatically."
                )
            )
        return feed_url