annotate scripts/roundup-reminder @ 2467:76ead526113d

client instances may be used as translation engines. any backend translator may be passed as constructor argument or via setTranslator() method. by default, templating.translationService is used. use this engine to translate client messages.
author Alexander Smishlajev <a1s@users.sourceforge.net>
date Tue, 15 Jun 2004 09:19:49 +0000
parents 1e96ed79f0c3
children ce2c88d83eb6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1999
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
1 #! /usr/bin/env python2.2
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2 # Copyright (c) 2002 ekit.com Inc (http://www.ekit-inc.com/)
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 #
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4 # Permission is hereby granted, free of charge, to any person obtaining a copy
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 # of this software and associated documentation files (the "Software"), to deal
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6 # in the Software without restriction, including without limitation the rights
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 # copies of the Software, and to permit persons to whom the Software is
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 # furnished to do so, subject to the following conditions:
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 #
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11 # The above copyright notice and this permission notice shall be included in
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 # all copies or substantial portions of the Software.
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 #
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 # SOFTWARE.
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21
2001
1e96ed79f0c3 fix for new mailer API
Richard Jones <richard@users.sourceforge.net>
parents: 1999
diff changeset
22 # $Id: roundup-reminder,v 1.8 2004-02-11 00:21:46 richard Exp $
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24 '''
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25 Simple script that emails all users of a tracker with the issues that
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26 are currently assigned to them.
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28 TODO: introduce some structure ;)
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29 TODO: possibly make this more general and configurable...
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 '''
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31
1409
8dc60d87ab42 Fixed a backlog of bug reports, and worked on python 2.3 compatibility:
Richard Jones <richard@users.sourceforge.net>
parents: 1096
diff changeset
32 import sys, cStringIO, MimeWriter, smtplib
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 from roundup import instance, date
2001
1e96ed79f0c3 fix for new mailer API
Richard Jones <richard@users.sourceforge.net>
parents: 1999
diff changeset
34 from roundup.mailer import SMTPConnection
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36 # open the instance
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 if len(sys.argv) != 2:
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38 print 'You need to specify an instance home dir'
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39 instance_home = sys.argv[1]
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40 instance = instance.open(instance_home)
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 db = instance.open('admin')
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43 resolved_id = db.status.lookup('resolved')
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44
1999
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
45 def listCompare(x, y):
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
46 "compare two tuples such that order is positive on [0] and negative on [1]"
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
47 if x[0] < y[0]:
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
48 return -1
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
49 if x[0] > y[0]:
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
50 return 1
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
51 if x[1] > y[1]:
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
52 return -1
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
53 if x[1] < y[1]:
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
54 return 1
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
55 return 0
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
56
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
57 # loop through all the users
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
58 for user_id in db.user.list():
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
59 # make sure we care aboue this user
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
60 name = db.user.get(user_id, 'realname')
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
61 if name is None:
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
62 name = db.user.get(user_id, 'username')
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
63 address = db.user.get(user_id, 'address')
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
64 if address is None:
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
65 continue
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
66
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
67 # extract this user's issues
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
68 l = []
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
69 for issue_id in db.issue.find(assignedto=user_id):
1999
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
70 if db.issue.get(issue_id, 'status') == resolved_id:
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
71 continue
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
72 order = db.priority.get(db.issue.get(issue_id, 'priority'), 'order')
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
73 l.append((order, db.issue.get(issue_id, 'activity'),
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
74 db.issue.get(issue_id, 'creation'), issue_id))
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
75
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
76 # sort the issues by timeliness and creation date
1999
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
77 l.sort(listCompare)
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
78 if not l:
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
79 continue
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
80
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
81 # generate the email message
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
82 message = cStringIO.StringIO()
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
83 writer = MimeWriter.MimeWriter(message)
1096
fa7df238e2d4 More cleaning up of configuration, and the "instance" -> "tracker" renaming.
Richard Jones <richard@users.sourceforge.net>
parents: 1092
diff changeset
84 writer.addheader('Subject', 'Your active %s issues'%db.config.TRACKER_NAME)
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
85 writer.addheader('To', address)
1096
fa7df238e2d4 More cleaning up of configuration, and the "instance" -> "tracker" renaming.
Richard Jones <richard@users.sourceforge.net>
parents: 1092
diff changeset
86 writer.addheader('From', '%s <%s>'%(db.config.TRACKER_NAME,
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
87 db.config.ADMIN_EMAIL))
1096
fa7df238e2d4 More cleaning up of configuration, and the "instance" -> "tracker" renaming.
Richard Jones <richard@users.sourceforge.net>
parents: 1092
diff changeset
88 writer.addheader('Reply-To', '%s <%s>'%(db.config.TRACKER_NAME,
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
89 db.config.ADMIN_EMAIL))
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
90 writer.addheader('MIME-Version', '1.0')
1096
fa7df238e2d4 More cleaning up of configuration, and the "instance" -> "tracker" renaming.
Richard Jones <richard@users.sourceforge.net>
parents: 1092
diff changeset
91 writer.addheader('X-Roundup-Name', db.config.TRACKER_NAME)
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
92
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
93 # start the multipart
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
94 part = writer.startmultipartbody('alternative')
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
95 part = writer.nextpart()
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
96 body = part.startbody('text/plain')
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
97
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
98 # do the plain text bit
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
99 print >>body, 'Created ID Urgency Title'
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
100 print >>body, '='*75
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
101 # '2 months 213 immediate cc_daemon barfage
1999
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
102 old_priority = None
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
103 for priority_order, activity_date, creation_date, issue_id in l:
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
104 priority = db.issue.get(issue_id, 'priority')
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
105 if (priority != old_priority):
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
106 old_priority = priority
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
107 print >>body, ' ', db.priority.get(priority,'name')
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
108 # pretty creation
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
109 creation = (date.Date('.') - creation_date).pretty()
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
110 if creation is None:
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
111 creation = creation_date.pretty()
1999
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
112 activity = (date.Date('.') - activity_date).pretty()
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
113 title = db.issue.get(issue_id, 'title')
1999
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
114 if len(title) > 42:
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
115 title = title[:38] + ' ...'
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
116 print >>body, '%-11s %-4s %-9s %-42s'%(creation, issue_id,
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
117 activity, title)
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
118
711
9c76498f1ac3 Added simple help to the reminder emailer.
Richard Jones <richard@users.sourceforge.net>
parents: 689
diff changeset
119 # some help to finish off
9c76498f1ac3 Added simple help to the reminder emailer.
Richard Jones <richard@users.sourceforge.net>
parents: 689
diff changeset
120 print >>body, '''
9c76498f1ac3 Added simple help to the reminder emailer.
Richard Jones <richard@users.sourceforge.net>
parents: 689
diff changeset
121 To view or respond to any of the issues listed above, visit the URL
9c76498f1ac3 Added simple help to the reminder emailer.
Richard Jones <richard@users.sourceforge.net>
parents: 689
diff changeset
122
9c76498f1ac3 Added simple help to the reminder emailer.
Richard Jones <richard@users.sourceforge.net>
parents: 689
diff changeset
123 %s
9c76498f1ac3 Added simple help to the reminder emailer.
Richard Jones <richard@users.sourceforge.net>
parents: 689
diff changeset
124
9c76498f1ac3 Added simple help to the reminder emailer.
Richard Jones <richard@users.sourceforge.net>
parents: 689
diff changeset
125 and click on "My Issues". Do NOT respond to this message.
1096
fa7df238e2d4 More cleaning up of configuration, and the "instance" -> "tracker" renaming.
Richard Jones <richard@users.sourceforge.net>
parents: 1092
diff changeset
126 '''%db.config.TRACKER_WEB
711
9c76498f1ac3 Added simple help to the reminder emailer.
Richard Jones <richard@users.sourceforge.net>
parents: 689
diff changeset
127
9c76498f1ac3 Added simple help to the reminder emailer.
Richard Jones <richard@users.sourceforge.net>
parents: 689
diff changeset
128
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
129 # now the HTML one
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
130 part = writer.nextpart()
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
131 body = part.startbody('text/html')
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
132 colours = {
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
133 'immediate': ' bgcolor="#ffcdcd"',
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
134 'day': ' bgcolor="#ffdecd"',
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
135 'week': ' bgcolor="#ffeecd"',
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
136 'month': ' bgcolor="#ffffcd"',
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
137 'whenever': ' bgcolor="#ffffff"',
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
138 }
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
139 print >>body, '''<table border>
1999
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
140 <tr><th>Created</th> <th>ID</th> <th>Activity</th> <th>Title</th></tr>
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
141 '''
1999
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
142 old_priority = None
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
143 for priority_order, activity_date, creation_date, issue_id in l:
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
144 priority = db.issue.get(issue_id,'priority')
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
145 if (priority != old_priority):
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
146 old_priority = priority
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
147 print >>body, '<tr><td>-></td><td>-></td><td>-></td><td><b>%s</b></td></tr>'%db.priority.get(priority,'name')
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
148 creation = (date.Date('.') - creation_date).pretty()
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
149 if creation is None:
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
150 creation = creation_date.pretty()
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
151 title = db.issue.get(issue_id, 'title')
1409
8dc60d87ab42 Fixed a backlog of bug reports, and worked on python 2.3 compatibility:
Richard Jones <richard@users.sourceforge.net>
parents: 1096
diff changeset
152 issue_id = '<a href="%sissue%s">%s</a>'%(db.config.TRACKER_WEB,
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
153 issue_id, issue_id)
1999
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
154 activity = (date.Date('.') - activity_date).pretty()
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
155 print >>body, '''<tr><td>%s</td><td>%s</td><td>%s</td>
1b7f730e7037 fixed roundup-reminder script to use default schema (thanks Klamer Schutte)
Richard Jones <richard@users.sourceforge.net>
parents: 1612
diff changeset
156 <td>%s</td></tr>'''%(creation, issue_id, activity, title)
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
157 print >>body, '</table>'
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
158
711
9c76498f1ac3 Added simple help to the reminder emailer.
Richard Jones <richard@users.sourceforge.net>
parents: 689
diff changeset
159 print >>body, '''<p>To view or respond to any of the issues listed
9c76498f1ac3 Added simple help to the reminder emailer.
Richard Jones <richard@users.sourceforge.net>
parents: 689
diff changeset
160 above, simply click on the issue ID. Do <b>not</b> respond to
9c76498f1ac3 Added simple help to the reminder emailer.
Richard Jones <richard@users.sourceforge.net>
parents: 689
diff changeset
161 this message.</p>'''
9c76498f1ac3 Added simple help to the reminder emailer.
Richard Jones <richard@users.sourceforge.net>
parents: 689
diff changeset
162
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
163 # finish of the multipart
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
164 writer.lastpart()
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
165
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
166 # all done, send!
2001
1e96ed79f0c3 fix for new mailer API
Richard Jones <richard@users.sourceforge.net>
parents: 1999
diff changeset
167 smtp = SMTPConnection(db.config)
689
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
168 smtp.sendmail(db.config.ADMIN_EMAIL, address, message.getvalue())
456a1ed04650 Here's a cron-job reminder script...
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
169
1092
e5826025eeb7 more Log removal
Richard Jones <richard@users.sourceforge.net>
parents: 711
diff changeset
170 # vim: set filetype=python ts=4 sw=4 et si

Roundup Issue Tracker: http://roundup-tracker.org/