Opened 7 years ago

Last modified 21 months ago

#5958 new enhancement

GeoTicketPlugin should cache unlocatable results

Reported by: k0s Owned by:
Priority: high Component: GeoTicketPlugin
Severity: normal Keywords:
Cc: Trac Release: 0.11


locate_ticket is currently quite slow on the /query screen if there are tickets with unlocatable locations. This is because these locations are not cached:

    def locate_ticket(self, ticket):
            results = get_all_dict(self.env, "select latitude, longitude from ticket_location where ticket='%s'" %
            if results:
                return ticket['location'], (results[0]['latitude'], results[0]['longitude'])

        if ticket['location'] is None or not ticket['location'].strip():
            raise GeolocationException

        # XXX blindly assume UTF-8
            location = ticket['location'].encode('utf-8')
        except UnicodeEncodeError:

        location, (lat, lon) = self.geolocate(location)
            self.set_location(, lat, lon)
        return location, (lat, lon)

A set of unlocatable locations should be hashed on the instance so that additional requests need not be made for bad locations (or more precisely, they need not be made more than once per instance).

Attachments (0)

Change History (3)

comment:1 Changed 7 years ago by k0s

  • Status changed from new to assigned

comment:2 Changed 7 years ago by k0s

  • Status changed from assigned to new

comment:3 Changed 21 months ago by rjollos

  • Owner k0s deleted

Add Comment

Modify Ticket

as new The ticket will remain with no owner.

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.