def node_to_li(self, node):
        '''Convert a node into an HTML li

        ARGUMENTS
          node  The node to convert.

        RETURNS
          A Unicode string that contains the li.

        SIDE EFFECTS
          None.
        '''

        page = Page(node[0])
        t = '%(name)s, last edited by %(fn)s on %(date)s' % \
          {'name': page.name,
           'date': munge_date(self.context, page.date),
           'fn': page.editor.name}
        retval = u'<li id="%(nodeId)s">\n\t<a title="%(title)s" '\
          u'href="%(url)s"><cite>%(name)s</cite> '\
          u'<code>(%(id)s)</code></a>' % {
            'title': t,
            'url': page.url,
            'name': page.name,
            'id': page.id,
            'nodeId': url_to_nodeId(self.treeIdPrefix, page.url)
        }
        if node[1]:
            cLi = u'\n'.join(self.node_to_li(c) for c in node[1])
            retval = u'%s\n<ul>\n%s\n</ul>\n</li>' % (retval, cLi)
        else:
            retval = u'%s\n</li>' % retval
        assert retval
        assert type(retval) == unicode
        return retval
Ejemplo n.º 2
0
 def xhtml(self):
     cssClass = u'audit-event gs-profile-password-%s' %\
       self.code
     retval = u'<span class="%s">Reset a password.</span>' % cssClass
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 3
0
 def xhtml(self):
     cssClass = 'audit-event gs-profile-email-verify-%s' % self.code
     retval = '<span class="%s">Verified the address '\
              '<code class="email">%s</code>.</span>' % \
              (cssClass, self.instanceDatum)
     retval = '%s (%s)' % (retval, munge_date(self.context, self.date))
     return retval
    def node_to_li(self, node):
        '''Convert a node into an HTML li

        ARGUMENTS
          node  The node to convert.

        RETURNS
          A Unicode string that contains the li.

        SIDE EFFECTS
          None.
        '''

        page = Page(node[0])
        t = '%(name)s, last edited by %(fn)s on %(date)s' % \
          {'name': page.name,
           'date': munge_date(self.context, page.date),
           'fn': page.editor.name}
        retval = u'<li id="%(nodeId)s">\n\t<a title="%(title)s" '\
          u'href="%(url)s"><cite>%(name)s</cite> '\
          u'<code>(%(id)s)</code></a>' % {
            'title': t,
            'url': page.url,
            'name': page.name,
            'id': page.id,
            'nodeId': url_to_nodeId(self.treeIdPrefix, page.url)
        }
        if node[1]:
            cLi = u'\n'.join(self.node_to_li(c) for c in node[1])
            retval = u'%s\n<ul>\n%s\n</ul>\n</li>' % (retval, cLi)
        else:
            retval = u'%s\n</li>' % retval
        assert retval
        assert type(retval) == unicode
        return retval
