def add_object(request): error = None message = None if request.method == 'POST': form = AddObjectForm(request.POST) if form.is_valid(): object_name = form.cleaned_data['object_name'].strip() object_coordinates = form.cleaned_data['object_coordinates'].strip() resolve_choice = form.cleaned_data['resolve_choice'].strip() if object_name: data = query.getObjectByName(object_name, service=resolve_choice) else: # Need to convert into proper RA/DEC # if we have two elements, space-separated, treat as RA/DEC in deg. ra,dec = utils.string2RADEC(object_coordinates) if ra is None: error = "Unrecognized coordinate format" data = None else: data = query.getObjectByCoord(ra,dec, service=resolve_choice) if data is None: if error is None: error = "No object found" else: try: o = Object.objects.get(name=object_name) for key in data: setattr(o, key, data[key]) message = "Updated exising object" except ObjectDoesNotExist: message = "Adding object %s" % data['name'] o = Object(**data) # Get the finder img = query.get_image(o.RA, o.DEC) o.finder.save('finder_'+o.savename()+'.gif', ContentFile(img)) o.save() return HttpResponseRedirect('/navigator/%d/' % o.pk) else: form = AddObjectForm() t = loader.get_template('navigator/add_object.html') c = RequestContext(request, { 'form':form, 'message':message, 'error':error, 'action':'add'}) return HttpResponse(t.render(c))
args['size'] = t['size'][i] args['Mv'] = t['Mv'][i] args['objtype'] = t['type'][i] if not t['distance'][i]: args['distance'] = -1 else: args['distance'] = t['distance'][i] try: o = Object.objects.get(name=name) for key in args: setattr(o, key, args[key]) print "Found existing object",o.pk except ObjectDoesNotExist: print "Adding object" o = Object(name=name, **args) if args['objtype'] == 'SS': f = open('SS_default.png') o.finder.save('finder_'+o.savename()+'.png', ContentFile(f.read())) f.close() else: print "Fetching",url % (args['RA'],args['DEC']) u = urllib.urlopen(url % (args['RA'],args['DEC'])) f = cStringIO.StringIO(u.read()) u.close() im = Image.open(f) #f.close() x,y = im.size im2 = im.resize((x/2,y/2)) f2 = cStringIO.StringIO() im2.save(f2, format='PNG')