def save_obj(vals):
    imp, transf, comunidade, name, desc, folder, tipo, geom = vals
    geom = eval(geom)
    print type(geom)
    print 'saving: ', vals
    if ',' in comunidade:
        comunidade = comunidade.split(',')[0]
    if comunidade == 'morro-do-INPS':
        comunidade = 'morro-do-inps'
    elif comunidade == 'mineiros':
        comunidade = 'morro-dos-mineiros'
    elif comunidade == 'conjunto-habitacional-BNH':
        comunidade = 'conjunto-habitacional-bnh'


    if transf == 'sim':
        tipo = 'polys'
        x,y, z = map(float, geom[0].split(','))
        geom = []
        geom.append('%s,%s,%s' % (x + 0.0005, y + 0.0005, z))
        geom.append('%s,%s,%s' % (x + 0.0005, y - 0.0005, z))
        geom.append('%s,%s,%s' % (x - 0.0005, y - 0.0005, z))
        geom.append('%s,%s,%s' % (x - 0.0005, y + 0.0005, z))
        geom.append('%s,%s,%s' % (x + 0.0005, y + 0.0005, z))

    if tipo == 'polys':
        coords = ''
        for i, coord in enumerate(geom):
            x,y, z = coord.split(',')
            coords += '%s %s' % (y, x)
            if not i == len(geom) - 1:
                coords += ', '
        geo_ref = 'GEOMETRYCOLLECTION ( POLYGON (( %s )))' % coords
    elif tipo == 'point':
        x,y, z = geom[0].split(',')
        geo_ref = 'GEOMETRYCOLLECTION ( POINT ( %s %s))' % (y, x)


    if imp == 'R':
        r = Resource()
        r.name = name
        r.description = desc
        if comunidade:
            c = Community.objects.get(slug=comunidade)
            r.community = c
        r.geometry = geo_ref
        r.save()

    elif imp == 'N':
        n = Need()
        n.title = name
        n.description = desc
        if comunidade:
            c = Community.objects.get(slug=comunidade)
            n.community = c
        n.geometry = geo_ref
        # n.target_audiences.add(1)
        n.save()

    elif imp == 'O':
        if name:
            o = Organization()
            o.name = name
            o.description = desc
            o.save()
            if comunidade:
                c = Community.objects.get(slug=comunidade)
                o.community.add(c)

            b = OrganizationBranch()
            b.name = name + ' - sede'
            b.geometry = geo_ref
            b.organization = o
            b.save()
def save_obj(vals):
    imp, transf, comunidade, name, desc, folder, tipo, geom = vals
    geom = eval(geom)
    print type(geom)
    print 'saving: ', vals
    if ',' in comunidade:
        comunidade = comunidade.split(',')[0]

    if transf == 'sim':
        tipo = 'polys'
        x, y, z = map(float, geom[0].split(','))
        geom = []
        geom.append('%s,%s,%s' % (x + 0.0005, y + 0.0005, z))
        geom.append('%s,%s,%s' % (x + 0.0005, y - 0.0005, z))
        geom.append('%s,%s,%s' % (x - 0.0005, y - 0.0005, z))
        geom.append('%s,%s,%s' % (x - 0.0005, y + 0.0005, z))
        geom.append('%s,%s,%s' % (x + 0.0005, y + 0.0005, z))

    if tipo == 'polys':
        coords = ''
        for i, coord in enumerate(geom):
            x, y, z = coord.split(',')
            coords += '%s %s' % (y, x)
            if not i == len(geom) - 1:
                coords += ', '
        geo_ref = 'GEOMETRYCOLLECTION ( POLYGON (( %s )))' % coords
    elif tipo == 'point':
        x, y, z = geom[0].split(',')
        geo_ref = 'GEOMETRYCOLLECTION ( POINT ( %s %s))' % (y, x)

    if imp == 'R':
        r = Resource()
        r.name = name
        r.description = desc
        if comunidade:
            c = Community.objects.get(slug=comunidade)
            r.community = c
        r.geometry = geo_ref
        r.save()

    elif imp == 'N':
        n = Need()
        n.title = name
        n.description = desc
        if comunidade:
            c = Community.objects.get(slug=comunidade)
            n.community = c
        n.geometry = geo_ref
        # n.target_audiences.add(1)
        n.save()

    elif imp == 'O':
        if name:
            o = Organization()
            o.name = name
            o.description = desc
            o.save()
            if comunidade:
                c = Community.objects.get(slug=comunidade)
                o.community.add(c)

            b = OrganizationBranch()
            b.name = name + ' - sede'
            b.geometry = geo_ref
            b.organization = o
            b.save()
def save_obj(vals):
    imp, transf, comunidade, name, desc, folder, tipo, geom = vals
    geom = eval(geom)
    print 'saving: ', vals

    user = User.objects.get(username='******')
    now = datetime.now()

    # Transform geometry data type
    if transf == 'sim':
        tipo = 'polys'
        x, y, z = map(float, geom[0].split(','))
        geom = []
        geom.append('%s,%s,%s' % (x + 0.0003, y + 0.0003, z))
        geom.append('%s,%s,%s' % (x + 0.0003, y - 0.0003, z))
        geom.append('%s,%s,%s' % (x - 0.0003, y - 0.0003, z))
        geom.append('%s,%s,%s' % (x - 0.0003, y + 0.0003, z))
        geom.append('%s,%s,%s' % (x + 0.0003, y + 0.0003, z))

    # build geomtry info
    if tipo == 'polys':
        coords = ''
        for i, coord in enumerate(geom):
            x, y, z = coord.split(',')
            coords += '%s %s' % (y, x)
            if not i == len(geom) - 1:
                coords += ', '
        geo_ref = 'GEOMETRYCOLLECTION ( POLYGON (( %s )))' % coords
    elif tipo == 'point':
        x, y, z = geom[0].split(',')
        geo_ref = 'GEOMETRYCOLLECTION ( POINT ( %s %s))' % (y, x)

    # save Resource
    if imp == 'R':

        #fix comunidade
        tags = []
        if ',' in comunidade:
            split = [c.strip() for c in comunidade.split(',')]
            comunidade, tags = split[0], split[1:]

        r = Resource()
        r.name = name
        r.description = desc

        # comunity is the firt
        if comunidade:
            c = Community.objects.get(slug=comunidade)
            r.community = c

        r.creator = user
        r.creation_date = now
        r.geometry = geo_ref
        r.save()

        # load remaining comunities as tags
        for tag in tags:
            r.tags.add(tag)

    # save Need
    elif imp == 'N':

        #fix comunidade
        tags = []
        if ',' in comunidade:
            split = [c.strip() for c in comunidade.split(',')]
            comunidade, tags = split[0], split[1:]

        n = Need()
        n.title = name
        n.description = desc

        if comunidade:
            c = Community.objects.get(slug=comunidade)
            n.community = c

        n.creator = user
        n.creation_date = now
        n.geometry = geo_ref
        # n.target_audiences.add(1)
        n.save()

        # load remaining comunities as tags
        for tag in tags:
            n.tags.add(tag)

    # save organization
    elif imp == 'O':
        if name:
            o = Organization()
            o.name = name
            o.description = desc
            o.creation_date = now
            o.creator = user
            o.save()
            for comm in [c.strip() for c in comunidade.split(',')]:
                c = Community.objects.get(slug=comm)
                o.community.add(c)

            b = OrganizationBranch()
            b.name = name + ' - sede'
            b.geometry = geo_ref
            b.organization = o
            b.creator = user
            b.creation_date = now
            b.save()