Skip to content

Commit

Permalink
fix: Use correct move_video methods for GlossVideoXXX #1453
Browse files Browse the repository at this point in the history
  • Loading branch information
vanlummelhuizen committed Jan 23, 2025
1 parent 759d126 commit 9804622
Showing 1 changed file with 18 additions and 10 deletions.
28 changes: 18 additions & 10 deletions signbank/video/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1046,6 +1046,20 @@ def reversion(self, revert=False):
self.delete()


def move_videos_for_dataset(dataset: Dataset, move_files_on_disk: bool=False) -> None:
"""
Changes GlossVideo.videofile values for a Dataset
and moves files on disk if move_file_on_disk is True (default is False)
"""
for glossvideo in GlossVideo.objects.filter(gloss__lemma__dataset=dataset, glossvideonme=None,
glossvideoperspective=None):
glossvideo.move_video(move_files_on_disk=move_files_on_disk)
for glossvideo_nme in GlossVideoNME.objects.filter(gloss__lemma__dataset=dataset):
glossvideo_nme.move_video(move_files_on_disk=move_files_on_disk)
for glossvideos_perspective in GlossVideoPerspective.objects.filter(gloss__lemma__dataset=dataset):
glossvideos_perspective.move_video(move_files_on_disk=move_files_on_disk)


@receiver(models.signals.post_save, sender=Dataset)
def process_dataset_changes(sender, instance, **kwargs):
"""
Expand All @@ -1059,10 +1073,7 @@ def process_dataset_changes(sender, instance, **kwargs):
# and rename directories.
dataset = instance
if dataset._initial['acronym'] and dataset.acronym != dataset._initial['acronym']:
# Move all media
glossvideos = GlossVideo.objects.filter(gloss__lemma__dataset=dataset)
for glossvideo in glossvideos:
glossvideo.move_video(move_files_on_disk=False)
move_videos_for_dataset(dataset, move_files_on_disk=False)

# Rename dirs
glossvideo_path_original = os.path.join(WRITABLE_FOLDER, GLOSS_VIDEO_DIRECTORY, dataset._initial['acronym'])
Expand All @@ -1080,14 +1091,11 @@ def process_dataset_changes(sender, instance, **kwargs):

# If the default language has been changed, change all GlossVideos
# and move all video/poster files accordingly.
if dataset._initial['default_language'] and dataset.default_language != dataset._initial['default_language']:
# Move all media
glossvideos = GlossVideo.objects.filter(gloss__lemma__dataset=dataset)
for glossvideo in glossvideos:
glossvideo.move_video(move_files_on_disk=True)
if dataset._initial['default_language'] and dataset.default_language_id != dataset._initial['default_language']:
move_videos_for_dataset(dataset, move_files_on_disk=True)

# Make sure that _initial reflect the database for the dataset object
dataset._initial['default_language'] = dataset.default_language
dataset._initial['default_language'] = dataset.default_language_id


@receiver(models.signals.post_save, sender=LemmaIdglossTranslation)
Expand Down

0 comments on commit 9804622

Please sign in to comment.