def test_settings(self): self.assertEqual(get_extensions(), ['mp4', 'webm', 'ogv']) settings.DJANGOCMS_VIDEO_ALLOWED_EXTENSIONS = ['mp4', 'flv'] self.assertEqual(get_extensions(), ['mp4', 'flv']) self.assertEqual(get_templates(), [('default', 'Default')]) settings.DJANGOCMS_VIDEO_TEMPLATES = [('feature', 'Feature')] self.assertEqual(get_templates(), [('default', 'Default'), ('feature', 'Feature')])
class VersionedVideoPlayer(CMSPlugin): template = models.CharField( verbose_name=_('Template'), choices=get_templates(), default=get_templates()[0][0], max_length=255, ) label = models.CharField( verbose_name=_('Label'), blank=True, max_length=255, ) embed_link = models.CharField( verbose_name=_('Embed link'), blank=True, max_length=255, help_text=_( 'Use this field to embed videos from external services ' 'such as YouTube, Vimeo or others. Leave it blank to upload video ' 'files by adding nested "Source" plugins.'), ) poster_grouper = ImageGrouperField( verbose_name=_('Poster'), blank=True, null=True, on_delete=models.SET_NULL, related_name='+', ) attributes = AttributesField( verbose_name=_('Attributes'), blank=True, ) # Add an app namespace to related_name to avoid field name clashes # with any other plugins that have a field with the same name as the # lowercase of the class name of this model. # https://github.com/divio/django-cms/issues/5030 cmsplugin_ptr = models.OneToOneField( CMSPlugin, related_name='%(app_label)s_%(class)s', on_delete=models.CASCADE, parent_link=True, ) def __str__(self): return self.label or self.embed_link or str(self.pk) @cached_property def poster(self): if self.poster_grouper_id: return self.poster_grouper.file def copy_relations(self, oldinstance): # Because we have a ForeignKey, it's required to copy over # the reference from the instance to the new plugin. self.poster = oldinstance.poster
class Migration(migrations.Migration): dependencies = [ ('cms', '0016_auto_20160608_1535'), ('filer', '0006_auto_20160623_1627'), ('djangocms_video', '0005_migrate_to_filer'), ] operations = [ migrations.RemoveField( model_name='videoplayer', name='image', ), migrations.AddField( model_name='videoplayer', name='label', field=models.CharField(max_length=255, verbose_name='Label', blank=True), ), migrations.AddField( model_name='videoplayer', name='template', field=models.CharField(default=get_templates()[0][0], max_length=255, verbose_name='Template', choices=get_templates()), ), migrations.CreateModel( name='VideoSource', fields=[ ('cmsplugin_ptr', models.OneToOneField(parent_link=True, related_name='djangocms_video_videosource', auto_created=True, primary_key=True, serialize=False, to='cms.CMSPlugin', on_delete=models.CASCADE)), ('text_title', models.CharField(max_length=255, verbose_name='Title', blank=True)), ('text_description', models.TextField(verbose_name='Description', blank=True)), ('attributes', djangocms_attributes_field.fields.AttributesField(default=dict, verbose_name='Attributes', blank=True)), ('source_file', filer.fields.file.FilerFileField(related_name='+', on_delete=django.db.models.deletion.SET_NULL, verbose_name='Source', to='filer.File', null=True)), ], options={ 'abstract': False, }, bases=('cms.cmsplugin',), ), migrations.CreateModel( name='VideoTrack', fields=[ ('cmsplugin_ptr', models.OneToOneField(parent_link=True, related_name='djangocms_video_videotrack', auto_created=True, primary_key=True, serialize=False, to='cms.CMSPlugin', on_delete=models.CASCADE)), ('kind', models.CharField(max_length=255, verbose_name='Kind', choices=[('subtitles', 'Subtitles'), ('captions', 'Captions'), ('descriptions', 'Descriptions'), ('chapters', 'Chapters')])), ('srclang', models.CharField(help_text='Examples: "en" or "de" etc.', max_length=255, verbose_name='Source language', blank=True)), ('label', models.CharField(max_length=255, verbose_name='Label', blank=True)), ('attributes', djangocms_attributes_field.fields.AttributesField(default=dict, verbose_name='Attributes', blank=True)), ('src', filer.fields.file.FilerFileField(related_name='+', on_delete=django.db.models.deletion.SET_NULL, verbose_name='Source file', to='filer.File', null=True)), ], options={ 'abstract': False, }, bases=('cms.cmsplugin',), ), ]