) class AddFileForm(ListForm): template = 'admin/media/file-add-form.html' id = 'add-file-form' submit_text = None event = events.Admin.AddFileForm fields = [ FileField('file', label_text=N_('Select an encoded video or audio file on your computer'), validator=FieldStorageUploadConverter(not_empty=False, label_text=N_('Upload'))), SubmitButton('add_url', default=N_('Add URL'), named_button=True, css_class='btn grey btn-add-url f-rgt'), TextField('url', validator=URIValidator, suppress_label=True, attrs=lambda: {'title': _('YouTube, Vimeo, Amazon S3 or any other link')}, maxlength=255), ] file_type_options = lambda: registered_media_types() file_types = lambda: (id for id, name in registered_media_types()) file_type_validator = OneOfGenerator(file_types, if_missing=None) class EditFileForm(ListForm): template = 'admin/media/file-edit-form.html' submit_text = None _name = 'fileeditform' params = ['file'] event = events.Admin.EditFileForm class fields(WidgetsList): file_id = TextField(validator=Int()) file_type = SingleSelectField(validator=file_type_validator, options=file_type_options, attrs={'id': None, 'autocomplete': 'off'}) duration = TextField(validator=DurationValidator, attrs={'id': None, 'autocomplete': 'off'})
""" uris = [] info = dict( container = file.container, type = file.type, display_name = file.display_name, created = file.created_on.isoformat(), url = url_for_media(media, qualified=True), uris = uris, ) for uri in file.get_uris(): uris.append({ 'scheme': uri.scheme, 'uri': str(uri), 'server': uri.server_uri, 'file': uri.file_uri, }) return info #XXX: Dirty hack to set the actual strings for filetypes, in our docstrings, # based on the canonical definitions in the filetypes module. from mediadrop.lib.filetypes import registered_media_types, AUDIO, VIDEO _types_list = "'%s'" % ("', '".join(id for id, name in registered_media_types())) MediaController._file_info.im_func.__doc__ = \ MediaController._file_info.im_func.__doc__ % _types_list MediaController._info.im_func.__doc__ = \ MediaController._info.im_func.__doc__ % (AUDIO, VIDEO) MediaController.index.im_func.__doc__ = \ MediaController.index.im_func.__doc__ % (AUDIO, VIDEO)
uris = [] info = dict( container=file.container, type=file.type, display_name=file.display_name, created=file.created_on.isoformat(), url=url_for_media(media, qualified=True), uris=uris, ) for uri in file.get_uris(): uris.append({ 'scheme': uri.scheme, 'uri': str(uri), 'server': uri.server_uri, 'file': uri.file_uri, }) return info #XXX: Dirty hack to set the actual strings for filetypes, in our docstrings, # based on the canonical definitions in the filetypes module. from mediadrop.lib.filetypes import registered_media_types, AUDIO, VIDEO _types_list = "'%s'" % ("', '".join(id for id, name in registered_media_types())) MediaController._file_info.im_func.__doc__ = \ MediaController._file_info.im_func.__doc__ % _types_list MediaController._info.im_func.__doc__ = \ MediaController._info.im_func.__doc__ % (AUDIO, VIDEO) MediaController.index.im_func.__doc__ = \ MediaController.index.im_func.__doc__ % (AUDIO, VIDEO)