def continues_streak(a, streak): """Returns True if 'a' continues the streak in 'streak'""" if not len(streak): return False b = streak[-1] try: if a["user"] != b["user"] or \ a["rev_type"] not in ("edit text", "add text") or \ b["rev_type"] not in ("edit text", "add text") or \ a["version"] != b["version"] or \ texts.section_level_ref(a["ref"]) != texts.section_level_ref(b["ref"]): return False except: return False return True
def collapse_streak(streak): """Returns a single summary activity item that collapses 'streak'""" if not len(streak): return None if len(streak) == 1: return streak[0] act = streak[0] act.update({ "summary": True, #"contents": streak[1:], # add the update count form first item if it exists, in case that item was a sumamry itself "updates_count": len(streak) + act.get("updates_count", 1) -1, "history_url": "/activity/%s/%s/%s" % (texts.url_ref(texts.section_level_ref(act["ref"])), act["language"], act["version"].replace(" ", "_")), }) return act