Exemple #1
0
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))
Exemple #2
0
   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')