views.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import glob
  2. import os
  3. from django.conf import settings
  4. from django.http import HttpResponse
  5. from multiprocessing import Process
  6. from .models import AutomaticImport
  7. from volumes.models import Volume
  8. from volumes.processing.service import SliceGenerator
  9. from mongoengine import ValidationError
  10. import json
  11. import pdb
  12. DEFAULT_SLICE_FOLDER = 'slices_8bit'
  13. def trigger(request):
  14. volumes_to_process = []
  15. paths = sorted(glob.glob(os.path.join(settings.DEFAULT_IMPORT_PATH, '*')))
  16. for path in paths:
  17. automatic_import = AutomaticImport.objects(path=path).first()
  18. if(automatic_import is None):
  19. volume = Volume()
  20. volume.imageSequence = True
  21. volume.path = os.path.join(path, DEFAULT_SLICE_FOLDER)
  22. volume.name = path.replace(settings.DEFAULT_IMPORT_PATH, '')
  23. volume = volume.save()
  24. volumes_to_process.append(volume.id)
  25. automatic_import = AutomaticImport()
  26. automatic_import.path = path
  27. automatic_import.volume_id = volume.id
  28. if len(volumes_to_process) > 0:
  29. process = Process(target=SliceGenerator.generateListOfVolumes, args=(volumes_to_process,))
  30. process.start()
  31. jsonDump = json.dumps({
  32. 'triggered': True,
  33. 'number_of_new_volumes': len(volumes_to_process)
  34. })
  35. return HttpResponse(jsonDump, content_type="json")
  36. def clear(request):
  37. models = AutomaticImport.objects()
  38. for automatic_import in models:
  39. automatic_import.delete()
  40. return HttpResponse(json.dumps({'deleted': len(models)}), content_type="json")