~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-01 17:13:31 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-20110601171331-jzyy7n6klkb81tqy
Put in viewed_by column for privacy documentation

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
    ...         BugSummary.product_id, BugSummary.productseries_id,
41
41
    ...         BugSummary.distribution_id, BugSummary.distroseries_id,
42
42
    ...         BugSummary.sourcepackagename_id, BugSummary.tag,
43
 
    ...         BugSummary.status, BugSummary.milestone_id, BugSummary.id)
44
 
    ...     fmt = "%-4s %-4s %-4s %-4s %-5s %-3s %-12s %-4s %3s"
 
43
    ...         BugSummary.milestone_id, BugSummary.status,
 
44
    ...         BugSummary.viewed_by_id, BugSummary.id)
 
45
    ...     fmt = "%-4s %-4s %-4s %-4s %-5s %-3s %-4s %-12s %-4s %3s"
45
46
    ...     header = fmt % (
46
 
    ...         'prod', 'ps', 'dist', 'ds', 'spn', 'tag', 'status',
47
 
    ...         'msto', '#')
 
47
    ...         'prod', 'ps', 'dist', 'ds', 'spn', 'tag', 'mile',
 
48
    ...         'status', 'vis', '#')
48
49
    ...     print "-" * len(header)
49
50
    ...     print header
50
51
    ...     print "-" * len(header)
56
57
    ...             name(bugsummary.distroseries),
57
58
    ...             name(bugsummary.sourcepackagename),
58
59
    ...             bugsummary.tag or 'x',
 
60
    ...             name(bugsummary.milestone),
59
61
    ...             bugsummary.status,
60
 
    ...             name(bugsummary.milestone),
 
62
    ...             name(bugsummary.viewed_by),
61
63
    ...             bugsummary.count)
62
64
    ...     print " " * (len(header) - 4),
63
65
    ...     print "==="
69
71
    ...     resultset = store.find(BugSummary, *bs_query_args, **bs_query_kw)
70
72
    ...     print_result(resultset)
71
73
 
 
74
 
72
75
Product Bug Counts
73
76
------------------
74
77
 
82
85
    ...     BugSummary.tag == None)
83
86
 
84
87
    >>> print_result(bug_summaries)
85
 
    ---------------------------------------------------
86
 
    prod ps   dist ds   spn   tag status       msto   #
87
 
    ---------------------------------------------------
88
 
    pr-a x    x    x    x     x   New          x      1
89
 
                                                    ===
90
 
                                                      1
 
88
    --------------------------------------------------------
 
89
    prod ps   dist ds   spn   tag mile status       vis    #
 
90
    --------------------------------------------------------
 
91
    pr-a x    x    x    x     x   x    New          x      1
 
92
                                                         ===
 
93
                                                           1
91
94
 
92
95
There is one row per tag per combination of product, status and milestone.
93
96
If we are interested in all bugs targetted to a product regardless of how
101
104
    ...     product=prod_a, status=BugTaskStatus.CONFIRMED, tags=['t-a'])
102
105
 
103
106
    >>> print_find(BugSummary.product == prod_a, BugSummary.tag == None)
104
 
    ---------------------------------------------------
105
 
    prod ps   dist ds   spn   tag status       msto   #
106
 
    ---------------------------------------------------
107
 
    pr-a x    x    x    x     x   New          x      2
108
 
    pr-a x    x    x    x     x   Confirmed    x      2
109
 
                                                    ===
110
 
                                                      4
 
107
    --------------------------------------------------------
 
108
    prod ps   dist ds   spn   tag mile status       vis    #
 
109
    --------------------------------------------------------
 
110
    pr-a x    x    x    x     x   x    New          x      2
 
111
    pr-a x    x    x    x     x   x    Confirmed    x      2
 
112
                                                         ===
 
113
                                                           4
111
114
 
112
115
    >>> print_find(BugSummary.product == prod_a, BugSummary.tag == u't-a')
113
 
    ---------------------------------------------------
114
 
    prod ps   dist ds   spn   tag status       msto   #
115
 
    ---------------------------------------------------
116
 
    pr-a x    x    x    x     t-a Confirmed    x      1
117
 
                                                    ===
118
 
                                                      1
 
116
    --------------------------------------------------------
 
117
    prod ps   dist ds   spn   tag mile status       vis    #
 
118
    --------------------------------------------------------
 
119
    pr-a x    x    x    x     t-a x    Confirmed    x      1
 
120
                                                         ===
 
121
                                                           1
119
122
 
