diff --git a/tasks/afc_statistics.py b/tasks/afc_statistics.py index f2bcdae..2165acc 100644 --- a/tasks/afc_statistics.py +++ b/tasks/afc_statistics.py @@ -582,26 +582,26 @@ class AFCStatistics(Task): elif chart == self.CHART_MISPLACE: return self.get_create(pageid) elif chart == self.CHART_ACCEPT: - search_for = None - search_not = ["R", "P", "T", "D"] + search_with = [] + search_without = ["R", "P", "T", "D"] elif chart == self.CHART_PEND: - search_for = "P" - search_not = [] + search_with = ["P"] + search_without = [] elif chart == self.CHART_REVIEW: - search_for = "R" - search_not = [] + search_with = ["R"] + search_without = [] elif chart == self.CHART_DECLINE: - search_for = "D" - search_not = ["R", "P", "T"] - return self.search_history(pageid, chart, search_for, search_not) + search_with = ["D"] + search_without = ["R", "P", "T"] + return self.search_history(pageid, chart, search_with, search_without) - def search_history(self, pageid, chart, search_for, search_not): + def search_history(self, pageid, chart, search_with, search_without): """Search through a page's history to find when a status was set. Linear search backwards in time for the edit right after the most recent edit that fails the (pseudocode) test: - ``status_set(search_for) && !status_set(any_of(search_not))`` + ``status_set(any(search_with)) && !status_set(any(search_without))`` """ query = """SELECT rev_user_text, rev_timestamp, rev_id FROM revision WHERE rev_page = ? ORDER BY rev_id DESC""" @@ -622,8 +622,8 @@ class AFCStatistics(Task): self.logger.exception(msg.format(pageid, chart)) return None, None, None statuses = self.get_statuses(content) - matches = [s in statuses for s in search_not] - if any(matches) or (search_for and search_for not in statuses): + req = search_with and not any([s in statuses for s in search_with]) + if any([s in statuses for s in search_without]) or req: return last timestamp = datetime.strptime(ts, "%Y%m%d%H%M%S") last = (user.decode("utf8"), timestamp, revid)