def recalculate_participation(self): """Rebuild participation list.""" # build best list of recent participation I have recent = [] for date, item in self.__recent_blog_items: recent.append(item) for date, comment, item in self.__recent_blog_comments: recent.append(item) for date, comment, item in self.__recent_personal_comments: recent.append(item) for date, item in self.__recent_personal_news: recent.append(item) # get rid of duplicates recent = unique_items(recent) # limit to most recent items recent_by_date = [(i.watchable_last_change(), i) for i in recent] recent_by_date.sort() recent = recent_by_date[-self._recent_count:] self.__recent_participation = PersistentList([i for date, i in recent])
def set_other_perms(self, perms): perms = coerce_to_list(perms) perms = unique_items(perms) self.check_perm(perms) self.__other_perms = [] self.__other_perms.extend(perms) self._p_changed = 1
def set_dependencies(self, targets): """Register self as being dependent only on list of targets.""" targets = unique_items(targets) self.remove_all_dependencies() for target in targets: self.add_dependency(target)
def _calc_karma_score(self): """Calculate implied karma.""" if not hasattr(self, '_karma_changed') or not self._karma_changed: return karma = 0 group_members = self.get_group_members() for u in unique_items(self.owners + self.get_member_list()): if u not in group_members: karma += u.get_karma_score() for i in self.blog.get_items(): karma += i.get_karma_score() self.__karma_score = karma del self._karma_changed
def raw_to_html(self, raw, debug=0, suppress_tooltip=0): """Convert raw test to HTML and return it. Pass a non-zero numeric value to debug: none/5, info/1, warning/2, error/3, severe/4, or zero for no debug (same as 5). """ from qon.ui.blocks.wiki import rst_to_html reader = Reader() html = rst_to_html(raw, wiki=self.page.wiki, container=self.page, reader=reader, debug=debug, suppress_tooltip=suppress_tooltip, ) # rst parser keeps track of outbound wiki links. extract them # and store them in version, for use by Wiki refs = getattr(reader.document, '_qon_references', None) if refs: self._v_references = unique_items(refs) return html
def add_to_group(self, item): item = coerce_to_list(item) typecheck_seq(item, HasUserID) self.__items.extend(item) self.__items = unique_items(self.__items) self._p_changed = 1
def get_num_members(self): """return the number of unique members.""" return len(unique_items(self.owners + self.get_member_list()))