From 45180c1f4f2e75b38b57d581f454b170ca68cfe1 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sun, 27 Jan 2019 13:21:12 +0100 Subject: Tools to manage media files. * clean unused * find missing * rename and simplify --- ishtar_common/utils_migrations.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'ishtar_common/utils_migrations.py') diff --git a/ishtar_common/utils_migrations.py b/ishtar_common/utils_migrations.py index 431fe5bd7..f51465262 100644 --- a/ishtar_common/utils_migrations.py +++ b/ishtar_common/utils_migrations.py @@ -4,6 +4,7 @@ from __future__ import unicode_literals import datetime import json import os +import sys from django.core.files import File from django.db import connection @@ -102,11 +103,18 @@ def reinit_last_modified(apps, app_name, models): item.save() -def migrate_main_image(apps, app_name, model_name): +def migrate_main_image(apps, app_name, model_name, verbose=False): model = apps.get_model(app_name, model_name) - for item in model.objects.filter( - documents__image__isnull=False).exclude( - main_image__isnull=False).all(): + q = model.objects.filter(documents__image__isnull=False).exclude( + main_image__isnull=False) + ln = q.count() + if verbose: + sys.stdout.write("\n") + for idx, item in enumerate(q.all()): + if verbose: + sys.stdout.write(" * {}.{}: {}/{}\r".format(app_name, model_name, + idx + 1, ln)) + sys.stdout.flush() q = item.documents.filter( image__isnull=False).exclude(image='') if not q.count(): @@ -114,7 +122,10 @@ def migrate_main_image(apps, app_name, model_name): # by default get the lowest pk item.main_image = q.order_by('pk').all()[0] item.skip_history_when_saving = True + item._no_move = True item.save() + if verbose: + sys.stdout.write("\n") def m2m_historization_init(obj): -- cgit v1.2.3