From f0a858aab6691438eeec9094c2d46d95b5ddb306 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Tue, 7 Feb 2012 00:46:21 -0600 Subject: Make rematch command do a bit more Now that we have a few objects that can potentially link back to developers, allow flag requests to also be rematched. Signed-off-by: Dan McGee --- devel/utils.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'devel/utils.py') diff --git a/devel/utils.py b/devel/utils.py index 62b12cd..ec035d1 100644 --- a/devel/utils.py +++ b/devel/utils.py @@ -48,6 +48,7 @@ class UserFinder(object): def __init__(self): self.cache = {} self.username_cache = {} + self.email_cache = {} @staticmethod def user_email(name, email): @@ -110,6 +111,7 @@ class UserFinder(object): pass self.cache[userstring] = user + self.email_cache[email] = user return user def find_by_username(self, username): @@ -126,8 +128,27 @@ class UserFinder(object): self.username_cache[username] = user return user + def find_by_email(self, email): + if not email: + return None + if email in self.email_cache: + return self.email_cache[email] + + user = None + try: + user = self.user_email(None, email) + except User.DoesNotExist: + try: + user = self.profile_email(None, email) + except User.DoesNotExist: + pass + + self.email_cache[email] = user + return user + def clear_cache(self): self.cache = {} self.username_cache = {} + self.email_cache = {} # vim: set ts=4 sw=4 et: -- cgit v1.2.3-24-g4f1b