filerobot
=========
A wagtail widget to add [filerobot ](https://github.com/scaleflex/filerobot-image-editor)image editor to your wagtail fields.
Quick start
-----------
1. Add 'filerobot' to your INSTALLED_APPS setting like this:
```
INSTALLED_APPS = [
...,
'filerobot',
]
```
2. Run `py manage.py collectstatic`
3. Run `py manage.py migrate`
4. Import and use the widget on your model
```python
from django.db import models
from wagtail import fields
from wagtail.models import Page
from wagtail.admin.panels import FieldPanel
from filerobot.widgets import FilerobotWidget, obj
from filerobot.blocks import FilerobotBlock as FilerobotBlock
from filerobot.fields import FilerobotField as FilerobotImageField
class HomePage(Page):
image = models.ForeignKey(
"wagtailimages.Image",
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name="+",
)
# As an automatic foreign key field!
filerobot_image = FilerobotImageField(
# https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#tabsids
tabs=[
obj.TABS.FINETUNE,
obj.TABS.FILTERS,
obj.TABS.ADJUST,
obj.TABS.WATERMARK,
obj.TABS.ANNOTATE,
obj.TABS.RESIZE,
],
# https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#annotationscommon
annotations_common=obj.AnnotationsCommon(
# fill: str = None,
# stroke: str = None,
# stroke_width: int = None,
# shadow_offset_x: int = None,
# shadow_offset_y: int = None,
# shadow_blur: int = None,
# shadow_color: str = None,
# shadow_opacity: int = None,
# opacity: int = None,
),
# https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#Text
text=obj.Text(
# text: str = None,
# font_family: str = None,
# fonts: list[str] = None,
# font_size: int = None,
# letter_spacing: int = None,
# line_height: int = None,
# align: str = None,
# font_style: str = None,
# ...annotations_common
),
# https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#image
image=obj.Image(
# fill: str = None,
# disable_upload: bool = False,
# gallery: list[obj.ImageObject] = None,
# ...annotations_common
),
# https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#rect
rect=obj.Rect(
# corner_radius: int = None,
# ...annotations_common
),
# https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#ellipse
ellipse=obj.Ellipse(
# ...annotations_common
),
# https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#polygon
polygon=obj.Polygon(
# sides: int = None,
# ...annotations_common
),
# https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#pen
pen=obj.Pen(
# stroke_width: int = None,
# tension: float = None,
# line_cap: str = None,
# select_annotation_after_drawing: bool = None,
# ...annotations_common
),
# https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#line
line=obj.Line(
# stroke_width: int = None,
# line_cap: str = None,
# ...annotations_common
),
# https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#arrow
arrow=obj.Arrow(
# stroke_width: int = None,
# line_cap: str = None,
# pointer_length: int = None,
# pointer_width: int = None,
# ...annotations_common
),
# https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#watermark
watermark=obj.Watermark(
# gallery: list[obj.WatermarkImageObject] = None,
# text_scaling_ratio: float = None,
# image_scaling_ratio: float = None,
# hide_text_watermark: bool = None,
),
# rotate: dict = None,
# crop: dict = None,
# crop_preset_folder: dict = None,
# crop_preset_group: dict = None,
# crop_preset_item: dict = None,
# cloud_image: dict = None,
# default_tab_id: str = None, # Tabs defined in constants.py
# default_tool_id: str = None, # Tools defined in constants.py
# use_backend_translations: bool = None,
# language: str = None, # Inferred inside attrs by translation.get_language()
# avoid_changes_not_saved_alert_on_leave: bool = None,
# default_saved_image_quality: int = None,
# force_to_png_in_elliptical_crop: bool = None,
# use_cloud_image: bool = None,
# saving_pixel_ratio: int = None,
# preview_pixel_ratio: int = None,
# observe_plugin_container_size: bool = None,
# show_canvas_only: bool = None,
# use_zoom_presets_menu: bool = None,
# disable_zooming: bool = None,
# no_cross_origin: bool = None,
# disable_save_if_no_changes: bool = None,
# typography: str = None, # The font family to use across the theme.
# Automatically save the image when submitting the admin form.
# This might lag your browser for a second or 2 when saving the page.
should_auto_save = True,
)
content_panels = [
# As a widget!
FieldPanel('image', widget=FilerobotWidget(tabs=[
"Finetune",
"Filters",
"Adjust",
"Watermark",
"Annotate",
"Resize",
])),
FieldPanel("filerobot_image"),
*Page.content_panels,
FieldPanel('content'),
]
content = fields.StreamField([
# As a block!
('filerobot', FilerobotBlock()),
], blank=True, use_json_field=True)
```
Raw data
{
"_id": null,
"home_page": "https://github.com/Nigel2392/wagtail-filerobot",
"name": "wagtail-filerobot",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": "Nigel",
"author_email": "nigel@goodadvice.it",
"download_url": "https://files.pythonhosted.org/packages/78/25/30d85d56fa689c0f52a28a5a825719e0199594ae86523a701ff35b5685c4/wagtail_filerobot-1.4.4.tar.gz",
"platform": null,
"description": "filerobot\r\n=========\r\n\r\nA wagtail widget to add [filerobot ](https://github.com/scaleflex/filerobot-image-editor)image editor to your wagtail fields.\r\n\r\nQuick start\r\n-----------\r\n\r\n1. Add 'filerobot' to your INSTALLED_APPS setting like this:\r\n\r\n ```\r\n INSTALLED_APPS = [\r\n ...,\r\n 'filerobot',\r\n ]\r\n ```\r\n2. Run `py manage.py collectstatic`\r\n3. Run `py manage.py migrate`\r\n4. Import and use the widget on your model\r\n\r\n ```python\r\n from django.db import models\r\n from wagtail import fields\r\n from wagtail.models import Page\r\n from wagtail.admin.panels import FieldPanel\r\n\r\n from filerobot.widgets import FilerobotWidget, obj\r\n from filerobot.blocks import FilerobotBlock as FilerobotBlock\r\n from filerobot.fields import FilerobotField as FilerobotImageField\r\n\r\n\r\n class HomePage(Page):\r\n image = models.ForeignKey(\r\n \"wagtailimages.Image\",\r\n null=True,\r\n blank=True,\r\n on_delete=models.SET_NULL,\r\n related_name=\"+\",\r\n )\r\n\r\n # As an automatic foreign key field!\r\n filerobot_image = FilerobotImageField(\r\n # https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#tabsids\r\n tabs=[\r\n obj.TABS.FINETUNE,\r\n obj.TABS.FILTERS,\r\n obj.TABS.ADJUST,\r\n obj.TABS.WATERMARK,\r\n obj.TABS.ANNOTATE,\r\n obj.TABS.RESIZE,\r\n ],\r\n\r\n # https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#annotationscommon\r\n annotations_common=obj.AnnotationsCommon(\r\n # fill: str = None,\r\n # stroke: str = None,\r\n # stroke_width: int = None,\r\n # shadow_offset_x: int = None,\r\n # shadow_offset_y: int = None,\r\n # shadow_blur: int = None,\r\n # shadow_color: str = None,\r\n # shadow_opacity: int = None,\r\n # opacity: int = None,\r\n ),\r\n\r\n # https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#Text\r\n text=obj.Text(\r\n # text: str = None,\r\n # font_family: str = None,\r\n # fonts: list[str] = None,\r\n # font_size: int = None,\r\n # letter_spacing: int = None,\r\n # line_height: int = None,\r\n # align: str = None,\r\n # font_style: str = None,\r\n # ...annotations_common\r\n\r\n ),\r\n\r\n # https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#image\r\n image=obj.Image(\r\n # fill: str = None,\r\n # disable_upload: bool = False,\r\n # gallery: list[obj.ImageObject] = None,\r\n # ...annotations_common\r\n ),\r\n\r\n # https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#rect\r\n rect=obj.Rect(\r\n # corner_radius: int = None,\r\n # ...annotations_common\r\n ),\r\n\r\n # https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#ellipse\r\n ellipse=obj.Ellipse(\r\n # ...annotations_common\r\n ),\r\n\r\n # https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#polygon\r\n polygon=obj.Polygon(\r\n # sides: int = None,\r\n # ...annotations_common\r\n ),\r\n\r\n # https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#pen\r\n pen=obj.Pen(\r\n # stroke_width: int = None,\r\n # tension: float = None,\r\n # line_cap: str = None,\r\n # select_annotation_after_drawing: bool = None,\r\n # ...annotations_common\r\n ),\r\n\r\n # https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#line\r\n line=obj.Line(\r\n # stroke_width: int = None,\r\n # line_cap: str = None,\r\n # ...annotations_common\r\n ),\r\n\r\n # https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#arrow\r\n arrow=obj.Arrow(\r\n # stroke_width: int = None,\r\n # line_cap: str = None,\r\n # pointer_length: int = None,\r\n # pointer_width: int = None,\r\n # ...annotations_common\r\n ),\r\n\r\n # https://github.com/scaleflex/filerobot-image-editor?tab=readme-ov-file#watermark\r\n watermark=obj.Watermark(\r\n # gallery: list[obj.WatermarkImageObject] = None,\r\n # text_scaling_ratio: float = None,\r\n # image_scaling_ratio: float = None,\r\n # hide_text_watermark: bool = None,\r\n ),\r\n\r\n # rotate: dict = None,\r\n # crop: dict = None,\r\n # crop_preset_folder: dict = None,\r\n # crop_preset_group: dict = None,\r\n # crop_preset_item: dict = None,\r\n # cloud_image: dict = None,\r\n\r\n # default_tab_id: str = None, # Tabs defined in constants.py\r\n # default_tool_id: str = None, # Tools defined in constants.py\r\n # use_backend_translations: bool = None,\r\n # language: str = None, # Inferred inside attrs by translation.get_language()\r\n # avoid_changes_not_saved_alert_on_leave: bool = None,\r\n # default_saved_image_quality: int = None,\r\n # force_to_png_in_elliptical_crop: bool = None,\r\n # use_cloud_image: bool = None,\r\n # saving_pixel_ratio: int = None,\r\n # preview_pixel_ratio: int = None,\r\n # observe_plugin_container_size: bool = None,\r\n # show_canvas_only: bool = None,\r\n # use_zoom_presets_menu: bool = None,\r\n # disable_zooming: bool = None,\r\n # no_cross_origin: bool = None,\r\n # disable_save_if_no_changes: bool = None,\r\n # typography: str = None, # The font family to use across the theme.\r\n\r\n # Automatically save the image when submitting the admin form.\r\n # This might lag your browser for a second or 2 when saving the page.\r\n should_auto_save = True,\r\n )\r\n\r\n content_panels = [\r\n # As a widget!\r\n FieldPanel('image', widget=FilerobotWidget(tabs=[\r\n \"Finetune\",\r\n \"Filters\",\r\n \"Adjust\",\r\n \"Watermark\",\r\n \"Annotate\",\r\n \"Resize\",\r\n ])),\r\n FieldPanel(\"filerobot_image\"),\r\n *Page.content_panels,\r\n FieldPanel('content'),\r\n ]\r\n\r\n content = fields.StreamField([\r\n # As a block!\r\n ('filerobot', FilerobotBlock()),\r\n ], blank=True, use_json_field=True)\r\n\r\n ```\r\n",
"bugtrack_url": null,
"license": "GPL-3.0-only",
"summary": "A filerobot image editing widget for Wagtail Image fields.",
"version": "1.4.4",
"project_urls": {
"Homepage": "https://github.com/Nigel2392/wagtail-filerobot"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "782530d85d56fa689c0f52a28a5a825719e0199594ae86523a701ff35b5685c4",
"md5": "beff40a398b834a1c55ef5364c1bdd07",
"sha256": "17f08937260f7a945904395b2ccf9e42de9f24e6bdaf42491d6c8450d6cfebfa"
},
"downloads": -1,
"filename": "wagtail_filerobot-1.4.4.tar.gz",
"has_sig": false,
"md5_digest": "beff40a398b834a1c55ef5364c1bdd07",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 330896,
"upload_time": "2024-09-30T11:54:03",
"upload_time_iso_8601": "2024-09-30T11:54:03.245442Z",
"url": "https://files.pythonhosted.org/packages/78/25/30d85d56fa689c0f52a28a5a825719e0199594ae86523a701ff35b5685c4/wagtail_filerobot-1.4.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-30 11:54:03",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Nigel2392",
"github_project": "wagtail-filerobot",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "wagtail-filerobot"
}