7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
10 # FOR A PARTICULAR PURPOSE. |
10 # FOR A PARTICULAR PURPOSE. |
11 # |
11 # |
12 from pyams_file.interfaces import IMediaFile, IVideo, IThumbnail, IAudio |
|
13 from pyams_form.interfaces.form import IWidgetsPrefixViewletsManager |
|
14 from pyams_media.ffbase import FFmpeg |
|
15 from pyams_media.ffdocument import FFDocument |
|
16 from pyams_media.interfaces import IMediaConversionUtility, VIDEO_FRAME_SIZE, IMediaConverter, IMediaConversions |
|
17 from pyams_pagelet.pagelet import pagelet_config |
|
18 from pyams_skin.interfaces.viewlet import IContextActions |
|
19 from pyams_skin.layer import IPyAMSLayer |
|
20 from pyams_skin.viewlet.toolbar import ToolbarMenuItem |
|
21 from pyams_template.template import template_config |
|
22 from pyams_utils.property import cached_property |
|
23 from pyams_utils.registry import query_utility |
|
24 from pyams_viewlet.viewlet import viewlet_config, Viewlet |
|
25 from pyams_zmi.form import AdminDialogDisplayForm |
|
26 from pyams_zmi.layer import IAdminLayer |
|
27 |
12 |
28 __docformat__ = 'restructuredtext' |
13 __docformat__ = 'restructuredtext' |
29 |
14 |
30 |
15 |
31 # import standard library |
16 # import standard library |
32 |
17 |
33 # import interfaces |
18 # import interfaces |
|
19 from pyams_file.interfaces import IVideo, IThumbnail, IAudio |
|
20 from pyams_form.interfaces.form import IWidgetsPrefixViewletsManager |
|
21 from pyams_media.interfaces import IMediaConversionUtility, VIDEO_FRAME_SIZE, IMediaConverter, IMediaConversions |
|
22 from pyams_skin.interfaces.viewlet import IContextActions |
|
23 from pyams_skin.layer import IPyAMSLayer |
|
24 from pyams_zmi.layer import IAdminLayer |
34 |
25 |
35 # import packages |
26 # import packages |
|
27 from pyams_pagelet.pagelet import pagelet_config |
|
28 from pyams_skin.viewlet.toolbar import ToolbarMenuItem |
|
29 from pyams_template.template import template_config |
|
30 from pyams_utils.interfaces import MANAGE_PERMISSION |
|
31 from pyams_utils.registry import query_utility |
|
32 from pyams_viewlet.viewlet import viewlet_config, Viewlet |
|
33 from pyams_zmi.form import AdminDialogDisplayForm |
36 from z3c.form import field |
34 from z3c.form import field |
37 from zope.interface import Interface |
35 from zope.interface import Interface |
38 |
36 |
39 from pyams_media import _ |
37 from pyams_media import _ |
40 |
38 |
42 # |
40 # |
43 # Video conversions |
41 # Video conversions |
44 # |
42 # |
45 |
43 |
46 @viewlet_config(name='video.conversions.action', context=IVideo, layer=IPyAMSLayer, view=Interface, |
44 @viewlet_config(name='video.conversions.action', context=IVideo, layer=IPyAMSLayer, view=Interface, |
47 manager=IContextActions, permission='manage', weight=15) |
45 manager=IContextActions, permission=MANAGE_PERMISSION, weight=15) |
48 class VideoConversionsAction(ToolbarMenuItem): |
46 class VideoConversionsAction(ToolbarMenuItem): |
49 """Video conversions action""" |
47 """Video conversions action""" |
50 |
48 |
51 label = _("Video conversions...") |
49 label = _("Video conversions...") |
52 label_css_class = 'fa fa-fw fa-compress' |
50 label_css_class = 'fa fa-fw fa-compress' |
53 |
51 |
54 url = 'video-conversions.html' |
52 url = 'video-conversions.html' |
55 modal_target = True |
53 modal_target = True |
56 |
54 |
57 |
55 |
58 @pagelet_config(name='video-conversions.html', context=IVideo, layer=IPyAMSLayer, permission='manage') |
56 @pagelet_config(name='video-conversions.html', context=IVideo, layer=IPyAMSLayer, permission=MANAGE_PERMISSION) |
59 class VideoConversionsDisplayForm(AdminDialogDisplayForm): |
57 class VideoConversionsDisplayForm(AdminDialogDisplayForm): |
60 """Video conversions display form""" |
58 """Video conversions display form""" |
61 |
59 |
62 legend = _("Selected video conversions") |
60 legend = _("Selected video conversions") |
63 icon_css_class = 'fa fa-fw fa-compress' |
61 icon_css_class = 'fa fa-fw fa-compress' |
105 # |
103 # |
106 # Audio conversions |
104 # Audio conversions |
107 # |
105 # |
108 |
106 |
109 @viewlet_config(name='audio.conversions.action', context=IAudio, layer=IPyAMSLayer, view=Interface, |
107 @viewlet_config(name='audio.conversions.action', context=IAudio, layer=IPyAMSLayer, view=Interface, |
110 manager=IContextActions, permission='manage', weight=15) |
108 manager=IContextActions, permission=MANAGE_PERMISSION, weight=15) |
111 class AudioConversionsAction(ToolbarMenuItem): |
109 class AudioConversionsAction(ToolbarMenuItem): |
112 """Audio conversions action""" |
110 """Audio conversions action""" |
113 |
111 |
114 label = _("Audio conversions...") |
112 label = _("Audio conversions...") |
115 label_css_class = 'fa fa-fw fa-compress' |
113 label_css_class = 'fa fa-fw fa-compress' |
116 |
114 |
117 url = 'audio-conversions.html' |
115 url = 'audio-conversions.html' |
118 modal_target = True |
116 modal_target = True |
119 |
117 |
120 |
118 |
121 @pagelet_config(name='audio-conversions.html', context=IAudio, layer=IPyAMSLayer, permission='manage') |
119 @pagelet_config(name='audio-conversions.html', context=IAudio, layer=IPyAMSLayer, permission=MANAGE_PERMISSION) |
122 class AudioConversionsDisplayForm(AdminDialogDisplayForm): |
120 class AudioConversionsDisplayForm(AdminDialogDisplayForm): |
123 """Audio conversions display form""" |
121 """Audio conversions display form""" |
124 |
122 |
125 legend = _("Selected audio conversions") |
123 legend = _("Selected audio conversions") |
126 icon_css_class = 'fa fa-fw fa-compress' |
124 icon_css_class = 'fa fa-fw fa-compress' |