示例#1
0
def add_from_google_reference(request, reference):
    """ Añade un lugar a partir de una referencia
        
            :param reference: clave de referencia
            :type reference: :class:`string`

    """
    place = Place.objects.get_by_google_reference(reference)
    if place is not None:  # ya existe, hacemos una redireccion permanente
        return redirect(place.get_absolute_url(), permanent=True)
    try:
        place = Place.insert_or_update_google(
            google_places_reference=reference, user=request.user)
    except Exception, e:
        return render_to_response('generic/placeerror.html', {'error': e},
                                  context_instance=RequestContext(request))
示例#2
0
def add_from_google_reference(request, reference):
    """ Añade un lugar a partir de una referencia
        
            :param reference: clave de referencia
            :type reference: :class:`string`

    """
    place = Place.objects.get_by_google_reference(reference)
    if place is not None:  # ya existe, hacemos una redireccion permanente
        return redirect(place.get_absolute_url(), permanent=True)
    try:
        place = Place.insert_or_update_google(google_places_reference=reference,
                                              user = request.user
                                              )
    except Exception, e:
        return render_to_response('generic/placeerror.html', {'error': e},
                                  context_instance=RequestContext(request))
示例#3
0
 def save(self, list_id='', **kwargs):
     import datetime
     try:
         starts = datetime.date(self.cleaned_data.get('starts_year', 1),
                                self.cleaned_data.get('starts_month', 1),
                                self.cleaned_data.get('starts_day', 1)
                                )
     except:
         starts = None
     try:
         ends = datetime.date(self.cleaned_data.get('ends_year', 1),
                           self.cleaned_data.get('ends_month', 1),
                           self.cleaned_data.get('ends_day', 1)
                          )
     except:
         ends = None
         
     import time
     time_format = "%H:%M"
     try:
         sh = time.strptime(self.cleaned_data['starts_hour'], time_format)
         starts_hour = datetime.time(sh[3], sh[4])
     except:
         starts_hour = None
     try:
         eh = time.strptime(self.cleaned_data['ends_hour'], time_format)
         ends_hour = datetime.time(eh[3], eh[4])
     except:
         ends_hour = None
     
     from geoalert.models import Suggestion
     if 'poi_id' in self.cleaned_data and self.cleaned_data['poi_id'] is not None:
         poi = Place.objects.get_by_id(self.cleaned_data['poi_id'])
         if poi is None:
             return None
     elif 'place_reference' in self.cleaned_data and self.cleaned_data['place_reference'] != '':
         poi = Place.insert_or_update_google(user=kwargs['user'],
                                             google_places_reference=self.cleaned_data['place_reference']
                                             )
         if poi is None:
             return None
     else:
         poi = None
     id = kwargs.get('id', None)
     try:
         suggestion = Suggestion.update_or_insert(
                  id = kwargs.get('id', None), name = self.cleaned_data['name'],
                  description = self.cleaned_data['description'], 
                  date_starts = starts,
                  date_ends = ends,
                  hour_starts = starts_hour,
                  hour_ends = ends_hour,
                  poi = poi,
                  user = kwargs['user'], done = self.cleaned_data.get('done', False),
                  tags = self.cleaned_data.get('tags', None),
                  vis = self.cleaned_data['visibility'],
                  to_facebook = self.cleaned_data['to_facebook'],
                  to_twitter = self.cleaned_data['to_twitter'],
                  )
     except Exception, e:
         import logging
         logging.error('EXCEPTION: editando sugerencia: %s' % e.message)
         import traceback
         logging.error(traceback.format_exc())
         return None