~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/bugs/doc/bugsummary.txt

  • Committer: Stuart Bishop
  • Date: 2011-06-03 09:57:45 UTC
  • mto: (7675.1045.464 db-devel)
  • mto: This revision was merged to the branch mainline in revision 13163.
  • Revision ID: stuart.bishop@canonical.com-20110603095745-w9i3p0ads8hiju73
Spell targeted correcter

Show diffs side-by-side

added added

removed removed

Lines of Context:
95
95
Product Bug Counts
96
96
------------------
97
97
 
98
 
We can query for how many bugs are targetted to a product.
 
98
We can query for how many bugs are targeted to a product.
99
99
 
100
100
    >>> prod_a = factory.makeProduct(name='pr-a')
101
101
    >>> task = factory.makeBugTask(target=prod_a)
114
114
                                                           1
115
115
 
116
116
There is one row per tag per combination of product, status and milestone.
117
 
If we are interested in all bugs targetted to a product regardless of how
 
117
If we are interested in all bugs targeted to a product regardless of how
118
118
they are tagged, we must specify BugSummary.tag == None. If we are
119
 
interested in all bugs targetted to a product regardless of their status
 
119
interested in all bugs targeted to a product regardless of their status
120
120
or milestone, we need to aggregate them.
121
121
 
122
122
    >>> bug = factory.makeBug(product=prod_a, status=BugTaskStatus.NEW)
197
197
                                                         ===
198
198
                                                           8
199
199
 
200
 
Number of New bugs not targetted to a milestone. Note the difference
 
200
Number of New bugs not targeted to a milestone. Note the difference
201
201
between selecting records where tag is None, and where milestone is None:
202
202
 
203
203
    >>> store.find(
209
209
    ...     BugSummary.tag == None).sum(BugSummary.count) or 0
210
210
    2
211
211
 
212
 
Number of bugs targetted to prod_a, grouped by milestone:
 
212
Number of bugs targeted to prod_a, grouped by milestone:
213
213
 
214
214
    >>> from lp.registry.model.milestone import Milestone
215
215
    >>> from storm.expr import Sum, LeftJoin
287
287
                                                         ===
288
288
                                                           3
289
289
 
290
 
How many bugs targetted to a distribution?
 
290
How many bugs targeted to a distribution?
291
291
 
292
292
    >>> store.find(
293
293
    ...     BugSummary,
297
297
    ...     BugSummary.tag == None).sum(BugSummary.count) or 0
298
298
    2
299
299
 
300
 
How many NEW bugs targetted to a distribution?
 
300
How many NEW bugs targeted to a distribution?
301
301
 
302
302
    >>> store.find(
303
303
    ...     BugSummary,
308
308
    ...     BugSummary.tag == None).sum(BugSummary.count) or 0
309
309
    1
310
310
 
311
 
How many bugs targetted to a particular sourcepackage in a distribution?
 
311
How many bugs targeted to a particular sourcepackage in a distribution?
312
312
 
313
313
    >>> store.find(
314
314
    ...     BugSummary,
322
322
sourcepackage? This is tricky, as we cannot directly ask for counts
323
323
not linked to a sourcepackage. We can however ask for counts linked to
324
324
a sourcepackage, so we subtract this count from the total number of bugs
325
 
targetted to the distribution:
 
325
targeted to the distribution:
326
326
 
327
327
    >>> from storm.expr import SQL
328
328
    >>> store.find(
453
453
Note that private bug counts can be inaccurate if a user is subscribed
454
454
through multiple paths, such as being directly subscribed and also
455
455
subscribed through a team. We demonstrate this using the distroseries
456
 
query - there is only a single private bug targetted to series_p.
 
456
query - there is only a single private bug targeted to series_p.
457
457
 
458
458
    >>> store.using(join).find(
459
459
    ...     BugSummary,