Beispiel #1
0
 def __init__(self, name='', group=None):
     Watchable.__init__(self)
     self.group = group
     self.name = name
     self.modified = never
     self.__items = PersistentList()
     self.__categories = PersistentList()
Beispiel #2
0
 def __init__(self, blog, author, title, summary, main='', dont_watch=0):
     qon.karma.HasKarma.__init__(self)
     Watchable.__init__(self)
     HasComments.__init__(self)
     self.blog = blog
     self.__deleted = 0
     self.author = author
     self.title = title
     self.__summary = CompressedText(summary)
     if main:
         self.__main = CompressedText(main)
     else:
         self.__main = None
     self.__cached_html_summary = PersistentCache(self._update_html_cache)
     # history is a string, showing diffs as items are edited
     self.history = None
     self.date = datetime.utcnow()
     self.modified = None
     self.parent_blogitem = None     # for comment, will point to parent blogitem upon add_comment(); otherwise None
     
     if dont_watch:
         """Comments aren't watchable."""
         self.not_watchable = 1
     else:
         # for watchable items only (not comments)
         self.__user_access = ConflictAvoidingOOBTree()
Beispiel #3
0
 def __init__(self, creator, title, description, end_date, choices):
     """Create a poll. Choices is a list of strings."""
     
     Watchable.__init__(self)
     
     # PollContainer (set by container when added)
     self.container = None
     
     # User who created poll
     self.creator = creator
     
     # Date created/modified
     self.date = datetime.utcnow()
     
     # End date
     self.end_date = end_date
     
     # Title/Description
     self.title = title
     self.__description = CompressedText(description)
     self.__cached_html = PersistentCache(self._update_html_cache)
     
     # Other settings and vote data
     self.__data = PollData(choices)
     
     # cache of PollData items
     self.__num_votes_cast = None
     
     # poll index within container
     self.__item_index = None
Beispiel #4
0
    def __init__(self, user_id, name, owner):
        HasUserID.__init__(self)
        HasGroupMembership.__init__(self)
        Sponsored.__init__(self, self._min_sponsors)
        HasMembership.__init__(self)
        HasAccessPolicy.__init__(self)
        Watchable.__init__(self)
        qon.tags.HasTags.__init__(self)
        self.user_id = user_id
        self.name = name
        self.description = ''
        self.date = datetime.utcnow()
        self.__karma_score = 0
        self.__deferrals = qon.defer.DeferralList()
        
        # set owner, so other modules like Wiki, Blog, etc., will have it
        self.add_owner(owner)

        self.wiki = qon.wiki.Wiki(self)
        self.blog = qon.blog.Blog(self)
        self.file_db = FileDB(self)
        self.polls = PollContainer(self)
        self.trackers = PersistentList()

        # track the number of PMs sent to members of this group
        self.total_group_pms = 0
Beispiel #5
0
    def watchable_changed(self, now=None):
        Watchable.watchable_changed(self, now)

        # flush recent changes cache
        self.__cached_recent_changes.flush()

        # group changed, too
        self.group.watchable_changed(now)
Beispiel #6
0
    def watchable_changed(self, now=None):
        # remove cached recent_items
        if hasattr(self, '_cached_recent_items_with_date'):
            del self._cached_recent_items_with_date

        # tells group he has changed, too
        Watchable.watchable_changed(self, now)
        self.ihb.watchable_changed(now)        
Beispiel #7
0
 def __init__(self, wiki, name=''):
     Watchable.__init__(self)
     qon.karma.HasKarma.__init__(self)
     self.wiki = wiki
     self.outbound_references = None
     self.inbound_references = None
     self.name = clean_page_name(name)
     self.versions = PersistentList()
     self.blog = Blog(self)
     self.locked_by_user = None
     self.__cached_html = PersistentCache(self._update_html_cache)
     self.__cached_html2 = PersistentCache(self._update_html2_cache)
     self.new_revision(force_new=1)
Beispiel #8
0
    def __init__(self, group):
        Watchable.__init__(self)
        self.group = group
        self.pages = OOBTree.OOBTree()
        self.__cached_recent_changes = PersistentCache(self._update_recent_changes_cache)
        self.index_page = WikiPage(self, name='index')
        self.pages['index'] = self.index_page
        self.index_page.versions[-1].set_raw(_default_index_page % \
            dict(top_header='='*len(self.group.name),
                bottom_header='='*len(self.group.name),
                title=self.group.name,
                group_name=self.group.get_user_id()
                )
            )
        self.index_page.versions[-1].set_date(datetime.utcnow())
        self.index_page.versions[-1].set_author(self.group.owners[0])
        self.index_page.versions[-1].set_title(self.group.name)
        self.__uniques = OOBTree.OOBTree()

        self._create_default_pages()
Beispiel #9
0
 def watchable_changed(self, now=None):
     # tells group he has changed, too
     Watchable.watchable_changed(self, now)
     self.ihb.watchable_changed(now)
Beispiel #10
0
 def watchable_changed(self, now=None):
     # tells container he has changed, too
     Watchable.watchable_changed(self, now)
     self.container.watchable_changed(now)
Beispiel #11
0
 def __init__(self, ihb):
     """Create a Polls belonging to an IHasBlog."""
     Watchable.__init__(self)
     self.ihb = ihb
     self.__polls = PersistentList()
Beispiel #12
0
 def watchable_changed(self, now=None):
     # wiki changed, too
     Watchable.watchable_changed(self, now)
     self.wiki.watchable_changed(now)
Beispiel #13
0
 def watchable_changed(self, now=None):
     # tells blog he has changed, too
     Watchable.watchable_changed(self, now)
     if self.blog:
         self.blog.watchable_changed(now)
Beispiel #14
0
 def __init__(self, ihb):
     """Create a blog belonging to IHasBlog."""
     Watchable.__init__(self)
     self.ihb = ihb
     self.__items = PersistentList()
     self.__main_item = None