示例#1
0
 def __init__(self, show_title=True, title=u'Shoutbox', entrycount=10, hide_form=False):
     super(ShoutboxWidget, self).__init__()
     self.title = title
     self.show_title = show_title
     self.hide_form = hide_form
     self.entries = ShoutboxEntry.query.order_by(ShoutboxEntry.postdate.desc()) \
                                 .limit(entrycount).all()
     self.newposturl = escape(url_for('shoutbox/post', next=get_request().path))
示例#2
0
 def can_edit(self, user=None):
     if user is None:
         user = get_request().user
     if not user.is_somebody:
         return
     if not self.author.is_somebody:
         return user.has_privilege(BOARD_MODERATE)
     else:
         return self.author == user or user.has_privilege(BOARD_MODERATE)
示例#3
0
    def is_unread(self, user=None):
        if user is None:
            user = get_request().user
        if isinstance(user, AnonymousUser):
            return False

        global_lastread = GlobalLastRead.query.get(user.id)
        if not global_lastread:
            return False
        if global_lastread.date > self.modification_date:
            return False

        local_lastread = LocalLastRead.query.get((user.id,self.id))
        if not local_lastread:
            return True
        if local_lastread.date >= self.modification_date:
            return False

        return True
示例#4
0
    def is_unread(self, user=None):
        if user is None:
            user = get_request().user
        if isinstance(user, AnonymousUser):
            return False

        global_lastread = GlobalLastRead.query.get(user.id)
        if not global_lastread or not self.modification_date:
            return False
        if global_lastread.date > self.modification_date:
            return False

        topics=Topic.query \
               .filter(Topic.modification_date > global_lastread.date) \
               .filter(Topic.forum_id == self.id).all()
        for topic in topics:
            if topic.is_unread(user):
                return True
        return False
示例#5
0
 def can_delete(self, user=None):
     if user is None:
         user = get_request().user
     return self.topic.can_see(user) and user.has_privilege(BOARD_MODERATE)
示例#6
0
 def can_create_topic(self, user=None):
     if user is None:
         user = get_request().user
     return self.allow_anonymous or user.is_somebody
示例#7
0
 def can_see(self, user=None):
     if user is None:
         user = get_request().user
     return self.is_public or user.is_somebody