forked from torchbox/wagtail-bynder
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwidgets.py
More file actions
52 lines (41 loc) · 1.5 KB
/
Copy pathwidgets.py
File metadata and controls
52 lines (41 loc) · 1.5 KB
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.urls import reverse
from django.utils.functional import cached_property
from django.utils.translation import gettext_lazy as _
from wagtail.admin.staticfiles import versioned_static
from wagtail.admin.telepath import register
from wagtail.admin.widgets import BaseChooser, BaseChooserAdapter
from wagtail_bynder import get_video_model
class AdminVideoChooser(BaseChooser):
choose_one_text = _("Choose a video")
choose_another_text = _("Change video")
link_to_chosen_text = _("Edit this video")
chooser_modal_url_name = "bynder_video_chooser:choose"
icon = "media"
classname = "video-chooser"
js_constructor = "VideoChooser"
def __init__(self, **kwargs):
self.model = get_video_model()
super().__init__(**kwargs)
def get_chooser_modal_url(self):
return reverse(
self.model.snippet_viewset.chooser_viewset.get_url_name("choose")
)
@property
def media(self):
return forms.Media(
js=[
versioned_static("wagtailsnippets/js/snippet-chooser.js"),
versioned_static("bynder/js/video-chooser.js"),
]
)
class VideoChooserAdapter(BaseChooserAdapter):
js_constructor = "wagtail_bynder.widgets.VideoChooser"
@cached_property
def media(self):
return forms.Media(
js=[
versioned_static("bynder/js/video-chooser-telepath.js"),
]
)
register(VideoChooserAdapter(), AdminVideoChooser)