From: Guillaume Pellerin Date: Tue, 18 Aug 2026 13:40:39 +0000 (+0200) Subject: add media.set_file_datetime() X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=refs%2Fheads%2Fdev;p=teleforma.git add media.set_file_datetime() --- diff --git a/teleforma/management/commands/teleforma-import-conferences-4.py b/teleforma/management/commands/teleforma-import-conferences-4.py index a2faf9da..cbcc15b0 100644 --- a/teleforma/management/commands/teleforma-import-conferences-4.py +++ b/teleforma/management/commands/teleforma-import-conferences-4.py @@ -98,6 +98,7 @@ class Command(BaseCommand): media.file_s3.save(filename, File(f)) media.save() media.set_mime_type() + media.set_file_datetime() conference.imported = True logger.logger.info(media_file) diff --git a/teleforma/models/core.py b/teleforma/models/core.py index 4741edfa..49f9df3b 100644 --- a/teleforma/models/core.py +++ b/teleforma/models/core.py @@ -1051,18 +1051,54 @@ class Media(MediaBase): element_type = 'media' - conference = models.ForeignKey('Conference', related_name='media', verbose_name=_('conference'), - blank=True, null=True, on_delete=models.SET_NULL) - course = models.ForeignKey('Course', related_name='media', verbose_name=_('course'), - blank=True, null=True, on_delete=models.SET_NULL) - course_type = models.ForeignKey('CourseType', related_name='media', verbose_name=_('course type'), - blank=True, null=True, on_delete=models.SET_NULL) - period = models.ForeignKey('Period', related_name='media', verbose_name=_('period'), - null=True, blank=True, on_delete=models.SET_NULL) + conference = models.ForeignKey( + 'Conference', + related_name='media', + verbose_name=_('conference'), + blank=True, + null=True, + on_delete=models.SET_NULL + ) + + course = models.ForeignKey( + 'Course', + related_name='media', + verbose_name=_('course'), + blank=True, + null=True, + on_delete=models.SET_NULL + ) + + course_type = models.ForeignKey( + 'CourseType', + related_name='media', + verbose_name=_('course type'), + blank=True, + null=True, + on_delete=models.SET_NULL + ) + + period = models.ForeignKey( + 'Period', + related_name='media', + verbose_name=_('period'), + null=True, + blank=True, + on_delete=models.SET_NULL + ) + type = models.CharField( - _('type'), choices=streaming_choices, max_length=32) - readers = models.ManyToManyField(User, related_name="media", verbose_name=_('readers'), - blank=True) + _('type'), + choices=streaming_choices, max_length=32 + ) + + readers = models.ManyToManyField( + User, + related_name="media", + verbose_name=_('readers'), + blank=True + ) + file = models.FileField( _('file'), upload_to=get_media_path, @@ -1071,6 +1107,7 @@ class Media(MediaBase): blank=True, storage=storages["default"] ) + file_s3 = models.FileField( _('S3 file'), upload_to=get_media_path, @@ -1079,12 +1116,14 @@ class Media(MediaBase): blank=True, storage=media_storage, ) + poster_file = models.FileField( _('poster file'), upload_to=get_media_path, max_length=255, null=True, blank=False) + poster_file_s3 = models.FileField( _('poster S3 file'), upload_to=get_media_path, @@ -1093,15 +1132,22 @@ class Media(MediaBase): blank=True, storage=media_storage, ) + duration = models.DurationField( _("duration"), blank=True, null=True) + file_datetime = models.DateTimeField( _("file date time"), blank=True, null=True) + def set_file_datetime(self): + if not self.file_datetime: + self.file_datetime = datetime.datetime.fromtimestamp(os.path.getmtime(self.file.path)) + self.save() + def set_mime_type(self): path = None if self.file: