Пример #1
0
class MoveForm(forms.Form):
    move_page = forms.CharField(
        widget=AdminPageChooser(
            choose_one_text=_("Choose a root page"),
            choose_another_text=_("Choose a different root page"),
        )
    )
Пример #2
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.fields["root_page"].widget = AdminPageChooser(
         choose_one_text=_("Choose a root page"),
         choose_another_text=_("Choose a different root page"),
         show_clear_link=False,
     )
Пример #3
0
class ImportFromFileForm(forms.Form):
    file = forms.FileField(label=_("File to import"))
    parent_page = forms.ModelChoiceField(
        queryset=Page.objects.all(),
        widget=AdminPageChooser(**admin_page_params),
        label=_("Destination parent page"),
        help_text=_("Imported pages will be created as children of this page.")
    )
Пример #4
0
class ImportFromFileForm(forms.Form):
    file = forms.FileField(label=_("File to import"))
    parent_page = forms.ModelChoiceField(
        queryset=Page.objects.all(),
        widget=AdminPageChooser(can_choose_root=True, user_perms='copy_to'),
        label=_("Destination parent page"),
        help_text=_("Imported pages will be created as children of this page.")
    )
Пример #5
0
class ImportFromAPIForm(forms.Form):
    source_page_id = forms.IntegerField()
    source_site_base_url = forms.URLField()
    parent_page = forms.ModelChoiceField(
        queryset=Page.objects.all(),
        widget=AdminPageChooser(**admin_page_params),
        label=_("Destination parent page"),
        help_text=_("Imported pages will be created as children of this page.")
    )
Пример #6
0
class MyForm(forms.Form):
    title = forms.CharField()
    description = forms.CharField(widget=forms.Textarea)
    office = forms.ChoiceField(choices=[('charlbury', "Charlbury"),
                                        ('bristol', "Bristol")],
                               widget=forms.RadioSelect)
    profile_page = forms.ModelChoiceField(
        queryset=Page.objects.all(),
        widget=AdminPageChooser(can_choose_root=False))
Пример #7
0
    def get_form_options(self):
        opts = super().get_form_options()

        if self.page_type or self.can_choose_root:
            widgets = opts.setdefault("widgets", {})
            widgets[self.field_name] = AdminPageChooser(
                target_models=self.page_type,
                can_choose_root=self.can_choose_root)

        return opts
Пример #8
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.fields['page_chooser'].widget = AdminPageChooser()
     self.fields['image_chooser'].widget = AdminImageChooser()
     self.fields['document_chooser'].widget = AdminDocumentChooser()
     self.fields['snippet_chooser'].widget = AdminSnippetChooser(Page)
     self.fields['date'].widget = AdminDateInput()
     self.fields['time'].widget = AdminTimeInput()
     self.fields['datetime'].widget = AdminDateTimeInput()
     self.fields['auto_height_text'].widget = AdminAutoHeightTextInput()
     self.fields['default_rich_text'].widget = get_rich_text_editor_widget('default')
class ImportPage(forms.Form):
    """
    This form renders the import fields for zip archives.
    """

    file = forms.FileField(label=_("Zip Archive to Import"))

    parent_page = forms.ModelChoiceField(
        queryset=Page.objects.all(),
        widget=AdminPageChooser(**admin_page_params.copy()),
        label=_("Destination Parent Page"),
        help_text=_(
            "Imported pages will be created as children of this page."))
Пример #10
0
class PagePermissionsForm(forms.Form):
    """
    Note 'Permissions' (plural). A single instance of this form defines the permissions
    that are assigned to an entity (i.e. group or user) for a specific page.
    """
    page = forms.ModelChoiceField(queryset=Page.objects.all(),
                                  widget=AdminPageChooser(
                                      show_edit_link=False,
                                      can_choose_root=True))
    permission_types = forms.MultipleChoiceField(
        choices=PAGE_PERMISSION_TYPE_CHOICES,
        required=False,
        widget=forms.CheckboxSelectMultiple)
Пример #11
0
    def widget(self):
        from django.utils.translation import ugettext_lazy as _
        from wagtail.admin.widgets import AdminPageChooser

        # Support importing from dotted string in-order to prevent circular-import for certain models(Say Article)
        self.for_models = [
            import_string(model) if isinstance(model, str) else model
            for model in self.for_models
        ]
        if any(not issubclass(each, Page) for each in self.for_models):
            raise TypeError(
                "All models passed should be a sub-class of wagtail.core.models.Page"
            )

        model_names = ' / '.join(each.__name__.lower()
                                 for each in self.for_models)
        admin_page_chooser = AdminPageChooser(target_models=self.for_models)
        admin_page_chooser.choose_one_text = _('Choose a %s' % model_names)
        admin_page_chooser.choose_another_text = _('Choose another %s' %
                                                   model_names)
        admin_page_chooser.link_to_chosen_text = _('Edit this %s' %
                                                   model_names)
        return admin_page_chooser
