4331: Display Media size before quick backup, in stats gramplet, and summary report
svn: r16247
This commit is contained in:
		| @@ -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) | ||||
|   | ||||
| @@ -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') | ||||
|   | ||||
| @@ -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: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user