Exemple #1
0
class PostForm(forms.ModelForm):
    def __init__(self, user, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields["published_date"].widget = DateInput()
        self.user = user

    slug = forms.SlugField(label="Permalink",
                           help_text="eg: 'why-i-like-bears'",
                           validators=[link_validator])

    published_date = forms.DateTimeField(
        label="Date",
        help_text="eg: '2020-05-31' (leave empty to post now)",
        required=False)

    content = forms.CharField(
        label="Content (markdown)",
        help_text=
        "<a href='https://simplemde.com/markdown-guide' target='_blank'>Markdown cheatsheet</a> | Add hashtags for categorization, eg: '#bears #blogs #bearblog'",
        widget=forms.Textarea(attrs={
            'rows': 40,
            'cols': 40
        }),
    )

    canonical_url = forms.CharField(
        label="Canonical url (optional)",
        help_text=
        "<a href='https://ahrefs.com/blog/canonical-tags/#what-is-a-canonical-tag' target='_blank'>Learn more</a>",
        required=False)

    show_in_feed = forms.BooleanField(
        help_text=
        f"Make post discoverable at <a href='http://{root()}/discover/' target='_blank'>{root()}/discover</a>",
        required=False,
        initial=True)

    def clean_slug(self):
        slug = self.cleaned_data['slug']

        blog = Blog.objects.get(user=self.user)
        matching_posts = Post.objects.filter(blog=blog, slug=slug)

        if self.instance:
            matching_posts = matching_posts.exclude(pk=self.instance.pk)
        if matching_posts.exists():
            raise ValidationError(f"Post link: '{slug}'  already exist.")
        else:
            return slug

    class Meta:
        model = Post
        fields = ('title', 'slug', 'canonical_url', 'published_date',
                  'content', 'is_page', 'publish', 'show_in_feed')
Exemple #2
0
class CategoryForm(forms.ModelForm):
    name = forms.CharField(max_length=128,
                           help_text="Please enter a category \
                           name.")
    views = forms.IntegerField(widget=forms.HiddenInput(), initial=0)
    likes = forms.IntegerField(widget=forms.HiddenInput(), initial=0)
    slug = forms.SlugField(widget=forms.HiddenInput(), required=False)

    class Meta:
        model = Category
        fields = ('name', )
Exemple #3
0
class PostForm(ModelForm):
	post_picture = forms.ImageField(label="Main Photo (Optional):", required=False,widget=forms.FileInput)
	title = forms.CharField(label="Title of Blog")
	short_description = forms.CharField(label="A Brief Description about the Blog e.g 'Boy Trauma'",widget=forms.Textarea)
	main_content = forms.CharField(label="Main Content of The Blog",widget=FroalaEditor)
	slug = forms.SlugField(label="Url of Blog e.g 'my-first-blog'")
	#date = forms.DateTimeField(required=False)

	class Meta:
		model = Post
		fields = ['title','short_description','main_content','post_picture','slug','category','tags']
Exemple #4
0
class TeacherCodeRegistrationPasswordResetForm(forms.Form):
    username = forms.SlugField(
        label=_('username'),
        max_length=30,
        validators=[validators.validate_slug, validate_username_unique])
    email = forms.EmailField(
        label=_('email'),
        validators=[validators.validate_email, validate_email_unique])
    password = forms.CharField(label=_('password'), widget=forms.PasswordInput)
    hidden_code = forms.CharField(label=_('hidden_code'),
                                  widget=forms.HiddenInput)
class SignUpForm(forms.Form):
    """
    Form class for signing up a new user and new account.
    """
    name = forms.CharField(max_length=50,
                           help_text=_("The name of the organization"))
    slug = forms.SlugField(
        max_length=50,
        help_text=_(
            "The name in all lowercase, suitable for URL identification"))
    email = forms.EmailField()
Exemple #6
0
class QuestionSetAdminForm(forms.ModelForm):
    key = forms.SlugField(required=True)

    class Meta:
        model = QuestionSet
        fields = '__all__'

    def clean(self):
        QuestionSetUniqueURIValidator(self.instance)(self.cleaned_data)
        QuestionSetQuestionSetValidator(self.instance)(self.cleaned_data)
        QuestionSetLockedValidator(self.instance)(self.cleaned_data)
Exemple #7
0
class TestForm(forms.Form):
    def __init__(self, *args, **kwargs):
        super(TestForm, self).__init__(*args, **kwargs)
        self.fields['slug'].required = False
        self.fields['hidden'].required = False

    first_name = forms.CharField()
    last_name = forms.CharField()
    email = forms.EmailField()
    slug = forms.SlugField()
    hidden = forms.CharField(widget=forms.HiddenInput())
Exemple #8
0
class PlaceSearchForm(forms.Form):
    name = forms.SlugField(allow_unicode=True, required=False)
    division = forms.IntegerField(required=False)

    def clean_division(self):
        data = self.cleaned_data['division']
        if data == -1:
            self.add_error('division',
                           'شهر وارد شده در پایگاه داده موجود نیست.')
            return None
        return data
Exemple #9
0
class OrganizationForm(PostalFormMixin, forms.ModelForm):

    submit_title = _('Update')
    slug = forms.SlugField(max_length=254, label=_("Display name"),
        error_messages={'invalid': _("Display name may only contain letters,"\
            " digits and -/_ characters. Spaces are not allowed.")})
    street_address = forms.CharField(label=_("Street address"), required=False)
    phone = forms.CharField(label=_("Phone number"), required=False)

    class Meta:
        model = Organization
        fields = ('slug', 'full_name', 'email', 'phone', 'country',
                  'region', 'locality', 'street_address', 'postal_code')
        widgets = {'country': forms.widgets.Select(choices=countries)}

    def __init__(self, *args, **kwargs):
        super(OrganizationForm, self).__init__(*args, **kwargs)
        if kwargs.get('instance', None) is None:
            self.submit_title = _('Create')
        if 'country' in self.fields:
            # Country field is optional. We won't add a State/Province
            # in case it is omitted.
            if not ('country' in self.initial
                and self.initial['country']):
                self.initial['country'] = Country("US", None)
            country = self.initial.get('country', None)
            if self.instance and self.instance.country:
                country = self.instance.country
            if not self.fields['country'].initial:
                self.fields['country'].initial = country.code
            self.add_postal_region(country=country)
        if 'is_bulk_buyer' in self.initial:
            initial = self.initial['is_bulk_buyer']
            if self.instance:
                initial = self.instance.is_bulk_buyer
            self.fields['is_bulk_buyer'] = forms.BooleanField(required=False,
                initial=initial,
                label=mark_safe(_("Enable GroupBuy (<a href=\""\
"https://djaodjin.com/docs/#group-billing\" target=\"_blank\">what is it?</a>)"
                )))
        if 'is_provider' in self.initial:
            initial = self.initial['is_provider']
            if self.instance:
                initial = self.instance.is_provider
            self.fields['is_provider'] = forms.BooleanField(required=False,
                label=_("Enable creation of subscription plans"),
                initial=initial)
        if 'extra' in self.initial:
            initial = self.initial['extra']
            if self.instance:
                initial = self.instance.extra
            self.fields['extra'] = forms.CharField(required=False,
                widget=forms.Textarea, label=mark_safe('Notes'),
                initial=initial)
Exemple #10
0
class RegisterForm(forms.Form):
    name = forms.CharField(label="Nome", max_length=255)
    last_name = forms.CharField(label="Sobrenome", max_length=255)
    user = forms.SlugField(label="Usuário", max_length=255)
    email = forms.EmailField(label="E-mail")
    password = forms.CharField(label="Senha",
                               widget=forms.PasswordInput(),
                               max_length=255)
    password2 = forms.CharField(label="Repita a senha",
                                widget=forms.PasswordInput(),
                                max_length=255)
Exemple #11
0
class UserProfileForm(forms.ModelForm):
    name = forms.CharField(max_length=UserProfile.max_length, required=False)
    website = forms.CharField(max_length=UserProfile.max_length,
                              required=False)
    picture = forms.ImageField(required=False)

    slug = forms.SlugField(widget=forms.HiddenInput(), required=False)

    class Meta:
        model = UserProfile
        fields = ('name', 'website', 'picture')
Exemple #12
0
class SettingsForm(forms.ModelForm):
    first_name = forms.CharField(max_length=20,\
                widget=forms.TextInput(attrs={'class': 'form-control'}),\
                label='Display Name', required=False)
    password = forms.SlugField(max_length=15,\
           widget=forms.PasswordInput(attrs={'class': 'form-control mr-sm-2'}),\
           label='Password:'******'first_name', 'password')
Exemple #13
0
class NewBuildingForm(forms.ModelForm):
    slug = forms.SlugField(widget=forms.TextInput(attrs={'readonly': True}),
                           required=False)

    class Meta:
        model = NewBuilding
        fields = '__all__'
        widgets = {
            'district':
            SearchableChoiceWidget(widget_title="Выберите район"),
            'street':
            SearchableChoiceWidget(widget_title='Выберите улицу'),
            'developer':
            SearchableChoiceWidget(widget_title='Выберите застройщика'),
            'parking':
            MultipleChoiceWidget(not_comleted_choice=(choices.NOT_COMPLETED)),
        }

    class Media:
        js = ('admin/js/api/micro-districts-filter.js',
              'admin/js/api/address-control.js')

    def clean(self):
        cleaned_data = super(NewBuildingForm, self).clean()
        street = cleaned_data.get("street")
        house_number = cleaned_data.get("house_number")
        house_letter = cleaned_data.get("house_letter")
        if street and house_number:
            if not house_letter:
                house_letter = ''
            form_address = "{} {}{}".format(street, house_number, house_letter)
            old_slug = cleaned_data.get('slug')
            new_slug = generate_slug(address=form_address)
            # print("SLUG: "+new_slug)
            if new_slug != old_slug:
                if new_slug == 'new':
                    raise ValidationError('Slug не может быть "new".')
                if new_slug == '':
                    raise ValidationError('Slug не может быть пустым.')
                try:
                    building = NewBuilding.objects.get(slug=new_slug)
                    # raise ValidationError(mark_safe(('''Такой новострой уже существует.'''
                    # <a href="{0}">Открыть</a>''').format(building.get_absolute_url())?
                    # ))
                    logger.error(
                        '[{}]Попытка создания новостроя {}. Такой новострой существует!'
                        .format(datetime.now().strftime("%d/%m/%Y %H:%M"),
                                new_slug))
                    raise ValidationError('Такой новострой уже существует.')
                except NewBuilding.DoesNotExist:
                    cleaned_data['slug'] = new_slug
            else:
                cleaned_data['slug'] = old_slug
        return cleaned_data
Exemple #14
0
    def __init__(self, *args, **kwargs):
        # CopyPage must be passed a 'page' kwarg indicating the page to be copied
        self.page = kwargs.pop('page')
        self.user = kwargs.pop('user', None)
        can_publish = kwargs.pop('can_publish')
        super().__init__(*args, **kwargs)
        self.fields['new_title'] = forms.CharField(initial=self.page.title,
                                                   label=_("New title"))
        allow_unicode = getattr(settings, 'WAGTAIL_ALLOW_UNICODE_SLUGS', True)
        self.fields['new_slug'] = forms.SlugField(initial=self.page.slug,
                                                  label=_("New slug"),
                                                  allow_unicode=allow_unicode)
        self.fields['new_parent_page'] = forms.ModelChoiceField(
            initial=self.page.get_parent(),
            queryset=Page.objects.all(),
            widget=widgets.AdminPageChooser(can_choose_root=True,
                                            user_perms='copy_to'),
            label=_("New parent page"),
            help_text=_(
                "This copy will be a child of this given parent page."))
        pages_to_copy = self.page.get_descendants(inclusive=True)
        subpage_count = pages_to_copy.count() - 1
        if subpage_count > 0:
            self.fields['copy_subpages'] = forms.BooleanField(
                required=False,
                initial=True,
                label=_("Copy subpages"),
                help_text=ngettext("This will copy %(count)s subpage.",
                                   "This will copy %(count)s subpages.",
                                   subpage_count) % {'count': subpage_count})

        if can_publish:
            pages_to_publish_count = pages_to_copy.live().count()
            if pages_to_publish_count > 0:
                # In the specific case that there are no subpages, customise the field label and help text
                if subpage_count == 0:
                    label = _("Publish copied page")
                    help_text = _(
                        "This page is live. Would you like to publish its copy as well?"
                    )
                else:
                    label = _("Publish copies")
                    help_text = ngettext(
                        "%(count)s of the pages being copied is live. Would you like to publish its copy?",
                        "%(count)s of the pages being copied are live. Would you like to publish their copies?",
                        pages_to_publish_count) % {
                            'count': pages_to_publish_count
                        }

                self.fields['publish_copies'] = forms.BooleanField(
                    required=False,
                    initial=True,
                    label=label,
                    help_text=help_text)
Exemple #15
0
class AttributeAdminForm(forms.ModelForm):
    key = forms.SlugField(required=True)

    class Meta:
        model = Attribute
        fields = '__all__'

    def clean(self):
        AttributeUniqueURIValidator(self.instance)(self.cleaned_data)
        AttributeParentValidator(self.instance)(self.cleaned_data)
        AttributeLockedValidator(self.instance)(self.cleaned_data)
Exemple #16
0
class ReviewSettingsForm(forms.ModelForm):
    name = forms.SlugField(
        widget=forms.TextInput(attrs={'class': 'form-control'}),
        label='URL',
        help_text=_('Only letters, numbers, _or - are allowed.'),
        max_length=255)

    class Meta:
        model = Review
        fields = [
            'name',
        ]
Exemple #17
0
class PostCreateForm(forms.Form):
    title = forms.CharField(label='Title', max_length=50)
    content = forms.CharField(label='Content',
                              required=False,
                              widget=forms.Textarea)
    community = forms.SlugField(label='Community', required=True)

    def clean_community(self):
        community = self.cleaned_data['community']
        if not Community.objects.filter(slug=community).exists():
            raise ValidationError("Community doesn't exist")
        return community
Exemple #18
0
class URLForm(forms.ModelForm):

    slug = forms.SlugField(required=False)

    class Meta:
        model = URL
        fields = ("slug", "url", "description")

    def clean(self):
        cleaned_data = self.cleaned_data
        if "slug" not in cleaned_data or not cleaned_data["slug"]:
            cleaned_data["slug"] = generate(size=settings.DEFAULT_SLUG_LENGTH)
Exemple #19
0
class BaseCMSPageForm(forms.Form):
    page = None

    title = forms.CharField(
        label=_(u'Title'), max_length=255,
        help_text=_(u"Provide a title for the new page."))
    slug = forms.SlugField(
        label=_(u'Slug'), max_length=255, required=False,
        help_text=_(u"Leave empty for automatic slug, or override as required."),
        widget=SlugWidget()
    )
    page_type = forms.ChoiceField(
        label=_(u'Page type'), required=False, widget=PageTypeSelect())
    content = forms.CharField(
        label=_(u'Content'), widget=text_widget, required=False,
        help_text=_(u"Optional. If supplied, will be automatically added "
                    u"within a new text plugin."))

    def __init__(self, instance=None, *args, **kwargs):
        # Expect instance argument here, as we have to accept some of the
        # ModelForm __init__() arguments here for the ModelFormMixin cbv
        self.instance = instance
        super(BaseCMSPageForm, self).__init__(*args, **kwargs)

        if self.page:
            site = self.page.site_id
        else:
            site = Site.objects.get_current()

        # Either populate, or remove the page_type field
        if 'page_type' in self.fields:
            root = Page.objects.filter(publisher_is_draft=True,
                                       reverse_id=PAGE_TYPES_ID,
                                       site=site).first()
            if root:
                page_types = root.get_descendants()
            else:
                page_types = Page.objects.none()

            if root and page_types:
                # Set the choicefield's choices to the various page_types
                language = get_language()
                type_ids = page_types.values_list('pk', flat=True)
                titles = Title.objects.filter(page__in=type_ids,
                                              language=language)
                choices = [('', '---------')]
                for title in titles:
                    choices.append((title.page_id, title.title))
                self.fields['page_type'].choices = choices
            else:
                # There are no page_types, so don't bother the user with an
                # empty choice field.
                del self.fields['page_type']
Exemple #20
0
class PostForm(forms.ModelForm):

    slug = forms.SlugField(max_length=50)

    class Meta:
        model = Post
        fields = ('title', 'slug', 'contents', 'category')

        widgets = {
            'contents': forms.Textarea(),
            # 'category':forms.ModelChoiceField(queryset=Category.objects.get())
        }
Exemple #21
0
class FilmForm(forms.ModelForm):
    filmID = forms.CharField(widget=forms.HiddenInput(), required=False)
    title = forms.CharField(max_length=128, help_text="Enter the film title.")
    director = forms.CharField(max_length=128, help_text="Directors Name.")
    releaseDate = forms.DateField(help_text="Release Date. [YEAR-MONTH-DAY]")
    blurb = forms.CharField(max_length=512, help_text="Film Blurb.")
    poster = forms.ImageField(help_text="Film Poster.", required=False)
    slug = forms.SlugField(widget=forms.HiddenInput(), required=False)

    class Meta:
        model = Film
        fields = ('title', 'director', 'releaseDate', 'blurb', 'poster')
Exemple #22
0
class BoardForm(forms.ModelForm):
    slug = forms.SlugField(max_length=100, help_text="Slug", required=True)
    title = forms.CharField(max_length=200, required=True)
    description = forms.Textarea()
    logo = forms.ImageField(required=False)

    class Meta:
        model = Board
        fields = ['slug', 'title', 'description','logo']

    def __str__(self):
        return self.title
Exemple #23
0
class SlugSearchForm(forms.Form):
    slug = forms.SlugField(label='Feature Slug')

    def clean_slug(self):
        slug = self.cleaned_data['slug']
        try:
            fp = FeaturePage.objects.get(feature__slug=slug)
        except FeaturePage.DoesNotExist:
            raise forms.ValidationError('No Feature with this slug.')
        else:
            self.feature_id = fp.feature_id
            return slug
Exemple #24
0
class CreateForm(forms.Form, SpamProtectionMixin):
    def __init__(self, request, urlpath_parent, *args, **kwargs):
        super(CreateForm, self).__init__(*args, **kwargs)
        self.request = request
        self.urlpath_parent = urlpath_parent

    title = forms.CharField(label=_(u'Title'), )
    slug = forms.SlugField(
        label=_(u'Slug'),
        help_text=
        _(u"This will be the address where your article can be found. Use only alphanumeric characters and - or _. Note that you cannot change the slug after creating the article."
          ),
        max_length=models.URLPath.SLUG_MAX_LENGTH)
    content = forms.CharField(
        label=_(u'Contents'), required=False,
        widget=getEditor().get_widget())  #@UndefinedVariable

    summary = forms.CharField(
        label=_(u'Summary'),
        help_text=_(u"Write a brief message for the article's history log."),
        required=False)

    def clean_slug(self):
        slug = self.cleaned_data['slug']
        if slug.startswith("_"):
            raise forms.ValidationError(
                _(u'A slug may not begin with an underscore.'))
        if slug == 'admin':
            raise forms.ValidationError(
                _(u"'admin' is not a permitted slug name."))

        if settings.URL_CASE_SENSITIVE:
            already_existing_slug = models.URLPath.objects.filter(
                slug=slug, parent=self.urlpath_parent)
        else:
            already_existing_slug = models.URLPath.objects.filter(
                slug__iexact=slug, parent=self.urlpath_parent)
        if already_existing_slug:
            already_urlpath = already_existing_slug[0]
            if already_urlpath.article and already_urlpath.article.current_revision.deleted:
                raise forms.ValidationError(
                    _(u'A deleted article with slug "%s" already exists.') %
                    already_urlpath.slug)
            else:
                raise forms.ValidationError(
                    _(u'A slug named "%s" already exists.') %
                    already_urlpath.slug)

        return slug

    def clean(self):
        self.check_spam()
        return self.cleaned_data
Exemple #25
0
class PostForm(forms.Form):
    STATUS_CHOICES = (
        ('draft', 'Draft'),
        ('published', 'Published'),
    )
    title = forms.CharField(label='Title', max_length=250)
    slug = forms.SlugField(label='Slug', max_length=250)
    content = forms.CharField(label='Content', widget=forms.Textarea)
    publish = forms.DateTimeField(label='Published Date',
                                  initial=datetime.now())
    status = forms.ChoiceField(widget=forms.RadioSelect,
                               choices=STATUS_CHOICES)
Exemple #26
0
class LoginForm(forms.Form):
    userdetail = forms.SlugField()
    password = forms.CharField(max_length=50, widget=forms.PasswordInput)

    userdetail.widget.attrs.update({
        'class': 'form-control',
        'placeholder': 'User Name/Email/Phone'
    })
    password.widget.attrs.update({
        'class': 'form-control',
        'placeholder': 'Password'
    })
Exemple #27
0
class CondominiumUpdateForm(forms.ModelForm):
    slug = forms.SlugField(label=_('slug'))

    class Meta:
        model = Condominium
        fields = [
            'name',
            'legal_address',
            'ideas_days',
            'votes',
            'problem_days',
        ]
Exemple #28
0
class TeamForm(ModelForm):
    name = forms.CharField(max_length=100, label="Team Name")
    perma = forms.SlugField(
        max_length=20,
        label="Team Perma-Link",
        help_text=
        "It's your team's perma-link adress. e.g. 'Example Company' should be 'example-company' or 'example_company' or 'examplecompany'"
    )

    class Meta:
        model = Startup
        fields = ['name', 'perma']
Exemple #29
0
class NewTeamForm(forms.ModelForm):
    name = forms.CharField(
        max_length=200,
        widget=forms.TextInput(attrs={'placeholder': _('e.g. My Team Name')}))
    slug = forms.SlugField(
        help_text=_(
            'A slug is a URL-safe word and must be unique across all teams.'),
        widget=forms.TextInput(attrs={'placeholder': _('e.g. my-team-name')}))

    class Meta:
        fields = ('name', 'slug')
        model = Team
Exemple #30
0
class SignInForm(forms.Form):
    username = forms.SlugField(
        label=labels['USERNAME'],
        max_length=MAX_NAME_LENGTH_SHORT,
    )
    password = forms.CharField(
        label=labels['PASSWORD'],
        widget=forms.PasswordInput,
        strip=False,
        max_length=MAX_MESSAGE_LENGTH_SHORT,
        min_length=1,
    )