4331: Display Media size before quick backup, in stats gramplet, and summary report

svn: r16247
This commit is contained in:
Doug Blank 2010-12-05 05:54:33 +00:00
parent 79f6646555
commit 915dfc3913
3 changed files with 42 additions and 15 deletions

View File

@ -43,6 +43,7 @@ from gen.ggettext import ngettext
from cStringIO import StringIO
from collections import defaultdict
import sys
import posixpath
#-------------------------------------------------------------------------
#
@ -1444,12 +1445,26 @@ class ViewManager(CLIManager):
hbox.pack_end(file_entry, True)
vbox.pack_start(hbox, False)
hbox = gtk.HBox()
label = gtk.Label(_("Media:"))
bytes = 0
mbytes = "0"
for media in self.dbstate.db.iter_media_objects():
fullname = Utils.media_path_full(self.dbstate.db, media.get_path())
try:
bytes += posixpath.getsize(fullname)
length = len(str(bytes))
if bytes <= 99999:
mbytes = "< 1"
else:
mbytes = str(bytes)[:(length-6)]
label = gtk.Label(_("Media:"))
except OSError:
label = gtk.Label(_("Media:"))
label.set_justify(gtk.JUSTIFY_LEFT)
label.set_size_request(90, -1)
label.set_alignment(0, .5)
hbox.pack_start(label, False)
include = gtk.RadioButton(None, _("Include"))
include = gtk.RadioButton(None, "%s (%s %s)" % (_("Include"),
mbytes, _("MB")))
exclude = gtk.RadioButton(include, _("Exclude"))
include.connect("toggled", lambda widget: self.media_toggle(widget, file_entry))
hbox.pack_start(include, True)

View File

@ -71,8 +71,8 @@ class StatsGramplet(Gramplet):
database = self.dbstate.db
personList = database.iter_people()
with_photos = 0
total_photos = 0
with_media = 0
total_media = 0
incomp_names = 0
disconnected = 0
missing_bday = 0
@ -83,19 +83,25 @@ class StatsGramplet(Gramplet):
namelist = []
notfound = []
pobjects = database.get_number_of_media_objects()
for photo in database.iter_media_objects():
fullname = media_path_full(database, photo.get_path())
mobjects = database.get_number_of_media_objects()
mbytes = "0"
for media in database.iter_media_objects():
fullname = media_path_full(database, media.get_path())
try:
bytes += posixpath.getsize(fullname)
length = len(str(bytes))
if bytes <= 99999:
mbytes = "less than 1"
else:
mbytes = str(bytes)[:(length-6)]
except OSError:
notfound.append(photo.get_path())
notfound.append(media.get_path())
for cnt, person in enumerate(personList):
length = len(person.get_media_list())
if length > 0:
with_photos += 1
total_photos += length
with_media += 1
total_media += length
names = [person.get_primary_name()] + person.get_alternate_names()
for name in names:
@ -168,20 +174,20 @@ class StatsGramplet(Gramplet):
self.append_text("----------------------------\n")
self.link("%s:" % _("Individuals with media objects"),
'Filter', 'people with media')
self.append_text(" %s" % with_photos)
self.append_text(" %s" % with_media)
self.append_text("\n")
self.link("%s:" % _("Total number of media object references"),
'Filter', 'media references')
self.append_text(" %s" % total_photos)
self.append_text(" %s" % total_media)
self.append_text("\n")
self.link("%s:" % _("Number of unique media objects"),
'Filter', 'unique media')
self.append_text(" %s" % pobjects)
self.append_text(" %s" % mobjects)
self.append_text("\n")
self.link("%s:" % _("Total size of media objects"),
'Filter', 'media by size')
self.append_text(" %d %s" % (bytes, _("bytes")))
self.append_text(" %s %s" % (mbytes, _("MB")))
self.append_text("\n")
self.link("%s:" % _("Missing Media Objects"),
'Filter', 'missing media')

View File

@ -206,11 +206,17 @@ class SummaryReport(Report):
self.doc.end_paragraph()
total_media = len(self.__db.get_media_object_handles())
mbytes = "0"
for media_id in self.__db.get_media_object_handles():
media = self.__db.get_object_from_handle(media_id)
try:
size_in_bytes += posixpath.getsize(
media_path_full(self.__db, media.get_path()))
length = len(str(size_in_bytes))
if size_in_bytes <= 99999:
mbytes = "less than 1"
else:
mbytes = str(size_in_bytes)[:(length-6)]
except:
notfound.append(media.get_path())
@ -220,7 +226,7 @@ class SummaryReport(Report):
self.doc.end_paragraph()
self.doc.start_paragraph("SR-Normal")
self.doc.write_text(_("Total size of media objects: %d bytes") % size_in_bytes)
self.doc.write_text(_("Total size of media objects: %s MB") % mbytes)
self.doc.end_paragraph()
if len(notfound) > 0: