def postUpdateHook(cls, events, updated_attr_list, is_new_list):
        """
        To run after models have been updated
        """
        for (event, updated_attrs) in zip(events, updated_attr_list):
            try:
                LocationHelper.update_event_location(event)
            except Exception, e:
                logging.error("update_event_location for {} errored!".format(
                    event.key.id()))
                logging.exception(e)

            try:
                if event.normalized_location and event.normalized_location.lat_lng:
                    timezone_id = LocationHelper.get_timezone_id(
                        None, lat_lng=event.normalized_location.lat_lng)
                    if not timezone_id:
                        logging.warning(
                            "Timezone update for event {} failed!".format(
                                event.key_name))
                    else:
                        event.timezone_id = timezone_id
                else:
                    logging.warning(
                        "No Lat/Lng to update timezone_id for event {}!".
                        format(event.key_name))
            except Exception, e:
                logging.error("Timezone update for {} errored!".format(
                    event.key.id()))
                logging.exception(e)
    def get(self, event_key_id):
        self._require_admin()

        event = Event.get_by_id(event_key_id)
        if not event:
            self.abort(404)

        event.normalized_location = None
        LocationHelper.update_event_location(event)
        event = EventManipulator.createOrUpdate(event)

        self.response.out.write("New location: {}".format(event.normalized_location))
    def postUpdateHook(cls, events, updated_attr_list, is_new_list):
        """
        To run after models have been updated
        """
        for (event, updated_attrs) in zip(events, updated_attr_list):
            try:
                LocationHelper.update_event_location(event)
            except Exception, e:
                logging.error("update_event_location for {} errored!".format(event.key.id()))
                logging.exception(e)

            try:
                if event.normalized_location and event.normalized_location.lat_lng:
                    timezone_id = LocationHelper.get_timezone_id(
                        None, lat_lng=event.normalized_location.lat_lng)
                    if not timezone_id:
                        logging.warning("Timezone update for event {} failed!".format(event.key_name))
                    else:
                        event.timezone_id = timezone_id
                else:
                    logging.warning("No Lat/Lng to update timezone_id for event {}!".format(event.key_name))
            except Exception, e:
                logging.error("Timezone update for {} errored!".format(event.key.id()))
                logging.exception(e)