Ejemplo n.º 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"),
        )
    )
Ejemplo n.º 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,
     )
Ejemplo n.º 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.")
    )
Ejemplo n.º 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.")
    )
Ejemplo n.º 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.")
    )
Ejemplo n.º 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))
Ejemplo n.º 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
Ejemplo n.º 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."))
Ejemplo n.º 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)
Ejemplo n.º 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
Ejemplo n.º 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})
Ejemplo n.º 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
Ejemplo n.º 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
        )
Ejemplo n.º 15
0
 def widget(self):
     from wagtail.admin.widgets import AdminPageChooser
     return AdminPageChooser(
         content_type=ContentType.objects.get_for_model(ContributorPage))
Ejemplo n.º 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."
        ),
    )
Ejemplo n.º 18
0
 def media(self):
     return AdminPageChooser().media + forms.Media(
         js=['formfields/js/widget.js'])
Ejemplo n.º 19
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.fields['page'].widget = AdminPageChooser()
Ejemplo n.º 20
0
class ExportForm(forms.Form):
    root_page = forms.ModelChoiceField(
        queryset=Page.objects.all(),
        widget=AdminPageChooser(can_choose_root=True),
    )
Ejemplo n.º 21
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.fields["redirect_page"].widget = AdminPageChooser()