Mercurial > treepkg > treepkg
annotate treepkg/report.py @ 579:97a5e09c84dc tip
Fix: pass url to command expand to be able to checkout a new git repository
author | Bjoern Ricks <bricks@intevation.de> |
---|---|
date | Sat, 03 Sep 2011 12:32:32 +0000 |
parents | f1be9657c1d2 |
children |
rev | line source |
---|---|
235
a8aa0caf52db
Provide the rules revision number to reports
Bernhard Herzog <bh@intevation.de>
parents:
146
diff
changeset
|
1 # Copyright (C) 2007, 2008, 2009 by Intevation GmbH |
19
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
2 # Authors: |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
3 # Bernhard Herzog <bh@intevation.de> |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
4 # |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
5 # This program is free software under the GPL (>=v2) |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
6 # Read the file COPYING coming with the software for details. |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
7 |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
8 """Support for status reports""" |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
9 |
145
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
10 import os |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
11 from operator import attrgetter |
61
8ce9607eefbb
add a timestamp for the entire report
Bernhard Herzog <bh@intevation.de>
parents:
60
diff
changeset
|
12 import datetime |
8ce9607eefbb
add a timestamp for the entire report
Bernhard Herzog <bh@intevation.de>
parents:
60
diff
changeset
|
13 |
52
78cf5f6778ec
Rename 'packagel ine' -> 'package track'
Bernhard Herzog <bh@intevation.de>
parents:
41
diff
changeset
|
14 from packager import create_package_track, PackagerGroup |
19
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
15 from readconfig import read_config |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
16 |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
17 class struct(object): |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
18 |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
19 """Class to create simple struct like objects |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
20 |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
21 All keyword arguments passed to the constructor are available as |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
22 instance variables. |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
23 """ |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
24 |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
25 def __init__(self, **kw): |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
26 self.__dict__.update(kw) |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
27 |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
28 def __repr__(self): |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
29 fields = ["%s=%r" % item for item in self.__dict__.items()] |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
30 return "struct(" + ", ".join(fields) + ")" |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
31 |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
32 |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
33 def get_packager_group(config_file): |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
34 treepkg_opts, packager_opts = read_config(config_file) |
52
78cf5f6778ec
Rename 'packagel ine' -> 'package track'
Bernhard Herzog <bh@intevation.de>
parents:
41
diff
changeset
|
35 return PackagerGroup([create_package_track(**opts) |
19
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
36 for opts in packager_opts], |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
37 **treepkg_opts) |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
38 |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
39 def status_class(status): |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
40 """Returns the CSS class for a status""" |
41
f7ec40638a06
use the enums for the status field of RevisionStatus
Bernhard Herzog <bh@intevation.de>
parents:
30
diff
changeset
|
41 if status.finished: |
19
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
42 return "finished" |
41
f7ec40638a06
use the enums for the status field of RevisionStatus
Bernhard Herzog <bh@intevation.de>
parents:
30
diff
changeset
|
43 elif status.error: |
19
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
44 return "error" |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
45 else: |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
46 return "inprogress" |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
47 |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
48 def format_time(timestamp): |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
49 """Formats a datetime object for a status report |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
50 |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
51 if the argument is true, the return value is simply str applied to |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
52 the argument, which for datetime objects is a string with the format |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
53 'YYYY-MM-DD hh:mm:ss'. If the argument is false, the return value |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
54 is '<unknown>'. |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
55 """ |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
56 if timestamp: |
60
ee32f709a374
add Z suffix to all times in status reports
Bernhard Herzog <bh@intevation.de>
parents:
52
diff
changeset
|
57 return timestamp.strftime("%Y-%m-%d %H:%M:%SZ") |
19
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
58 else: |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
59 return "<unknown>" |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
60 |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
61 |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
62 def prepare_status(status): |
41
f7ec40638a06
use the enums for the status field of RevisionStatus
Bernhard Herzog <bh@intevation.de>
parents:
30
diff
changeset
|
63 return struct(desc=status.status.description, |
19
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
64 start=format_time(status.start), |
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
65 stop=format_time(status.stop), |
264
ea3abd1aa652
Make a revision's tag available to the report template
Bernhard Herzog <bh@intevation.de>
parents:
236
diff
changeset
|
66 cls=status_class(status.status), |
ea3abd1aa652
Make a revision's tag available to the report template
Bernhard Herzog <bh@intevation.de>
parents:
236
diff
changeset
|
67 tag=status.tags) |
19
0cdda44240a6
Add treepkg/report.py for reporting and use it in reportstatus.py
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
68 |
145
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
69 class Revisions(object): |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
70 |
372
ef87d30468b6
Added the option to expose additional log files from the log directory.
Andre Heinecke <aheinecke@intevation.de>
parents:
264
diff
changeset
|
71 def __init__(self, tracks, logs): |
145
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
72 self.tracks = sorted(tracks, key=attrgetter("name")) |
372
ef87d30468b6
Added the option to expose additional log files from the log directory.
Andre Heinecke <aheinecke@intevation.de>
parents:
264
diff
changeset
|
73 self.logs = logs |
145
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
74 |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
75 def sorted_by_revision(self): |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
76 revisions = {} |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
77 num_columns = len(self.tracks) |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
78 for column, track in enumerate(self.tracks): |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
79 for revision in track.get_revisions(): |
235
a8aa0caf52db
Provide the rules revision number to reports
Bernhard Herzog <bh@intevation.de>
parents:
146
diff
changeset
|
80 row = revisions.setdefault((revision.revision, |
a8aa0caf52db
Provide the rules revision number to reports
Bernhard Herzog <bh@intevation.de>
parents:
146
diff
changeset
|
81 revision.rules_revision), |
145
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
82 [None] * num_columns) |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
83 log_files = [(title, os.path.basename(filename)) |
372
ef87d30468b6
Added the option to expose additional log files from the log directory.
Andre Heinecke <aheinecke@intevation.de>
parents:
264
diff
changeset
|
84 for title, filename in |
ef87d30468b6
Added the option to expose additional log files from the log directory.
Andre Heinecke <aheinecke@intevation.de>
parents:
264
diff
changeset
|
85 revision.list_log_files(self.logs)] |
145
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
86 row[column] = struct(revno=revision.revision, |
236
065d20fb4691
Use better names for the rules revision in the structs in the reports.
Bernhard Herzog <bh@intevation.de>
parents:
235
diff
changeset
|
87 rulesrev=revision.rules_revision, |
145
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
88 revision=revision, |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
89 column=column, |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
90 name=track.name, |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
91 log_files=log_files, |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
92 status=prepare_status(revision.status)) |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
93 |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
94 # convert the revisions dict into a sorted list of (revno, row) |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
95 # pairs |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
96 revisions = revisions.items() |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
97 revisions.sort() |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
98 revisions.reverse() |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
99 return revisions |
123e9a5f31fa
Rework treepkg/report.py to prepare for other report types. Adapt
Bernhard Herzog <bh@intevation.de>
parents:
61
diff
changeset
|
100 |
146
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
101 def sorted_by_startdate(self): |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
102 revisions = [] |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
103 for column, track in enumerate(self.tracks): |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
104 for revision in track.get_revisions(): |
491
f1be9657c1d2
skip reports without a status and status starttime
Bjoern Ricks <bricks@intevation.de>
parents:
372
diff
changeset
|
105 if not revision.status or not revision.status.start: |
f1be9657c1d2
skip reports without a status and status starttime
Bjoern Ricks <bricks@intevation.de>
parents:
372
diff
changeset
|
106 continue |
146
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
107 revisions.append((revision.status.start, |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
108 struct(revno=revision.revision, |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
109 revision=revision, |
236
065d20fb4691
Use better names for the rules revision in the structs in the reports.
Bernhard Herzog <bh@intevation.de>
parents:
235
diff
changeset
|
110 rulesrev=revision.rules_revision, |
146
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
111 log_files = |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
112 [(title, os.path.basename(filename)) |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
113 for title, filename |
372
ef87d30468b6
Added the option to expose additional log files from the log directory.
Andre Heinecke <aheinecke@intevation.de>
parents:
264
diff
changeset
|
114 in revision.list_log_files( |
ef87d30468b6
Added the option to expose additional log files from the log directory.
Andre Heinecke <aheinecke@intevation.de>
parents:
264
diff
changeset
|
115 self.logs)], |
146
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
116 column=column, |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
117 name=track.name, |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
118 new_date = None, |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
119 status=prepare_status(revision.status)))) |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
120 revisions.sort() |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
121 revisions.reverse() |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
122 |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
123 last_date = None |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
124 for start, rev in revisions: |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
125 if last_date != start.date(): |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
126 last_date = start.date() |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
127 rev.new_date = str(last_date) |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
128 return revisions |
1766e2ee9457
new report type: sorted by start date instead of revision number. This
Bernhard Herzog <bh@intevation.de>
parents:
145
diff
changeset
|
129 |
372
ef87d30468b6
Added the option to expose additional log files from the log directory.
Andre Heinecke <aheinecke@intevation.de>
parents:
264
diff
changeset
|
130 def prepare_report(group, logs): |
ef87d30468b6
Added the option to expose additional log files from the log directory.
Andre Heinecke <aheinecke@intevation.de>
parents:
264
diff
changeset
|
131 return struct(revisions=Revisions(group.get_package_tracks(), logs), |
61
8ce9607eefbb
add a timestamp for the entire report
Bernhard Herzog <bh@intevation.de>
parents:
60
diff
changeset
|
132 date=format_time(datetime.datetime.utcnow())) |