Ejemplo n.º 5
0
 def xhtml(self):
     cssClass = 'audit-event groupserver-group-member-join-%s' %\
                self.code
     retval = '<span class="%s">Already a member of %s </span>' %\
              (cssClass, self.groupInfo.name)
     retval = '%s (%s)' % (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 6
0
 def xhtml(self):
     cssClass = 'audit-event gs-profile-email-verify-%s' % self.code
     retval = '<span class="%s">Cleared email verification '\
              'IDs for <code class="email">%s</code>.</span>' % \
              (cssClass, self.instanceDatum)
     retval = '%s (%s)' % (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 7
0
 def xhtml(self):
     cssClass = 'audit-event site-event-%s' % self.code
     retval = '<span class="%s">Change introduction</span>' % cssClass
     retval = '%s &#8212; %s' % (retval,
                                 userInfo_to_anchor(self.userInfo))
     retval = '%s (%s)' % (retval, munge_date(self.context, self.date))
     return retval
    def get_history(self):
        """ Gets all history entries of the page """
        objects = []
        publishedItem = None
        items = self.pageHistory.get_versions()
        items.reverse()
        for item in items:
            authorInfo = createObject('groupserver.UserFromId',
              self.context, item.editor)
            editor = {
              'name': authorInfo.name,
              'id': authorInfo.id,
              'url': authorInfo.url,
              'anonymous': authorInfo.anonymous
            }
            d = munge_date(self.context, item.creationDate)
            entry = {'editor': editor,
                      'size': ISized(item).sizeForDisplay(),
                      'modified': '',
                      'id': item.id,
                      'date': d,
                      'published': item.published,
                      'changing': self.changedVersion == item.id,
                      'children': [],
                      }
            if ((not item.published) and (publishedItem is not None)):
                publishedItem['children'].append(entry)
            else:
                objects.append(entry)
                publishedItem = entry

        return objects
Ejemplo n.º 9
0
 def xhtml(self):
     cssClass = 'audit-event gs-site-member-%s' % self.code
     retval = '<span class="%s">Joined the site <cite>%s</cite>.' %\
                 (cssClass, self.siteInfo.name)
     retval = '%s (%s)' % \
         (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 10
0
 def xhtml(self):
     cssClass = 'audit-event gs-site-member-%s' % self.code
     retval = '<span class="%s">Joined the site <cite>%s</cite>.' %\
                 (cssClass, self.siteInfo.name)
     retval = '%s (%s)' % \
         (retval, munge_date(self.context, self.date))
     return retval
 def xhtml(self):
     cssClass = 'audit-event groupserver-group-member-leave-command-%s' % self.code
     r = '<span class="{0}">Email-command to leave {1}, recieved from '\
         '<code class="email">{2}</code> but no profile could be found ({3})'
     retval = r.format(cssClass, groupInfo_to_anchor(self.groupInfo), self.instanceDatum,
                       munge_date(self.context, self.date))
     return retval
 def xhtml(self):
     cssClass = 'audit-event groupserver-group-member-leave-command-%s' % self.code
     r = '<span class="{0}">Sent an email in to leave {1}, but you are not a member of the '\
         'group</span> ({2})'
     retval = r.format(cssClass, groupInfo_to_anchor(self.groupInfo),
                       munge_date(self.context, self.date))
     return retval
Ejemplo n.º 13
0
    def xhtml(self):
        cssClass = u'audit-event groupserver-login-event-%s' % self.code
        retval = u'<span class="%s"><strong>Failed</strong> to log '\
          u'in because of an incorrect password.' % (cssClass)
        retval = u'%s (%s)' % \
          (retval, munge_date(self.context, self.date))

        return retval
Ejemplo n.º 14
0
    def xhtml(self):
        cssClass = 'audit-event groupserver-group-member-join-%s' %\
            self.code
        retval = '<span class="%s">Confirmed the request to join '\
            '%s</span>' % (cssClass, self.groupInfo.name)

        retval = '%s (%s)' % (retval, munge_date(self.context, self.date))
        return retval
Ejemplo n.º 15
0
    def xhtml(self):
        cssClass = 'audit-event groupserver-group-member-join-%s' %\
            self.code
        retval = '<span class="%s">Being set to moderated %s</span>' %\
            (cssClass, self.groupInfo.name)

        retval = '%s (%s)' % (retval, munge_date(self.context, self.date))
        return retval
 def xhtml(self):
     cssClass = 'audit-event groupserver-group-member-email-settings-%s'\
                % self.code
     r = '<span class="{0}">Sent an email in to switch off digest mode '\
         'mode for {1}</span> ({2})'
     retval = r.format(cssClass, groupInfo_to_anchor(self.groupInfo),
                       munge_date(self.context, self.date))
     return retval
Ejemplo n.º 17
0
    def xhtml(self):
        cssClass = 'audit-event gs-group-messages-add-base-%s' % self.code
        retval = '<span class="%s">Added an email (%s) to %s.</span>' % \
          (cssClass, self.instanceDaturm, self.supplementaryDatum)

        retval = '%s (%s)' % \
          (retval, munge_date(self.context, self.date))
        return retval
Ejemplo n.º 18
0
 def xhtml(self):
     cssClass = u'audit-event gs-profile-password-%s' %\
       self.code
     retval = u'<span class="%s">Password reset ID %s not '\
         u'found.</span>' % (cssClass, self.instanceDatum)
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 19
0
    def xhtml(self):
        cssClass = 'audit-event groupserver-group-member-join-%s' %\
            self.code
        retval = '<span class="%s">Confirmed the request to join '\
            '%s</span>' % (cssClass, self.groupInfo.name)

        retval = '%s (%s)' % (retval, munge_date(self.context, self.date))
        return retval
Ejemplo n.º 20
0
    def xhtml(self):
        cssClass = 'audit-event groupserver-group-member-request-%s' % \
            self.code
        retval = '<span class="%s">Requested membership of %s</span>' %\
            (cssClass, self.groupInfo.name)

        retval = '%s (%s)' % (retval, munge_date(self.context, self.date))
        return retval
Ejemplo n.º 21
0
 def xhtml(self):
     cssClass = u'audit-event gs-profile-password-%s' %\
       self.code
     retval = u'<span class="%s">Followed a used password-reset '\
         u'link.</span>' % cssClass
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 22
0
 def xhtml(self):
     cssClass = u'audit-event groupserver-login-event-%s' % self.code
     retval = u'<span class="%s">Logged in, and visited '\
       u'<a href="%s"><code class="url">%s</code></a>' % \
       (cssClass, self.supplementaryDatum, self.supplementaryDatum)
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 23
0
 def xhtml(self):
     cssClass = u'audit-event groupserver-login-event-%s' % self.code
     retval = u'<span class="%s">Logged in, and visited '\
       u'<a href="%s"><code class="url">%s</code></a>' % \
       (cssClass, self.supplementaryDatum, self.supplementaryDatum)
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 24
0
    def xhtml(self):
        cssClass = 'audit-event gs-group-messages-add-base-%s' % self.code
        retval = '<span class="%s">Added an email (%s) to %s.</span>' % \
          (cssClass, self.instanceDaturm, self.supplementaryDatum)

        retval = '%s (%s)' % \
          (retval, munge_date(self.context, self.date))
        return retval
Ejemplo n.º 25
0
    def xhtml(self):
        cssClass = u'audit-event groupserver-login-event-%s' % self.code
        retval = u'<span class="%s"><strong>Failed</strong> to log '\
          u'in because of an incorrect password.' % (cssClass)
        retval = u'%s (%s)' % \
          (retval, munge_date(self.context, self.date))

        return retval
 def xhtml(self):
     cssClass = 'audit-event groupserver-group-member-email-settings-%s'\
                % self.code
     r = '<span class="{0}">Sent an email in to switch off digest mode '\
         'mode for {1}</span> ({2})'
     retval = r.format(cssClass, groupInfo_to_anchor(self.groupInfo),
                       munge_date(self.context, self.date))
     return retval
Ejemplo n.º 27
0
    def xhtml(self):
        cssClass = u'audit-event groupserver-login-event-%s' % self.code
        retval = u'<span class="%s"><strong>Failed</strong> to log '\
          u'in <code>%s</code> because no email or user-identifer '\
          u'matched.' % (cssClass, self.instanceDatum)
        retval = u'%s (%s)' % \
          (retval, munge_date(self.context, self.date))

        return retval
Ejemplo n.º 28
0
 def xhtml(self):
     cssClass = u'audit-event profile-event-%s' % self.code
     retval = u'<span class="%s">Set password</span>' % cssClass
     if self.instanceUserInfo.id != self.userInfo.id:
         retval = u'%s &#8212; %s' %\
           (retval, userInfo_to_anchor(self.userInfo))
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 29
0
    def xhtml(self):
        cssClass = u'audit-event groupserver-login-event-%s' % self.code
        retval = u'<span class="%s"><strong>Failed</strong> to log '\
          u'in <code>%s</code> because no email or user-identifer '\
          u'matched.' % (cssClass, self.instanceDatum)
        retval = u'%s (%s)' % \
          (retval, munge_date(self.context, self.date))

        return retval
Ejemplo n.º 30
0
 def xhtml(self):
     cssClass = u'audit-event gs-profile-password-%s' %\
       self.code
     retval = u'<span class="%s">Requested password reset '\
         u'using <code class="email">%s</code>.</span>' % \
         (cssClass, self.instanceDatum)
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 31
0
    def xhtml(self):
        cssClass = 'audit-event groupserver-group-member-%s' % self.code
        retval = '<span class="%s">Given the status of %s in %s</span>' % \
            (cssClass, self.instanceDatum, groupInfo_to_anchor(self.groupInfo))

        if self.instanceUserInfo.id != self.userInfo.id:
            retval = '%s &#8212; %s' % (retval, userInfo_to_anchor(self.userInfo))
        retval = '%s (%s)' % (retval, munge_date(self.context, self.date))
        return retval
 def get_version_description(self, ver):
     vUI = createObject('groupserver.UserFromId', self.folder, ver.editor)
     dt = munge_date(self.folder, ver.creationDate, '%Y %b %d %H:%M:%S')
     if vUI.anonymous:
         retval = 'an %s (%s)' % (vUI.name.lower(), dt)
     else:
         retval = '%s (%s)' % (userInfo_to_anchor(vUI), dt)
     assert retval
     return retval
Ejemplo n.º 33
0
 def xhtml(self):
     cssClass = u'audit-event gs-profile-password-%s' %\
       self.code
     retval = u'<span class="%s">Unrecognised address '\
         u'<code class="email">%s</code> used to try and reset a'\
         u'password .</span>' % \
         (cssClass, self.instanceDatum)
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 34
0
 def xhtml(self):
     cssClass = 'audit-event groupserver-group-home-%s' %\
         self.code
     retval = '<span class="%s">%s changed the About tab on the'\
         'homepage of %s</span>' % \
         (cssClass, userInfo_to_anchor(self.instanceUserInfo),
          groupInfo_to_anchor(self.groupInfo))
     retval = '%s (%s)' % \
         (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 35
0
 def xhtml(self):
     cssClass = 'audit-event groupserver-group-home-%s' %\
         self.code
     retval = '<span class="%s">%s changed the About tab on the'\
         'homepage of %s</span>' % \
         (cssClass, userInfo_to_anchor(self.instanceUserInfo),
          groupInfo_to_anchor(self.groupInfo))
     retval = '%s (%s)' % \
         (retval, munge_date(self.context, self.date))
     return retval
 def xhtml(self):
     cssClass = 'audit-event groupserver-group-member-email-settings-%s'\
                % self.code
     r = '<span class="{0}">Switched to web-only mode in {1}'
     retval = r.format(cssClass, groupInfo_to_anchor(self.groupInfo))
     if self.adminChanged:
         uu = userInfo_to_anchor(self.userInfo)
         retval = '{0} by {1}'.format(retval, uu)
     d = munge_date(self.context, self.date)
     retval = '{0}</span> ({1})'.format(retval, d)
     return retval
 def xhtml(self):
     cssClass = 'audit-event groupserver-group-member-email-settings-%s'\
                % self.code
     r = '<span class="{0}">Switched to web-only mode in {1}'
     retval = r.format(cssClass, groupInfo_to_anchor(self.groupInfo))
     if self.adminChanged:
         uu = userInfo_to_anchor(self.userInfo)
         retval = '{0} by {1}'.format(retval, uu)
     d = munge_date(self.context, self.date)
     retval = '{0}</span> ({1})'.format(retval, d)
     return retval
 def get_version_description(self, ver):
     vUI = createObject('groupserver.UserFromId',
                         self.folder, ver.editor)
     dt = munge_date(self.folder,
       ver.creationDate, '%Y %b %d %H:%M:%S')
     if vUI.anonymous:
         retval = 'an %s (%s)' % (vUI.name.lower(), dt)
     else:
         retval = '%s (%s)' % (userInfo_to_anchor(vUI), dt)
     assert retval
     return retval
 def munge_event(self, e):
     e = marshal_data(self.context, e, siteInfo=self.siteInfo,
                      groupInfo=self.groupInfo)
     event = createObject(SUBSYSTEM, self.context, **e)
     retval = ''
     if (event.code == DISABLE):
         retval = event.xhtml
     elif (event.code == BOUNCE):
         retval = _('bounce-delivery-failed',
                    'Email delivery failed (${date})',
                    mapping={'date': munge_date(self.context, event.date)})
     return retval
Ejemplo n.º 40
0
 def xhtml(self):
     d = munge_date(self.groupInfo.groupObj, self.date)
     ui = userInfo_to_anchor(self.userInfo)
     if not(self.removingUserInfo.anonymous) and self.removingUserInfo.id != self.userInfo.id:
         retval = _('event-leave-other', '${userName} removed by ${adminName} (${date})',
                    mapping={'userName': ui,
                             'adminName': userInfo_to_anchor(self.removingUserInfo),
                             'date': d, })
     else:
         retval = _('event-leave-normal', '${userName} left (${date})',
                    mapping={'userName': ui, 'date': d, })
     return retval
Ejemplo n.º 41
0
    def xhtml(self):
        """Display the event as string, with XHTML markup, in such
        a way that it will be useful for the Web view of audit
        trails.
        """
        cssClass = u'audit-event groupserver-page-edit-event-%s' % self.code
        retval = u'<span class="%s">Edited attributes of '\
            u'<a href="%s">%s</a> (%s)</span>' % \
          (cssClass, self.instanceDatum, self.supplementaryDatum,
           munge_date(self.context, self.date))

        return retval
Ejemplo n.º 42
0
    def xhtml(self):
        """Display the event as string, with XHTML markup, in such
        a way that it will be useful for the Web view of audit
        trails.
        """
        cssClass = u'audit-event groupserver-page-edit-event-%s' % self.code
        retval = u'<span class="%s">Edited attributes of '\
            u'<a href="%s">%s</a> (%s)</span>' % \
          (cssClass, self.instanceDatum, self.supplementaryDatum,
           munge_date(self.context, self.date))

        return retval
Ejemplo n.º 43
0
 def xhtml(self):
     cssClass = u'audit-event profile-event-%s' % self.code
     retval = u'<span class="%s">Created a user, with address '\
       u'<code class="email">%s</code></span>' %\
         (cssClass, self.instanceDatum)
     if ((self.instanceUserInfo.id != self.userInfo.id)
         and not(self.userInfo.anonymous)):
         retval = u'%s &#8212; %s' %\
           (retval, userInfo_to_anchor(self.userInfo))
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 44
0
 def xhtml(self):
     cssClass = u'audit-event groupserver-profile-invite-%s' %\
       self.code
     retval = u'<span class="%s">%s %s the invitation from %s to '\
                 u'join %s</span>' % \
                 (cssClass, userInfo_to_anchor(self.instanceUserInfo),
                     self.instanceDatum.title(),
                     userInfo_to_anchor(self.userInfo),
                     groupInfo_to_anchor(self.groupInfo))
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 45
0
 def xhtml(self):
     cssClass = u'audit-event groupserver-profile-invite-%s' %\
       self.code
     retval = u'<span class="%s">%s %s the invitation from %s to '\
                 u'join %s</span>' % \
                 (cssClass, userInfo_to_anchor(self.instanceUserInfo),
                     self.instanceDatum.title(),
                     userInfo_to_anchor(self.userInfo),
                     groupInfo_to_anchor(self.groupInfo))
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 46
0
 def xhtml(self):
     """Display the event as string, with XHTML markup, in such
     a way that it will be useful for the Web view of audit trails.
     """
     cssClass = u'audit-event groupserver-bounce-event-%s' % \
       self.code
     retval = u'<span class="%s">Email delivery from %s to '\
       u'<code class="email">%s</code> failed' %\
       (cssClass, groupInfo_to_anchor(self.groupInfo),
        self.instanceDatum)
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 47
0
 def xhtml(self):
     cssClass = 'audit-event gs-profile-email-verify-%s' % self.code
     if self.adminAdded:
         retval = '<span class="%s">%s added a verification request '\
                  'for <code class="email">%s</code>.</span>' % \
                  (cssClass, userInfo_to_anchor(self.userInfo),
                   self.instanceDatum)
     else:
         retval = '<span class="%s">Added a verification request '\
                  'for <code class="email">%s</code>.</span>' % \
                  (cssClass, self.instanceDatum)
     retval = '%s (%s)' % (retval, munge_date(self.context, self.date))
     return retval
    def xhtml(self):
        """Display the event as string, with XHTML markup, in such
        a way that it will be useful for the Web view of audit trails.
        """
        cssClass = 'audit-event groupserver-webpost-event-%s' % self.code
        retval = '<span class="%s">Made a post from the web to '\
                 'topic %s in <a href="%s">%s</a>' %\
            (cssClass, self.instanceDatum,
             self.groupInfo.url, self.groupInfo.name)
        retval = '%s (%s)' % \
            (retval, munge_date(self.context, self.date))

        return retval
Ejemplo n.º 49
0
 def xhtml(self):
     d = munge_date(self.groupInfo.groupObj, self.date)
     ui = userInfo_to_anchor(self.userInfo)
     if not(self.addingUserInfo.anonymous) and (self.addingUserInfo.id != self.userInfo.id):
         retval = _('event-join-admin',
                    '${userName} joined &#8212; invited by ${adminName} (${date})',
                    mapping={'userName': ui,
                             'adminName': userInfo_to_anchor(self.addingUserInfo),
                             'date': d, })
     else:
         retval = _('event-join-normal', '${userName} joined (${date})',
                    mapping={'userName': ui, 'date': d, })
     return retval
Ejemplo n.º 50
0
 def xhtml(self):
     """ Display the event as string, with XHTML markup, in such
         a way that it will be useful for the Web view of audit trails.
     """
     cssClass = u'audit-event groupserver-bounce-event-%s' % \
       self.code
     retval = u'<span class="%s">Email address '\
         u'<code class="email">%s</code> '\
         u'disabled after deliveries failed on %d different days in the '\
         'last %d days.' % (cssClass, self.instanceDatum, self.numBounceDays,
                             self.numDaysChecked)
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
     return retval
Ejemplo n.º 51
0
 def xhtml(self):
     cssClass = u'audit-event gs-profile-email-%s' %\
       self.code
     if self.adminRemoved:
         retval = u'<span class="%s">%s removed the address '\
           u'<code class="email">%s</code>.</span>' % \
           (cssClass, userInfo_to_anchor(self.userInfo),
            self.instanceDatum)
     else:
         retval = u'<span class="%s">Removed the address '\
           u'<code class="email">%s</code>.</span>' % \
           (cssClass, self.instanceDatum)
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
Ejemplo n.º 52
0
    def user_posting_limit_hit(self):
        '''The posting limits are based on the *rate* of posting to the
        group. The maximum allowed rate of posting is defined by the
        "senderlimit" and "senderinterval" properties of the mailing list
        for the group. If the user has exceeded his or her posting limits
        if  more than "senderlimit" posts have been sent in
        "senderinterval" seconds to the group.
        '''
        if user_participation_coach_of_group(self.userInfo, self.groupInfo):
            retval = False
            self.__status = u'participation coach'
            self.__statusNum = self.__statusNum + 0
        elif user_admin_of_group(self.userInfo, self.groupInfo):
            retval = False
            self.__status = u'administrator of'
            self.__statusNum = self.__statusNum + 0
        else:
            # The user is not the participation coach or the administrator
            # of the group
            sid = self.groupInfo.siteInfo.id
            gid = self.groupInfo.id
            uid = self.userInfo.id
            limit = self.mailingList.getValueFor('senderlimit')
            interval = self.mailingList.getValueFor('senderinterval')
            td = timedelta(seconds=interval)
            now = datetime.now(pytz.utc)
            earlyDate = now - td
            count = self.messageQuery.num_posts_after_date(
                sid, gid, uid, earlyDate)
            if count >= limit:
                # The user has made over the allowed number of posts in
                # the interval
                retval = True
                d = self.old_message_post_date()

                canPostDate = d + td
                prettyDate = munge_date(self.groupInfo.groupObj,
                                        canPostDate,
                                        user=self.userInfo.user)
                prettyDelta = timedelta_to_string(canPostDate - now)
                self.__status = u'post again at %s\n-- in %s' %\
                  (prettyDate, prettyDelta)
                self.__statusNum = 32
            else:
                retval = False
                self.__status = u'under the posting limit'
                self.__statusNum = self.__statusNum + 0
        assert type(self.__status) == unicode
        assert type(retval) == bool
        return retval
Ejemplo n.º 53
0
    def xhtml(self):
        cssClass = 'audit-event groupserver-group-member-%s' % self.code
        retval = ''
        # --=mpj17=-- Sometimes this is false. I do not know why.
        if self.groupInfo.id:
            retval = '<span class="%s">Left %s</span>' % \
                (cssClass, groupInfo_to_anchor(self.groupInfo))

            if self.adminRemoved:
                retval = '%s &#8212; removed by %s' % \
                    (retval, userInfo_to_anchor(self.userInfo))
                retval = '%s (%s)' % \
                    (retval, munge_date(self.context, self.date))
        return retval
Ejemplo n.º 54
0
 def xhtml(self):
     cssClass = u'audit-event profile-event-%s' % self.code
     old, new = self.get_old_new()
     retval = u'<span class="%s">Profile-field '\
       u'<span class="field-%s">%s</span> '\
       u'changed to '\
       u'<code class="new">%s</code> (was '\
       u'<code class="old">%s</code>)</span>' % \
       (cssClass, self.instanceDatum, self.get_fieldname(),
         xml_escape(new), xml_escape(old))
     if self.instanceUserInfo.id != self.userInfo.id:
         retval = u'%s &#8212; %s' %\
           (retval, userInfo_to_anchor(self.userInfo))
     retval = u'%s (%s)' % \
       (retval, munge_date(self.context, self.date))
     return retval