]> git.parisson.com Git - teleforma.git/commitdiff
add media.set_file_datetime() dev
authorGuillaume Pellerin <guillaume.pellerin@parisson.com>
Tue, 18 Aug 2026 13:40:39 +0000 (15:40 +0200)
committerGuillaume Pellerin <guillaume.pellerin@parisson.com>
Tue, 18 Aug 2026 13:40:39 +0000 (15:40 +0200)
teleforma/management/commands/teleforma-import-conferences-4.py
teleforma/models/core.py

index a2faf9dac81ad063c7e656a5a4b1d426d4a1f132..cbcc15b0868a7bc9e58fde097544ed641fd9b35e 100644 (file)
@@ -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)
 
index 4741edfa031e1fb68235b84f4222fd5894f72a21..49f9df3bace76de82cf1417740739b164e076730 100644 (file)
@@ -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: