Changeset 1182

Show
Ignore:
Timestamp:
09/11/08 21:51:14 (2 months ago)
Author:
gawel
Message:

subscriptions

Location:
PyBB/trunk/pybb
Files:
7 modified

Legend:

Unmodified
Added
Removed
  • PyBB/trunk/pybb/controllers/feed.py

    r1181 r1182  
    6 6 from webhelpers import feedgenerator 
    7 7  
      8 from pybb.lib.helpers import url 
    8 9 from pybb.lib.base import * 
    9 10  
    … …  
    26 27                            limit=20).execute() 
    27 28  
    28       link = '/%s' % record.slug 
      29     link = url(record.slug) 
    29 30     f = klass(title=record.title, 
    30 31               link=link, 
    … …  
    33 34     for i in items: 
    34 35         f.add_item(title=i.title, 
    35                      link='/%s/%s' % (i.forum_id, i.slug), 
      36                    link=url(i.forum_id, i.slug), 
    36 37                    description=i.text, 
    37 38                    unique_id=i.slug, 
  • PyBB/trunk/pybb/controllers/post.py

    r1174 r1182  
    152 152  
    153 153                 # subscribe if needed 
    154                   subscriptions = self.subscriptions 
      154                 subscriptions = dict( 
      155                         forum=sql.select( 
      156                                 [model.Subscription.forum_id], 
      157                                 model.Subscription.user_id==self.user_id).set(), 
      158                         topic=sql.select( 
      159                                 [model.Subscription.topic_id], 
      160                                 model.Subscription.user_id==self.user_id).set() 
      161                         ) 
      162  
    155 163                 if topic.slug not in subscriptions['topic'] \ 
    156 164                         and forum not in subscriptions['forum']: 
  • PyBB/trunk/pybb/controllers/prefs.py

    r1176 r1182  
    53 53  
    54 54     @permissions.authorize(permissions.ValidUser) 
    55       def subscription(self): 
      55     def subscriptions(self): 
      56         """subscriptions listing 
    56 57         """ 
    57           """ 
      58         forums=sql.select( 
      59                 [model.Subscription.forum_id, model.Forum.title], 
      60                 model.Subscription.user_id==self.user_id, 
      61                 from_obj=sql.join(model.subscriptions, model.forums) 
      62                 ).execute() 
      63         topics = sql.select( 
      64                 [model.Subscription.topic_id, 
      65                  model.Topic.title, model.Topic.forum_id], 
      66                 model.Subscription.user_id==self.user_id, 
      67                 from_obj=sql.join(model.subscriptions, model.forums) 
      68                 ).execute() 
      69         return render('/subscriptions.mako', extra_vars=dict(forums=forums, 
      70                                                              topics=topics)) 
    58 71  
    59 72     @restrict('POST') 
  • PyBB/trunk/pybb/lib/base.py

    r1179 r1182  
    75 75             return None 
    76 76  
    77       @property 
    78       def subscriptions(self): 
    79           """ lazy subscriptions 
    80           """ 
    81           user_id = self.user_id 
    82           return dict( 
    83                   forum=sql.select( 
    84                           [model.Subscription.forum_id], 
    85                           model.Subscription.user_id==user_id).set(), 
    86                   topic=sql.select( 
    87                           [model.Subscription.topic_id], 
    88                           model.Subscription.user_id==user_id).set() 
    89                   ) 
  • PyBB/trunk/pybb/model/subscriptions.py

    r1179 r1182  
    9 9     __tablename__ = 'subscriptions' 
    10 10     id = sa.Column("id", sa.types.Integer, primary_key=True) 
    11       topic_id = sa.Column("topic_id", sa.types.String(50), nullable=True) 
    12       forum_id = sa.Column("forum_id", sa.types.String(50), default='') 
      11     topic_id = sa.Column("topic_id", sa.ForeignKey('topics.slug'), 
      12                          nullable=True) 
      13     forum_id = sa.Column("forum_id", sa.ForeignKey('forums.slug'), 
      14                          nullable=True) 
    13 15     user_id = sa.Column('user_id', sa.types.Integer, sa.ForeignKey('users.id')) 
      16     type = sa.Column('type', sa.types.String(4), default='mail') 
    14 17     created = sa.Column('created', sa.DateTime, default=datetime.now) 
    15 18     modified = sa.Column('modified', sa.DateTime, default=datetime.now, 
  • PyBB/trunk/pybb/scripts/notifications.py

    r1179 r1182  
    29 29                             model.User.email, 
    30 30                             model.User.signature, 
    31                               ]).set() 
    32           users = dict([(id, User(id=id, login=login, 
    33                                   email=str(email), signature=signature)) \ 
    34                               for id, login, email, signature in users]) 
      31                             ]).execute() 
      32         users = dict([(user.id, user) for user in users]) 
    35 33         self.users = users 
    36 34  
    … …  
    43 41             return set() 
    44 42         ids = sql.select([model.Subscription.user_id], 
    45                              model.Subscription.topic_id==topic.slug 
      43                           sql.and_(model.Subscription.topic_id==topic.slug, 
      44                                    model.Subscription.type=='mail') 
    46 45                            ).set() 
    47 46         ids.update(sql.select([model.Subscription.user_id], 
    48                              model.Subscription.forum_id==topic.forum_id 
      47                           sql.and_(model.Subscription.forum_id==topic.forum_id, 
      48                                    model.Subscription.type=='mail') 
    49 49                            ).set()) 
    50 50         return ids 
  • PyBB/trunk/pybb/websetup.py

    r1179 r1182  
    56 56     user.roles.append(model.Role(role=LOCAL_MODERATOR, forum_id='test-forum-2')) 
    57 57     meta.Session.save(user) 
      58  
      59     for v in ('test-topic', 'test-forum'): 
      60         meta.Session.save( 
      61                 model.Subscription(user_id=0, topic_id=v, 
      62                                    type='star') 
      63             ) 
    58 64  
    59 65     for i in (0, 2):