Changeset 3064

Show
Ignore:
Timestamp:
01/15/08 19:43:59 (10 months ago)
Author:
ixokai
Message:

Fixing setup.py to make it install-able.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • announcerplugin/0.11/announcerplugin/api.py

    r3047 r3064  
    226226        self.category = category 
    227227        self.target = target 
     228          
     229    def get_basic_terms(self): 
     230        return (self.realm, self.category) 
     231         
     232    def get_session_terms(self, session_id): 
     233        return tuple() 
    228234                 
    229235_TRUE_VALUES = ('yes', 'true', 'enabled', 'on', 'aye', '1', 1, True) 
  • announcerplugin/0.11/announcerplugin/pref.py

    r3041 r3064  
    1818     
    1919    def get_htdocs_dirs(self): 
    20         return [] 
     20        resource_dir = resource_filename(__name__, 'htdocs') 
     21        return [resource_dir] 
    2122 
    2223    def get_templates_dirs(self): 
  • announcerplugin/0.11/announcerplugin/producers/ticket.py

    r3046 r3064  
    1515        self.attachment = attachment 
    1616 
     17    def get_basic_terms(self): 
     18        for term in AnnouncementEvent.get_basic_terms(self): 
     19            yield term 
     20         
     21        ticket = self.target 
     22        yield ticket['component'] 
     23 
     24    def get_session_terms(self, session_id): 
     25        ticket = self.target 
     26         
     27        if session_id == self.author: 
     28            yield "updater" 
     29             
     30        if session_id == ticket['owner']: 
     31            yield "owner" 
     32         
     33        if session_id == ticket['reporter']: 
     34            yield "reporter" 
     35             
     36         
    1737class TicketChangeProducer(Component): 
    1838    implements(ITicketChangeListener) 
  • announcerplugin/0.11/announcerplugin/subscribers/__init__.py

    r3047 r3064  
    1 import ticket 
     1#import ticket 
    22import ticket_compat 
    33import ticket_groups 
  • announcerplugin/0.11/announcerplugin/subscribers/ticket.py

    r3046 r3064  
    11from trac.core import Component, implements, TracError 
    2 from announcerplugin.api import IAnnouncementSubscriber 
    3  
     2from trac.web.chrome import add_stylesheet 
     3from announcerplugin.api import IAnnouncementSubscriber, IAnnouncementPreferenceProvider 
     4from announcerplugin.query import * 
    45 
    56class RuleBasedTicketSubscriber(Component): 
    67     
    7     implements(IAnnouncementSubscriber) 
     8    implements(IAnnouncementSubscriber, IAnnouncementPreferenceProvider) 
     9     
     10    # IAnnouncementSubscriber 
    811     
    912    def get_subscription_realms(self): 
    10         return ('ticket', ) 
     13        return ('*', ) 
    1114         
    1215    def get_subscription_categories(self, realm): 
    13         return ('created', 'changed', 'attachment added'
     16        return ('*',
    1417         
    1518    def get_subscriptions_for_event(self, event): 
     19        terms = self._get_basic_terms(event) 
     20         
     21        db = self.env.get_db_ctx() 
     22        cursor = db.cursor() 
     23 
     24        cursor.execute(""" 
     25            SELECT id, sid, authenticated, rule 
     26              FROM subscriptions 
     27             WHERE enabled=1 AND managed='' 
     28               AND realm=%s 
     29               AND category=%s 
     30        """, (event.realm, event.category)) 
     31         
     32        for rule_id, session_id, authenticated, rule in cursor.fetchall(): 
     33            query = Query(rule) 
     34            print "For", session_id, "Rule:", rule 
     35            if query(terms + self._get_session_terms(session_id, event)): 
     36                print True 
     37            else: 
     38                print False 
     39         
    1640        return 
    1741        yield 
     
    2852        # """, (event.realm, event.category)) 
    2953         
     54    def _get_basic_terms(self, event): 
     55        terms = [event.realm, event.category] 
     56        try: 
     57            terms.extend(event.get_basic_terms()) 
     58        except: 
     59            pass 
    3060         
     61        print "Basic terms", terms 
     62        return terms 
    3163         
     64    def _get_session_terms(self, session_id, event): 
     65        terms = [] 
     66 
     67        try: 
     68            terms.extend(event.get_session_terms(session_id)) 
     69        except: 
     70            pass 
     71             
     72        print "Session terms", terms 
     73             
     74        return terms 
     75         
     76    # IAnnouncementPreferenceProvider 
     77     
     78    def get_announcement_preference_boxes(self, req): 
     79        yield ('rules', 'Rule-based subscriptions') 
     80         
     81    def render_announcement_preference_box(self, req, box): 
     82        # db = self.env.get_db_ctx() 
     83        # cursor = db.cursor() 
     84         
     85        # if req.method == "POST": 
     86            # cursor.execute(""" 
     87            #     DELETE FROM subscriptions 
     88            #      WHERE enabled=1 AND managed=''  
     89            #        AND sid=%s AND authenticated=%s 
     90            #        AND 
     91            # """) 
     92        add_stylesheet(req, 'announcerplugin/css/rulediv.css') 
     93         
     94        categories = { 
     95            'ticket': ('created', 'changed', 'attachment added', 'deleted'), 
     96            'wiki': ('created', 'changed', 'attachment added', 'deleted') 
     97        } 
     98         
     99        # cursor.execute(""" 
     100        #     SELECT rule 
     101        #       FROM subscriptions 
     102        #      WHERE enabled=1 AND managed='' 
     103        #        AND sid=%s AND authenticated=%s 
     104        #        AND realm=%s 
     105        #        AND category=%s 
     106        # """, (req.session.id, not req.authname == 'anonymous', event.realm, event.category)) 
     107         
     108        rules = [ 
     109            dict( 
     110                id=1, 
     111                enabled=True, 
     112                realm="ticket", 
     113                category="changed", 
     114                value="this or that", 
     115            ), 
     116            dict( 
     117                id=3, 
     118                enabled=False, 
     119                realm="wiki", 
     120                category="created", 
     121                value="this or that", 
     122            ), 
     123            dict( 
     124                id=5, 
     125                enabled=True, 
     126                realm="ticket", 
     127                category="changed", 
     128                value="this or that", 
     129            ), 
     130        ] 
     131         
     132        data = dict( 
     133            # announcer_rules="\n".join(x[0] for x in cursor.fetchall()), 
     134            # realms=realms, 
     135            categories=categories, 
     136            rules=rules, 
     137        ) 
     138        return "prefs_announcer_rules.html", data  
     139         
  • announcerplugin/0.11/setup.py

    r3015 r3064  
    3939    """Copyright (c) 2008, Stephen Hansen. All rights reserved. Released under the 3-clause BSD license. """, 
    4040    url = "http://www.trac-hacks.org/wiki/AnnouncerPlugin", 
    41     packages = ['announcerplugin']
    42     package_data = {'announcerplugin': ['templates/*.html']}, 
     41    packages = find_packages(exclude=['*.tests*'])
     42    package_data = {'announcerplugin': ['templates/*.html', 'templates/*.txt', 'htdocs/*.*', 'htdocs/css/*.*']}, 
    4343    install_requires = [ 
    4444        #'trac>=0.11',