Пример #12
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.fields["page_chooser"].widget = AdminPageChooser()
     self.fields["image_chooser"].widget = AdminImageChooser()
     self.fields["document_chooser"].widget = AdminDocumentChooser()
     self.fields["snippet_chooser"].widget = AdminSnippetChooser(Page)
     self.fields["date"].widget = AdminDateInput()
     self.fields["time"].widget = AdminTimeInput()
     self.fields["datetime"].widget = AdminDateTimeInput()
     self.fields["auto_height_text"].widget = AdminAutoHeightTextInput()
     self.fields["default_rich_text"].widget = get_rich_text_editor_widget(
         "default")
     self.fields["switch"].widget = SwitchInput()
     self.fields["disabled_switch"].widget = SwitchInput(
         attrs={"disabled": True})
Пример #13
0
class ExportForm(forms.Form):
    fields = forms.MultipleChoiceField(
        label=_('Fields to export'),
        choices=[],
        widget=forms.CheckboxSelectMultiple)
    only_published = forms.BooleanField(
        label=_('Include only published pages?'),
        required=False
    )
    root_page = forms.ModelChoiceField(
        label=_('Root page to export'),
        queryset=Page.objects.all().specific(),
        widget=AdminPageChooser(can_choose_root=True),
        help_text=_("Will export this page and all its descendants of the chosen page type.")
    )

    def __init__(self, *args, **kwargs):
        page_model = kwargs.pop('page_model', Page)
        super().__init__(*args, **kwargs)
        self.fields['fields'].choices = self.get_export_fields_choices(page_model)
        self.fields['fields'].initial = [c[0] for c in self.get_export_fields_choices(Page)]

    @staticmethod
    @lru_cache(64)
    def get_export_fields_choices(page_model):
        choices = []
        if page_model is None:
            page_model = Page
        exportable_fields = get_exportable_fields_for_model(page_model)
        for field_name in exportable_fields:
            if field_name == 'content_type':
                choices.append(('content_type', 'Page type'))
            elif field_name == 'full_url':
                choices.append(('full_url', 'URL'))
            elif field_name == 'parent':
                choices.append(('parent', 'Parent page id'))
            else:
                field = page_model._meta.get_field(field_name)
                choices.append((field_name, field.verbose_name))
        return choices
Пример #14
0
    def widget(self):
        from wagtail.admin.widgets import AdminPageChooser

        return AdminPageChooser(
            target_models=self.target_models, can_choose_root=self.can_choose_root
        )
Пример #15
0
 def widget(self):
     from wagtail.admin.widgets import AdminPageChooser
     return AdminPageChooser(
         content_type=ContentType.objects.get_for_model(ContributorPage))
Пример #16
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.fields['root_page'].widget = AdminPageChooser(
         choose_one_text=_('Choose a root page'), choose_another_text=_('Choose a different root page')
     )
class ExportPage(forms.Form):
    """
    This form renders the export fields.
    """

    root_page = forms.ModelChoiceField(
        queryset=Page.objects.all(),
        widget=AdminPageChooser(**admin_page_params.copy()),
        label=_("Root Page to Export"),
        help_text=
        _("All children pages (including the selected root page) will be exported."
          ))

    export_unpublished = forms.BooleanField(
        initial=True,
        required=False,
        label=_("Export Unpublished Pages"),
        help_text=
        _("If True, unpublished pages will be exported along with published pages."
          ),
    )

    null_pk = forms.BooleanField(
        widget=forms.HiddenInput(),
        required=False,
        initial=False,
        label=_("Remove Primary Keys"),
        help_text=
        _("This is set to False as default and can be changed in code. Changing to True may break import functionality."
          ),
    )

    null_fk = forms.BooleanField(
        initial=True,
        required=False,
        label=_("Remove Foreign Keys"),
        help_text=
        _("If True, foreign keys will be nulled. Leave checked if exported archive will be imported to a different environment."
          ),
    )

    null_users = forms.BooleanField(
        initial=True,
        required=False,
        label=_("Remove User References"),
        help_text=
        _("If True, user fields (owner in pages, *user_id in images) will be nulled. Leave checked if exported archive will be imported to a different environment."
          ),
    )

    export_images = forms.BooleanField(
        initial=True,
        required=False,
        label=_("Export Images"),
        help_text=
        _("If True, image references will be nulled and images that are used on the page will be exported along with the rest of the content. Leave checked if exported archive will be imported to a different environment."
          ),
    )

    export_documents = forms.BooleanField(
        initial=True,
        required=False,
        label=_("Export Documents"),
        help_text=
        _("If True, document references will be nulled and documents that are used on the page will be exported along with the rest of the content. Leave checked if exported archive will be imported to a different environment."
          ),
    )

    export_snippets = forms.BooleanField(
        initial=True,
        required=False,
        label=_("Export Snippets"),
        help_text=
        _("If True, snippet references will be nulled and snippets that are used on the page will be exported along with the rest of the content. Leave checked if exported archive will be imported to a different environment."
          ),
    )

    ignore_large_files = forms.BooleanField(
        initial=True,
        required=False,
        label=_("Exclude Large Files"),
        help_text=_(
            "If True, large files will be nullified and ignored during export."
        ),
    )
Пример #18
0
 def media(self):
     return AdminPageChooser().media + forms.Media(
         js=['formfields/js/widget.js'])
Пример #19
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.fields['page'].widget = AdminPageChooser()
Пример #20
0
class ExportForm(forms.Form):
    root_page = forms.ModelChoiceField(
        queryset=Page.objects.all(),
        widget=AdminPageChooser(can_choose_root=True),
    )
Пример #21
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.fields["redirect_page"].widget = AdminPageChooser()