text: # -*- coding: utf-8 -*-
  # Generated by Django 1.11.1 on 2017-07-07 14:14
  from __future__ import unicode_literals
  
  from django.contrib.gis.gdal import GDALRaster, OGRGeometry
  from django.contrib.gis.geos import GEOSGeometry
  from django.db import migrations
  import os
  
  from webodm import settings
  
  
  def assets_path(project_id, task_id, *args):
      return os.path.join(settings.MEDIA_ROOT,
                          "project",
                          str(project_id),
                          "task",
                          str(task_id),
                          "assets",
                          *args)
  
  def transfer_existing_orthophoto_extent_values(apps, schema_editor):
      Task = apps.get_model('app', 'Task')
  
      for t in Task.objects.all():
          print("Checking {}".format(t))
          orthophoto_path = assets_path(t.project.id, t.id, "odm_orthophoto", "odm_orthophoto_4326.tif")
          if os.path.exists(orthophoto_path):
              print("Migrating {}".format(orthophoto_path))
  
              raster = GDALRaster(orthophoto_path)
              geom = OGRGeometry.from_bbox(raster.extent)
              t.orthophoto_extent = GEOSGeometry(geom.wkt)
              t.save()
  
              os.remove(orthophoto_path)
  
  class Migration(migrations.Migration):
  
      dependencies = [
          ('app', '0004_auto_20170707_1014'),
      ]
  
      operations = [
          migrations.RunPython(transfer_existing_orthophoto_extent_values),
      ]
  