120
123
You will normally want to get the total count counted in the database
121
124
rather than waste transmittion time to calculate the rows client side.
150
153
    >>> milestone = factory.makeMilestone(product=prod_a, name='ms-a')
151
154
    >>> bug = factory.makeBug(milestone=milestone, tags=['t-b', 't-c'])
152
155
    >>> print_find(BugSummary.product == prod_a)
153
 
    ---------------------------------------------------
154
 
    prod ps   dist ds   spn   tag status       msto   #
155
 
    ---------------------------------------------------
156
 
    pr-a x    x    x    x     t-a Confirmed    x      1
157
 
    pr-a x    x    x    x     t-b New          ms-a   1
158
 
    pr-a x    x    x    x     t-c New          ms-a   1
159
 
    pr-a x    x    x    x     x   New          ms-a   1
160
 
    pr-a x    x    x    x     x   New          x      2
161
 
    pr-a x    x    x    x     x   Confirmed    x      2
162
 
                                                    ===
163
 
                                                      8
 
156
    --------------------------------------------------------
 
157
    prod ps   dist ds   spn   tag mile status       vis    #
 
158
    --------------------------------------------------------
 
159
    pr-a x    x    x    x     t-a x    Confirmed    x      1
 
160
    pr-a x    x    x    x     t-b ms-a New          x      1
 
161
    pr-a x    x    x    x     t-c ms-a New          x      1
 
162
    pr-a x    x    x    x     x   ms-a New          x      1
 
163
    pr-a x    x    x    x     x   x    New          x      2
 
164
    pr-a x    x    x    x     x   x    Confirmed    x      2
 
165
                                                         ===
 
166
                                                           8
164
167
 
165
168
Number of New bugs not targetted to a milestone. Note the difference
166
169
between selecting records where tag is None, and where milestone is None:
211
214
    >>> print_find(Or(
212
215
    ...     BugSummary.productseries == productseries_b,
213
216
    ...     BugSummary.product == prod_b))
214
 
    ---------------------------------------------------
215
 
    prod ps   dist ds   spn   tag status       msto   #
216
 
    ---------------------------------------------------
217
 
    pr-b x    x    x    x     x   New          x      1
218
 
    x    ps-b x    x    x     x   New          x      1
219
 
                                                    ===
220
 
                                                      2
 
217
    --------------------------------------------------------
 
218
    prod ps   dist ds   spn   tag mile status       vis    #
 
219
    --------------------------------------------------------
 
220
    pr-b x    x    x    x     x   x    New          x      1
 
221
    x    ps-b x    x    x     x   x    New          x      1
 
222
                                                         ===
 
223
                                                           2
221
224
 
222
225
Distribution Bug Counts
223
226
-----------------------
237
240
    >>> bug_task = factory.makeBugTask(target=package) # status is NEW
238
241
 
239
242
    >>> print_find(BugSummary.distribution == distribution)
240
 
    ---------------------------------------------------
241
 
    prod ps   dist ds   spn   tag status       msto   #
242
 
    ---------------------------------------------------
243
 
    x    x    di-a x    sp-a  x   New          x      1
244
 
    x    x    di-a x    x     x   New          x      1
245
 
    x    x    di-a x    x     x   Confirmed    x      1
246
 
                                                    ===
247
 
                                                      3
 
243
    --------------------------------------------------------
 
244
    prod ps   dist ds   spn   tag mile status       vis    #
 
245
    --------------------------------------------------------
 
246
    x    x    di-a x    sp-a  x   x    New          x      1
 
247
    x    x    di-a x    x     x   x    New          x      1
 
248
    x    x    di-a x    x     x   x    Confirmed    x      1
 
249
                                                         ===
 
250
                                                           3
248
251
 
249
252
How many bugs targetted to a distribution:
250
253
 
303
306
    ...     distribution=distribution_c, name='ds-c')
304
307
    >>> bug = factory.makeBugTask(target=series_c)
305
308
    >>> print_find(BugSummary.distroseries == series_c)
306
 
    ---------------------------------------------------
307
 
    prod ps   dist ds   spn   tag status       msto   #
308
 
    ---------------------------------------------------
309
 
    x    x    x    ds-c x     x   New          x      1
310
 
                                                    ===
311
 
                                                      1
312
 
 
 
309
    --------------------------------------------------------
 
310
    prod ps   dist ds   spn   tag mile status       vis    #
 
311
    --------------------------------------------------------
 
312
    x    x    x    ds-c x     x   x    New          x      1
 
313
                                                         ===
 
314
                                                           1